FairRoot/PandaRoot
DalitzGUI.h
Go to the documentation of this file.
1 // --------------------------------------------------------------------------
2 // DalitzGui - ROOT based tool to plot 3body decay's with resonant behaviour
3 // --------------------------------------------------------------------------
4 //
5 // Check accompanying README file for infos how to use
6 //
7 // Original author: Klaus Goetzen - GSI Darmstadt
8 // Last modified : 2014/08/15
9 // --------------------------------------------------------------------------
10 
11 #include "TRandom3.h"
12 #include <TQObject.h>
13 #include <RQ_OBJECT.h>
14 //#include "stdafx.h"
15 
16 class TH2F;
17 class TRootEmbeddedCanvas;
18 class TGLayoutHints;
19 class TH1D;
20 class TGHorizontalFrame;
21 class TGVerticalFrame;
22 class TGLabel;
23 class TGHSlider;
24 class TGTextButton;
25 class TGCheckButton;
26 class TGTextEntry;
27 class TGTextBuffer;
28 class TGComboBox;
29 class TGraph;
30 class CRes;
31 class TGMainFrame;
32 class TGWindow;
33 class TGMenuBar;
34 class TGPopupMenu;
35 class TGDockableFrame;
36 class TGTransientFrame;
37 class TGDoubleHSlider;
38 class TGButton;
39 
40 class TDalitzGui {
41 RQ_OBJECT("TDalitzGui")
42 
43 private:
44  TGMainFrame *fMain;
45  TRootEmbeddedCanvas *fCanvas;
46  TGLayoutHints *fLcan;
47 
48  TH2F *fHDalitz; // coherent (correct) Dalitz Plot
49  TH2F *fHDalitzSct; // coherent (correct) Dalitz Plot (scatter plot)
50  TH2F *fHDalitzI; // incoherent Dalitz Plot
51  TH2F *fHDalitzD; // difference coherent-incoherent
52  TH2F *fHDalitzPh; // total absoluted phase of resulting amplitude
53 
54  TH1D *fHs1Proj, *fHs2Proj,*fHs3Proj; // 1D projections of squared masses
55  TH1D *fHs1M, *fHs2M,*fHs3M; // 1D projections of inv. masses (generated randomly from projections)
56  TH1D *fHs1Ph, *fHs2Ph; // 1D phases for s1 and s2
57 
58  TGMenuBar *fMenuBar;
59  TGPopupMenu *fMenuFile;
60  TGDockableFrame *fMenuDock;
61 
62  TGHorizontalFrame *fVframe[4];
64  TGLabel *fLab[7];
65  TGHSlider *fHslider1, *fHslider2, *fHslider3;
66  TGTextButton *fButResize;
67  TGCheckButton *fCheckResize, *fCheckColor, *fCheckLog;
68 
69  TGTextEntry *fTeh1;
70  TGTextBuffer *fTbh1;
71  TGTextEntry *fTeh2;
72  TGTextBuffer *fTbh2;
73 
74  TGLabel *fLabRN[3], *fLabRA[6], *fLabRph[6];
75 
76  TGComboBox *fComRes[6];
77  TGCheckButton *fChRes[6];
78 
79  TGHSlider *fSlResA[6], *fSlResph[6];
80 
81  TGHSlider *fSlOcc;
82 
83  TGComboBox *fComFin[3];
84 
85  TGComboBox *fComPlot;
86 
87  TGraph *fGraphKin;
88 
89  CRes *fRes[6];
90 
91  Int_t fnR[3];
92 
93  //
98 
99  TString fn1, fn2, fn3; // Print names of particles
100 
101  Int_t ndbins;
102 
103  TRandom3 fRand;
104  Int_t fOcc;
105 
107 
108 public:
109  TDalitzGui(const TGWindow *p,UInt_t w,UInt_t h);
110  virtual ~TDalitzGui();
111 
112  // signal handler
113  void CloseWindow();
114  void DoSlider(Int_t pos);
115  void DoParmSlider(Int_t pos);
116  void DoResize();
117  void DoText();
118  void DoCombo(Int_t id);
119  void DoCheckRes() { DoParmSlider(0); }
120  void HandleMenu(Int_t id);
121  void Rebin();
122  Int_t IdToSelection(Int_t id, int mode=1);
123 
124  //other functions
125  void CreateGraph(TGraph* g, const Int_t n, const Double_t m, const Double_t m1, const Double_t m2, const Double_t m3);
126  void CreateDalitz();
127  void InitParams();
128  void DrawMainPlot();
129  void DrawPlot();
130  void ReadOutGui();
131  void ComputeCache(Int_t ri=1);
132  void MakeAnimatedGif();
133 
134  void ConfigPlot();
135  void ResetPlots();
136  void ConfigComboFin(TGComboBox* b);
137  void ConfigComboRes(TGComboBox* b);
138  void ConfigSliderRes(TGHSlider *a, TGHSlider *p);//, TGHSlider *J);
139 
142 
143  void SwitchColor();
144  //void HandleButtons();
145 
146 
147  ClassDef(TDalitzGui, 0)
148 };
149 
151 
152 private:
153  TGTransientFrame *fMain;
154 
155  TGHorizontalFrame *fVframe0, *fVframe1;
156  TGLayoutHints *fL1, *fL2;
157 
158  TGLabel *fLab[10];
159 
160  TGTextEntry *fTeh1, *fTeh2;
161  TGTextBuffer *fTbh1, *fTbh2;
162 
163  TGComboBox *fComPlot, *fComVar;
164 
165  TGDoubleHSlider *fHslider1;
166 
167  TGCheckButton *fChMainOnly;
168 
169  TGButton *fOkButton;
170  TGButton *fCancelButton;
171 
172 public:
173  AniGifDialog(const TGWindow *p, const TGWindow *main);
174  virtual ~AniGifDialog();
175 
176  // slots
177  void CloseWindow();
178  void DoOK();
179  void DoCombo(Int_t idx);
180  void DoSlider();
181 
182 private:
183  double slmin, slmax;
184 
185  ClassDef(AniGifDialog, 0)
186 };
TGButton * fCancelButton
Definition: DalitzGUI.h:170
TVector3 pos
virtual ~TDalitzGui()
void InitParams()
Double_t p
Definition: anasim.C:58
int main(int argc, char **argv)
TGComboBox * fComVar
Definition: DalitzGUI.h:163
TGComboBox * fComPlot
Definition: DalitzGUI.h:163
TGLabel * fLabRN[3]
Definition: DalitzGUI.h:74
void ConfigSliderRes(TGHSlider *a, TGHSlider *p)
TGComboBox * fComRes[6]
Definition: DalitzGUI.h:76
void DoCheckRes()
Definition: DalitzGUI.h:119
void DoParmSlider(Int_t pos)
TGDockableFrame * fMenuDock
Definition: DalitzGUI.h:60
void ConfigPlot()
TGLabel * fLabRA[6]
Definition: DalitzGUI.h:74
__m128 m
Definition: P4_F32vec4.h:28
void Rebin()
TTree * b
TGLayoutHints * fL2
Definition: DalitzGUI.h:156
TH1D * fHs2Ph
Definition: DalitzGUI.h:56
TGHSlider * fSlResph[6]
Definition: DalitzGUI.h:79
Int_t fOcc
Definition: DalitzGUI.h:104
TH2F * fHDalitzSct
Definition: DalitzGUI.h:49
void DoText()
TString fn3
Definition: DalitzGUI.h:99
TGButton * fOkButton
Definition: DalitzGUI.h:169
TGHorizontalFrame * fVframe[4]
Definition: DalitzGUI.h:62
void SaveConfiguration(TString filename)
TString fActiveRes
Definition: DalitzGUI.h:106
Double_t fM
Definition: DalitzGUI.h:94
int n
TFile * g
TGHSlider * fHslider1
Definition: DalitzGUI.h:65
TH2F * fHDalitzI
Definition: DalitzGUI.h:50
TGCheckButton * fCheckResize
Definition: DalitzGUI.h:67
void DoCombo(Int_t idx)
TGTextEntry * fTeh1
Definition: DalitzGUI.h:69
void LoadConfiguration(TString filename)
TGTextBuffer * fTbh1
Definition: DalitzGUI.h:161
TGCheckButton * fCheckColor
Definition: DalitzGUI.h:67
void DoCombo(Int_t id)
TGLabel * fLabRph[6]
Definition: DalitzGUI.h:74
Int_t IdToSelection(Int_t id, int mode=1)
virtual ~AniGifDialog()
TGLayoutHints * fBfly3
Definition: DalitzGUI.h:63
TGTextBuffer * fTbh2
Definition: DalitzGUI.h:72
Int_t mode
Definition: autocutx.C:47
TGHSlider * fSlResA[6]
Definition: DalitzGUI.h:79
void CloseWindow()
TGTextBuffer * fTbh2
Definition: DalitzGUI.h:161
int idx[MAX]
Definition: autocutx.C:38
Int_t fnR[3]
Definition: DalitzGUI.h:91
TGTextEntry * fTeh1
Definition: DalitzGUI.h:160
TString m2(TString pts, TString exts="e px py pz")
Definition: invexp.C:117
TGHSlider * fSlOcc
Definition: DalitzGUI.h:81
Int_t a
Definition: anaLmdDigi.C:126
TGLabel * fLab[7]
Definition: DalitzGUI.h:64
Double_t fm2
Definition: DalitzGUI.h:96
TGComboBox * fComFin[3]
Definition: DalitzGUI.h:83
Double_t
TGMenuBar * fMenuBar
Definition: DalitzGUI.h:58
TGDoubleHSlider * fHslider1
Definition: DalitzGUI.h:165
TH2F * fHDalitz
Definition: DalitzGUI.h:48
TGMainFrame * fMain
Definition: DalitzGUI.h:44
AniGifDialog(const TGWindow *p, const TGWindow *main)
TGTextButton * fButResize
Definition: DalitzGUI.h:66
void CreateGraph(TGraph *g, const Int_t n, const Double_t m, const Double_t m1, const Double_t m2, const Double_t m3)
TGCheckButton * fCheckLog
Definition: DalitzGUI.h:67
void ResetPlots()
TGLabel * fLab[10]
Definition: DalitzGUI.h:158
TGLayoutHints * fL1
Definition: DalitzGUI.h:156
TH1D * fHs2Proj
Definition: DalitzGUI.h:54
TGLayoutHints * fLcan
Definition: DalitzGUI.h:46
Double_t fm1
Definition: DalitzGUI.h:95
TH1D * fHs1Ph
Definition: DalitzGUI.h:56
TGLayoutHints * fMenuBarItemLayout
Definition: DalitzGUI.h:63
TString fn2
Definition: DalitzGUI.h:99
TGCheckButton * fChRes[6]
Definition: DalitzGUI.h:77
TGHorizontalFrame * fVframe1
Definition: DalitzGUI.h:155
TH2F * fHDalitzPh
Definition: DalitzGUI.h:52
TString fn1
Definition: DalitzGUI.h:99
void DoSlider(Int_t pos)
TGHSlider * fHslider3
Definition: DalitzGUI.h:65
TGLayoutHints * fMenuBarLayout
Definition: DalitzGUI.h:63
double slmin
Definition: DalitzGUI.h:183
void DoResize()
void CloseWindow()
TGLayoutHints * fBfly2
Definition: DalitzGUI.h:63
TH1D * fHs3M
Definition: DalitzGUI.h:55
double slmax
Definition: DalitzGUI.h:183
TH1D * fHs3Proj
Definition: DalitzGUI.h:54
TH2F * fHDalitzD
Definition: DalitzGUI.h:51
TGHorizontalFrame * fVframe0
Definition: DalitzGUI.h:155
void DoSlider()
TGTextEntry * fTeh2
Definition: DalitzGUI.h:71
TGraph * fGraphKin
Definition: DalitzGUI.h:87
TGHSlider * fHslider2
Definition: DalitzGUI.h:65
TGPopupMenu * fMenuFile
Definition: DalitzGUI.h:59
TGCheckButton * fChMainOnly
Definition: DalitzGUI.h:167
void DrawMainPlot()
TH1D * fHs1Proj
Definition: DalitzGUI.h:54
TDalitzGui(const TGWindow *p, UInt_t w, UInt_t h)
TGTextEntry * fTeh2
Definition: DalitzGUI.h:160
void DrawPlot()
TGTransientFrame * fMain
Definition: DalitzGUI.h:153
Double_t fm3
Definition: DalitzGUI.h:97
TGComboBox * fComPlot
Definition: DalitzGUI.h:85
TH1D * fHs1M
Definition: DalitzGUI.h:55
void HandleMenu(Int_t id)
void ReadOutGui()
TH1D * fHs2M
Definition: DalitzGUI.h:55
Int_t ndbins
Definition: DalitzGUI.h:101
TRandom3 fRand
Definition: DalitzGUI.h:103
void SwitchColor()
CRes * fRes[6]
Definition: DalitzGUI.h:89
void MakeAnimatedGif()
void CreateDalitz()
TGLayoutHints * fBfly1
Definition: DalitzGUI.h:63
void ComputeCache(Int_t ri=1)
void ConfigComboFin(TGComboBox *b)
TRootEmbeddedCanvas * fCanvas
Definition: DalitzGUI.h:45
TGTextBuffer * fTbh1
Definition: DalitzGUI.h:70
const string filename
void ConfigComboRes(TGComboBox *b)
TGLayoutHints * fBly
Definition: DalitzGUI.h:63