1 #ifndef _DKinFitConstraints_P4_
2 #define _DKinFitConstraints_P4_
26 void Set_InitP3Guess(
const TVector3& locInitP3Guess){dInitP3Guess = locInitP3Guess;};
32 shared_ptr<DKinFitParticle> Get_MissingParticle(
void)
const;
33 shared_ptr<DKinFitParticle> Get_OpenEndedDecayingParticle(
void)
const;
34 shared_ptr<DKinFitParticle> Get_DefinedParticle(
void)
const;
35 bool Get_IsDefinedParticleInFinalState(
void)
const;
37 set<shared_ptr<DKinFitParticle>> Get_AllParticles(
void)
const;
38 void Print_ConstraintInfo(
void)
const;
47 void Set_InitialParticles(
const set<shared_ptr<DKinFitParticle>>& locInitialParticles){dInitialParticles = locInitialParticles;}
48 void Set_FinalParticles(
const set<shared_ptr<DKinFitParticle>>& locFinalParticles){dFinalParticles = locFinalParticles;}
65 dInitP3Guess = TVector3(0.0, 0.0, 0.0);
66 dInitialParticles.clear();
67 dFinalParticles.clear();
72 dInitialParticles.clear();
73 dFinalParticles.clear();
78 set<shared_ptr<DKinFitParticle>> locAllParticles;
79 set_union(dInitialParticles.begin(), dInitialParticles.end(), dFinalParticles.begin(), dFinalParticles.end(), inserter(locAllParticles, locAllParticles.begin()));
80 return locAllParticles;
85 auto locAllParticles = Get_AllParticles();
86 for(
auto& locParticle : locAllParticles)
97 auto locAllParticles = Get_AllParticles();
98 for(
auto& locParticle : locAllParticles)
104 auto locFromFinalState = locParticle->Get_FromFinalState();
105 set<shared_ptr<DKinFitParticle>> locMatchingParticles;
106 set_intersection(locFromFinalState.begin(), locFromFinalState.end(), locAllParticles.begin(), locAllParticles.end(), inserter(locMatchingParticles, locMatchingParticles.begin()));
107 if(!locMatchingParticles.empty())
115 auto locKinFitParticle = Get_MissingParticle();
116 if(locKinFitParticle != NULL)
117 return locKinFitParticle;
118 return Get_OpenEndedDecayingParticle();
124 auto locDefinedParticle = Get_DefinedParticle();
125 if(locDefinedParticle == NULL)
128 return (dFinalParticles.find(locDefinedParticle) != dFinalParticles.end());
133 cout <<
"DKinFitConstraint_P4: Initial-state particle PID's, pointers: " << endl;
134 for(
auto& locParticle : dInitialParticles)
135 cout << locParticle->Get_PID() <<
", " << locParticle << endl;
137 cout <<
"DKinFitConstraint_P4: Final-state particle PID's, pointers: " << endl;
138 for(
auto& locParticle : dFinalParticles)
139 cout << locParticle->Get_PID() <<
", " << locParticle << endl;
142 #endif // _DKinFitConstraint_P4_
shared_ptr< DKinFitParticle > Get_MissingParticle(void) const
void Set_InitP3Guess(const TVector3 &locInitP3Guess)
set< shared_ptr< DKinFitParticle > > dFinalParticles
char Get_FIndex(void) const
~DKinFitConstraint_P4(void)
shared_ptr< DKinFitParticle > Get_DefinedParticle(void) const
set< shared_ptr< DKinFitParticle > > dInitialParticles
set< shared_ptr< DKinFitParticle > > Get_FinalParticles(void) const
DKinFitConstraint_P4(void)
shared_ptr< DKinFitParticle > Get_OpenEndedDecayingParticle(void) const
void Set_FinalParticles(const set< shared_ptr< DKinFitParticle >> &locFinalParticles)
TVector3 Get_InitP3Guess(void) const
void Set_FIndex(char locFIndex)
void Print_ConstraintInfo(void) const
bool Get_IsDefinedParticleInFinalState(void) const
set< shared_ptr< DKinFitParticle > > Get_AllParticles(void) const
void Set_InitialParticles(const set< shared_ptr< DKinFitParticle >> &locInitialParticles)
set< shared_ptr< DKinFitParticle > > Get_InitialParticles(void) const