Both sides previous revisionPrevious revisionNext revision | Previous revisionLast revisionBoth sides next revision |
root:root [2017/06/22 12:11] – iwn | root:root [2017/09/05 15:04] – iwn |
---|
| |
''ROOT'' is a framework based on ''C++'' that is specialized in processing data in High Energy Physics. Some of its central classes are | ''ROOT'' is a framework based on ''C++'' that is specialized in processing data in High Energy Physics. Some of its central classes are |
* ''TTree'' to store data; typically variables are stored in branches for each entry/event (e.g. a proton-proton collision), | * ''[[https://root.cern.ch/doc/master/classTTree.html|TTree]]'' to store data; typically variables are stored in branches for each entry/event (e.g. a proton-proton collision), |
* ''TH1F'', ''TH1D'', ... to make histograms, | * ''[[https://root.cern.ch/doc/master/classTH1.html|TH1]]'' to make histograms, |
* ''TLorentzVector'' to make a four-vectors that you can boost, or add together with simply ''+'', | * ''[[https://root.cern.ch/doc/master/classTLorentzVector.html|TLorentzVector]]'' to make a four-vectors that you can boost, or add together with simply ''+'', |
* ''TBrowser'' to browse ''ROOT'' files containing trees, histograms, ... | * ''[[https://root.cern.ch/doc/master/classTBrowser.html|TBrowser]]'' to browse ''ROOT'' files containing trees, histograms, ... |
Once installed, you can use its extensive libraries in your ''C++'' code or in the ''ROOT'' command line. If you don't like ''C++'' or pointers, it is also possible to use ''ROOT'' in ''python'', a.k.a. ''pyROOT''. This is definitely a good choice for doing simple things, such as making plots. | Once installed, you can use its extensive libraries in your ''C++'' code or in the ''ROOT'' command line. If you don't like ''C++'' or pointers, it is also possible to use ''ROOT'' in ''python'', a.k.a. ''pyROOT''. This is definitely a good choice for doing simple things, such as making plots. |
| |
You should always keep the [[https://root.cern.ch/root/html/ClassIndex.html|the reference manual]] (a.k.a. class index) handy: it lists all the available classes and their methods, sometimes even examples. | Always keep the [[https://root.cern.ch/root/html/ClassIndex.html|the reference manual]] (a.k.a. class index) handy: it lists all the available classes and their methods, sometimes even examples. |
| |
Here are some helpful materials to get started: | Helpful materials to get started: |
| |
* [[https://www.nevis.columbia.edu/~seligman/root-class/|ROOT tutorial by Dr. Seligman]] is very nice; it covers the all basics of ''ROOT'' in both ''C++'' and ''python'' and teaches how to use the reference manual to solve problems by yourself. | * [[https://www.nevis.columbia.edu/~seligman/root-class/|ROOT tutorial by Dr. Seligman]] is very nice; it covers the all basics of ''ROOT'' in both ''C++'' and ''python'' and teaches how to use the reference manual to solve problems by yourself. |
* [[https://indico.desy.de/getFile.py/access?contribId=2&resId=0&materialId=slides&confId=11460|These introductory slides to ROOT]] also covers ''ROOT'' in both ''C++'' and ''python'', and is shorter. It uses these [[http://www.desy.de/~clseitz/Students/TeraScale/|files]]. | * [[https://indico.desy.de/getFile.py/access?contribId=2&resId=0&materialId=slides&confId=11460|These introductory slides to ROOT]] also covers ''ROOT'' in both ''C++'' and ''python'', and is shorter. It uses these [[http://www.desy.de/~clseitz/Students/TeraScale/|files]]. |
* [[https://root.cern.ch/root/html/tutorials/|The official ROOT examples]] (which should also be available on your machine in ''$ROOTSYS/tutorials/'' after installation of ''root''). | * [[https://root.cern.ch/root/html/tutorials/|The official ROOT examples]] and [[https://root.cern/doc/master/group__Tutorials.html|tutorials]] (which should also be available on your machine in ''$ROOTSYS/tutorials/'' after installation of ''root''). |
* [[https://root.cern.ch/root/html/ClassIndex.html|The reference manual]] (a.k.a. class index) lists all available classes and their methods, which is really useful to keep handy. | * [[https://root.cern.ch/root/html/ClassIndex.html|The official ROOT reference manual]] (a.k.a. class index) lists all available classes and their methods, which is really useful to keep handy. |
* [[root:pyROOT|Some useful pyROOT examples]]. | * [[https://root.cern.ch/root/htmldoc/guides/users-guide/ROOTUsersGuide.html|The official ROOT user guide]] ([[https://root.cern.ch/root-user-guides-and-manuals|index of older versions]]). |
| * [[root:pyROOT|Some useful pyROOT examples]]: |
* [[root:pyroot_TTree|handling TTree trees]], | * [[root:pyroot_TTree|handling TTree trees]], |
* [[root:pyroot_TH1|handling TH1 histograms]], | * [[root:pyroot_TH1|handling TH1 histograms]], |
* [[root:pyroot_TFile|handling TFile files]], | * [[root:pyroot_TFile|handling TFile files and TDirectory directories]], |
* [[https://wiki.physik.uzh.ch/lhcb/root:root|Some useful examples made by the LHCb group]]. | * [[https://github.com/clelange/roofit|RooFit]] and [[https://github.com/clelange/roostats|RooStats]] tutorials, [[https://www.nikhef.nl/~vcroft/GettingStartedWithRooFit.html|RooFit manual]]. |
| * [[root:fit|More on fitting in ROOT]]. |
| * [[https://wiki.physik.uzh.ch/lhcb/root:root|Some useful and advanced examples made by the LHCb group]]. |