FEDRA emulsion software from the OPERA Collaboration
EdbShowPVRQuality.h
Go to the documentation of this file.
1#ifndef ROOT_EdbShowPVRQuality
2#define ROOT_EdbShowPVRQuality
3#include "TROOT.h"
4#include "TSystem.h"
5#include "TFile.h"
6#include "TF1.h"
7#include "TH2.h"
8#include "TProfile.h"
9#include "TVector3.h"
10#include "TIndexCell.h"
11#include "TArrayF.h"
12#include "TBenchmark.h"
13#include "TMultiLayerPerceptron.h"
14#include "TMLPAnalyzer.h"
15#include "TCanvas.h"
16#include "EdbVertex.h"
17#include "EdbPVRec.h"
18#include "EdbPhys.h"
19#include "EdbMath.h"
21#include "EdbLog.h"
22#include "EdbPattern.h"
23#include "EdbShowerP.h"
24using namespace std;
25
26//______________________________________________________________________________
27//___
28//___ Declaration of EdbShowPVRQuality Class:
29//______________________________________________________________________________
30
31
32class EdbShowPVRQuality : public TObject {
33
34private:
35
36 // The source and target EdbPVRec objects:
40 Bool_t eIsSource;
41 Bool_t eIsTarget;
44
45 // Variables related for calculation Issues
51
54
55 // Histograms for calculations
57 TH2F* eHistYX;
59
60 Float_t minX,maxX;
61 Float_t minY,maxY;
62 // TProfile: BT dens/mm2 versus PID() source histogram
66 // TProfile: BT dens/mm2 versus PID() target histogram
70
71 // Variables related for cut Issues
72 // eCutMethod == 0: Constant BT density
73 // eCutMethod == 1: Constant Chi2W quality
74 Float_t eCutp0[114];
75 Float_t eCutp1[114];
76 Float_t eCutDistChi2[114];
77 Float_t eCutDistW[114];
83
84protected:
85
86 void Set0();
87 void Init();
88
89public:
90
93 EdbShowPVRQuality(EdbPVRec* ali, Float_t BTDensityTargetLevel);
94
95 void SetCutMethod(Int_t CutMethod);
96 inline void SetBTDensityLevel(Float_t BTDensityLevel) {
97 eBTDensityLevel=BTDensityLevel;
98 }
99
100 inline void SetBTDensityLevelCalcMethodMC(Bool_t BTDensityLevelCalcMethodMC) {
101 eBTDensityLevelCalcMethodMC=BTDensityLevelCalcMethodMC;
102 }
103 inline void SetBTDensityLevelCalcMethodMCConfirmation(Int_t BTDensityLevelCalcMethodMCConfirmationNumber) {
104 eBTDensityLevelCalcMethodMCConfirmationNumber=BTDensityLevelCalcMethodMCConfirmationNumber;
105 }
108 }
111 }
112
113
114
117 }
118 inline EdbPVRec* GetEdbPVRec(Int_t EdbPVRecType) {
119 cout << "Inline EdbPVRecType= " << EdbPVRecType << endl;
120 if (EdbPVRecType==1) {
121 return eAli_modified;
122 }
123 else {
124 return eAli_orig;
125 }
126 }
127 inline EdbPVRec* GetEdbPVRec(Bool_t NeedModified) {
128 cout << "Inline EdbPVRecType= " << NeedModified << endl;
129 if (NeedModified==1) {
130 return eAli_modified;
131 }
132 else {
133 return eAli_orig;
134 }
135 }
136
138 return GetEdbPVRec(0);
139 }
141 return GetEdbPVRec(1);
142 }
143
144 inline void SetEdbPVRec(EdbPVRec* Ali_orig) {
145 eAli_orig=Ali_orig;
146 eIsSource=kTRUE;
147 eAli_maxNpatterns=Ali_orig->Npatterns();
148 }
149
150 inline TH2F* GetHistChi2W() {
151 return eHistChi2W;
152 }
153 inline TH2F* GetHistYX() {
154 return eHistYX;
155 }
156
157
158
159 inline Int_t GetCutMethod() {
160 return eCutMethod;
161 }
162 inline Bool_t GetCutMethodIsDone(Int_t type) {
163 if (type>1) return 0;
164 return eCutMethodIsDone[type];
165 }
166 inline Float_t GetBTDensityLevel() {
167 return eBTDensityLevel;
168 }
169
170 inline Float_t* GetCutp0() {
171 return eCutp0;
172 }
173 inline Float_t* GetCutp1() {
174 return eCutp1;
175 }
176 inline Float_t GetCutp0(Int_t patNR) {
177 return eCutp0[patNR];
178 }
179 inline Float_t GetCutp1(Int_t patNR) {
180 return eCutp1[patNR];
181 }
182
185 }
186 inline Float_t GetagreementChi2CutRMSChi2() {
188 }
189 inline Float_t GetagreementChi2CutMeanW() {
191 }
192 inline Float_t GetagreementChi2CutRMSW() {
194 }
195
196 inline Float_t* GetagreementChi2Cut() {
198 }
199 inline Float_t GetagreementChi2Cut(Int_t patNR) {
200 return eAgreementChi2WDistCut[patNR];
201 }
202
204 void SetHistGeometry_MC();
206
207 void CheckEdbPVRec();
210
211 EdbPVRec* Remove_DoubleBT(EdbPVRec* aliSource);
212 EdbPVRec* Remove_Passing(EdbPVRec* aliSource);
213
214 // All these functions will call Remove_SegmentArray(..,..,..);
215 EdbPVRec* Remove_SegmentArray(TObjArray* segarray, EdbPVRec* aliSource=NULL, Int_t Option=0);
216 EdbPVRec* Remove_Segment(EdbSegP* seg, EdbPVRec* aliSource=NULL, Int_t Option=0);
217 EdbPVRec* Remove_TrackArray(TObjArray* trackArray, EdbPVRec* aliSource=NULL, Int_t Option=0);
218 EdbPVRec* Remove_Track(EdbTrackP* track, EdbPVRec* aliSource=NULL, Int_t Option=0);
220 TObjArray* TrackArrayToSegmentArray(TObjArray* trackArray);
221
222
223
224 void CreateEdbPVRec();
225 void CheckFilledXYSize();
226 Int_t FindFirstBinAbove(TH1* hist, Double_t threshold, Int_t axis);
227 Int_t FindLastBinAbove(TH1* hist, Double_t threshold, Int_t axis);
229
230 Bool_t CheckSegmentQualityInPattern_ConstBTDens(EdbPVRec* ali, Int_t PatternAtNr, EdbSegP* seg);
231 Bool_t CheckSegmentQualityInPattern_ConstQual(EdbPVRec* ali, Int_t PatternAtNr, EdbSegP* seg);
232
233 virtual ~EdbShowPVRQuality(); // virtual constructor due to inherited class
234
235 void Print();
236 void PrintCutType();
237 void PrintCutType0();
238 void PrintCutType1();
239 void Help();
240 ClassDef(EdbShowPVRQuality,1); // Root Class Definition for EdbShowPVRQuality
241};
242
243//______________________________________________________________________________
244
245#endif /* EdbShowPVRQuality */
Definition: EdbPVRec.h:148
Int_t Npatterns() const
Definition: EdbPattern.h:366
Definition: EdbSegP.h:21
Definition: EdbShowPVRQuality.h:32
Float_t eAgreementChi2CutMeanChi2
Definition: EdbShowPVRQuality.h:79
TProfile * eProfileBTdens_vs_PID_source
Definition: EdbShowPVRQuality.h:63
Int_t FindLastBinAbove(TH1 *hist, Double_t threshold, Int_t axis)
Definition: EdbShowPVRQuality.cxx:1599
TH2F * GetHistChi2W()
Definition: EdbShowPVRQuality.h:150
Float_t GetagreementChi2CutMeanW()
Definition: EdbShowPVRQuality.h:189
void Execute_ConstantBTDensity()
Definition: EdbShowPVRQuality.cxx:541
Int_t eHistGeometry
Definition: EdbShowPVRQuality.h:42
Float_t GetagreementChi2Cut(Int_t patNR)
Definition: EdbShowPVRQuality.h:199
virtual ~EdbShowPVRQuality()
Definition: EdbShowPVRQuality.cxx:91
Int_t NbinsY
Definition: EdbShowPVRQuality.h:58
Int_t NbinsX
Definition: EdbShowPVRQuality.h:58
Float_t eProfileBTdens_vs_PID_source_meanY
Definition: EdbShowPVRQuality.h:64
Float_t eAgreementChi2CutRMSW
Definition: EdbShowPVRQuality.h:82
EdbPVRec * Remove_Passing(EdbPVRec *aliSource)
Definition: EdbShowPVRQuality.cxx:1346
void CreateEdbPVRec()
Definition: EdbShowPVRQuality.cxx:1024
Float_t GetagreementChi2CutRMSW()
Definition: EdbShowPVRQuality.h:192
TObjArray * TrackToSegmentArray(EdbTrackP *track)
Definition: EdbShowPVRQuality.cxx:1546
Float_t ePatternBTDensity_orig[114]
Definition: EdbShowPVRQuality.h:52
void SetHistGeometry_MC()
Definition: EdbShowPVRQuality.cxx:369
void SetHistGeometry_OPERA()
Definition: EdbShowPVRQuality.cxx:358
void Help()
Definition: EdbShowPVRQuality.cxx:1185
void SetBTDensityLevelCalcMethodMCConfirmation(Int_t BTDensityLevelCalcMethodMCConfirmationNumber)
Definition: EdbShowPVRQuality.h:103
EdbPVRec * GetEdbPVRec(Int_t EdbPVRecType)
Definition: EdbShowPVRQuality.h:118
Int_t FindFirstBinAbove(TH1 *hist, Double_t threshold, Int_t axis)
Definition: EdbShowPVRQuality.cxx:1579
void PrintCutType1()
Definition: EdbShowPVRQuality.cxx:500
void SetEdbPVRec(EdbPVRec *Ali_orig)
Definition: EdbShowPVRQuality.h:144
void Print()
Definition: EdbShowPVRQuality.cxx:408
Float_t ePatternBTDensity_modified[114]
Definition: EdbShowPVRQuality.h:53
EdbPVRec * GetEdbPVRec(Bool_t NeedModified)
Definition: EdbShowPVRQuality.h:127
void SetBTDensityLevelCalcMethodMC(Bool_t BTDensityLevelCalcMethodMC)
Definition: EdbShowPVRQuality.h:100
EdbPVRec * GetEdbPVRec()
Definition: EdbShowPVRQuality.h:115
Float_t minX
Definition: EdbShowPVRQuality.h:60
EdbPVRec * Remove_Segment(EdbSegP *seg, EdbPVRec *aliSource=NULL, Int_t Option=0)
Definition: EdbShowPVRQuality.cxx:1518
Float_t eProfileBTdens_vs_PID_target_meanY
Definition: EdbShowPVRQuality.h:68
void SetBTDensityLevel(Float_t BTDensityLevel)
Definition: EdbShowPVRQuality.h:96
void CheckEdbPVRec()
Definition: EdbShowPVRQuality.cxx:215
Float_t eCutDistChi2[114]
Definition: EdbShowPVRQuality.h:76
Float_t * GetCutp0()
Definition: EdbShowPVRQuality.h:170
TObjArray * TrackArrayToSegmentArray(TObjArray *trackArray)
Definition: EdbShowPVRQuality.cxx:1561
Bool_t eBTDensityLevelCalcMethodMC
Definition: EdbShowPVRQuality.h:49
TH2F * eHistYX
Definition: EdbShowPVRQuality.h:57
TH2F * GetHistYX()
Definition: EdbShowPVRQuality.h:153
Bool_t eIsTarget
Definition: EdbShowPVRQuality.h:41
Bool_t GetCutMethodIsDone(Int_t type)
Definition: EdbShowPVRQuality.h:162
Float_t maxX
Definition: EdbShowPVRQuality.h:60
Float_t minY
Definition: EdbShowPVRQuality.h:61
Int_t eBTDensityLevelCalcMethodMCConfirmationNumber
Definition: EdbShowPVRQuality.h:50
Bool_t eCutMethodIsDone[2]
Definition: EdbShowPVRQuality.h:48
void Set0()
Definition: EdbShowPVRQuality.cxx:102
EdbPVRec * eAli_modified
Definition: EdbShowPVRQuality.h:38
EdbPVRec * Remove_TrackArray(TObjArray *trackArray, EdbPVRec *aliSource=NULL, Int_t Option=0)
Definition: EdbShowPVRQuality.cxx:1504
Bool_t eNeedModified
Definition: EdbShowPVRQuality.h:39
EdbPVRec * GetEdbPVRec_orig()
Definition: EdbShowPVRQuality.h:137
Float_t eCutp0[114]
Definition: EdbShowPVRQuality.h:74
void Execute_ConstantQuality()
Definition: EdbShowPVRQuality.cxx:702
Int_t eAli_maxNpatterns
Definition: EdbShowPVRQuality.h:43
Float_t GetCutp1(Int_t patNR)
Definition: EdbShowPVRQuality.h:179
Int_t GetCutMethod()
Definition: EdbShowPVRQuality.h:159
EdbPVRec * Remove_Track(EdbTrackP *track, EdbPVRec *aliSource=NULL, Int_t Option=0)
Definition: EdbShowPVRQuality.cxx:1532
Float_t eAgreementChi2CutRMSChi2
Definition: EdbShowPVRQuality.h:80
EdbPVRec * eAli_orig
Definition: EdbShowPVRQuality.h:37
Float_t * GetCutp1()
Definition: EdbShowPVRQuality.h:173
Float_t GetCutp0(Int_t patNR)
Definition: EdbShowPVRQuality.h:176
EdbPVRec * Remove_SegmentArray(TObjArray *segarray, EdbPVRec *aliSource=NULL, Int_t Option=0)
Definition: EdbShowPVRQuality.cxx:1474
Float_t eProfileBTdens_vs_PID_target_meanX
Definition: EdbShowPVRQuality.h:68
Float_t maxY
Definition: EdbShowPVRQuality.h:61
EdbPVRec * GetEdbPVRec_modified()
Definition: EdbShowPVRQuality.h:140
Float_t GetagreementChi2CutRMSChi2()
Definition: EdbShowPVRQuality.h:186
Bool_t GetBTDensityLevelCalcMethodMC()
Definition: EdbShowPVRQuality.h:106
Float_t eProfileBTdens_vs_PID_target_rmsX
Definition: EdbShowPVRQuality.h:69
Float_t eProfileBTdens_vs_PID_source_rmsY
Definition: EdbShowPVRQuality.h:65
void SetHistGeometry_OPERAandMC()
Definition: EdbShowPVRQuality.cxx:380
Float_t GetagreementChi2CutMeanChi2()
Definition: EdbShowPVRQuality.h:183
Int_t eCutMethod
Definition: EdbShowPVRQuality.h:46
Float_t eCutDistW[114]
Definition: EdbShowPVRQuality.h:77
void PrintCutType()
Definition: EdbShowPVRQuality.cxx:395
Float_t eCutp1[114]
Definition: EdbShowPVRQuality.h:75
void Init()
Definition: EdbShowPVRQuality.cxx:164
void CheckFilledXYSize()
Definition: EdbShowPVRQuality.cxx:1126
Float_t eProfileBTdens_vs_PID_source_rmsX
Definition: EdbShowPVRQuality.h:65
void PrintCutType0()
Definition: EdbShowPVRQuality.cxx:458
TH2F * eHistChi2W
Definition: EdbShowPVRQuality.h:56
TProfile * eProfileBTdens_vs_PID_target
Definition: EdbShowPVRQuality.h:67
Float_t eProfileBTdens_vs_PID_source_meanX
Definition: EdbShowPVRQuality.h:64
ClassDef(EdbShowPVRQuality, 1)
Float_t * GetagreementChi2Cut()
Definition: EdbShowPVRQuality.h:196
Float_t GetBTDensityLevel()
Definition: EdbShowPVRQuality.h:166
Bool_t CheckSegmentQualityInPattern_ConstBTDens(EdbPVRec *ali, Int_t PatternAtNr, EdbSegP *seg)
Definition: EdbShowPVRQuality.cxx:982
Float_t eBTDensityLevel
Definition: EdbShowPVRQuality.h:47
void SetCutMethod(Int_t CutMethod)
Definition: EdbShowPVRQuality.cxx:191
Bool_t CheckSegmentQualityInPattern_ConstQual(EdbPVRec *ali, Int_t PatternAtNr, EdbSegP *seg)
Definition: EdbShowPVRQuality.cxx:1006
Float_t eAgreementChi2CutMeanW
Definition: EdbShowPVRQuality.h:81
TObjArray * GetTracksFromLinkedTracksRootFile()
Definition: EdbShowPVRQuality.cxx:1619
EdbPVRec * Remove_DoubleBT(EdbPVRec *aliSource)
Definition: EdbShowPVRQuality.cxx:1214
Float_t eAgreementChi2WDistCut[114]
Definition: EdbShowPVRQuality.h:78
Bool_t eIsSource
Definition: EdbShowPVRQuality.h:40
Int_t GetBTDensityLevelCalcMethodMCConfirmation()
Definition: EdbShowPVRQuality.h:109
Float_t eProfileBTdens_vs_PID_target_rmsY
Definition: EdbShowPVRQuality.h:69
Definition: EdbPattern.h:113
Definition: bitview.h:14
void hist()
Definition: init.C:23
EdbPVRec * ali
Definition: test_oracle.C:9
Definition: AlignmentCint.cxx:51
#define NULL
Definition: nidaqmx.h:84
Int_t type
Definition: testBGReduction_By_ANN.C:15