FEDRA emulsion software from the OPERA Collaboration
EdbPVRQuality.h
Go to the documentation of this file.
1 #ifndef ROOT_EdbPVRQuality
2 #define ROOT_EdbPVRQuality
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 "TSpectrum.h"
17 #include "TPolyMarker.h"
18 #include "TRandom3.h"
19 
20 #include "EdbVertex.h"
21 #include "EdbPVRec.h"
22 #include "EdbPhys.h"
23 #include "EdbMath.h"
24 #include "EdbMomentumEstimator.h"
25 #include "EdbLog.h"
26 #include "EdbPattern.h"
27 // #include "EdbShowerP.h"
28 using namespace std;
29 
30 //______________________________________________________________________________
31 //___
32 //___ Declaration of EdbPVRQuality Class:
33 //______________________________________________________________________________
34 
35 
36 //______________________________________________________________________________
37 
38 class EdbPVRQuality : public TObject {
39 
40 private:
41 
42  // The source and target EdbPVRec objects:
45  EdbPVRec* eAli_pointer; // to be implermented: pointer to the
46  // desired eAli object: orig or modified TOODOO....
47  Bool_t eNeedModified;
48  Bool_t eIsSource;
49  Bool_t eIsTarget;
52 
53  // Variables related for calculation Issues
54  Int_t eCutMethod;
56  Bool_t eCutMethodIsDone[8];
57 
58  Float_t eBTDensityLevel;
59  Float_t eBTDensityLevelAngularSpace[20];
60 
63 
64  Float_t ePatternBTDensity_orig[114];
65  Float_t ePatternBTDensity_modified[114];
66 
67  // Histograms for calculations and crosscheck drawings
68  // Are either filled per plate (FillHistosPattern)
69  // for the whole pattern (CheckEdbPVRec)
70  TH2F* eHistWChi2;
71  TH2F* eHistXY;
72  TH2F* eHistTXTY;
73  TH1F* eHistTT;
74  TH1F* eHistChi2;
75  TH1F* eHistW;
76  TH1F* eHistWTilde;
77 
81  Int_t NbinsX,NbinsY;
82  Float_t minX,maxX;
83  Float_t minY,maxY;
84 
85  // TProfile: BT dens/mm2 versus PID() source histogram
87  Float_t eProfileBTdens_vs_PID_source_meanX,eProfileBTdens_vs_PID_source_meanY;
88  Float_t eProfileBTdens_vs_PID_source_rmsX,eProfileBTdens_vs_PID_source_rmsY;
89  // TProfile: BT dens/mm2 versus PID() target histogram
91  Float_t eProfileBTdens_vs_PID_target_meanX,eProfileBTdens_vs_PID_target_meanY;
92  Float_t eProfileBTdens_vs_PID_target_rmsX,eProfileBTdens_vs_PID_target_rmsY;
93  // TProfile: BT dens/mm2 versus PID() generic histogram
95 
96  // Variables related for cut issues:
97 
98  // For all eCutMethod in TanTheta Space:
99  // Global CutFactor ...
101  // Each TT bin gets its own reduction factor for each pattern seperately
102  Float_t eCutTTReductionFactor[12];
103  Int_t eBinTT;
104  // Additional GlobalTTReductionFactorC in case the TT cutting still yields a too high BG density
106 
107  // For the specific cut methods:
108  // eCutMethod == 0: Constant BT density
109  Float_t eCutp0[114];
110  Float_t eCutp1[114];
111  // eCutMethod == 1: Constant BT density also in tangens theta space
112  Float_t eCutTTp0[114][20];
113  Float_t eCutTTp1[114][20];
114  // eCutMethod == 2: Constant Chi2W quality
115  Float_t eCutDistChi2[114];
116  Float_t eCutDistW[114];
117  Float_t eAgreementChi2WDistCut[114];
122  // eCutMethod == 3: Constant Chi2W quality also in tangens theta space
127  // eCutMethod == 4: Constant X2Hat BT density
128  Float_t eX2Hat;
129  Float_t eX2HatCut[114];
130  Float_t eXi2Hat_m_chi2[114];
131  Float_t eXi2Hat_s_chi2[114];
132  Float_t eXi2Hat_m_WTilde[114];
133  Float_t eXi2Hat_s_WTilde[114];
134  // eCutMethod == 5: Constant X2Hat BT density also in tangens theta space
135  // Uses also cutvariables eCutTTp0[114][20] and eCutTTp1[114][20]
136  Float_t eXi2HatTT_m_chi2[114][20];
137  Float_t eXi2HatTT_s_chi2[114][20];
138  Float_t eXi2HatTT_m_WTilde[114][20];
139  Float_t eXi2HatTT_s_WTilde[114][20];
140  // eCutMethod == 6: Random Cut
142  // eCutMethod == 7: Random Cut also in tangens theta space
143  // Uses also cutvariables eCutTTp0[114][20] and eCutTTp1[114][20]
144 
145 
146  // Arrays for each pattern where Source Basetracks, Recjected
147  // and Accepted Basetracks are stored.
148  // Up to now: refilled for each pattern new.
149  // Constructed in such a way that 10 (+2) bins
150  // cover the TT-space
151  TObjArray* eArrayPatternTTSource[12]; // should have same entries as the corresponding EdbPattern
152  TObjArray* eArrayPatternTTRejected[12]; // after specific cut, these BTs wont be taken
153  TObjArray* eArrayPatternTTAccepted[12]; // after specific cut, BTs here will be kept
154 
155  TObjArray* eArrayPatternAllTTSource; // should have same entries as the corresponding EdbPattern
156  TObjArray* eArrayPatternAllTTRejected; // after specific cut, these BTs wont be taken
157  TObjArray* eArrayPatternAllTTAccepted; // after specific cut, BTs here will be kept
158 
159  // Arrays of segments which are to be excluded, when creating the new
160  // EdbPVRec volume (see BG Note description)
161  // Nota bene: these arrays contain all pattern BTs, so add them
162  // _after_ pattern looping
163  TObjArray* eArrayPatternAllExcluded[4];
164  // 0: FakeDoubletBTs
165  // 1: High Density BTs
166  // 2: Cosmics Passing Through BTs
167  // 3: Event Related BTs
168 
169  // TODO: MAYBE MOVE THIS ARRAY TO ONLY ONE OBJECT, SO THAT IT CAN BE FILLED AND ADDED
170  // WITHOUT FURTHER CONSTRAINST.....
171  // OR SIMPLY ADD A FIFTH ARRAY, WHERE ALL excluded SEGMENTS CAN BE PUT IN ANYWAY????
172 
173  // This array is containing all pattern all different source arrays:
175 
176 
177 
178 protected:
179 
180  void Set0();
181  void Init();
182  void ResetHistos();
183  void ResetHistosSinglePattern();
184 
185 public:
186 
189  EdbPVRQuality(EdbPVRec* ali, Float_t BTDensityTargetLevel);
190  EdbPVRQuality(EdbPVRec* ali, Float_t BTDensityTargetLevel, Int_t BG_CutMethod);
191 
192  void SetCutMethod(Int_t CutMethod);
193  inline void SetCutMethodIsDone(Int_t CutMethod) {
194  eCutMethodIsDone[CutMethod]=kTRUE;
195  }
196  inline void SetBTDensityLevel(Float_t BTDensityLevel) {
197  eBTDensityLevel=BTDensityLevel;
198  }
199  inline void SetCutTTSqueezeFactor(Float_t CutTTSqueezeFactor) {
200  eCutTTSqueezeFactor=CutTTSqueezeFactor;
201  }
202  inline Float_t GetCutTTSqueezeFactor() {
203  return eCutTTSqueezeFactor;
204  }
205 
206  inline void SetCutTTReductionFactor(Int_t binTT,Float_t CutTTReductionFactor) {
207  eCutTTReductionFactor[binTT]=CutTTReductionFactor;
208  }
209  inline Float_t GetCutTTReductionFactor(Int_t binTT) {
210  return eCutTTReductionFactor[binTT];
211  }
212 
213 
214  inline void SetBTDensityLevelCalcMethodMC(Bool_t BTDensityLevelCalcMethodMC) {
215  eBTDensityLevelCalcMethodMC=BTDensityLevelCalcMethodMC;
216  }
217  inline void SetBTDensityLevelCalcMethodMCConfirmation(Int_t BTDensityLevelCalcMethodMCConfirmationNumber) {
218  eBTDensityLevelCalcMethodMCConfirmationNumber=BTDensityLevelCalcMethodMCConfirmationNumber;
219  }
221  return eBTDensityLevelCalcMethodMC;
222  }
224  return eBTDensityLevelCalcMethodMCConfirmationNumber;
225  }
226 
227 
228 
229  inline EdbPVRec* GetEdbPVRec() {
230  return GetEdbPVRec(eNeedModified);
231  }
232  inline EdbPVRec* GetEdbPVRec(Int_t EdbPVRecType) {
233  cout << "Inline EdbPVRecType= " << EdbPVRecType << endl;
234  if (EdbPVRecType==1) {
235  return eAli_modified;
236  }
237  else {
238  return eAli_orig;
239  }
240  }
241  inline EdbPVRec* GetEdbPVRec(Bool_t NeedModified) {
242  cout << "Inline EdbPVRecType= " << NeedModified << endl;
243  if (NeedModified==1) {
244  return eAli_modified;
245  }
246  else {
247  return eAli_orig;
248  }
249  }
250 
252  return GetEdbPVRec(0);
253  }
255  return GetEdbPVRec(1);
256  }
257  EdbPVRec* GetEdbPVRecNew();
258 
259 
260  inline void SetEdbPVRec(EdbPVRec* Ali_orig) {
261  eAli_orig=Ali_orig;
262  eIsSource=kTRUE;
263  eAli_maxNpatterns=Ali_orig->Npatterns();
264  if (eAli_maxNpatterns>57) cout << " This tells us not yet if we do have one/two brick reconstruction done. A possibility could also be that the dataset was read with microtracks. Further investigation is needed! (On todo list)." << endl;
265  if (eAli_maxNpatterns>114) {
266  cout << "WARNING EdbPVRQuality::SetEdbPVRec eAli_orig->Npatterns() = " << eAli_maxNpatterns << " is greater than possible basetrack data of two bricks. This class does (not yet) work with this large number of patterns. Set maximum patterns to 114 !!!" << endl;
267  eAli_maxNpatterns=114;
268  }
269  }
270 
271  inline TH2F* GetHistChi2W() {
272  return eHistWChi2;
273  }
274 
275 
276  inline TH1F* GetHistChi2() {
277  return eHistChi2;
278  }
279  inline TH1F* GetHistW() {
280  return eHistW;
281  }
282  inline TH1F* GetHistWTilde() {
283  return eHistWTilde;
284  }
285 
286  inline TH2F* GetHistYX() {
287  return eHistXY;
288  }
289  inline TH1F* GetHistTT() {
290  return eHistTT;
291  }
292  inline TH2F* GetHistTYTX() {
293  return eHistTXTY;
294  }
295  inline TH1F* GetHistTTFillcheck() {
296  return eHistTTFillcheck;
297  }
298 
299 
300  inline Float_t GetBTDensity(Int_t patNR=-1) {
301  return GetBTDensity_orig(patNR);
302  }
303  inline Float_t GetBTDensity_orig(Int_t patNR=-1) {
304  if (patNR==-1) return eProfileBTdens_vs_PID_source_meanY;
305  return ePatternBTDensity_orig[patNR];
306  }
307  inline Float_t GetBTDensity_modified(Int_t patNR=-1) {
308  if (patNR==-1) return eProfileBTdens_vs_PID_target_meanY;
309  return ePatternBTDensity_modified[patNR];
310  }
311 
312 
313  inline Int_t GetCutMethod() {
314  return eCutMethod;
315  }
316  inline Bool_t GetCutMethodIsDone(Int_t type) {
317  if (type>7) return 0;
318  return eCutMethodIsDone[type];
319  }
320  inline Float_t GetBTDensityLevel() {
321  return eBTDensityLevel;
322  }
323 
324  inline Float_t* GetCutp0() {
325  return eCutp0;
326  }
327  inline Float_t* GetCutp1() {
328  return eCutp1;
329  }
330  inline Float_t GetCutp0(Int_t patNR) {
331  return eCutp0[patNR];
332  }
333  inline Float_t GetCutp1(Int_t patNR) {
334  return eCutp1[patNR];
335  }
336 
337  inline Float_t GetagreementChi2CutMeanChi2() {
338  return eAgreementChi2CutMeanChi2;
339  }
340  inline Float_t GetagreementChi2CutRMSChi2() {
341  return eAgreementChi2CutRMSChi2;
342  }
343  inline Float_t GetagreementChi2CutMeanW() {
344  return eAgreementChi2CutMeanW;
345  }
346  inline Float_t GetagreementChi2CutRMSW() {
347  return eAgreementChi2CutRMSW;
348  }
349 
350  inline Float_t* GetagreementChi2Cut() {
351  return eAgreementChi2WDistCut;
352  }
353  inline Float_t GetagreementChi2Cut(Int_t patNR) {
354  return eAgreementChi2WDistCut[patNR];
355  }
356 
357  inline TObjArray* GetArrayAllExcludedSegments() {
358  return eArrayAllExcludedSegments;
359  }
360 
361 
362 
363 
364  void SetHistGeometry_OPERA();
365  void SetHistGeometry_MC();
366  void SetHistGeometry_OPERAandMC();
367  void SetHistGeometry_OPERAandMCBinArea625();
368  void SetHistGeometry_OPERAandMCBinArea4mm2();
369 
370  void CheckEdbPVRec();
371  void CheckEdbPVRecThetaSpace(Int_t AliType);
372 
373  void Execute();
374  void Execute(Int_t CutType);
375  void Execute_ConstantBTDensity();
378  void Execute_ConstantBTQualityInAngularBins();
379  void Execute_ConstantBTX2Hat();
380  void Execute_ConstantBTX2HatInAngularBins();
381  void Execute_RandomCut();
382  void Execute_RandomCutInAngularBins();
383  void Execute_EqualizeTanThetaSpace();
384  void Execute_EqualizeTanThetaSpace_ConstantBTDensity();
385  void Execute_EqualizeTanThetaSpace_ConstantBTQuality();
386  void Execute_EqualizeTanThetaSpace_ConstantBTX2Hat();
387  void Execute_EqualizeTanThetaSpace_RandomCut();
388 
389  TObjArray* FindFakeDoubleBTs(EdbPVRec* aliSource=NULL);
390  void FindHighDensityBTs();
391  void FindPassingBTs();
392  void FindEventRelatedBTs();
393 
394  EdbPVRec* Remove_DoubleBT(EdbPVRec* aliSource);
395  EdbPVRec* Remove_Passing(EdbPVRec* aliSource);
396 
397  // All these functions will call Remove_SegmentArray(..,..,..);
398  EdbPVRec* Remove_SegmentArray(TObjArray* segarray, EdbPVRec* aliSource=NULL, Int_t Option=0);
399  EdbPVRec* Remove_Segment(EdbSegP* seg, EdbPVRec* aliSource=NULL, Int_t Option=0);
400  EdbPVRec* Remove_TrackArray(TObjArray* trackArray, EdbPVRec* aliSource=NULL, Int_t Option=0);
401  EdbPVRec* Remove_Track(EdbTrackP* track, EdbPVRec* aliSource=NULL, Int_t Option=0);
402  TObjArray* TrackToSegmentArray(EdbTrackP* track);
403  TObjArray* TrackArrayToSegmentArray(TObjArray* trackArray);
404 
405 
406  // This function may be merged later with the CreateEdbPVRec(); function!!! to be done...
407  EdbPVRec* CreatePVRWithExcludedSegmentList(EdbPVRec* aliSource, TObjArray *SegmentArray);
409 
410  TCanvas* GetQualityPlots(Int_t CountNr=0, Int_t aliSourceType=0);
411  TPad* GetQualityPlotsSingle(Int_t CountNr=0, Int_t aliSourceType=0, Int_t Plottype=-1);
412 
413  EdbPVRec* ExtractDataVolume(EdbPVRec* pvr, EdbSegP* seg, Float_t tolerance[4]);
414 
415 
416  Int_t CheckFilledXYSize(TH2F* HistXY);
417 
418  Int_t GetAngularSpaceBin(EdbSegP* seg);
419  Int_t FindFirstBinAbove(TH1* hist, Double_t threshold, Int_t axis);
420  Int_t FindLastBinAbove(TH1* hist, Double_t threshold, Int_t axis);
421  Int_t FindFirstBinAboveTH2(TH2* hist, Double_t threshold, Int_t axis);
422  Int_t FindLastBinAboveTH2(TH2* hist, Double_t threshold, Int_t axis);
423 
424  TObjArray* GetTracksFromLinkedTracksRootFile();
425 
426  Bool_t CheckSegmentQualityInPattern_ConstBTDens(EdbPVRec* ali, Int_t PatternAtNr, EdbSegP* seg);
427  Bool_t CheckSegmentQualityInPattern_ConstQual(EdbPVRec* ali, Int_t PatternAtNr, EdbSegP* seg);
428 // Bool_t CheckSegmentQualityInPattern_ConstBTDensInAngularBins(EdbPVRec* ali, Int_t PatternAtNr, EdbSegP* seg);
430 
431 
432  Bool_t Chi2WRelation(EdbSegP* seg, Float_t Cutp0, Float_t Cutp1, Int_t qualitycuttype);
433  Bool_t X2HatCutRelation(EdbSegP* seg, Double_t CutValueX2Hat, Double_t CutValueX2Hat_Chi2Mean, Double_t CutValueX2Hat_Chi2Sigma, Double_t CutValueX2Hat_WTildeMean, Double_t CutValueX2Hat_WTildeSigma );
434 
435 
436 
437  void FillTanThetaTArrays(Int_t patNR);
438  void DetermineCutTTReductionFactor(Int_t patNR);
439 
440  void FillHistosPattern(EdbPVRec* aliSource, Int_t patNR=0, Bool_t DoResetHistos=kTRUE, Float_t weightXY=1);
441  void FillHistosVolume(EdbPVRec* aliSource);
442 
443 
444  void CreateEdbPVRec_TT_Algorithms();
445 
446  void RebinTTHistogram(Int_t nbins=5);
447 
448 
449  void Cut();
450  void Cut_TTBin(Int_t TTbin);
451  void Cut_ConstantBTDensity();
452  void Cut_ConstantBTQuality();
453  void Cut_ConstantBTX2Hat();
454  void Cut_RandomCut();
455  void MergeTTSegments();
456  void MergeHighDensBTsLists();
457  void MergeExclusionLists();
458 
459  virtual ~EdbPVRQuality(); // virtual constructor due to inherited class
460 
461  void Print();
462  void PrintBTDensities(); // Print BT densities for each pattern
463  void PrintCutType();
464  void PrintCutType0(); // Constant BT density
465  void PrintCutType1(); // Constant BT density in Angular Bins
466  void PrintCutType2(); // Constant BT quality
467  void PrintCutType3(); // Constant BT quality in Angular Bins
468  void PrintCutType4(); // Constant BT X2Hat
469  void PrintCutType5(); // Constant BT X2Hat in Angular Bins
470  void PrintCutType6(); // Random Test Cut
471  void PrintCutType7(); // Random Test Cut in Angular Bins
472  void PrintCutValues(Int_t CutType);
473  void Help();
474 
475  ClassDef(EdbPVRQuality,1); // Root Class Definition for EdbPVRQuality
476 };
477 
478 //______________________________________________________________________________
479 
480 #endif /* EdbPVRQuality */
EdbPVRec * ali
Definition: align.C:1
Definition: EdbPVRQuality.h:38
Float_t eAgreementChi2CutMeanW
Definition: EdbPVRQuality.h:120
Float_t eBTDensityLevel
Definition: EdbPVRQuality.h:58
Int_t GetCutMethod()
Definition: EdbPVRQuality.h:313
TH1F * eHistTTFillcheck
Definition: EdbPVRQuality.h:78
EdbPVRec * GetEdbPVRec()
Definition: EdbPVRQuality.h:229
Int_t GetBTDensityLevelCalcMethodMCConfirmation()
Definition: EdbPVRQuality.h:223
Float_t GetagreementChi2CutRMSW()
Definition: EdbPVRQuality.h:346
EdbPVRec * GetEdbPVRec_orig()
Definition: EdbPVRQuality.h:251
Float_t eProfileBTdens_vs_PID_source_rmsX
Definition: EdbPVRQuality.h:88
TH2F * eHistTXTY
Definition: EdbPVRQuality.h:72
Int_t eAli_maxNpatterns
Definition: EdbPVRQuality.h:51
Float_t GetagreementChi2CutMeanW()
Definition: EdbPVRQuality.h:343
TH1F * GetHistTT()
Definition: EdbPVRQuality.h:289
void SetBTDensityLevel(Float_t BTDensityLevel)
Definition: EdbPVRQuality.h:196
TH2F * GetHistTYTX()
Definition: EdbPVRQuality.h:292
TObjArray * eArrayPatternAllTTSource
Definition: EdbPVRQuality.h:155
Float_t GetagreementChi2Cut(Int_t patNR)
Definition: EdbPVRQuality.h:353
EdbPVRec * GetEdbPVRec(Bool_t NeedModified)
Definition: EdbPVRQuality.h:241
TH1F * GetHistTTFillcheck()
Definition: EdbPVRQuality.h:295
TProfile * eProfileBTdens_vs_PID_target
Definition: EdbPVRQuality.h:90
Int_t eHistGeometry
Definition: EdbPVRQuality.h:50
Int_t eCutMethod
Definition: EdbPVRQuality.h:54
Float_t GetBTDensity(Int_t patNR=-1)
Definition: EdbPVRQuality.h:300
Int_t eBinTT
Definition: EdbPVRQuality.h:103
EdbPVRec * GetEdbPVRec_modified()
Definition: EdbPVRQuality.h:254
TH2F * eHistXY
Definition: EdbPVRQuality.h:71
TH1F * eHistW
Definition: EdbPVRQuality.h:75
EdbPVRec * eAli_pointer
Definition: EdbPVRQuality.h:45
TProfile * eProfileBTdens_vs_PID_source
Definition: EdbPVRQuality.h:86
TH1F * eHistBTDensityVolume
Definition: EdbPVRQuality.h:80
TObjArray * eArrayPatternAllTTRejected
Definition: EdbPVRQuality.h:156
Int_t NbinsX
Definition: EdbPVRQuality.h:81
void SetCutTTSqueezeFactor(Float_t CutTTSqueezeFactor)
Definition: EdbPVRQuality.h:199
Float_t GetCutp0(Int_t patNR)
Definition: EdbPVRQuality.h:330
Float_t maxY
Definition: EdbPVRQuality.h:83
Float_t eProfileBTdens_vs_PID_source_meanX
Definition: EdbPVRQuality.h:87
Bool_t GetCutMethodIsDone(Int_t type)
Definition: EdbPVRQuality.h:316
Float_t eAgreementChi2CutMeanChi2
Definition: EdbPVRQuality.h:118
TH1F * GetHistChi2()
Definition: EdbPVRQuality.h:276
EdbPVRec * eAli_modified
Definition: EdbPVRQuality.h:44
void SetBTDensityLevelCalcMethodMCConfirmation(Int_t BTDensityLevelCalcMethodMCConfirmationNumber)
Definition: EdbPVRQuality.h:217
TH1F * GetHistWTilde()
Definition: EdbPVRQuality.h:282
Bool_t eIsTarget
Definition: EdbPVRQuality.h:49
TH2F * eHistWChi2
Definition: EdbPVRQuality.h:70
Int_t eBTDensityLevelCalcMethodMCConfirmationNumber
Definition: EdbPVRQuality.h:62
EdbPVRec * GetEdbPVRec(Int_t EdbPVRecType)
Definition: EdbPVRQuality.h:232
Float_t GetBTDensityLevel()
Definition: EdbPVRQuality.h:320
TProfile * eProfileBTdens_vs_PID_generic
Definition: EdbPVRQuality.h:94
Float_t maxX
Definition: EdbPVRQuality.h:82
Float_t eProfileBTdens_vs_PID_target_meanX
Definition: EdbPVRQuality.h:91
TH1F * eHistTT
Definition: EdbPVRQuality.h:73
TH1F * eHistBTDensityPattern
Definition: EdbPVRQuality.h:79
Bool_t eIsSource
Definition: EdbPVRQuality.h:48
Bool_t eNeedModified
Definition: EdbPVRQuality.h:47
EdbPVRec * eAli_orig
Definition: EdbPVRQuality.h:43
Float_t * GetCutp1()
Definition: EdbPVRQuality.h:327
void SetCutTTReductionFactor(Int_t binTT, Float_t CutTTReductionFactor)
Definition: EdbPVRQuality.h:206
Float_t GetBTDensity_orig(Int_t patNR=-1)
Definition: EdbPVRQuality.h:303
Float_t * GetCutp0()
Definition: EdbPVRQuality.h:324
TObjArray * eArrayAllExcludedSegments
Definition: EdbPVRQuality.h:174
TString eCutMethodString
Definition: EdbPVRQuality.h:55
Float_t eProfileBTdens_vs_PID_target_rmsX
Definition: EdbPVRQuality.h:92
TH2F * GetHistChi2W()
Definition: EdbPVRQuality.h:271
Float_t GetCutp1(Int_t patNR)
Definition: EdbPVRQuality.h:333
Float_t eRandomCutThreshold
Definition: EdbPVRQuality.h:141
TH1F * eHistChi2
Definition: EdbPVRQuality.h:74
void SetEdbPVRec(EdbPVRec *Ali_orig)
Definition: EdbPVRQuality.h:260
TObjArray * GetArrayAllExcludedSegments()
Definition: EdbPVRQuality.h:357
void SetCutMethodIsDone(Int_t CutMethod)
Definition: EdbPVRQuality.h:193
TH1F * eHistWTilde
Definition: EdbPVRQuality.h:76
Float_t eGlobalTTReductionFactorC
Definition: EdbPVRQuality.h:105
Float_t GetBTDensity_modified(Int_t patNR=-1)
Definition: EdbPVRQuality.h:307
Bool_t GetBTDensityLevelCalcMethodMC()
Definition: EdbPVRQuality.h:220
Float_t eAgreementChi2CutRMSChi2
Definition: EdbPVRQuality.h:119
Float_t eCutTTSqueezeFactor
Definition: EdbPVRQuality.h:100
TObjArray * eArrayPatternAllTTAccepted
Definition: EdbPVRQuality.h:157
Float_t eAgreementChi2CutRMSW
Definition: EdbPVRQuality.h:121
Float_t GetCutTTSqueezeFactor()
Definition: EdbPVRQuality.h:202
Bool_t eBTDensityLevelCalcMethodMC
Definition: EdbPVRQuality.h:61
void SetBTDensityLevelCalcMethodMC(Bool_t BTDensityLevelCalcMethodMC)
Definition: EdbPVRQuality.h:214
Float_t GetagreementChi2CutRMSChi2()
Definition: EdbPVRQuality.h:340
TH2F * GetHistYX()
Definition: EdbPVRQuality.h:286
Float_t eX2Hat
Definition: EdbPVRQuality.h:128
ClassDef(EdbPVRQuality, 1)
TH1F * GetHistW()
Definition: EdbPVRQuality.h:279
Float_t * GetagreementChi2Cut()
Definition: EdbPVRQuality.h:350
Float_t GetCutTTReductionFactor(Int_t binTT)
Definition: EdbPVRQuality.h:209
Float_t GetagreementChi2CutMeanChi2()
Definition: EdbPVRQuality.h:337
Definition: EdbPVRec.h:148
Int_t Npatterns() const
Definition: EdbPattern.h:380
Definition: EdbSegP.h:18
Definition: EdbPattern.h:118
Definition: bitview.h:14
Alg Print()
Alg Execute()
void hist()
Definition: init.C:23
void Help()
Definition: mc2raw.cxx:20
#define NULL
Definition: nidaqmx.h:84
p Execute_ConstantBTQuality()
p CreateEdbPVRec()
new TCanvas()
p CheckEdbPVRec()
Int_t type
Definition: testBGReduction_By_ANN.C:15
p Execute_ConstantBTDensityInAngularBins()