BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
FTTrack.h
Go to the documentation of this file.
1#pragma once
2
3#include "TrackUtil/Helix.h"
4#include "TrackUtil/Lpav.h"
5#include "TrackUtil/zav.h"
6
7#include "MagneticFieldSvc/IBesMagFieldSvc.h"
8
9// #include "FTSegment.h"
10#include "FTList.h"
11#include "MdcParameter.h"
12
13typedef HepGeom::Point3D<double> HepPoint3D;
14
15class FTWire;
16class FTSegment;
17class FTFinder;
18
19class FTTrack {
20public:
21 /// constructor
22 FTTrack( FTList<FTSegment*>& axial_segments, float kappa, float chi2_kappa );
23
24 /// destructor
25 ~FTTrack();
26
27public: // public member functions
28 /// do r-phi circle fit
29 int r_phiFit();
30
31 /// do r-phi refit
32 int r_phiReFit( float vx, float xy, int vtx_flag );
33
34 // cut the largest residual hit when do r-phi fit
35 int r_phi2Fit( float vx, float xy, int vtx_flag );
36 int r_phi3Fit( int l, float vx, float xy, int vtx_flag );
37 int r_phi4Fit( float vx, float xy, int vtx_flag );
38
39 /// do s-z linear fit
40 int s_zFit();
41
42 /// update s and z information for linking
43 void updateSZ();
44
45 /// link stereo segments by tanLambda
47
48public: // Selectors
49 /// returns helix parameters
50 Helix* helix() const;
51
52 /// returns lpav
53 const Lpav& lpav() const;
54
55 /// returns zav
56 const zav& Zav() const;
57
58 /// returns axial segments
60
61 /// returns stereo_segments
63
64 /// returns kappa at linking
65 float kappa_tmp() const;
66
67 /// returns sigmaKappa at linking
68 float chi2_kappa_tmp() const;
69
70 /// returns difference between z and estimated z
71 /// at stereo segment linking if its valid
72 float d_z( float s, float z ) const;
73
74#ifndef OnlineMode
75 /// printout _tracks infomation
76 /// added by X.-R. Lu
77 void printout();
78#endif
79
80public: // Modifiers
81 /// add z for culculation of tanLambda
82 float SigmaZ( float z );
83
84 /// add s for culculation of tanLambda
85 float SigmaS( float s );
86
87 /// add s for culculation of dz, tanLambda
88 float SigmaSS( float ss );
89
90 /// add s for culculation of dz, tanLambda
91 float SigmaSZ( float sz );
92
93 /// append stereo segment to the stereo segment list
94 void append_stereo( FTSegment*, float s, float z );
95
96 /// append stereo segment to the cache
98
99 /// calculate the wire hits number
100 int get_nhits();
101
102public: // static data members
103 float minPt;
104 float minDr;
105 float xtCoEff;
106 float Testime;
107
108public:
109 void setFTFinder( FTFinder* );
110
111private:
112 FTFinder* m_ftFinder;
113 IBesMagFieldSvc* m_pmgnIMF;
114
115public: // private data members
124
125 union {
126 float _kappa;
127 float _SigmaS;
128 };
129
130 union {
132 float _SigmaSS;
133 };
134
135 float _SigmaZ;
136 float _SigmaSZ;
137};
HepGeom::Point3D< double > HepPoint3D
XmlRpcServer s
Definition FTList.h:6
Helix * _helix
Definition FTTrack.h:118
float _kappa
Definition FTTrack.h:126
float kappa_tmp() const
returns kappa at linking
Definition FTTrack.cxx:56
const Lpav & lpav() const
returns lpav
Definition FTTrack.cxx:58
int r_phiReFit(float vx, float xy, int vtx_flag)
do r-phi refit
Definition FTTrack.cxx:251
float _chi2_kappa
Definition FTTrack.h:131
float minPt
Definition FTTrack.h:103
void append_stereo_cache(FTSegment *)
append stereo segment to the cache
Definition FTTrack.cxx:67
float minDr
Definition FTTrack.h:104
FTTrack(FTList< FTSegment * > &axial_segments, float kappa, float chi2_kappa)
constructor
Definition FTTrack.cxx:35
int linkStereoSegments()
link stereo segments by tanLambda
Definition FTTrack.cxx:466
float SigmaZ(float z)
add z for culculation of tanLambda
Definition FTTrack.cxx:61
int get_nhits()
calculate the wire hits number
Definition FTTrack.cxx:657
const FTList< FTSegment * > & stereo_segments()
returns stereo_segments
Definition FTTrack.cxx:55
int r_phi4Fit(float vx, float xy, int vtx_flag)
Definition FTTrack.cxx:419
zav * _za
Definition FTTrack.h:117
void setFTFinder(FTFinder *)
Definition FTTrack.cxx:65
float chi2_kappa_tmp() const
returns sigmaKappa at linking
Definition FTTrack.cxx:57
FTList< FTSegment * > _stereo_segments
Definition FTTrack.h:120
void printout()
Definition FTTrack.cxx:665
float _SigmaSZ
Definition FTTrack.h:136
float xtCoEff
Definition FTTrack.h:105
static MdcParameter * param
Definition FTTrack.h:123
const FTList< FTSegment * > & axial_segments()
returns axial segments
Definition FTTrack.cxx:54
float _SigmaS
Definition FTTrack.h:127
~FTTrack()
destructor
Definition FTTrack.cxx:47
Lpav * _la
Definition FTTrack.h:116
Helix * helix() const
returns helix parameters
Definition FTTrack.cxx:60
int r_phiFit()
do r-phi circle fit
Definition FTTrack.cxx:120
float SigmaSZ(float sz)
add s for culculation of dz, tanLambda
Definition FTTrack.cxx:63
float _SigmaZ
Definition FTTrack.h:135
int s_zFit()
do s-z linear fit
Definition FTTrack.cxx:510
float SigmaS(float s)
add s for culculation of tanLambda
Definition FTTrack.cxx:62
void updateSZ()
update s and z information for linking
Definition FTTrack.cxx:89
void append_stereo(FTSegment *, float s, float z)
append stereo segment to the stereo segment list
Definition FTTrack.cxx:71
FTList< FTSegment * > _stereo_segments_cache
Definition FTTrack.h:121
int r_phi3Fit(int l, float vx, float xy, int vtx_flag)
Definition FTTrack.cxx:366
float SigmaSS(float ss)
add s for culculation of dz, tanLambda
Definition FTTrack.cxx:64
float _SigmaSS
Definition FTTrack.h:132
FTList< FTList< FTSegment * > > _stereo_segments_by_superLayer
Definition FTTrack.h:122
int r_phi2Fit(float vx, float xy, int vtx_flag)
Definition FTTrack.cxx:308
float d_z(float s, float z) const
Definition FTTrack.cxx:79
float Testime
Definition FTTrack.h:106
const zav & Zav() const
returns zav
Definition FTTrack.cxx:59
FTList< FTSegment * > _axial_segments
Definition FTTrack.h:119