Learning ROOT for Research: A Beginner's Guide

  • Thread starter Thread starter Divided_Pi
  • Start date Start date
  • Tags Tags
    Root Tutorial
AI Thread Summary
A user seeks guidance on learning ROOT for a summer research position, having some programming experience in Java but limited knowledge of C++ and Linux. They have installed ROOT and accessed the browser but feel lost on how to proceed. They inquire about understanding commands like "$ cat myMacro.cxx," clarifying that the '$' indicates a shell prompt in a Unix environment, and express uncertainty about whether to learn Linux basics before diving into ROOT and C++. Responses suggest that while learning C++ is essential for using ROOT, it's feasible to learn Linux commands concurrently. Users recommend starting with beginner tutorials from root.cern.ch and Fermilab, emphasizing the importance of grasping C++ fundamentals and using online resources for Linux. The original poster is encouraged to clarify their research focus to receive more targeted advice.
Divided_Pi
Messages
6
Reaction score
0
Hello, this is my frist thread so I'm sorry if this is in the wrong place, but the other forums didn't seem to be as relevant.

I'm trying to get a research position over the summer and I need to teach myself how to use Root, I have programming experience with Java (although it has been a while since I've used it).
I have Root installed and have been able to follow an online tutorial far enough as to open the browser, but that is as far as I've gotten. (I'm using a fermilab tutorial powerpoint in case that is relevant)

I know Root runs on C++, so I'm also prepared to learn that, but I don't even know where to start with Root after I get the browser open. Any help is greatly appreciated.

Also, any hints or tips to help me get this research position will be greatly appreciated also ;)

and again, sorry if this is completely out of place here
 
Technology news on Phys.org
Welcome to PF, and ROOT :smile:

Did you try the original ?
http://root.cern.ch/drupal/content/first-steps-root
 
Thanks for the link, I must have overlooked it before. Any other links are also appreciated.

If there are phrases that I don't understand, how do I know if it is Unix or C++?
such as: "$ cat myMacro.cxx" I think the myMacro.cxx is referring to a C++ file, but the '$ cat' is unfamiliar to me, although I think $ is used in Terminal.

Again, thanks for the help
 
and thanks for the welcome :)
 
Divided_Pi said:
Thanks for the link, I must have overlooked it before. Any other links are also appreciated.

If there are phrases that I don't understand, how do I know if it is Unix or C++?
such as: "$ cat myMacro.cxx" I think the myMacro.cxx is referring to a C++ file, but the '$ cat' is unfamiliar to me, although I think $ is used in Terminal.

Again, thanks for the help

Typically '$' is meant to signify a shell prompt in a *nix (unix or linux) environment - typically the bash shell in a linux environment. 'cat' is a shell command, short for concatenate. You do not type the '$'.

It seems like you are unfamiliar with working in a linux environment and you might want to get up to speed on it before starting to learn ROOT and C++. Or you might just pick up what you need along the way. Up to you.
 
Thanks Norman, I'm not very familiar with Linux, it was hard enough to get Root installed. In all honesty, this is one of the first times I've really had to teach myself something without any real guidance. Should I try to understand some basic Linux/Unix first then try to work my way up to actually working with Root and C++? Or is it possible to sort of learn them side by side? I just feel like there is so much to learn that I'm even sure where to start really.
 
I have never used Root, so I am not the best person to ask these sort of questions of.

My understanding of Root is that it is simply a set of classes for C++. So, in order to use Root, I would assume you would need to learn C++. But, that is a huge assumption because I truly have no idea how Root works.

If you were setting out to learn C++, I would say you could pick up the basics of linux shell manipulation as you go while learning C++. That is what I did as an undergrad in the few programing classes I took.

Regarding learning Root, I would wait for humanino or someone else to respond.
 
I'm currently doing my bachelor thesis project and have to use ROOT to produce some plots, so I'm sort of having the same problem as you. What I've done is to search the net to find beginner's tutorials, but I can't really say I've had any luck. It's either to trivial or not what I was looking for. The best ones I've seen so far are the original tutorials from root.cern.ch and if I remember right probably the same Fermilab one you're talking about.

In my experience it seems like a good idea to learn how to use C++, at least the basics. If you know a lot of Java this is probably not so difficult. Regarding Linux/terminal issues I don't really think this is anything to worry about, you can probably easily learn it as you go along. It is a piece of cake compared to the programming issues, simply google what you want to do or find some Linux beginners forum.

What is it more specifically you want to learn about ROOT, i.e. what is the research about?
 
kloptok said:
I'm currently doing my bachelor thesis project and have to use ROOT to produce some plots, so I'm sort of having the same problem as you. What I've done is to search the net to find beginner's tutorials, but I can't really say I've had any luck. It's either to trivial or not what I was looking for. The best ones I've seen so far are the original tutorials from root.cern.ch and if I remember right probably the same Fermilab one you're talking about.

In my experience it seems like a good idea to learn how to use C++, at least the basics. If you know a lot of Java this is probably not so difficult. Regarding Linux/terminal issues I don't really think this is anything to worry about, you can probably easily learn it as you go along. It is a piece of cake compared to the programming issues, simply google what you want to do or find some Linux beginners forum.

What is it more specifically you want to learn about ROOT, i.e. what is the research about?

I haven't started the research yet, the professor basically handed me a C++ book and told me to learn to use ROOT then get back to him. I've been trying to get an example problem form him but he has been busy so I don't really have a direction to work towards. I guess I'm trying to figure out where the C++ goes? Looking around the internet it sounds like you write the C++ separately then just use the ROOT library(?) this is all stuff I'm pretty confused about.
 
Back
Top