4#include "ExtEvent/RecExtTrack.h"
5#include "RawDataProviderSvc/TofData.h"
6#include "TofRecEvent/RecTofTrack.h"
7#include "MrpcCalibSvc/MrpcCalibSvc.h"
17const double mass[5] = { 0.00051100, 0.10566, 0.13957, 0.49368, 0.93827 };
30 int id1()
const {
return m_id1; }
31 int id2()
const {
return m_id2; }
32 unsigned int barrel()
const {
return m_barrel; }
34 double p()
const {
return m_momentum; }
35 double path()
const {
return m_path; }
36 double path1()
const {
return m_path1; }
37 double path2()
const {
return m_path2; }
38 double zrhit1()
const {
return m_zrhit1; }
39 double zrhit2()
const {
return m_zrhit2; }
40 double errzr1()
const {
return m_errzr1; }
41 double errzr2()
const {
return m_errzr2; }
42 int kal(
unsigned int i)
const {
return m_kal[i]; }
43 double zrhit1(
unsigned int i)
const {
return m_zr1[i]; }
44 double zrhit2(
unsigned int i)
const {
return m_zr2[i]; }
45 double errzr1(
unsigned int i)
const {
return m_ezr1[i]; }
46 double errzr2(
unsigned int i)
const {
return m_ezr2[i]; }
47 std::vector<TofData*>
tofData1()
const {
return m_tofData1; }
48 std::vector<TofData*>
tofData2()
const {
return m_tofData2; }
49 int size1()
const {
return m_tofData1.size(); }
50 int size2()
const {
return m_tofData2.size(); }
51 int size3()
const {
return m_tofData3.size(); }
52 int size4()
const {
return m_tofData4.size(); }
53 double theta1()
const {
return m_theta1; }
54 double theta2()
const {
return m_theta2; }
55 double phi1()
const {
return m_phi1; }
56 double phi2()
const {
return m_phi2; }
57 unsigned int quality1()
const {
return m_quality1; }
58 unsigned int quality2()
const {
return m_quality2; }
59 unsigned int quality()
const {
return m_quality; }
61 int tofId1()
const {
return m_tofId1; }
62 int tofId2()
const {
return m_tofId2; }
64 double ph11()
const {
return m_ph11; }
65 double ph12()
const {
return m_ph12; }
66 double ph21()
const {
return m_ph21; }
67 double ph22()
const {
return m_ph22; }
68 double ph1()
const {
return m_ph1; }
69 double ph2()
const {
return m_ph2; }
70 double ph()
const {
return m_ph; }
72 double tof11(
unsigned int i)
const {
return m_tof11[i]; }
73 double tof12(
unsigned int i)
const {
return m_tof12[i]; }
74 double tof21(
unsigned int i)
const {
return m_tof21[i]; }
75 double tof22(
unsigned int i)
const {
return m_tof22[i]; }
76 double tof1(
unsigned int i)
const {
return m_tof1[i]; }
77 double tof2(
unsigned int i)
const {
return m_tof2[i]; }
78 double tof(
unsigned int i)
const {
return m_tof[i]; }
80 double qch1()
const {
return m_qch1; }
81 double qch2()
const {
return m_qch2; }
82 double qch3()
const {
return m_qch3; }
83 double qch4()
const {
return m_qch4; }
84 double adc1()
const {
return m_adc1; }
85 double adc2()
const {
return m_adc2; }
86 double adc3()
const {
return m_adc3; }
87 double adc4()
const {
return m_adc4; }
88 double tdc1()
const {
return m_tdc1; }
89 double tdc2()
const {
return m_tdc2; }
90 double tdc3()
const {
return m_tdc3; }
91 double tdc4()
const {
return m_tdc4; }
93 double texpInner(
unsigned int i)
const {
return m_texpInner[i]; }
94 double texpOuter(
unsigned int i)
const {
return m_texpOuter[i]; }
95 double texp(
unsigned int i)
const {
return m_texp[i]; }
97 double ztdc1()
const {
return m_ztdc1; }
98 double ztdc2()
const {
return m_ztdc2; }
99 double zadc1()
const {
return m_zadc1; }
100 double zadc2()
const {
return m_zadc2; }
102 double estime()
const {
return m_estime; }
103 double tdiff1()
const {
return m_tdiff1; }
104 double tdiff2()
const {
return m_tdiff2; }
108 unsigned int flag()
const {
return m_flag; }
130 void match(std::vector<MrpcTrack*>*& tofTrackVec );
131 void findTofDataMRPC( std::vector<TofData*> tofDataVec1, std::vector<TofData*> tofDataVec2,
double zrhit,
unsigned int iflag);
137 void findTofDataBarrel( std::vector<TofData*> tofDataVec1, std::vector<TofData*> tofDataVec2,
double zrhit,
unsigned int iflag, std::vector<MrpcTrack*>*& tofTrackVec );
140 void findTofDataEndcap( std::vector<TofData*> tofDataVec1, std::vector<TofData*> tofDataVec2,
double zr1[5] );
167 int m_tofId1, m_tofId2;
168 unsigned int m_barrel;
171 double m_path, m_path1, m_path2;
172 double m_zrhit1, m_errzr1, m_zrhit2, m_errzr2;
174 double m_zr1[5], m_ezr1[5], m_zr2[5], m_ezr2[5];
175 std::vector<TofData*> m_tofData1;
176 std::vector<TofData*> m_tofData2;
177 std::vector<TofData*> m_tofData3;
178 std::vector<TofData*> m_tofData4;
179 unsigned int m_quality1, m_quality2;
180 unsigned int m_quality;
191 double m_theta1, m_theta2, m_phi1, m_phi2;
193 double m_ph11, m_ph12, m_tof11[5], m_tof12[5];
194 double m_ph21, m_ph22, m_tof21[5], m_tof22[5];
195 double m_ph1, m_ph2, m_ph;
196 double m_tof1[5], m_tof2[5], m_tof[5];
198 double m_texp[5], m_texpInner[5], m_texpOuter[5];
200 double m_sigma11, m_sigma12, m_sigma21, m_sigma22;
201 double m_sigma_mrpc[5];
202 double m_sigma1, m_sigma2, m_sigma;
204 double m_qch1, m_qch2, m_qch3, m_qch4;
205 double m_adc1, m_adc2, m_adc3, m_adc4;
206 double m_tdc1, m_tdc2, m_tdc3, m_tdc4;
208 double m_ztdc1, m_ztdc2, m_zadc1, m_zadc2;
210 double m_estime, m_tdiff1, m_tdiff2;
215 bool mrpc_extrapolation_good;
std::multimap< unsigned int, TofData * > TofDataMap
ObjectVector< RecTofTrack > RecTofTrackCol
std::vector< MrpcTrack * > TofTrackVec
void match(std::vector< MrpcTrack * > *&tofTrackVec)
double tof2(unsigned int i) const
void getMultiHit(MrpcTrack *&)
void buildRecTofTrack(RecTofTrack *track, int layerorend)
TofData * chooseTofData(std::vector< TofData * > tofDataVec, double zrhit)
TofData * compareTofDataEndcap(TofData *tofData1, TofData *tofData2)
ExtTrackCase hitCase() const
TofData * chooseTofDataMRPC(std::vector< TofData *, std::allocator< TofData * > >, double)
void getTofDataMRPC(TofData *, unsigned int)
void setTofData(TofDataMap tofDataMap, int)
unsigned int quality() const
double tof22(unsigned int i) const
int get_mrpc_partid_neighbour(std::string, int, int)
void getTofData(TofData *tof, unsigned int iflag)
double zrhit2(unsigned int i) const
double zrhit1(unsigned int i) const
void setQuality1(int qual1)
std::vector< TofData * > tofData1() const
void getTofDataEast(TofData *tof, unsigned int iflag)
unsigned int barrel() const
TofData * compareTofDataMRPC(TofData *tofData1, TofData *tofData2)
double errzr1(unsigned int i) const
double errzr2(unsigned int i) const
void getTofDataWest(TofData *tof, unsigned int iflag)
double tof1(unsigned int i) const
double texp(unsigned int i) const
bool is_mrpc_extrapolation_good()
double tof11(unsigned int i) const
double tof(unsigned int i) const
void setQuality(int qual)
void setQuality2(int qual2)
unsigned int quality2() const
void getTofDataNohit(unsigned int iflag)
TofData * compareTofData(TofData *tofData1, TofData *tofData2, double zrhit)
double texpOuter(unsigned int i) const
unsigned int quality1() const
void findTofDataMRPC(std::vector< TofData * > tofDataVec1, std::vector< TofData * > tofDataVec2, double zrhit, unsigned int iflag)
double texpInner(unsigned int i) const
int kal(unsigned int i) const
void convert2RecTofTrackCol(RecTofTrackCol *recTofTrackCol)
double tof21(unsigned int i) const
MrpcCalibSvc * mrpcCaliSvc
void setRecTofTrack(RecTofTrack *track, int layerorend)
TofData * chooseTofDataEndcap(std::vector< TofData * > tofDataVec, double zr1[5])
void tofDataAnalysis(TofData *tof, unsigned int iflag)
void setFlag(unsigned int flag)
double tof12(unsigned int i) const
void setExtTrack(RecExtTrack *extTrack, int kal[5], double t0, int t0Stat)
void findTofDataBarrel(std::vector< TofData * > tofDataVec1, std::vector< TofData * > tofDataVec2, double zrhit, unsigned int iflag, std::vector< MrpcTrack * > *&tofTrackVec)
void findTofDataEndcap(std::vector< TofData * > tofDataVec1, std::vector< TofData * > tofDataVec2, double zr1[5])
int get_mrpc_stripid_neighbour(std::string, int, int)
std::vector< TofData * > tofData2() const
unsigned int flag() const