1 #ifndef _DKinFitConstraints_Spacetime_
2 #define _DKinFitConstraints_Spacetime_
8 #include "TLorentzVector.h"
30 TLorentzVector Get_CommonSpacetime(
void)
const;
31 double Get_CommonTime(
void)
const;
33 char Get_CommonTParamIndex(
void)
const;
36 set<shared_ptr<DKinFitParticle>> Get_AllConstrainingParticles(
void)
const;
37 set<shared_ptr<DKinFitParticle>> Get_AllParticles(
void)
const;
39 void Print_ConstraintInfo(
void)
const;
46 void Set_CommonTime(
double locTime);
47 void Set_CommonVertex(
const TVector3& locVertex);
48 void Set_CommonSpacetime(TLorentzVector& locSpacetime);
50 void Set_CommonTParamIndex(
char locCommonTParamIndex);
51 void Set_OnlyConstrainTimeParticles(
const set<shared_ptr<DKinFitParticle>>& locOnlyConstrainTimeParticles){dOnlyConstrainTimeParticles = locOnlyConstrainTimeParticles;}
67 dOnlyConstrainTimeParticles.clear();
73 dOnlyConstrainTimeParticles.clear();
78 set<shared_ptr<DKinFitParticle>> locAllParticles;
80 set_union(locBaseParticles.begin(), locBaseParticles.end(), dOnlyConstrainTimeParticles.begin(), dOnlyConstrainTimeParticles.end(), inserter(locAllParticles, locAllParticles.begin()));
81 return locAllParticles;
86 set<shared_ptr<DKinFitParticle>> locAllConstrainedParticles;
87 set_union(dFullConstrainParticles.begin(), dFullConstrainParticles.end(), dOnlyConstrainTimeParticles.begin(), dOnlyConstrainTimeParticles.end(), inserter(locAllConstrainedParticles, locAllConstrainedParticles.begin()));
88 return locAllConstrainedParticles;
93 return TLorentzVector(Get_CommonVertex(), Get_CommonTime());
98 if(dFullConstrainParticles.empty())
100 return (*dFullConstrainParticles.begin())->Get_CommonVxParamIndex();
105 for(
auto& locParticle : dFullConstrainParticles)
106 locParticle->Set_CommonTime(locTime);
107 for(
auto& locParticle : dNoConstrainParticles)
111 locParticle->Set_Time(locTime);
113 locParticle->Set_CommonTime(locTime);
115 for(
auto& locParticle : dOnlyConstrainTimeParticles)
116 locParticle->Set_CommonTime(locTime);
122 for(
auto& locParticle : dOnlyConstrainTimeParticles)
123 locParticle->Set_CommonVertex(locVertex);
129 Set_CommonTime(locSpacetime.T());
134 for(
auto& locParticle : dFullConstrainParticles)
135 locParticle->Set_CommonTParamIndex(locCommonTParamIndex);
136 for(
auto& locParticle : dOnlyConstrainTimeParticles)
137 locParticle->Set_CommonTParamIndex(locCommonTParamIndex);
138 for(
auto& locParticle : dNoConstrainParticles)
142 locParticle->Set_TParamIndex(locCommonTParamIndex);
144 locParticle->Set_CommonTParamIndex(locCommonTParamIndex);
150 if(dFullConstrainParticles.empty())
152 return (*dFullConstrainParticles.begin())->Get_CommonTParamIndex();
159 cout <<
"DKinFitConstraint_Spacetime: Only-time-constrained particle PID's, pointers: " << endl;
160 for(
auto& locParticle : dOnlyConstrainTimeParticles)
161 cout << locParticle->Get_PID() <<
", " << locParticle << endl;
164 #endif // _DKinFitConstraint_Spacetime_
~DKinFitConstraint_Spacetime(void)
void Set_CommonTime(double locTime)
void Set_CommonSpacetime(TLorentzVector &locSpacetime)
void Set_CommonTParamIndex(char locCommonTParamIndex)
virtual void Release(void)
void Print_ConstraintInfo(void) const
set< shared_ptr< DKinFitParticle > > dOnlyConstrainTimeParticles
TLorentzVector Get_CommonSpacetime(void) const
set< shared_ptr< DKinFitParticle > > Get_AllConstrainingParticles(void) const
DKinFitConstraint_Spacetime(void)
set< shared_ptr< DKinFitParticle > > Get_OnlyConstrainTimeParticles(void) const
virtual void Set_CommonVertex(const TVector3 &locVertex)
void Set_InitTimeGuess(double locInitTimeGuess)
set< shared_ptr< DKinFitParticle > > Get_AllParticles(void) const
double Get_CommonTime(void) const
void Set_CommonVertex(const TVector3 &locVertex)
virtual set< shared_ptr< DKinFitParticle > > Get_AllParticles(void) const
char Get_CommonTParamIndex(void) const
void Set_OnlyConstrainTimeParticles(const set< shared_ptr< DKinFitParticle >> &locOnlyConstrainTimeParticles)
double Get_InitTimeGuess(void) const
void Print_ConstraintInfo(void) const