40 #define MAX_COLOR_INDEX 5
64 fgAnalyzerList->Add(
this);
65 fDeletedByGUIClose =
kFALSE;
70 fMain_selectionlist = 0;
72 SetAnalysisModifiedSinceLastSave(
kFALSE);
73 fAnalysisSaveDir =
".";
74 fPROOFEnabled =
false;
76 fDrawSame = fApplySelection = fProfileHisto =
kFALSE;
86 fSelectedSelections = 0;
98 fXmin = fXmax = fYmin = fYmax = -1.;
99 fWeight =
"1./(abs(vper))";
102 fXminF = fXmaxF = -1.;
116 :
TNamed(
"KVTreeAnalyzer",
"KVTreeAnalyzer"), fTree(0), fChain(0), fSelections(
kTRUE), fHistoNumber(1), fSelectionNumber(1), fAliasNumber(1), fNoGui(nogui)
135 :
TNamed(
"KVTreeAnalyzer", t->GetTitle()), fTree(0), fChain(0), fSelections(
kTRUE), fHistoNumber(1), fSelectionNumber(1), fAliasNumber(1), fNoGui(nogui)
242 if (strcmp(weight,
"")) {
243 if (_selection !=
"" && _elist !=
"")
244 title.
Form(
"%s [%s] {(%s) && (%s)}", expr, weight, _elist.
Data(), selection);
245 else if (_selection !=
"")
246 title.
Form(
"%s [%s] {%s}", expr, weight, selection);
247 else if (_elist !=
"")
248 title.
Form(
"%s [%s] {%s}", expr, weight, _elist.
Data());
250 title.
Form(
"%s [%s]", expr, weight);
253 if (_selection !=
"" && _elist !=
"")
254 title.
Form(
"%s {(%s) && (%s)}", expr, _elist.
Data(), selection);
255 else if (_selection !=
"")
256 title.
Form(
"%s {%s}", expr, selection);
257 else if (_elist !=
"")
258 title.
Form(
"%s {%s}", expr, _elist.
Data());
260 title.
Form(
"%s", expr);
303 TString drawexp(expr), histo, histotitle;
315 if (strcmp(weight,
"")) {
316 if (strcmp(selection,
"")) Selection.
Form(
"(%s)&&(%s)", selection, weight);
317 else Selection = weight;
320 Selection = selection;
321 if (nY) histo.
Form(
">>%s(%d,0.,0.,%d,0.,0.)", name.
Data(), nX, nY);
327 else drawResult =
fTree->
Draw(drawexp, Selection,
"goff");
328 if (drawResult < 0) {
374 TString drawexp(expr), histo, histotitle;
390 if (strcmp(weight,
"")) {
391 if (strcmp(selection,
"")) Selection.
Form(
"(%s)&&(%s)", selection, weight);
392 else Selection = weight;
395 Selection = selection;
397 if (drawResult < 0) {
432 if (
h->IsType(
"Histo"))
return h->GetHisto();
484 if (
fChain->
Draw(drawexp, selection,
"entrylist") < 0) {
498 title.
Form(
"(%s) && (%s)", _elist.
Data(), selection);
549 if (tmp !=
"") cout <<
"CURRENT SELECTION : " << tmp << endl;
594 while ((o = next())) {
633 cout <<
"Analysis " <<
GetTitle() <<
" has been modified. Save before continuing? [y] : " << flush;
637 if (reply ==
'n' || reply ==
'N')
return;
640 cin.get(filename, 256);
648 "Analysis has been modified. Save before continuing?",
kMBIconStop,
650 if (ret_code ==
kMBNo)
return;
714 ULong_t red, cyan, green, yellow, magenta, gura, gurb, gurc, gurd, gure, gurf;
715 gClient->GetColorByName(
"#ff00ff", magenta);
716 gClient->GetColorByName(
"#ff0000", red);
717 gClient->GetColorByName(
"#00ff00", green);
718 gClient->GetColorByName(
"#00ffff", cyan);
719 gClient->GetColorByName(
"#ffff00", yellow);
720 gClient->GetColorByName(
"#cf14b2", gura);
721 gClient->GetColorByName(
"#cd93e6", gurb);
722 gClient->GetColorByName(
"#c1e91a", gurc);
723 gClient->GetColorByName(
"#d1a45b", gurd);
724 gClient->GetColorByName(
"#b54cfe", gure);
725 gClient->GetColorByName(
"#a325ef", gurf);
740 UInt_t hWidth = 400, hHeight = 400;
756 fMenuFile->
Connect(
"Activated(Int_t)",
"KVTreeAnalyzer",
this,
"HandleHistoFileMenu(Int_t)");
773 fOptionMenu->
Connect(
"Activated(Int_t)",
"KVTreeAnalyzer",
this,
"HandleOptionsMenu(Int_t)");
789 UInt_t lWidth = 300, lHeight = 300;
810 G_leaflist->
Connect(
"SelectionChanged()",
"KVTreeAnalyzer",
this,
"LeafChanged()");
826 UInt_t sWidth = 600, sHeight = lHeight;
834 lab =
new TGLabel(fHorizontalFrame1614,
"Make selection : ");
884 G_histo_prof->
Connect(
"Toggled(Bool_t)",
"KVTreeAnalyzer",
this,
"SetProfileHisto(Bool_t)");
907 G_histo_bin->
Connect(
"Toggled(Bool_t)",
"KVTreeAnalyzer",
this,
"SetUserBinning(Bool_t)");
912 hWidth = lWidth + sWidth + 20;
1017 G_histolist->
Connect(
"SelectionChanged()",
"KVTreeAnalyzer",
this,
"HistoSelectionChanged()");
1070 while (draw_options[dop] !=
" ") {
1094 G_histo_log->
Connect(
"Toggled(Bool_t)",
"KVTreeAnalyzer",
this,
"SetDrawLog(Bool_t)");
1113 hHeight = hHeight + lHeight + 50;
1253 if (!
f ||
f->IsZombie()) {
1345 TIter next(&padList);
1347 while ((o = next())) {
1443 cut =
dynamic_cast<TCutG*
>(obj);
1446 histo =
dynamic_cast<TH1*
>(obj);
1458 if (
gPad &&
gPad->GetListOfPrimitives()->FindObject(histo) && (gen)) {
1459 TIter next(
gPad->GetListOfPrimitives());
1461 while ((o = next())) {
1479 if (weight ==
"1") weight =
"";
1503 histo->
Draw(
"same");
1504 TObject* legend =
gPad->GetListOfPrimitives()->FindObject(
"TPave");
1506 gPad->GetListOfPrimitives()->Remove(legend);
1520 while ((
h = nxt())) {
1538 c->SetWindowSize(700, 700);
1577 return (test_sel == tree_sel);
1597 if (kvhisto) histo = kvhisto->
GetHisto();
1598 if (histo && (histo->IsA() ==
h->IsA()))
return histo;
1637 if (selection.
IsNull())
return;
1678 for (
int i = 1; i < nsel; i++) {
1682 if (i > 1) newselect +=
" && ";
1683 newselect += tmp.
Data();
1708 for (
int i = 0; i < nsel; i++) {
1712 if (i > 0) newselect +=
" || ";
1713 newselect += tmp.
Data();
1731 if (nsel < 1)
return;
1732 for (
int i = 0; i < nsel; i++) {
1828 else if (nleaf == 2) {
1838 else if (nleaf == 3) {
1960 int nx = 500, ny = 500;
1987 TIter nxtSame(same_histo.get());
2031 if (!
fProfileHisto) histo.
Form(
">>%s(%d,%f,%f,%d,%f,%f)", name.
Data(), nx,
xmin,
xmax, ny,
ymin,
ymax);
2034 else histo.
Form(
">>%s", name.
Data());
2041 else drawResult =
fTree->
Draw(drawexp, ww.
Data(),
"prof,goff");
2042 if (drawResult < 0) {
2071 Warning(
"DrawAsDalitz",
"Cannot be used with aliases !");
2093 Int_t vari1, vari2, vari3;
2095 Char_t varc1, varc2, varc3;
2103 else if (xType.
Contains(
"Short_t")) {
2108 else if (xType.
Contains(
"Char_t")) {
2113 else if (xType.
Contains(
"Double_t")) {
2118 else if (xType.
Contains(
"Float_t")) {
2145 for (
int i = 0; i <
nentries; i++) {
2147 if (el) j = el->
Next();
2154 else if (xType.
Contains(
"Short_t")) {
2159 else if (xType.
Contains(
"Char_t")) {
2164 else if (xType.
Contains(
"Double_t")) {
2169 else if (xType.
Contains(
"Float_t")) {
2174 h->FillAsDalitz(
x,
y, z);
2202 TH1* histo =
nullptr;
2212 if (kvhisto) histo = kvhisto->
GetHisto();
2214 if (
type ==
"Int_t" ||
type ==
"Char_t" ||
type ==
"Short_t") {
2217 if (
type ==
"Char_t") {
2246 if (kvhisto) histo = kvhisto->
GetHisto();
2329 std::vector<Double_t> slices =
ipscale->
SliceXSec(sigmaTot / sigmaBin, sigmaTot);
2336 bool integer_values = (name[0] ==
'I');
2338 for (
unsigned int i = 0; i < slices.size(); ++i) {
2341 Double_t varCutold = (i > 0 ? slices[i - 1] : 0.);
2342 if (integer_values) varCutold =
TMath::Nint(varCutold);
2344 if (i > 0) selection.
Form(
"%s>=%f && %s<%f", ipvar.
Data(), varCut, ipvar.
Data(), varCutold);
2345 else selection.
Form(
"%s>=%f", ipvar.
Data(), varCut);
2628 if (
h->IsType(
"Histo") && !strcmp(
h->GetExpression(), expr)) hlist->
Add(
h->GetHisto());
2649 if (
h->IsType(
"Histo") && !strcmp(
h->GetSelection(), expr)) hlist->
Add(
h->GetHisto());
2665 if (
h->IsType(
"Histo") && !strcmp(
h->GetExpression(), expr) && !strcmp(
h->GetSelection(), selection)) {
2666 if (strcmp(weight,
"")) {
2667 if (!strcmp(
h->GetWeight(), weight))
return h->GetHisto();
2669 else return h->GetHisto();
2695 if (
h->IsType(
"Histo") && !strcmp(
h->GetExpression(), expr) && !strcmp(
h->GetSelection(), selection) && !strcmp(
h->GetWeight(), weight)) {
2714 if (nsel < 1)
return;
2715 for (
int i = 0; i < nsel; i++) {
2751 Info(
"AddSelectedHistos",
"Call to context menu not OK");
2756 Info(
"AddSelectedHistos",
"You pressed cancel");
2764 Info(
"AddSelectedHistos",
"Only possible for 2 histograms");
2798 TIter next(&old_lists);
2803 cout <<
"REGENERATING SELECTION : " << old_el->
GetTitle() << endl;
2848 while (
tan ==
this);
2849 tan->AnalysisSaveCheck();
2853 gROOT->ProcessLine(
".q");
2921 const char* filetypes[] = {
2922 "Analysis files",
"Analysis*.root",
2944 const char* filetypes[] = {
2945 "ROOT files",
"*.root",
2967 const char* filetypes[] = {
2968 "ROOT files",
"*.root*",
2979 TString theTreeName, theTreeTitle;
2985 if (trees->GetEntries()) {
2986 theTreeName = trees->
First()->GetName();
2987 theTreeTitle = trees->
First()->GetTitle();
2989 if (theTreeName !=
"") {
3006 const char* filetypes[] = {
3007 "ROOT files",
"*.root",
3026 const char* filetypes[] = {
3027 "Analysis files",
"Analysis*.root",
3052 void KVTreeAnalyzer::OpenSingleFile(
TFile*
file)
3058 keys.AddAll(
file->GetListOfKeys());
3060 unique_ptr<KVSeqCollection> trees(keys.GetSubListWithMethod(
"TTree",
"GetClassName"));
3061 if (trees->GetEntries()) {
3063 TString aTreeName = trees->First()->GetName();
3068 OpenChain(aTreeName, trees->First()->GetTitle(), &fileList);
3072 while ((akey = (
TKey*)next())) {
3098 TObject* kvta =
file->GetListOfKeys()->FindObject(
"KVTreeAnalyzer");
3103 OpenSingleFile(
file);
3156 while ((o = next())) {
3158 Info(
"GenerateAllAliases",
"Adding alias %s to leaflist", o->
GetTitle());
3188 TObject* kvta =
file->GetListOfKeys()->FindObject(
"KVTreeAnalyzer");
3218 exp.ReplaceAll(
"d2r",
"TMath::DegToRad()");
3219 exp.ReplaceAll(
"r2d",
"TMath::RadToDeg()");
3229 "Encapsulated PostScript",
"*.eps",
3234 "ROOT files",
"*.root",
3257 Info(
"SetUpHistoAutoSave",
"Select image filetype and directory");
3260 static Int_t typeidx = 0;
3289 static TString lastFilename =
"";
3292 gPad->SaveAs(lastFilename);
3305 Info(
"AutoSaveHisto",
"Saved as: %s", title.
Data());
3306 gPad->SaveAs(title);
3307 lastFilename = title;
3321 TIter nextSel(list);
3323 while ((sel = nextSel())) {
3325 Info(
"GenerateAllSelections",
"Generating selection: %s", sel->
GetTitle());
3342 TIter nextHist(list);
3346 if (!obj->
IsType(
"Cut")) {
3352 if (weight ==
"1") weight =
"";
3354 Info(
"GenerateAllHistograms",
"Generating histogram: %s", hist->
GetTitle());
3370 void KVTreeAnalyzer::Streamer(
TBuffer& R__b)
3381 R__b.
ReadClassBuffer(KVTreeAnalyzer::Class(),
this, R__v, R__s, R__c);
3389 Info(
"Streamer",
"Checking friends");
3398 Info(
"Streamer",
"Found friend to convert to TChain");
3402 Info(
"Streamer",
"Choose file containg friend tree %s", fe->
GetTreeName());
3404 const char* filetypes[] = {
3405 "ROOT files",
"*.root",
3423 Info(
"Streamer",
"Removing TTree friends");
3425 while (!toRemove.
End()) {
3429 Info(
"Streamer",
"Adding friends as TChains");
3430 while (!toRemove.
End()) {
3431 idx = toRemove.
Next();
3452 while ((obj = (
TNamed*)next())) {
3467 if (
h->IsType(
"Histo"))
h->ParseExpressionAndSelection();
3494 if (trees->GetEntries()) {
3504 while ((akey = (
TKey*)next())) {
void AssignAndDelete(TString &target, char *tobedeleted)
ClassImp(KVPartitionList) void KVPartitionList
Initialisation.
static const char * gSaveAsTypes[]
KVTreeAnalyzer * gTreeAnalyzer
R__EXTERN TProof * gProof
char * Form(const char *fmt,...)
char * StrDup(const char *str)
R__EXTERN TSystem * gSystem
virtual Bool_t IsType(const Char_t *typ) const
static void InitEnvironment()
static Bool_t OpenContextMenu(const char *method, TObject *obj, const char *alt_method_name="")
TCanvas with mouse-controlled dynamic zoom and pan & scan.
Fill 3D observables in a dalitz plot ,.
Modified version of TGFileDialog file selection dialog.
Wrapper for histograms and graphical cuts used by KVTreeAnalyzer.
static void ParseHistoTitle(const Char_t *title, KVString &exp, KVString &sel, KVString &weight)
const Char_t * GetExpression() const
const Char_t * GetSelection() const
const Char_t * GetWeight() const
Return weighting used for filling histogram.
Impact parameter analysis tools.
static Double_t GetIPFromXSec(Double_t xsec)
std::vector< Double_t > SliceXSec(Int_t nslices, Double_t totXsec)
void MakeAbsoluteScale(Int_t npoints=100, Double_t bmax=1.0)
virtual void SetIsBoolean(Bool_t isit=kTRUE)
Extension of TGLVContainer for KVListView widget.
Enhanced version of ROOT TGListView widget.
virtual void ActivateSortButtons()
virtual void SetDataColumns(Int_t ncolumns)
void SetDoubleClickAction(const char *receiver_class, void *receiver, const char *slot)
virtual KVLVColumnData * GetDataColumn(Int_t index) const
virtual void Display(const TCollection *l)
virtual void SetMaxColumnSize(UInt_t width)
KVList * GetPickOrderedSelectedObjects() const
TList * GetSelectedObjects() const
void AllowContextMenu(Bool_t on=kTRUE)
virtual void SetDataColumn(Int_t index, const Char_t *name, const Char_t *method="", Int_t mode=kTextCenterX)
void SetUseObjLabelAsRealClass(Bool_t yes=kTRUE)
Extended TList class which owns its objects by default.
Handles lists of named parameters with different types, a list of KVNamedParameter objects.
void SetValue(const Char_t *name, value_type value)
const Char_t * GetStringValue(const Char_t *name) const
Strings used to represent a set of ranges of values.
void Add(Int_t)
Add value 'n' to the list.
KaliVeda extensions to ROOT collection classes.
virtual void Copy(TObject &obj) const
KVSeqCollection * GetSubListWithMethod(const Char_t *retvalue, const Char_t *method) const
virtual TObject * Last() const
virtual void SetOwner(Bool_t enable=kTRUE)
virtual void Clear(Option_t *option="")
virtual Int_t GetSize() const
virtual TObject * At(Int_t idx) const
virtual TObject * First() const
virtual TObject * FindObjectWithMethod(const Char_t *retvalue, const Char_t *method) const
virtual TObject * FindObjectByTitle(const Char_t *) const
Will return object with given title (value of TObject::GetTitle() method).
virtual void Add(TObject *obj)
virtual TObject * FindObjectWithNameAndType(const Char_t *name, const Char_t *type) const
virtual TObject * Remove(TObject *obj)
Remove object from list.
virtual TObject * FindObject(const char *name) const
Extension of ROOT TString class which allows backwards compatibility with ROOT v3....
KVString & FindCommonTitleCharacters(const TCollection *, const char bug=' *')
GUI for simple intuitive analysis of data in TTree ,.
void DeleteHisto(const Char_t *expr, const Char_t *selection, const Char_t *weight)
Int_t fSelectionNumber
used for automatic naming of selections
Bool_t IsPROOFEnabledForSelections() const
Bool_t fNoGui
=kTRUE if no graphical interface is required
static KVTreeAnalyzer * OpenFile(const Char_t *filename, Bool_t nogui=kFALSE)
TList * GetHistosByData(const Char_t *expr)
KVHistogram * GetHistoByTitle(const Char_t *title)
TChain * fChain
the analyzed TTree or TChain
void DefineUserBinning(Int_t Nx, Int_t Ny, Double_t Xmin, Double_t Xmax, Double_t Ymin, Double_t Ymax)
Bool_t fNormHisto
=kTRUE: generate normalised histograms (normalise to integral of histo)
TGCheckButton * G_histo_norm
void DefineUserBinning1F(Int_t NxF, Double_t XminF, Double_t XmaxF)
void SaveAs(const char *filename="", Option_t *option="") const
Bool_t IsPROOFEnabled() const
void MakeAbsoluteIPScale(const char *name, Double_t sigmaTot)
void SetTreeFileName(TTree *t)
Int_t fHistoNumber
used for automatic naming of histograms
void SetTree(TTree *t)
Connects a TChain for analysis.
TGGroupFrame * fMain_leaflist
GUI for access to TTree leaves and aliases.
void DeleteSelections()
Delete the currently selected selection(s)
void ReconnectTree()
Backwards compatibility: to read old analysis files.
void OpenAnyFile(const Char_t *filepath)
KVListView * G_histolist
GUI list of histograms.
void HistoFileMenu_Save()
Bool_t MakeSelection(const Char_t *selection)
void DefineUserBinningD(Int_t NxD, Int_t NyD, Int_t ordered)
void ReapplyAnyFile(const Char_t *filepath)
void SetAnalysisModifiedSinceLastSave(Bool_t)
TString fAutoSaveDir
directory for autosaving histos
Bool_t fStatsHisto
=kTRUE: display histo stats box
TGCheckButton * G_histo_app_sel
const Char_t * get_leaf_type_name(const TNamed *l)
Bool_t fApplySelection
=kTRUE: apply current selection to existing histogram
TString fTreeName
name of analyzed TTree
Bool_t fDrawSame
=kTRUE: draw histograms in same plot
void SetUpHistoAutoSave()
void GenerateAllAliases(TCollection *list)
Generate all user aliases in list which are not already defined.
void DefineWeight(const Char_t *Weight)
Int_t fAliasNumber
used for automatic naming of TTree aliases
TH1 * RemakeHisto(TH1 *h, const Char_t *expr, const Char_t *weight="")
void SetAlias(const Char_t *name, const Char_t *expr)
Bool_t fDeletedByGUIClose
static KVList * fgAnalyzerList
static list of all analyzers in memory
void HistoFileMenu_Apply()
TString fTreeFileName
name of file containing analyzed TTree
void DeleteSelectedHisto()
Delete all currently selected histograms.
void GUIClosed()
Called when graphical window is closed.
void GenerateConstantXSecSelections(const char *name, Double_t sigmaTot, Double_t sigmaBin)
KVImpactParameter * ipscale
TEntryList * GetSelection(const Char_t *)
Look for selection in list of selections.
Bool_t IsCurrentSelection(const Char_t *sel)
void AutoSaveHisto(TH1 *h)
TGTextEntry * G_alias_text
TGPopupMenu * fSelCombMenu
Bool_t fNewCanvas
=kTRUE: draw each histogram in a new canvas
void init()
Default initialization.
TString fRelativePathToAnalysisFile
TGCheckButton * G_histo_log
TGComboBox * G_histo_draw_option
KVUniqueNameList fSelections
list of TEntryList user selections
void GenerateAllHistograms(TCollection *)
Bool_t fNormHistoEvents
=kTRUE: generate normalised histograms (normalise to number of events)
void SetSelection(TObject *)
void CurrentSelection()
Print the currently active selection (TEntryList set on TTree).
KVList fLeafList
clones of leaves in TChain
TGCheckButton * G_histo_weight
void UpdateEntryLists()
regenerate entry lists for all selections
TGCheckButton * G_histo_prof
void SetEntryList(TEntryList *)
void HistoAddition(Double_t c1=1, Double_t c2=1)
void OpenGUI()
Launch the GUI (unless fNoGui=kTRUE in which case this does nothing)
void HistoFileMenu_OpenFriend()
TGPictureButton * G_histo_add
void SetRelativePathToAnalysisFile(const Char_t *p)
TGPictureButton * G_histo_del
TH1 * MakeHisto(const Char_t *expr, const Char_t *selection, Int_t nX, Int_t nY=0, const Char_t *weight="")
void CombineSelectionsAnd()
TGCheckButton * G_histo_stats
KVTreeAnalyzer(Bool_t nogui=kTRUE)
TGCheckButton * G_histo_new_can
void HandleHistoFileMenu(Int_t)
TGCheckButton * G_histo_bin
void HandleOptionsMenu(Int_t opt)
TGGroupFrame * fMain_selectionlist
GUI for handling selections.
TString fSaveAnalysisFileName
TGPopupMenu * fMenuSelections
void CombineSelectionsOr()
TGPictureButton * G_leaf_draw
Bool_t fAutoSaveHisto
=kTRUE: on draw, generate image file of current displayed histo
void HandleSelectionsMenu(Int_t)
void EnablePROOF(Bool_t yes=kTRUE)
KVList fHistolist
list of generated histograms
TList * GetHistosBySelection(const Char_t *expr)
void OpenAnyFriendFile(const Char_t *filepath)
TTree * fTree
for backwards compatibility
TGCheckButton * G_histo_norm_events
void GenerateAllSelections(TCollection *)
For applying existing analysis to new data.
TGPopupMenu * fSelGenerate
TString fAutoSaveType
filetype for autosaving histos
TH1 * GetHistogram(const Char_t *name) const
Return histogram with given name.
TGPopupMenu * fOptionMenu
Long64_t GetEntriesInCurrentSelection() const
KVListView * G_selectionlist
GUI list of TEntryList selections.
TGStatusBar * G_selection_status
status bar in selections GUI
void AddSelection(TEntryList *)
TGLayoutHints * fMenuBarItemLayout
TGCheckButton * G_histo_same
TH1 * MakeIntHisto(const Char_t *expr, const Char_t *selection, Int_t Xmin, Int_t Xmax, const Char_t *weight="")
virtual ~KVTreeAnalyzer()
Destructor.
void OpenChain()
Open a file or files containing TTrees to analyse.
void SelectionChanged()
Method called whenever the selected selection in the GUI list changes.
TGMainFrame * fMain_histolist
GUI for handling histograms.
TH1 * GetHisto(const Char_t *expr, const Char_t *selection, const Char_t *weight="")
Bool_t fAnalysisModifiedSinceLastSave
TNamed * GetAlias(const Char_t *expr)
void HistoSelectionChanged()
Method called when user histo selection changes in GUI histogram list.
void GenerateHistoTitle(TString &title, const Char_t *exp, const Char_t *sel, const Char_t *weight="")
void ReadFromFile(const Char_t *filename)
open a previously saved analysis session.
Bool_t fDrawLog
=kTRUE: draw histograms with log-Y (1-D) or log-Z (2-D) scale
void HistoFileMenu_Open()
Open a previous analysis session.
void DrawLeaf(TObject *)
Method called when user double-clicks a leaf/alias in list.
KVList fAliasList
list of TTree aliases
TList * fSelectedSelections
void Copy(TObject &obj) const
void DrawHisto(TObject *o, Bool_t gen=kTRUE)
TGCheckButton * G_histo_autosave
TGTextEntry * G_selection_text
KVListView * G_leaflist
GUI list of TTree leaves and aliases.
Bool_t fMethodCalled
allows to know if context menu methods are called
virtual void Add(TObject *obj)
virtual void SetLineColor(Color_t lcolor)
virtual Int_t ReadClassBuffer(const TClass *cl, void *pointer, const TClass *onfile_class=0)=0
virtual Version_t ReadVersion(UInt_t *start=0, UInt_t *bcnt=0, const TClass *cl=0)=0
virtual Int_t WriteClassBuffer(const TClass *cl, void *pointer)=0
virtual void SetDirectory(TDirectory *dir)
virtual void RemoveFriend(TTree *)
virtual TObjArray * GetListOfLeaves()
virtual void SetEntryList(TEntryList *elist, Option_t *opt="")
virtual Int_t Add(const char *name, Long64_t nentries=TTree::kMaxEntries)
virtual Long64_t GetEntries() const
virtual TFriendElement * AddFriend(const char *chainname, const char *dummy="")
virtual void SetProof(Bool_t on=kTRUE, Bool_t refresh=kFALSE, Bool_t gettreeheader=kFALSE)
virtual Long64_t Draw(const char *varexp, const char *selection, Option_t *option="", Long64_t nentries=kMaxEntries, Long64_t firstentry=0)
static TClass * GetClass(Bool_t load=kTRUE, Bool_t silent=kFALSE)
Bool_t InheritsFrom(const char *cl) const
virtual void ls(Option_t *option="") const
virtual void AddAll(const TCollection *col)
virtual Int_t GetEntries() const
virtual TObject * Clone(const char *newname="") const
const char * GetVarY() const
const char * GetVarX() const
virtual Bool_t cd(const char *path=nullptr)
virtual Bool_t GetReapplyCut() const
virtual Long64_t GetEntry(Int_t index)
virtual Long64_t GetN() const
virtual const char * GetValue(const char *name, const char *dflt) const
static TFile * Open(const char *name, Option_t *option="", const char *ftitle="", Int_t compress=ROOT::RCompressionSetting::EDefaults::kUseCompiledDefault, Int_t netopt=0)
virtual TTree * GetTree()
virtual TFile * GetFile()
virtual const char * GetTreeName() const
TGFrame * GetContainer() const
virtual void AddEntry(const char *s, Int_t id)
virtual void AddFrame(TGFrame *f, TGLayoutHints *l=0)
virtual void SetCleanup(Int_t mode=kLocalCleanup)
virtual TGDimension GetDefaultSize() const
virtual void MapSubwindows()
void SetMultipleSelection(Bool_t option)
virtual UInt_t GetDefaultHeight() const
virtual void Resize(TGDimension size)
TGDimension GetSize() const
virtual TGDimension GetDefaultSize() const
void SetText(const char *newText)
virtual const char * GetTitle() const
void SetIconPixmap(char **xpm_array)
void SetIconName(const char *name)
void SetWindowName(const char *name=0)
virtual void SetText(const char *text, Int_t partidx=0)
virtual void SetMaxLength(Int_t maxlen)
virtual void SetCursorPosition(Int_t pos)
const char * GetText() const
virtual void SetAlignment(ETextJustification mode=kTextLeft)
virtual void SetText(const char *text, Bool_t emit=kTRUE)
void Clear(Option_t *option="")
virtual void SetName(const char *name)
virtual void RaiseWindow()
virtual void SetTitle(const char *title="")
virtual void Draw(Option_t *chopt="")
virtual void SetDirectory(TDirectory *dir)
virtual void SetTitle(const char *title)
virtual Bool_t Add(const TH1 *h, const TH1 *h2, Double_t c1=1, Double_t c2=1)
virtual Int_t GetNbinsY() const
Option_t * GetOption() const
TObject * Clone(const char *newname=0) const
virtual Double_t GetMaximum(Double_t maxval=FLT_MAX) const
virtual Int_t GetNbinsX() const
virtual void SetMaximum(Double_t maximum=-1111)
virtual void Draw(Option_t *option="")
virtual Double_t Integral(Int_t binx1, Int_t binx2, Option_t *option="") const
virtual void SetOption(Option_t *option=" ")
virtual void Scale(Double_t c1=1, Option_t *option="")
virtual void Sumw2(Bool_t flag=kTRUE)
virtual void SetStats(Bool_t stats=kTRUE)
virtual const char * GetClassName() const
virtual const char * GetTypeName() const
virtual void Add(TObject *obj)
virtual TObject * FindObject(const char *name) const
virtual TObject * At(Int_t idx) const
virtual void Delete(Option_t *option="")
virtual TObject * First() const
virtual const char * GetName() const
virtual void Copy(TObject &named) const
virtual void SetTitle(const char *title="")
virtual const char * GetTitle() const
virtual TObject * FindObject(const char *name) const
virtual Int_t Write(const char *name=0, Int_t option=0, Int_t bufsize=0)
virtual const char * GetName() const
virtual void Warning(const char *method, const char *msgfmt,...) const
virtual Bool_t InheritsFrom(const char *classname) const
virtual void Error(const char *method, const char *msgfmt,...) const
virtual const char * GetTitle() const
virtual void Info(const char *method, const char *msgfmt,...) const
static TProof * Open(const char *url=0, const char *conffile=0, const char *confdir=0, Int_t loglevel=0)
Bool_t Connect(const char *signal, const char *receiver_class, void *receiver, const char *slot)
TString & Insert(Ssiz_t pos, const char *s)
Ssiz_t First(char c) const
Bool_t BeginsWith(const char *s, ECaseCompare cmp=kExact) const
TString & Append(char c, Ssiz_t rep=1)
const char * Data() const
TString & Prepend(char c, Ssiz_t rep=1)
virtual Int_t Sizeof() const
void Form(const char *fmt,...)
Bool_t Contains(const char *pat, ECaseCompare cmp=kExact) const
TString & ReplaceAll(const char *s1, const char *s2)
virtual const char * DirName(const char *pathname)
virtual char * ConcatFileName(const char *dir, const char *name)
virtual Bool_t AccessPathName(const char *path, EAccessMode mode=kFileExists)
virtual Bool_t ChangeDirectory(const char *path)
virtual const char * BaseName(const char *pathname)
virtual Bool_t IsAbsoluteFileName(const char *dir)
virtual const char * WorkingDirectory()
static void SingleShot(Int_t milliSec, const char *receiver_class, void *receiver, const char *method)
virtual TObjArray * GetListOfLeaves()
virtual Int_t GetEntry(Long64_t entry, Int_t getall=0)
TFile * GetCurrentFile() const
virtual TTree * GetFriend(const char *) const
virtual Double_t GetMaximum(const char *columname)
virtual TEntryList * GetEntryList()
Int_t SetBranchAddress(const char *bname, T **add, TBranch **ptr=0)
virtual Long64_t GetEntries() const
virtual Long64_t Draw(const char *varexp, const char *selection, Option_t *option="", Long64_t nentries=kMaxEntries, Long64_t firstentry=0)
virtual TList * GetListOfFriends() const
TDirectory * GetDirectory() const
virtual Double_t GetMinimum(const char *columname)
virtual void ResetBranchAddresses()
virtual TList * GetListOfAliases() const
RooCmdArg Weight(Double_t wgt)