ROOT Tips and Tricks
From Hall A Wiki
Add any useful code snippets, hints, tutorials, etc you use here!
How to save a graphical cut and implement it in another script:
1. Make the plot
2. Draw the graphical cut either by using the toolbar at the top of the screen under Edit->Toolbar->GraphicalCut (scissors), or by "hard-coding" it into your script, via:
//snipped; this code has the computer wait for you to draw the cut. TCutG* cutg; cutg=(TCutG*)gPad->WaitPrimitive("CUTG","CutG"); // making cut, store to CUTG c1->Update(); //update the canvas TCutG *tmpg, *mycutg; tmpg = (TCutG*)gROOT->GetListOfSpecials()->FindObject("CUTG"); mycutg = (TCutG*)(tmpg->Clone("mycutg")); //NOTE: It is important to update the canvas where specified!
3. Now, save as "mycut" (right-click on the cut->SetName)
4. In command line:
$ TFile f("filename.root","recreate"); //reconstructs the cut $ mycut.Write(); //saves the cut to "filename.root"
4. In a new session/macro:
TFile f("filename.root"); TCutG* mycut = (TCutG*)gRoot->FindObject("mycut");
5. Apply cut as you would if it were a TString.