Learning ROOT for Research: A Beginner's Guide

In summary, the conversation revolves around someone seeking help with learning how to use Root for a research position over the summer. They have some programming experience with Java but need to teach themselves Root and possibly C++. Additionally, they are looking for any tips or hints to help them secure the research position. Other participants in the conversation suggest starting with basic C++ and learning the basics of using a Linux environment. They also mention that the best tutorials for Root can be found on the root.cern.ch website. The conversation ends with the individual seeking more information about Root and their specific research topic.
  • #1
Divided_Pi
6
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
  • #2
Welcome to PF, and ROOT :smile:

Did you try the original ?
http://root.cern.ch/drupal/content/first-steps-root
 
  • #3
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
 
  • #4
and thanks for the welcome :)
 
  • #5
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.
 
  • #6
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.
 
  • #7
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.
 
  • #8
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?
 
  • #9
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.
 

1. What is ROOT and what is it used for?

ROOT is an open-source software framework used for data analysis, visualization, and storage in scientific research. It is commonly used in high-energy physics, but can also be applied to other fields such as astronomy and biology.

2. Where can I find a tutorial for ROOT?

There are several resources available for learning ROOT. The official ROOT website provides tutorials, user guides, and online courses. Many universities and research institutions also offer workshops and training sessions for ROOT.

3. Is ROOT suitable for beginners?

While ROOT may have a steep learning curve for those with no programming experience, it is designed to be user-friendly and has a large community of users who are willing to help. It is recommended to have some knowledge of C++ before using ROOT.

4. What are the key features of ROOT?

ROOT has a wide range of features, including data analysis tools, 2D and 3D visualization capabilities, and a large number of statistical functions. It also has a powerful scripting language, ROOT C++, which allows for efficient data processing and analysis.

5. Can I use ROOT for my specific research field?

ROOT is a versatile tool that can be applied to various research fields. It is commonly used in fields such as high-energy physics, but it can also be used in other areas such as medical imaging and geoscience. It is recommended to consult with experienced users or attend workshops to learn how to apply ROOT to your specific research needs.

Similar threads

  • Programming and Computer Science
Replies
2
Views
1K
  • Programming and Computer Science
Replies
8
Views
1K
  • Programming and Computer Science
2
Replies
69
Views
4K
  • General Math
Replies
3
Views
800
  • Programming and Computer Science
Replies
6
Views
2K
  • Programming and Computer Science
Replies
11
Views
1K
  • Programming and Computer Science
Replies
15
Views
1K
  • Linear and Abstract Algebra
Replies
3
Views
1K
  • MATLAB, Maple, Mathematica, LaTeX
Replies
11
Views
1K
  • Programming and Computer Science
Replies
8
Views
875
Back
Top