FEDRA emulsion software from the OPERA Collaboration
EdbRunTracking.h
Go to the documentation of this file.
1 #ifndef ROOT_EdbRunTracking
2 #define ROOT_EdbRunTracking
3 
5 // //
6 // EdbRunTracking //
7 // //
8 // //
10 #include "EdbRun.h"
11 #include "EdbPattern.h"
12 #include "EdbLayer.h"
13 #include "EdbRunAccess.h"
14 
15 class EdbPlateP;
16 
17 //______________________________________________________________________________
18 class EdbRunTracking : public EdbRunAccess {
19 
20  public:
21 
22  EdbScanCond eCondMT; // conditions for microtracks
23  EdbScanCond eCondBT; // conditions for basetracks
24 
25  Float_t eDeltaRview; // (400)
26  Float_t eDeltaTheta; // (0.15) slope acceptance
27  Float_t ePreliminaryPulsMinMT; // (6) \_ preliminary cuts to microtracks candidates for
28  Float_t ePreliminaryChi2MaxMT; // (1.6) / microtracks and basetracks selection
29 
30  EdbPattern eS1pre; // the result of the preliminary selection of microtracks
32 
33  Float_t eDeltaR; // (20)
34 
35  EdbPattern eSpre; // preliminary selected basetracks
36 
37  Float_t ePulsMinBT; // (18)
38  Float_t ePulsMinDegradMT; // (0)
39  Float_t eChi2MaxBT; // (1.5) maximum chi2 accepted between prediction and basetrack candidates
40 
41  EdbPattern eScnd; // basetracks candidates passed all cuts
42 
43  Float_t ePulsMinMT; // (10) mimimal number of grains accepted to select microtracks
44  Float_t ePulsMinDegradBT; // (0)
45  Float_t eChi2MaxMT; // (1.6) maximum chi2 accepted between prediction and microtrack candidates
46 
47  EdbPattern eS1cnd; // microtrack candidates passed all cuts
49 
50  EdbSegP ePred; // prediction
51  EdbSegP eS, eS1, eS2; // found segments
52  EdbSegP eNext; // next prediction
53  Int_t eStatus; // -1-nothing, 0-bt, 1-mt1, 2-mt2
54 
55  Float_t eDegradPos; // SigmaX = SigmaX(0) + degradPos * mth
56  Float_t eDegradSlope; // SigmaTX = SigmaTX(0) + degradSlope * bth
57 
58  Int_t eIdp[4]; // to read from sbt
59  Int_t eIdf[4];
60 
61  bool ePredictionScan; // if true use GetPatternDataForPrediction( spred.ID(), side, pat ); in FindCandidates (default is false)
62 
63  public:
64 
67  EdbRunTracking(const char *fname) : EdbRunAccess(fname) { Set0(); };
68 
69  virtual ~EdbRunTracking();
70 
71  void Set0();
72  void SetCondMT(EdbScanCond &cond) { eCondMT = cond; }
73  void SetCondBT(EdbScanCond &cond) { eCondBT = cond; }
74 
75  void SetPred(const EdbSegP &pred);
76 
77  int UpdateFlag(int flag, int status);
78  static int GetBTHoles(int flag) { return(flag/10000); }
79  static int GetMTHoles(int flag) { return((flag/100)%100); }
80  int ExtrapolateCond(EdbScanCond &inputcond, int flag, EdbScanCond &outputcond );
81 
82  int FindCompliments( EdbSegP &s, EdbPattern &pat, TObjArray &found, float chi2max, TArrayF &chiarr );
83 
84  int FindCandidates( EdbSegP &spred, EdbPattern &fndbt, EdbPattern &fnds1, EdbPattern &fnds2 );
85  int FindCandidateMT( EdbPattern &fnds1, EdbPattern &fnds2, EdbSegP &fnd );
86  // int FindCandidateBT(EdbPattern &fndbt, EdbSegP &fnd );
87  int FindBestCandidate(EdbPattern &fndbt, EdbSegP &fnd,EdbPattern &cnd, float wmin, float wmindegrad, float chi2max);
88  int FindPrediction( EdbSegP &spred, EdbSegP &fndbt, EdbSegP &fnds1, EdbSegP &fnds2, EdbSegP &snewpred );
89 
90  //void TransformToPlateRS( EdbPlateP &plate);
92 
93  int FindTrack(EdbTrackP &pred,EdbTrackP &found, EdbPlateP &plate);
94 
95  void Print();
96 
97  //void Transform(const EdbAffine2D &aff);
98 
99  static void CloseSBtree(TTree *tree);
100  static TTree *InitSBtree(const char *file_name="sbt.root", const char *mode="RECREATE");
101  bool UpdateSBtree( TTree &tsbt, int idp[4], int idf[4]);
102  bool GetSBtreeEntry( int entry, TTree &tsbt);
103 
105  void CheckZ( float &z1, float &z2 );
106 
107  ClassDef(EdbRunTracking,1) // helper class for access to the run data
108 };
109 
110 #endif /* ROOT_EdbRunTracking */
111 
TLegendEntry * entry
Definition: Canv_SYSTEMATICS_ALLCOMBINED__RMSEnergy__vs__Energy__ELECTRON.C:130
Definition: EdbPattern.h:280
Definition: EdbBrick.h:13
Definition: EdbRunAccess.h:22
Definition: EdbRunTracking.h:18
EdbPattern eScnd
Definition: EdbRunTracking.h:41
int FindTrack(EdbTrackP &pred, EdbTrackP &found, EdbPlateP &plate)
Definition: EdbRunTracking.cxx:574
void TransformFromPlateRS(EdbPlateP &plate)
Definition: EdbRunTracking.cxx:618
int ExtrapolateCond(EdbScanCond &inputcond, int flag, EdbScanCond &outputcond)
Definition: EdbRunTracking.cxx:106
Float_t ePulsMinDegradBT
Definition: EdbRunTracking.h:44
Float_t ePulsMinBT
Definition: EdbRunTracking.h:37
int FindCandidates(EdbSegP &spred, EdbPattern &fndbt, EdbPattern &fnds1, EdbPattern &fnds2)
Definition: EdbRunTracking.cxx:170
EdbSegP ePred
Definition: EdbRunTracking.h:50
void CheckZ(float &z1, float &z2)
Definition: EdbRunTracking.cxx:671
Float_t eDeltaR
Definition: EdbRunTracking.h:33
int GetSegmentsForDB(EdbSegP &s, EdbSegP &s1, EdbSegP &s2)
Definition: EdbRunTracking.cxx:688
EdbScanCond eCondMT
Definition: EdbRunTracking.h:22
EdbRunTracking(const char *fname)
Definition: EdbRunTracking.h:67
EdbPattern eS2pre
Definition: EdbRunTracking.h:31
int UpdateFlag(int flag, int status)
Definition: EdbRunTracking.cxx:87
Int_t eIdp[4]
Definition: EdbRunTracking.h:58
int FindBestCandidate(EdbPattern &fndbt, EdbSegP &fnd, EdbPattern &cnd, float wmin, float wmindegrad, float chi2max)
Definition: EdbRunTracking.cxx:308
EdbPattern eS1pre
Definition: EdbRunTracking.h:30
Float_t ePreliminaryPulsMinMT
Definition: EdbRunTracking.h:27
Float_t eChi2MaxMT
Definition: EdbRunTracking.h:45
Float_t eDeltaRview
Definition: EdbRunTracking.h:25
Float_t ePreliminaryChi2MaxMT
Definition: EdbRunTracking.h:28
EdbSegP eS
Definition: EdbRunTracking.h:51
static int GetBTHoles(int flag)
Definition: EdbRunTracking.h:78
static int GetMTHoles(int flag)
Definition: EdbRunTracking.h:79
EdbRunTracking()
Definition: EdbRunTracking.h:65
Int_t eStatus
Definition: EdbRunTracking.h:53
int FindPrediction(EdbSegP &spred, EdbSegP &fndbt, EdbSegP &fnds1, EdbSegP &fnds2, EdbSegP &snewpred)
Definition: EdbRunTracking.cxx:325
bool UpdateSBtree(TTree &tsbt, int idp[4], int idf[4])
Definition: EdbRunTracking.cxx:479
Float_t ePulsMinMT
Definition: EdbRunTracking.h:43
virtual ~EdbRunTracking()
void SetPred(const EdbSegP &pred)
Definition: EdbRunTracking.cxx:51
Float_t eDegradSlope
Definition: EdbRunTracking.h:56
int FindCompliments(EdbSegP &s, EdbPattern &pat, TObjArray &found, float chi2max, TArrayF &chiarr)
Definition: EdbRunTracking.cxx:125
EdbScanCond eCondBT
Definition: EdbRunTracking.h:23
void Print()
Definition: EdbRunTracking.cxx:65
Int_t eIdf[4]
Definition: EdbRunTracking.h:59
Float_t eChi2MaxBT
Definition: EdbRunTracking.h:39
static TTree * InitSBtree(const char *file_name="sbt.root", const char *mode="RECREATE")
Definition: EdbRunTracking.cxx:434
void SetCondMT(EdbScanCond &cond)
Definition: EdbRunTracking.h:72
EdbRunTracking(EdbRun *run)
Definition: EdbRunTracking.h:66
int FindCandidateMT(EdbPattern &fnds1, EdbPattern &fnds2, EdbSegP &fnd)
Definition: EdbRunTracking.cxx:287
EdbPattern eSpre
Definition: EdbRunTracking.h:35
void Set0()
Definition: EdbRunTracking.cxx:26
static void CloseSBtree(TTree *tree)
Definition: EdbRunTracking.cxx:547
EdbSegP eNext
Definition: EdbRunTracking.h:52
bool ePredictionScan
Definition: EdbRunTracking.h:61
Float_t eDegradPos
Definition: EdbRunTracking.h:55
Float_t ePulsMinDegradMT
Definition: EdbRunTracking.h:38
EdbSegP eS1
Definition: EdbRunTracking.h:51
Float_t eDeltaTheta
Definition: EdbRunTracking.h:26
EdbPattern eS2cnd
Definition: EdbRunTracking.h:48
bool GetSBtreeEntry(int entry, TTree &tsbt)
Definition: EdbRunTracking.cxx:515
EdbSegP eS2
Definition: EdbRunTracking.h:51
void SetCondBT(EdbScanCond &cond)
Definition: EdbRunTracking.h:73
EdbPattern eS1cnd
Definition: EdbRunTracking.h:47
Definition: EdbRun.h:74
Definition: EdbScanCond.h:10
Definition: EdbSegP.h:18
Definition: EdbPattern.h:118
EdbRun * run
Definition: check_raw.C:38
const char * fname
Definition: mc2raw.cxx:41
Int_t plate
Definition: merge_Energy_SytematicSources_Electron.C:1
EdbSegP * s1
Definition: tlg2pattern.C:30
EdbSegP * s2
Definition: tlg2pattern.C:31
EdbSegP * s
Definition: tlg2pattern.C:32