FEDRA emulsion software from the OPERA Collaboration
EdbScanTracking.h
Go to the documentation of this file.
1 #ifndef ROOT_EdbScanTracking
2 #define ROOT_EdbScanTracking
3 
5 // //
6 // EdbScanTracking //
7 // //
8 // To handle tracking in the scanset (IO) //
9 // //
11 #include <TH3F.h>
12 #include "TEnv.h"
13 #include "EdbScanProc.h"
14 #include "EdbTrackFitter.h"
15 
17 {
18  bool doXY; // if false - ignore position cut
19  float x0,y0, dx,dy ; // position cut: reference in xy +-d
20  bool doZ; // if false - ignore this cut
21  float z0, zmin, zmax; // acceptance in z
22  bool doAng; // if false - ignore this cut
23  float tx,ty, dtx,dty; // angle use x0,y0,z0 as starting point +-d
24 };
25 
26 //_________________________________________________________________________
27 class EdbTrackAssembler: public TObject {
28 
29  private:
30  EdbPattern eSegments; // all segments of tracks
31  TObjArray eTracks; // array of tracks (EdbTrackP) (owner of tracks)
32  TObjArray eTrZ; // "predictions" - tracks extrapolated to the given z (not owner)
33 
34  Float_t eZ; // the z-position
35 
36  EdbCell2 eTrZMap; // map of predictions at given eZ
37  Float_t eMapMarg; // margin for the map creation
38  Int_t eCellN; // mean cell occupancy
39 
41 
42  public:
43  float eDTmax; // angular acceptance for the fast preselection
44  float eDRmax; // position acceptance for the fast preselection
45  float eDZGapMax; // maxgap acceptance for the fast preselection
46  float eProbMin; // min acceptable probability for segments preselection
47  int eDoUseMCS; //flag to use MultipleScattering addition for chi2
48 
51 
52  TH1F *eHistProbBest; // prob of the best candidate
53  TH1F *eHistProbAll; // prob of all candidate
54  TH1F *eHistThetaBest; // theta of the best candidate
55  TH1F *eHistThetaAll; // theta of all candidate
56  TH1F *eHistNcnd; // number of candidates after preliminary selection
57  TH2F *eHistXYseg; // XY overlap of all segments (for showers tag)
58  TH3F *eHistXYPseg; // XYP overlap of all segments (for showers tag)
59  TH3F *eHistXYPsegNB; // XYP overlap of all segments (for showers tag) No Beam
60  TH2F *eHistTXTYseg; // TXTY overlap of all segments
61 
62  public:
64  virtual ~EdbTrackAssembler();
65 
66  void SetMomentum (float p ){eFitter.ePdef=p;}
67  void SetRadLength(float x0){eFitter.eX0=x0; eCond.SetRadX0(x0);}
68 
69  bool SameSegment( EdbSegP &s1, EdbSegP &s2 );
71  void InitTrZMap( const char *str );
72  void InitTrZMap( int nx, float xmi, float xma,
73  int ny, float ymi, float yma, int ncell);
74  void InitTrZMap();
75  void FillTrZMap();
76  void ExtrapolateTracksToZ(float z, int nsegmin=0);
77  void ExtrapolateTracksToZ_mcs3(float z, int nsegmin=0);
78  void AddPattern(EdbPattern &p);
79  EdbTrackP *AddSegment(EdbSegP &s); //owner of the segments!!!
81  float ProbSeg(EdbSegP &s1, EdbSegP &s2 );
83  bool AcceptDZGap(EdbTrackP &t, float z);
84  void SetSegmentsErrors();
85  void FitTracks();
86  void CombTracks( TObjArray &selected );
87  void FillXYseg(EdbPattern &p);
88 
90 
91  TObjArray &Tracks() {return eTracks;}
92 
93  ClassDef(EdbTrackAssembler,1) // generic class for the tracks assembling from segments
94 };
95 
96 //_________________________________________________________________________
97 class EdbScanTracking: public TObject {
98 
99  public:
100  int eNsegMin;
101  int eNgapMax;
105 
106  public:
107  EdbScanTracking();
108  virtual ~EdbScanTracking(){}
109 
110  void TrackAli(EdbPVRec &ali, TEnv &env);
111  void TrackSetBT(EdbID id, TEnv &env, Int_t ix = -1, Int_t iy = -1);
112  void SaveHist(EdbID idset, EdbTrackAssembler &etra);
113  void SetPredictionXY( const char *str );
114  void SetPredictionZ( const char *str );
115  void SetPredictionAng( const char *str );
116 
117  ClassDef(EdbScanTracking,2) // To handle tracking in the scanset
118 };
119 
120 
121 #endif /* ROOT_EdbScanTracking */
EdbPVRec * ali
Definition: align.C:1
TTree * t
Definition: check_shower.C:4
Definition: EdbAffine.h:17
Definition: EdbCell2.h:151
Definition: EdbID.h:7
Definition: EdbPVRec.h:148
Definition: EdbPattern.h:280
Definition: EdbBrick.h:13
Definition: EdbScanCond.h:10
void SetRadX0(float x0)
Definition: EdbScanCond.h:57
Definition: EdbScanProc.h:12
Definition: EdbScanTracking.h:97
EdbScanTracking()
Definition: EdbScanTracking.cxx:578
virtual ~EdbScanTracking()
Definition: EdbScanTracking.h:108
PredictionCut ePRC
Definition: EdbScanTracking.h:104
void SetPredictionZ(const char *str)
Definition: EdbScanTracking.cxx:962
EdbScanProc * eSproc
Definition: EdbScanTracking.h:102
void SetPredictionXY(const char *str)
Definition: EdbScanTracking.cxx:957
void TrackAli(EdbPVRec &ali, TEnv &env)
Definition: EdbScanTracking.cxx:852
int eNsegMin
Definition: EdbScanTracking.h:100
void TrackSetBT(EdbID id, TEnv &env, Int_t ix=-1, Int_t iy=-1)
Definition: EdbScanTracking.cxx:588
bool eDoRealign
Definition: EdbScanTracking.h:103
void SaveHist(EdbID idset, EdbTrackAssembler &etra)
Definition: EdbScanTracking.cxx:780
void SetPredictionAng(const char *str)
Definition: EdbScanTracking.cxx:967
int eNgapMax
Definition: EdbScanTracking.h:101
Definition: EdbSegP.h:18
Definition: EdbScanTracking.h:27
TH2F * eHistTXTYseg
Definition: EdbScanTracking.h:60
TH3F * eHistXYPsegNB
Definition: EdbScanTracking.h:59
TH2F * eHistXYseg
Definition: EdbScanTracking.h:57
EdbTrackAssembler()
Definition: EdbScanTracking.cxx:37
TH1F * eHistNcnd
Definition: EdbScanTracking.h:56
void FillTrZMap()
Definition: EdbScanTracking.cxx:417
TObjArray & Tracks()
Definition: EdbScanTracking.h:91
EdbScanCond eCond
Definition: EdbScanTracking.h:50
TH1F * eHistProbBest
Definition: EdbScanTracking.h:52
void CheckPatternAlignment(EdbPattern &p, EdbPlateP &plate, int nsegmin, EdbAffine2D &acorr)
Definition: EdbScanTracking.cxx:77
TObjArray eTracks
Definition: EdbScanTracking.h:31
Float_t eZ
Definition: EdbScanTracking.h:34
Int_t eCellN
Definition: EdbScanTracking.h:38
void InitTrZMap()
Definition: EdbScanTracking.cxx:450
EdbCell2 eTrZMap
Definition: EdbScanTracking.h:36
EdbTrackP * AddSegmentAsTrack(EdbSegP &s)
Definition: EdbScanTracking.cxx:357
void SetMomentum(float p)
Definition: EdbScanTracking.h:66
void DoubletsFilterOut(EdbPattern &p)
Definition: EdbScanTracking.cxx:66
EdbPattern eSegments
Definition: EdbScanTracking.h:30
TH3F * eHistXYPseg
Definition: EdbScanTracking.h:58
Float_t eMapMarg
Definition: EdbScanTracking.h:37
void SetSegmentsErrors()
Definition: EdbScanTracking.cxx:466
EdbTrackP * AddSegment(EdbSegP &s)
Definition: EdbScanTracking.cxx:223
TH1F * eHistThetaAll
Definition: EdbScanTracking.h:55
float eDZGapMax
Definition: EdbScanTracking.h:45
void RecalculateSegmentsProb(EdbTrackP &t)
Definition: EdbScanTracking.cxx:275
TH1F * eHistThetaBest
Definition: EdbScanTracking.h:54
void FillXYseg(EdbPattern &p)
Definition: EdbScanTracking.cxx:116
TH1F * eHistProbAll
Definition: EdbScanTracking.h:53
void ExtrapolateTracksToZ(float z, int nsegmin=0)
Definition: EdbScanTracking.cxx:390
bool SameSegment(EdbSegP &s1, EdbSegP &s2)
Definition: EdbScanTracking.cxx:264
virtual ~EdbTrackAssembler()
int eDoUseMCS
Definition: EdbScanTracking.h:47
void ExtrapolateTracksToZ_mcs3(float z, int nsegmin=0)
Definition: EdbScanTracking.cxx:366
TObjArray eTrZ
Definition: EdbScanTracking.h:32
EdbTrackFitter eFitter
Definition: EdbScanTracking.h:40
void AddPattern(EdbPattern &p)
Definition: EdbScanTracking.cxx:182
float ProbSeg(EdbSegP &s1, EdbSegP &s2)
Definition: EdbScanTracking.cxx:284
float eProbMin
Definition: EdbScanTracking.h:46
void FitTracks()
Definition: EdbScanTracking.cxx:484
void SetRadLength(float x0)
Definition: EdbScanTracking.h:67
float eDRmax
Definition: EdbScanTracking.h:44
float eDTmax
Definition: EdbScanTracking.h:43
void CombTracks(TObjArray &selected)
Definition: EdbScanTracking.cxx:500
bool AcceptDZGap(EdbTrackP &t, float z)
Definition: EdbScanTracking.cxx:408
int eCollisionsRate
Definition: EdbScanTracking.h:49
Definition: EdbTrackFitter.h:16
float eX0
Definition: EdbTrackFitter.h:22
float ePdef
Definition: EdbTrackFitter.h:24
Definition: EdbPattern.h:118
EdbID idset
Definition: emrec.cpp:35
int nx
Definition: emthickness.cpp:60
int ny
Definition: emthickness.cpp:62
Int_t plate
Definition: merge_Energy_SytematicSources_Electron.C:1
int nsegmin
Definition: check_vertex.C:23
Definition: EdbScanTracking.h:17
float zmin
Definition: EdbScanTracking.h:21
float z0
Definition: EdbScanTracking.h:21
float zmax
Definition: EdbScanTracking.h:21
bool doAng
Definition: EdbScanTracking.h:22
float y0
Definition: EdbScanTracking.h:19
bool doZ
Definition: EdbScanTracking.h:20
float dtx
Definition: EdbScanTracking.h:23
float ty
Definition: EdbScanTracking.h:23
float dty
Definition: EdbScanTracking.h:23
float tx
Definition: EdbScanTracking.h:23
float dy
Definition: EdbScanTracking.h:19
float x0
Definition: EdbScanTracking.h:19
float dx
Definition: EdbScanTracking.h:19
bool doXY
Definition: EdbScanTracking.h:18
p
Definition: testBGReduction_AllMethods.C:8
EdbSegP * s1
Definition: tlg2pattern.C:30
EdbSegP * s2
Definition: tlg2pattern.C:31
EdbSegP * s
Definition: tlg2pattern.C:32