FEDRA emulsion software from the OPERA Collaboration
EdbTrackFitter.h
Go to the documentation of this file.
1 #ifndef ROOT_EdbTrackFitter
2 #define ROOT_EdbTrackFitter
3 
5 // //
6 // EdbTrackFitter //
7 // //
8 // definitions and functions for track fit //
9 // //
11 #include "EdbPattern.h"
12 
13 class EdbScanCond;
14 
15 //______________________________________________________________________________
16 class EdbTrackFitter : public TNamed {
17 
18  private:
19  int eNsegMax; // max number of segments (for arrays allocation)
20 
21  public:
22  float eX0; // rad length of the media [microns]
23  float eM; // mass of the particle (if negative - use the mass setted in the track)
24  float ePdef; // default momentum
25  float eTPb; // ?
26  float ePcut; // minimal momentum?
27  bool eDE_correction; // take into account the energy loss or not
28 
29  public:
31  virtual ~EdbTrackFitter(){}
32 
33  void SetNsegMax(int nseg) {eNsegMax=nseg;}
34  void SetDefaultBrick();
36  int FitTrackLine(const EdbTrackP &tr, float &x,float &y,float &z,float &tx,float &ty,float &w);
37  int Fit3Pos(EdbTrackP &tr);
38 
39  static float MaxKink(EdbTrackP &tr);
40  static float MeanKink(EdbTrackP &tr);
41  static float Theta( EdbSegP &s, EdbSegP &s1 );
42  static float Chi2Seg( EdbSegP *s1, EdbSegP *s2);
43  static float MaxChi2Seg(EdbTrackP &tr);
44  static float MeanChi2Seg(EdbTrackP &tr);
45  bool SplitTrack( EdbTrackP &t, EdbTrackP &t1, int isplit );
46  int SplitTrackByKink( EdbTrackP *t, TObjArray &tracks, float maxkink );
47  float PMS_KF(EdbTrackP &t, float p0=10., float probbest=0.5);
48 
49  static float Chi2ACP( EdbSegP s1, EdbSegP s2, EdbScanCond &cond);
50  static float Chi2ASeg( EdbSegP &s1, EdbSegP &s2, EdbSegP &s, EdbScanCond &cond1, EdbScanCond &cond2);
51  static float Chi2PSeg( EdbSegP &s1, EdbSegP &s2, EdbSegP &seg, EdbScanCond &cond1, EdbScanCond &cond2);
52  static float Chi2ASegLL( EdbSegP &s1, EdbSegP &s2, EdbSegP &s, EdbScanCond &cond1, EdbScanCond &cond2);
53  float Chi2SegM( EdbSegP s1, EdbSegP s2, EdbSegP &s, EdbScanCond &cond1, EdbScanCond &cond2);
54  float Chi2SegMCS( const EdbSegP &s1, const EdbSegP &s2);
55  double ProbSegMCS(EdbSegP *s1, EdbSegP *s2);
56  void Print();
57 
58  static int RMSprojXY(EdbTrackP &tr, float &ex, float &ey );
59 
60  ClassDef(EdbTrackFitter,1) // track fitter
61 };
62 
63 #endif /* ROOT_EdbTrackFitter */
TTree * tr
Definition: Shower_E_FromShowerRoot.C:5
TTree * t
Definition: check_shower.C:4
Definition: EdbScanCond.h:10
Definition: EdbSegP.h:18
Definition: EdbTrackFitter.h:16
int Fit3Pos(EdbTrackP &tr)
Definition: EdbTrackFitter.cxx:588
double ProbSegMCS(EdbSegP *s1, EdbSegP *s2)
Definition: EdbTrackFitter.cxx:287
bool SplitTrack(EdbTrackP &t, EdbTrackP &t1, int isplit)
Definition: EdbTrackFitter.cxx:457
int eNsegMax
Definition: EdbTrackFitter.h:19
static float Chi2ACP(EdbSegP s1, EdbSegP s2, EdbScanCond &cond)
Definition: EdbTrackFitter.cxx:124
float eTPb
Definition: EdbTrackFitter.h:25
EdbTrackFitter()
Definition: EdbTrackFitter.cxx:37
static int RMSprojXY(EdbTrackP &tr, float &ex, float &ey)
Definition: EdbTrackFitter.cxx:571
float Chi2SegM(EdbSegP s1, EdbSegP s2, EdbSegP &s, EdbScanCond &cond1, EdbScanCond &cond2)
Definition: EdbTrackFitter.cxx:314
virtual ~EdbTrackFitter()
Definition: EdbTrackFitter.h:31
float PMS_KF(EdbTrackP &t, float p0=10., float probbest=0.5)
Definition: EdbTrackFitter.cxx:496
bool eDE_correction
Definition: EdbTrackFitter.h:27
static float Chi2PSeg(EdbSegP &s1, EdbSegP &s2, EdbSegP &seg, EdbScanCond &cond1, EdbScanCond &cond2)
Definition: EdbTrackFitter.cxx:262
float eX0
Definition: EdbTrackFitter.h:22
static float MeanChi2Seg(EdbTrackP &tr)
Definition: EdbTrackFitter.cxx:415
int SplitTrackByKink(EdbTrackP *t, TObjArray &tracks, float maxkink)
Definition: EdbTrackFitter.cxx:476
static float Theta(EdbSegP &s, EdbSegP &s1)
Definition: EdbTrackFitter.cxx:451
float ePdef
Definition: EdbTrackFitter.h:24
static float Chi2ASegLL(EdbSegP &s1, EdbSegP &s2, EdbSegP &s, EdbScanCond &cond1, EdbScanCond &cond2)
Definition: EdbTrackFitter.cxx:169
static float MaxKink(EdbTrackP &tr)
Definition: EdbTrackFitter.cxx:428
static float Chi2ASeg(EdbSegP &s1, EdbSegP &s2, EdbSegP &s, EdbScanCond &cond1, EdbScanCond &cond2)
Definition: EdbTrackFitter.cxx:216
static float MaxChi2Seg(EdbTrackP &tr)
Definition: EdbTrackFitter.cxx:401
static float Chi2Seg(EdbSegP *s1, EdbSegP *s2)
Definition: EdbTrackFitter.cxx:62
float ePcut
Definition: EdbTrackFitter.h:26
float Chi2SegMCS(const EdbSegP &s1, const EdbSegP &s2)
Definition: EdbTrackFitter.cxx:292
static float MeanKink(EdbTrackP &tr)
Definition: EdbTrackFitter.cxx:441
int FitTrackLine(EdbTrackP &tr)
Definition: EdbTrackFitter.cxx:519
float eM
Definition: EdbTrackFitter.h:23
void SetNsegMax(int nseg)
Definition: EdbTrackFitter.h:33
void Print()
Definition: EdbTrackFitter.cxx:53
void SetDefaultBrick()
Definition: EdbTrackFitter.cxx:43
Definition: EdbPattern.h:118
TTree * tracks
Definition: check_tr.C:19
void w(int rid=2, int nviews=2)
Definition: test.C:27
EdbSegP * s1
Definition: tlg2pattern.C:30
EdbSegP * s2
Definition: tlg2pattern.C:31
EdbSegP * s
Definition: tlg2pattern.C:32