ATTPCROOT  0.3.0-alpha
A ROOT-based framework for analyzing data from active target detectors
AtEventDrawTask.h
Go to the documentation of this file.
1 
7 #ifndef ATEVENTDRAWTASK_H
8 #define ATEVENTDRAWTASK_H
9 
10 #include <FairTask.h> // for FairTask, InitStatus
11 
12 #include <Rtypes.h> // for Int_t, Bool_t, THashConsistencyHolder, Color_t
13 #include <TString.h> // for TString
14 
15 #include <memory>
16 #include <vector> // for vector
17 class AtEventManager; // lines 17-17
18 class AtHit; // lines 18-18
19 class AtMap; // lines 24-24
20 class AtRawEvent; // lines 22-22
21 class TBuffer;
22 class TCanvas; // lines 30-30
23 class TClass;
24 class TClonesArray; // lines 31-31
25 class TEveBoxSet; // lines 33-33
26 class TEveLine; // lines 34-34
27 class TEvePointSet; // lines 32-32
28 class TEveRGBAPalette; // lines 44-44
29 class TGraph; // lines 35-35
30 class TH1D; // lines 37-37
31 class TH1F; // lines 38-38
32 class TH1I; // lines 36-36
33 class TH2F; // lines 40-40
34 class TH2Poly; // lines 41-41
35 class TH3F; // lines 42-42
36 class TMemberInspector;
37 class TPaletteAxis; // lines 43-43
38 class TEveElement;
39 class S800Calc;
40 
41 class AtEventDrawTask : public FairTask {
42 protected:
44  Bool_t fUnpackHough;
45  static const Int_t fNumPads = 1000; // Maximum number of pads to draw for DrawAllPads option
46 
51 
52  TClonesArray *fEventArray;
53  TClonesArray *fCorrectedEventArray{};
54  TClonesArray *fRawEventArray{};
55  TClonesArray *fPatternEventArray{};
56 
59 
60  std::shared_ptr<AtMap> fDetmap;
61 
62  Int_t fThreshold;
63  TString fMap;
64 
65  TEvePointSet *fHitSet;
66  TEvePointSet *fCorrectedHitSet;
67 
68  TEveBoxSet *fhitBoxSet;
69 
70  TPaletteAxis *fPadPlanePal;
71 
72  Color_t fHitColor;
73  Size_t fHitSize;
74  Style_t fHitStyle;
75  Size_t fVertexSize;
76  Size_t fVertexStyle;
77 
78  TCanvas *fCvsPadPlane;
79  TH2Poly *fPadPlane;
80  TCanvas *fCvsPadWave;
81  TH1I *fPadWave;
82  TCanvas *fCvsPadAll;
83  TH1I *fPadAll[fNumPads]{};
84  TCanvas *fCvsQEvent;
85  TH1D *fQEventHist;
87  TCanvas *fCvsHoughSpace;
88  TH2F *fHoughSpace;
89  TCanvas *fCvsRhoVariance;
90  TH1D *fRhoVariance;
91  TCanvas *fCvsPhi;
92  TH1D *fPhiDistr[5]{};
93  TCanvas *fCvsMesh;
94  TH1F *fMesh;
95  TCanvas *fCvs3DHist;
96  TH3F *f3DHist;
97  TCanvas *fCvsRad;
98  TH2F *fRadVSTb;
99  TCanvas *fCvsTheta;
100  TH2F *fTheta;
101  TCanvas *fCvsThetaxPhi{};
102  TH2F *fThetaxPhi{};
103  TCanvas *fCvsQuadrant1{};
104  TH2F *fQuadrant1{};
105  TCanvas *fCvsQuadrant2{};
106  TH2F *fQuadrant2{};
107  TCanvas *fCvsQuadrant3{};
108  TH2F *fQuadrant3{};
109  TCanvas *fCvsQuadrant4{};
110  TH2F *fQuadrant4{};
111  TH1F *fAuxChannels[9]{};
112  TCanvas *fCvsAux{};
113 
114  TH2F *fThetaxPhi_Ini{};
116 
117  TCanvas *fCvsMC_XY{};
118  TGraph *fMC_XY{};
119  TGraph *fMC_XY_exp{};
120  TGraph *fMC_XY_int{};
121  TGraph *fMC_XY_back{};
122  TCanvas *fCvsMC_Z{};
123  TGraph *fMC_ZX{};
124  TGraph *fMC_ZX_int{};
125  TGraph *fMC_ZX_back{};
126  TGraph *fMC_ZY{};
127  TGraph *fMC_ZY_int{};
128  TGraph *fMC_ZY_back{};
129 
130  Int_t fMinZ;
131  Int_t fMaxZ;
132  Int_t fMinX;
133  Int_t fMaxX;
134 
135  Int_t f3DHitStyle;
136  Int_t fMultiHit{10};
138  Float_t f3DThreshold;
139 
140  Bool_t fIsRawData;
141  Bool_t fDrawVertexFromLines{false};
142 
143  AtHit const *fIniHit;
145 
146  // std::vector<TEveLine*> fLineArray;
147  std::vector<std::unique_ptr<TEveLine>> fPatternLines;
148 
149  Int_t fTrackNum;
150 
152  /*
153  std::vector<std::unique_ptr<TEvePointSet>> fHitSetTFHC; // for TrackFinderHC
154  std::vector<std::unique_ptr<TEveBoxSet>> fHitClusterSet; // Track clusterization
155  std::vector<std::unique_ptr<TEveLine>> fHitLine; // Track line
156  */
157  std::vector<TEvePointSet *> fHitSetTFHC; // hits in AtTrack
158  std::vector<TEveBoxSet *> fHitClusterSet; // clusters in AtTrack
159  std::vector<TEveElement *> fHitLine; // Track line
160  std::vector<TEvePointSet *> fVertex; // Vertex line
161 
162  TEveRGBAPalette *fRGBAPalette;
163 
164  TCanvas *fCvsPID;
165  TH2F *fPID;
166  TCanvas *fCvsPID2;
167  TH2F *fPID2;
169 
170 public:
171  AtEventDrawTask();
172  AtEventDrawTask(TString modes);
173 
175 
176  InitStatus Init();
177  void Exec(Option_t *option);
178  void Reset();
179 
180  // void Set2DPlotRange(Int_t uaIdx);
181  void SetMap(std::shared_ptr<AtMap> map) { fDetmap = map; }
182  void SetThreshold(Int_t val) { fThreshold = val; }
183  void UnpackHoughSpace() { fUnpackHough = kTRUE; }
184  void SetHitAttributes(Color_t, Size_t, Style_t);
185  void Set3DHitStyleBar();
186  void Set3DHitStyleBox();
187  void SetSaveTextData();
188  void SetRawEventBranch(TString branchName);
189  void SetEventBranch(TString branchName);
190  void SetCorrectedEventBranch(TString branchName) { fCorrectedEventBranchName = branchName; }
191  void SetPatternEventBranch(TString branchName) { fPatternEventBranchName = branchName; }
192  void SetMinTracksPerVertex(Int_t val)
193  {
194  fMinTracksPerVertex = val;
195  } // fVertexMod=0 one track vertex , fVertexMod=1 multi trakcs vertex
196  static void SelectPad(const char *rawevt);
197  void DrawWave(Int_t PadNum);
198  void SetMultiHit(Int_t hitMax);
199  void SetDrawVertexFromLines(bool val = true) { fDrawVertexFromLines = val; }
200 
201 private:
202  // S800Ana fS800Ana;
203  std::vector<Double_t> fTofObjCorr;
204  std::vector<Double_t> fMTDCObjRange;
205  std::vector<Double_t> fMTDCXfRange;
206 
207  void DrawPadPlane();
208  void DrawPadWave();
209  void DrawPadAll();
210  void DrawQEvent();
211  void DrawRhoVariance();
212  void DrawHoughSpace();
213  void DrawPhiReco();
214  void DrawMesh();
215  void Draw3DHist();
216  void DrawRad();
217  void DrawTheta();
218  void DrawThetaxPhi();
219  void DrawMC();
220  void DrawAux();
221  void DrawPID();
222  void DrawPID2();
223  void DrawS800();
224 
225  AtMap *fAtMapPtr;
226  void UpdateCvsPadPlane();
227  void UpdateCvsPadWave();
228  void UpdateCvsPadAll();
229  void UpdateCvsQEvent();
230  void UpdateCvsRhoVariance();
231  void UpdateCvsHoughSpace();
232  void UpdateCvsPhi();
233  void UpdateCvsMesh();
234  void UpdateCvs3DHist();
235  void UpdateCvsRad();
236  void UpdateCvsTheta();
237  void UpdateCvsThetaxPhi();
238  void UpdateCvsQuadrants();
239  void UpdateCvsMC();
240  void UpdateCvsAux();
241  void UpdateCvsPID();
242  void UpdateCvsPID2();
243 
244  void ResetPadAll();
245  void ResetPhiDistr();
246 
247  // Functions for drawing hits
248  void DrawHitPoints();
249  void DrawRawHits();
250  void DrawRecoHits();
251  void DrawAuxChannels();
252 
253  EColor GetTrackColor(int i);
254 
255  ClassDef(AtEventDrawTask, 2);
256 };
257 
258 #endif
AtEventDrawTask::fRawevent
AtRawEvent * fRawevent
Definition: AtEventDrawTask.h:58
AtEventDrawTask::fEventArray
TClonesArray * fEventArray
Definition: AtEventDrawTask.h:52
AtMap
Definition: AtMap.h:33
AtEventDrawTask::fQuadrant1
TH2F * fQuadrant1
Definition: AtEventDrawTask.h:104
AtEventDrawTask::fMC_ZY_int
TGraph * fMC_ZY_int
Definition: AtEventDrawTask.h:127
AtEventDrawTask::fMC_ZX_int
TGraph * fMC_ZX_int
Definition: AtEventDrawTask.h:124
AtEventDrawTask::fQEventHist
TH1D * fQEventHist
Definition: AtEventDrawTask.h:85
AtEventDrawTask::fCvsHoughSpace
TCanvas * fCvsHoughSpace
Definition: AtEventDrawTask.h:87
AtEventDrawTask::fMC_ZY_back
TGraph * fMC_ZY_back
Definition: AtEventDrawTask.h:128
AtEventDrawTask::fTrackNum
Int_t fTrackNum
Definition: AtEventDrawTask.h:149
AtEventDrawTask::fPhiDistr
TH1D * fPhiDistr[5]
Definition: AtEventDrawTask.h:92
AtEventDrawTask::fHitSize
Size_t fHitSize
Definition: AtEventDrawTask.h:73
AtEventDrawTask::fCvsPadWave
TCanvas * fCvsPadWave
Definition: AtEventDrawTask.h:80
AtEventDrawTask::Exec
void Exec(Option_t *option)
Definition: AtEventDrawTask.cxx:233
AtEventDrawTask::fThreshold
Int_t fThreshold
Definition: AtEventDrawTask.h:62
AtEventDrawTask::fCorrectedEventArray
TClonesArray * fCorrectedEventArray
Definition: AtEventDrawTask.h:53
AtEventDrawTask::fCvsThetaxPhi
TCanvas * fCvsThetaxPhi
Definition: AtEventDrawTask.h:101
AtEventDrawTask::fRadVSTb
TH2F * fRadVSTb
Definition: AtEventDrawTask.h:98
AtEventDrawTask::fCvsQuadrant4
TCanvas * fCvsQuadrant4
Definition: AtEventDrawTask.h:109
AtEventDrawTask::fPatternEventBranchName
TString fPatternEventBranchName
Definition: AtEventDrawTask.h:50
AtEventDrawTask::fAuxChannels
TH1F * fAuxChannels[9]
Definition: AtEventDrawTask.h:111
AtEventDrawTask::fMesh
TH1F * fMesh
Definition: AtEventDrawTask.h:94
AtEventDrawTask::fRawEventArray
TClonesArray * fRawEventArray
Definition: AtEventDrawTask.h:54
S800Calc
Definition: S800Calc.h:455
AtEventDrawTask::fIsRawData
Bool_t fIsRawData
Definition: AtEventDrawTask.h:140
AtEventDrawTask::fPID
TH2F * fPID
Definition: AtEventDrawTask.h:165
AtEventDrawTask::fCvsPID2
TCanvas * fCvsPID2
Definition: AtEventDrawTask.h:166
AtEventDrawTask::fMaxZ
Int_t fMaxZ
Definition: AtEventDrawTask.h:131
AtEventDrawTask::~AtEventDrawTask
~AtEventDrawTask()
AtEventDrawTask::AtEventDrawTask
AtEventDrawTask(TString modes)
AtEventDrawTask::fQuadrant2
TH2F * fQuadrant2
Definition: AtEventDrawTask.h:106
AtEventDrawTask::fEventBranchName
TString fEventBranchName
Definition: AtEventDrawTask.h:48
AtEventDrawTask::fCvs3DHist
TCanvas * fCvs3DHist
Definition: AtEventDrawTask.h:95
AtEventDrawTask::fQEventHist_H
TH1D * fQEventHist_H
Definition: AtEventDrawTask.h:86
AtEventDrawTask::fCvsQuadrant3
TCanvas * fCvsQuadrant3
Definition: AtEventDrawTask.h:107
AtEventDrawTask::fCvsMC_XY
TCanvas * fCvsMC_XY
Definition: AtEventDrawTask.h:117
AtEventDrawTask::fHitSetTFHC
std::vector< TEvePointSet * > fHitSetTFHC
Definition: AtEventDrawTask.h:157
AtEventDrawTask::fCvsPhi
TCanvas * fCvsPhi
Definition: AtEventDrawTask.h:91
AtEventDrawTask::fPadWave
TH1I * fPadWave
Definition: AtEventDrawTask.h:81
AtEventDrawTask::fCvsQuadrant1
TCanvas * fCvsQuadrant1
Definition: AtEventDrawTask.h:103
AtEventDrawTask::fMaxX
Int_t fMaxX
Definition: AtEventDrawTask.h:133
AtEventDrawTask::DrawWave
void DrawWave(Int_t PadNum)
Definition: AtEventDrawTask.cxx:1233
AtEventDrawTask::fNumPads
static const Int_t fNumPads
Definition: AtEventDrawTask.h:45
AtEventDrawTask::fRawEventBranchName
TString fRawEventBranchName
Definition: AtEventDrawTask.h:47
AtEventDrawTask::fCvsRhoVariance
TCanvas * fCvsRhoVariance
Definition: AtEventDrawTask.h:89
AtEventDrawTask::SetHitAttributes
void SetHitAttributes(Color_t, Size_t, Style_t)
Definition: AtEventDrawTask.cxx:1114
AtEventDrawTask::f3DHitStyle
Int_t f3DHitStyle
Definition: AtEventDrawTask.h:135
AtEventDrawTask::SetSaveTextData
void SetSaveTextData()
Definition: AtEventDrawTask.cxx:1272
AtEventDrawTask::fMinTracksPerVertex
Int_t fMinTracksPerVertex
Definition: AtEventDrawTask.h:151
AtRawEvent
Definition: AtRawEvent.h:34
AtEventDrawTask::fUnpackHough
Bool_t fUnpackHough
Definition: AtEventDrawTask.h:44
AtEventDrawTask::fMC_ZX_back
TGraph * fMC_ZX_back
Definition: AtEventDrawTask.h:125
AtEventDrawTask::fCvsTheta
TCanvas * fCvsTheta
Definition: AtEventDrawTask.h:99
AtEventDrawTask::SetCorrectedEventBranch
void SetCorrectedEventBranch(TString branchName)
Definition: AtEventDrawTask.h:190
AtEventDrawTask::SetPatternEventBranch
void SetPatternEventBranch(TString branchName)
Definition: AtEventDrawTask.h:191
AtEventDrawTask::SetMap
void SetMap(std::shared_ptr< AtMap > map)
Definition: AtEventDrawTask.h:181
AtEventDrawTask::fhitBoxSet
TEveBoxSet * fhitBoxSet
Definition: AtEventDrawTask.h:68
AtEventDrawTask::fPadAll
TH1I * fPadAll[fNumPads]
Definition: AtEventDrawTask.h:83
AtEventDrawTask::fTheta
TH2F * fTheta
Definition: AtEventDrawTask.h:100
AtEventDrawTask::fPadPlanePal
TPaletteAxis * fPadPlanePal
Definition: AtEventDrawTask.h:70
AtEventDrawTask::fCorrectedHitSet
TEvePointSet * fCorrectedHitSet
Definition: AtEventDrawTask.h:66
AtEventDrawTask::fCvsPadPlane
TCanvas * fCvsPadPlane
Definition: AtEventDrawTask.h:78
AtEventDrawTask::fPID2
TH2F * fPID2
Definition: AtEventDrawTask.h:167
AtEventManager
Definition: AtEventManager.h:27
AtEventDrawTask::fRhoVariance
TH1D * fRhoVariance
Definition: AtEventDrawTask.h:90
AtEventDrawTask::Set3DHitStyleBar
void Set3DHitStyleBar()
Definition: AtEventDrawTask.cxx:1257
AtEventDrawTask::fCvsPID
TCanvas * fCvsPID
Definition: AtEventDrawTask.h:164
AtEventDrawTask::fHitSet
TEvePointSet * fHitSet
Definition: AtEventDrawTask.h:65
AtEventDrawTask::fHitClusterSet
std::vector< TEveBoxSet * > fHitClusterSet
Definition: AtEventDrawTask.h:158
AtEventDrawTask::UnpackHoughSpace
void UnpackHoughSpace()
Definition: AtEventDrawTask.h:183
AtEventDrawTask::fCvsQuadrant2
TCanvas * fCvsQuadrant2
Definition: AtEventDrawTask.h:105
AtEventDrawTask::Reset
void Reset()
Definition: AtEventDrawTask.cxx:640
AtEventDrawTask::fRGBAPalette
TEveRGBAPalette * fRGBAPalette
Definition: AtEventDrawTask.h:162
AtEventDrawTask
Definition: AtEventDrawTask.h:41
AtEventDrawTask::fCorrectedEventBranchName
TString fCorrectedEventBranchName
Definition: AtEventDrawTask.h:49
AtEventDrawTask::fMap
TString fMap
Definition: AtEventDrawTask.h:63
AtEventDrawTask::fQuadrant3
TH2F * fQuadrant3
Definition: AtEventDrawTask.h:108
AtEventDrawTask::fCvsPadAll
TCanvas * fCvsPadAll
Definition: AtEventDrawTask.h:82
AtEventDrawTask::SetThreshold
void SetThreshold(Int_t val)
Definition: AtEventDrawTask.h:182
AtEventDrawTask::fPatternLines
std::vector< std::unique_ptr< TEveLine > > fPatternLines
Definition: AtEventDrawTask.h:147
AtEventDrawTask::fQuadrant4
TH2F * fQuadrant4
Definition: AtEventDrawTask.h:110
AtEventDrawTask::fMC_XY
TGraph * fMC_XY
Definition: AtEventDrawTask.h:118
AtEventDrawTask::fS800Calc
S800Calc * fS800Calc
Definition: AtEventDrawTask.h:168
AtEventDrawTask::f3DHist
TH3F * f3DHist
Definition: AtEventDrawTask.h:96
AtEventDrawTask::fMinX
Int_t fMinX
Definition: AtEventDrawTask.h:132
AtEventDrawTask::fVertex
std::vector< TEvePointSet * > fVertex
Definition: AtEventDrawTask.h:160
AtEventDrawTask::fMC_XY_back
TGraph * fMC_XY_back
Definition: AtEventDrawTask.h:121
AtEventDrawTask::SetEventBranch
void SetEventBranch(TString branchName)
Definition: AtEventDrawTask.cxx:1291
AtEventDrawTask::fSaveTextData
Bool_t fSaveTextData
Definition: AtEventDrawTask.h:137
AtEventDrawTask::fMC_ZY
TGraph * fMC_ZY
Definition: AtEventDrawTask.h:126
AtEventDrawTask::SelectPad
static void SelectPad(const char *rawevt)
Definition: AtEventDrawTask.cxx:1137
AtEventDrawTask::SetDrawVertexFromLines
void SetDrawVertexFromLines(bool val=true)
Definition: AtEventDrawTask.h:199
AtEventDrawTask::fVertexStyle
Size_t fVertexStyle
Definition: AtEventDrawTask.h:76
AtEventDrawTask::fMinZ
Int_t fMinZ
Definition: AtEventDrawTask.h:130
AtEventDrawTask::fMultiHit
Int_t fMultiHit
Definition: AtEventDrawTask.h:136
AtEventDrawTask::fThetaxPhi_Ini
TH2F * fThetaxPhi_Ini
Definition: AtEventDrawTask.h:114
AtEventDrawTask::fVertexSize
Size_t fVertexSize
Definition: AtEventDrawTask.h:75
AtEventDrawTask::fDrawVertexFromLines
Bool_t fDrawVertexFromLines
Definition: AtEventDrawTask.h:141
AtEventDrawTask::fCvsRad
TCanvas * fCvsRad
Definition: AtEventDrawTask.h:97
AtEventDrawTask::SetRawEventBranch
void SetRawEventBranch(TString branchName)
Definition: AtEventDrawTask.cxx:1286
AtEventDrawTask::fThetaxPhi_Ini_RANSAC
TH2F * fThetaxPhi_Ini_RANSAC
Definition: AtEventDrawTask.h:115
AtEventDrawTask::fCvsQEvent
TCanvas * fCvsQEvent
Definition: AtEventDrawTask.h:84
AtEventDrawTask::AtEventDrawTask
AtEventDrawTask()
Definition: AtEventDrawTask.cxx:80
AtEventDrawTask::Set3DHitStyleBox
void Set3DHitStyleBox()
Definition: AtEventDrawTask.cxx:1262
AtEventDrawTask::fThetaxPhi
TH2F * fThetaxPhi
Definition: AtEventDrawTask.h:102
AtEventDrawTask::fMC_XY_exp
TGraph * fMC_XY_exp
Definition: AtEventDrawTask.h:119
AtEventDrawTask::fIniHit
AtHit const * fIniHit
Definition: AtEventDrawTask.h:143
AtEventDrawTask::f3DThreshold
Float_t f3DThreshold
Definition: AtEventDrawTask.h:138
AtEventDrawTask::fCvsMC_Z
TCanvas * fCvsMC_Z
Definition: AtEventDrawTask.h:122
AtEventDrawTask::fHitLine
std::vector< TEveElement * > fHitLine
Definition: AtEventDrawTask.h:159
AtEventDrawTask::fPatternEventArray
TClonesArray * fPatternEventArray
Definition: AtEventDrawTask.h:55
AtEventDrawTask::fCvsAux
TCanvas * fCvsAux
Definition: AtEventDrawTask.h:112
AtEventDrawTask::fIniHitRansac
AtHit const * fIniHitRansac
Definition: AtEventDrawTask.h:144
AtEventDrawTask::Init
InitStatus Init()
Definition: AtEventDrawTask.cxx:133
AtEventDrawTask::SetMinTracksPerVertex
void SetMinTracksPerVertex(Int_t val)
Definition: AtEventDrawTask.h:192
AtEventDrawTask::fMC_XY_int
TGraph * fMC_XY_int
Definition: AtEventDrawTask.h:120
AtEventDrawTask::fHoughSpace
TH2F * fHoughSpace
Definition: AtEventDrawTask.h:88
AtEventDrawTask::fHitStyle
Style_t fHitStyle
Definition: AtEventDrawTask.h:74
AtEventDrawTask::SetMultiHit
void SetMultiHit(Int_t hitMax)
Definition: AtEventDrawTask.cxx:1267
AtEventDrawTask::fHitColor
Color_t fHitColor
Definition: AtEventDrawTask.h:72
AtEventDrawTask::fEventManager
AtEventManager * fEventManager
Definition: AtEventDrawTask.h:57
AtEventDrawTask::fPadPlane
TH2Poly * fPadPlane
Definition: AtEventDrawTask.h:79
AtHit
Point in space with charge.
Definition: AtHit.h:27
AtEventDrawTask::fIs2DPlotRange
Bool_t fIs2DPlotRange
Definition: AtEventDrawTask.h:43
AtEventDrawTask::fMC_ZX
TGraph * fMC_ZX
Definition: AtEventDrawTask.h:123
AtEventDrawTask::fCvsMesh
TCanvas * fCvsMesh
Definition: AtEventDrawTask.h:93
AtEventDrawTask::fDetmap
std::shared_ptr< AtMap > fDetmap
Definition: AtEventDrawTask.h:60