8 #ifndef _DNeutralParticleHypothesis_
9 #define _DNeutralParticleHypothesis_
16 #include <JANA/JObject.h>
42 double t0(
void)
const{
return dTimingInfo->dt0;}
43 double t0_err(
void)
const{
return dTimingInfo->dt0_err;}
44 double t1(
void)
const{
return dNeutralShower->dSpacetimeVertex.T();}
45 double t1_err(
void)
const{
return (*(dNeutralShower->dCovarianceMatrix))(4, 4);}
48 double Get_PathLength(
void)
const{
return (dNeutralShower->dSpacetimeVertex.Vect() - position()).Mag();}
49 double measuredBeta(
void)
const{
return ((Get_PathLength()/(
t1() - t0())))/29.9792458;}
52 unsigned int Get_NDF(
void)
const{
return dTimingInfo->dNDF;}
53 double Get_ChiSq(
void)
const{
return dTimingInfo->dChiSq;}
54 double Get_FOM(
void)
const{
return dTimingInfo->dFOM;}
60 void Set_T0(
double locT0,
double locT0Error,
DetectorSystem_t locT0Detector);
61 void Set_ChiSq_Overall(
double locChiSq,
unsigned int locNDF,
double locFOM);
63 void toStrings(vector<pair<string,string> > &items)
const
66 AddString(items,
"PID_ChiSq",
"%f", Get_ChiSq());
67 AddString(items,
"PID_FOM",
"%f", Get_FOM());
80 unsigned int dNDF = 0;
86 shared_ptr<DTimingInfo> dTimingInfo =
nullptr;
97 dTimingInfo(dResourcePool_TimingInfo->Get_SharedResource()), dNeutralShower(nullptr) {}
100 bool locShareTimingFlag,
bool locShareKinematicsFlag) :
101 DKinematicData(locSourceData, locShareKinematicsFlag), dNeutralShower(nullptr)
104 if(locShareTimingFlag)
129 if(locShareTimingFlag)
131 if(locShareKinematicsFlag)
173 #endif // _DNeutralParticleHypothesis_
double t1_err(void) const
DetectorSystem_t t1_detector(void) const
void Set_T0(double locT0, double locT0Error, DetectorSystem_t locT0Detector)
virtual void Release(void)
unsigned int Get_NDF(void) const
DetectorSystem_t dt0_detector
double Get_FOM(void) const
void Set_ChiSq_Overall(double locChiSq, unsigned int locNDF, double locFOM)
double t0_err(void) const
double Get_PathLength(void) const
DKinematicData & operator=(const DKinematicData &locSourceData)
static thread_local shared_ptr< DResourcePool< DTimingInfo > > dResourcePool_TimingInfo
double Get_ChiSq(void) const
const DNeutralShower * Get_NeutralShower(void) const
void Share_FromInput_Kinematics(const DKinematicData *locSourceData)
void Set_NeutralShower(const DNeutralShower *locNeutralShower)
void Share_FromInput(const DNeutralParticleHypothesis *locSourceData, bool locShareTimingFlag, bool locShareKinematicsFlag)
const DNeutralShower * dNeutralShower
double measuredBeta(void) const
DNeutralParticleHypothesis & operator=(const DNeutralParticleHypothesis &locSourceData)
void toStrings(vector< pair< string, string > > &items) const
DetectorSystem_t t0_detector(void) const
void toStrings(vector< pair< string, string > > &items) const
shared_ptr< DTimingInfo > dTimingInfo
DNeutralParticleHypothesis(void)