1 #ifndef _DChargedTrackHypothesis_
2 #define _DChargedTrackHypothesis_
24 bool locShareTimingFlag =
false,
bool locShareKinematicsFlag =
false);
32 void Share_FromInput(
const DChargedTrackHypothesis* locSourceData,
bool locShareTrackingFlag,
bool locShareTimingFlag,
bool locShareKinematicsFlag);
42 double t0(
void)
const{
return dTimingInfo->dt0;}
43 double t0_err(
void)
const{
return dTimingInfo->dt0_err;}
44 double t1(
void)
const;
45 double t1_err(
void)
const;
51 double Get_PathLength(
void)
const;
52 double measuredBeta(
void)
const{
return Get_PathLength()/(29.9792458*(
t1() - t0()));}
55 unsigned int Get_NDF(
void)
const{
return dTimingInfo->dNDF;}
56 double Get_ChiSq(
void)
const{
return dTimingInfo->dChiSq;}
57 double Get_FOM(
void)
const{
return dTimingInfo->dFOM;}
60 shared_ptr<const DSCHitMatchParams>
Get_SCHitMatchParams(
void)
const{
return dTrackingInfo->dSCHitMatchParams;}
61 shared_ptr<const DTOFHitMatchParams>
Get_TOFHitMatchParams(
void)
const{
return dTrackingInfo->dTOFHitMatchParams;}
64 shared_ptr<const DDIRCMatchParams>
Get_DIRCMatchParams(
void)
const{
return dTrackingInfo->dDIRCMatchParams;}
71 void Set_T0(
double locT0,
double locT0Error,
DetectorSystem_t locT0Detector);
73 void Set_ChiSq_Timing(
double locChiSq,
unsigned int locNDF);
74 void Set_ChiSq_Overall(
double locChiSq,
unsigned int locNDF,
double locFOM);
78 void Set_ChiSq_DCdEdx(
double locChiSq,
unsigned int locNDF);
81 void Set_SCHitMatchParams(shared_ptr<const DSCHitMatchParams> locMatchParams){dTrackingInfo->dSCHitMatchParams = locMatchParams;}
82 void Set_TOFHitMatchParams(shared_ptr<const DTOFHitMatchParams> locMatchParams){dTrackingInfo->dTOFHitMatchParams = locMatchParams;}
83 void Set_BCALShowerMatchParams(shared_ptr<const DBCALShowerMatchParams> locMatchParams){dTrackingInfo->dBCALShowerMatchParams = locMatchParams;}
84 void Set_FCALShowerMatchParams(shared_ptr<const DFCALShowerMatchParams> locMatchParams){dTrackingInfo->dFCALShowerMatchParams = locMatchParams;}
85 void Set_DIRCMatchParams(shared_ptr<const DDIRCMatchParams> locMatchParams){dTrackingInfo->dDIRCMatchParams = locMatchParams;}
87 void toStrings(vector<pair<string,string> > &items)
const
89 AddString(items,
"candidate",
"%d", dTrackingInfo->dTrackTimeBased->candidateid);
91 AddString(items,
"Track_ChiSq",
"%f", dTrackingInfo->dTrackTimeBased->chisq);
92 AddString(items,
"dEdx_ChiSq",
"%f", dTrackingInfo->dChiSq_DCdEdx);
93 AddString(items,
"TOF_ChiSq",
"%f", dTimingInfo->dChiSq_Timing);
94 AddString(items,
"PID_ChiSq",
"%f", dTimingInfo->dChiSq);
95 AddString(items,
"PID_FOM",
"%f", dTimingInfo->dFOM);
106 double dt0_err = 0.0;
109 unsigned int dNDF_Timing = 0;
110 double dChiSq_Timing = 0.0;
113 unsigned int dNDF = 0;
126 double dTimeAtPOCAToVertex = 0.0;
135 unsigned int dNDF_DCdEdx = 0;
136 double dChiSq_DCdEdx = 0.0;
140 shared_ptr<const DSCHitMatchParams> dSCHitMatchParams =
nullptr;
141 shared_ptr<const DTOFHitMatchParams> dTOFHitMatchParams =
nullptr;
142 shared_ptr<const DBCALShowerMatchParams> dBCALShowerMatchParams =
nullptr;
143 shared_ptr<const DFCALShowerMatchParams> dFCALShowerMatchParams =
nullptr;
144 shared_ptr<const DDIRCMatchParams> dDIRCMatchParams =
nullptr;
150 shared_ptr<DTimingInfo> dTimingInfo =
nullptr;
151 shared_ptr<DTrackingInfo> dTrackingInfo =
nullptr;
161 dTimingInfo(dResourcePool_TimingInfo->Get_SharedResource()), dTrackingInfo(dResourcePool_TrackingInfo->Get_SharedResource()) {}
164 bool locShareTimingFlag,
bool locShareKinematicsFlag) :
DKinematicData(locSourceData, locShareKinematicsFlag)
167 if(locShareTrackingFlag)
175 if(locShareTimingFlag)
223 auto locPathLength = 0.0;
233 return std::numeric_limits<double>::quiet_NaN();
244 else if(locDetector ==
SYS_TOF)
250 return std::numeric_limits<double>::quiet_NaN();
258 else if(locDetector ==
SYS_TOF)
264 return std::numeric_limits<double>::quiet_NaN();
271 if(locShareTrackingFlag)
273 if(locShareTimingFlag)
275 if(locShareKinematicsFlag)
336 dTrackTimeBased =
nullptr;
337 dSCHitMatchParams =
nullptr;
338 dTOFHitMatchParams =
nullptr;
339 dBCALShowerMatchParams =
nullptr;
340 dFCALShowerMatchParams =
nullptr;
343 #endif // _DChargedTrackHypothesis_
double dTimeAtPOCAToVertex
void Set_ChiSq_Overall(double locChiSq, unsigned int locNDF, double locFOM)
virtual void Release(void)
double Get_ChiSq_Timing(void) const
DChargedTrackHypothesis & operator=(const DChargedTrackHypothesis &locSourceData)
void Set_DIRCMatchParams(shared_ptr< const DDIRCMatchParams > locMatchParams)
void Set_TrackTimeBased(const DTrackTimeBased *locTrackTimeBased)
void Set_FCALShowerMatchParams(shared_ptr< const DFCALShowerMatchParams > locMatchParams)
double Get_TimeAtPOCAToVertex(void) const
const DTrackTimeBased * Get_TrackTimeBased(void) const
void Set_BCALShowerMatchParams(shared_ptr< const DBCALShowerMatchParams > locMatchParams)
DKinematicData & operator=(const DKinematicData &locSourceData)
static thread_local shared_ptr< DResourcePool< DTrackingInfo > > dResourcePool_TrackingInfo
double measuredBeta(void) const
shared_ptr< DTrackingInfo > dTrackingInfo
double t0_err(void) const
unsigned int Get_NDF_Timing(void) const
double Get_PathLength(void) const
shared_ptr< const DTOFHitMatchParams > Get_TOFHitMatchParams(void) const
void Set_T0(double locT0, double locT0Error, DetectorSystem_t locT0Detector)
void Set_ChiSq_DCdEdx(double locChiSq, unsigned int locNDF)
double Get_ChiSq(void) const
unsigned int Get_NDF_DCdEdx(void) const
void Set_TimeAtPOCAToVertex(double locTimeAtPOCAToVertex)
void Share_FromInput(const DChargedTrackHypothesis *locSourceData, bool locShareTrackingFlag, bool locShareTimingFlag, bool locShareKinematicsFlag)
double Get_FOM(void) const
void Share_FromInput_Kinematics(const DKinematicData *locSourceData)
shared_ptr< DTimingInfo > dTimingInfo
shared_ptr< const DDIRCMatchParams > Get_DIRCMatchParams(void) const
void Set_SCHitMatchParams(shared_ptr< const DSCHitMatchParams > locMatchParams)
shared_ptr< const DSCHitMatchParams > Get_SCHitMatchParams(void) const
DLorentzVector lorentzMomentum(void) const
shared_ptr< const DFCALShowerMatchParams > Get_FCALShowerMatchParams(void) const
double Get_ChiSq_DCdEdx(void) const
unsigned int Get_NDF(void) const
double t1_err(void) const
DetectorSystem_t t0_detector(void) const
void Set_TOFHitMatchParams(shared_ptr< const DTOFHitMatchParams > locMatchParams)
shared_ptr< const DBCALShowerMatchParams > Get_BCALShowerMatchParams(void) const
void toStrings(vector< pair< string, string > > &items) const
DetectorSystem_t dt0_detector
DChargedTrackHypothesis(void)
static thread_local shared_ptr< DResourcePool< DTimingInfo > > dResourcePool_TimingInfo
DetectorSystem_t t1_detector(void) const
void toStrings(vector< pair< string, string > > &items) const
void Set_ChiSq_Timing(double locChiSq, unsigned int locNDF)