1 #ifndef _DKinFitConstraints_Vertex_
2 #define _DKinFitConstraints_Vertex_
30 TVector3 Get_CommonVertex(
void)
const;
31 char Get_CommonVxParamIndex(
void)
const;
32 char Get_FIndex(
const shared_ptr<DKinFitParticle>& locKinFitParticle)
const;
37 virtual set<shared_ptr<DKinFitParticle>> Get_AllParticles(
void)
const;
39 void Print_ConstraintInfo(
void)
const;
41 virtual void Reset(
void);
42 virtual void Release(
void);
46 void Set_FIndex(
const shared_ptr<DKinFitParticle>& locKinFitParticle,
char locFIndex){dConstraintEquationParticleMap[locKinFitParticle] = locFIndex;}
47 void Set_CommonVxParamIndex(
char locCommonVxParamIndex);
48 virtual void Set_CommonVertex(
const TVector3& locVertex);
50 void Set_FullConstrainParticles(
const set<shared_ptr<DKinFitParticle>>& locFullConstrainParticles){dFullConstrainParticles = locFullConstrainParticles;}
51 void Set_NoConstrainParticles(
const set<shared_ptr<DKinFitParticle>>& locNoConstrainParticles){dNoConstrainParticles = locNoConstrainParticles;}
69 dInitVertexGuess = TVector3(0.0, 0.0, 0.0);
70 dFullConstrainParticles.clear();
71 dNoConstrainParticles.clear();
72 dConstraintEquationParticleMap.clear();
77 dFullConstrainParticles.clear();
78 dNoConstrainParticles.clear();
79 dConstraintEquationParticleMap.clear();
84 auto locIterator = dConstraintEquationParticleMap.find(locKinFitParticle);
85 if(locIterator == dConstraintEquationParticleMap.end())
87 return locIterator->second;
92 set<shared_ptr<DKinFitParticle>> locAllParticles;
93 set_union(dFullConstrainParticles.begin(), dFullConstrainParticles.end(), dNoConstrainParticles.begin(), dNoConstrainParticles.end(), inserter(locAllParticles, locAllParticles.begin()));
94 return locAllParticles;
99 if(dFullConstrainParticles.empty())
101 return (*dFullConstrainParticles.begin())->Get_CommonVertex();
106 for(
auto& locParticle : dFullConstrainParticles)
107 locParticle->Set_CommonVertex(locVertex);
108 for(
auto& locParticle : dNoConstrainParticles)
110 auto locKinFitParticleType = locParticle->Get_KinFitParticleType();
112 locParticle->Set_Position(locVertex);
114 locParticle->Set_CommonVertex(locVertex);
120 if(dFullConstrainParticles.empty())
122 return (*dFullConstrainParticles.begin())->Get_CommonVxParamIndex();
127 for(
auto& locParticle : dFullConstrainParticles)
128 locParticle->Set_CommonVxParamIndex(locCommonVxParamIndex);
129 for(
auto& locParticle : dNoConstrainParticles)
133 locParticle->Set_VxParamIndex(locCommonVxParamIndex);
135 locParticle->Set_CommonVxParamIndex(locCommonVxParamIndex);
141 cout <<
"DKinFitConstraint_Vertex: Full-constrained particle PID's, pointers: " << endl;
142 for(
auto& locParticle : dFullConstrainParticles)
143 cout << locParticle->Get_PID() <<
", " << locParticle << endl;
145 cout <<
"DKinFitConstraint_Vertex: No-constrain particle PID's, pointers: " << endl;
146 for(
auto& locParticle : dNoConstrainParticles)
147 cout << locParticle->Get_PID() <<
", " << locParticle << endl;
150 #endif // _DKinFitConstraint_Vertex_
set< shared_ptr< DKinFitParticle > > dFullConstrainParticles
void Set_NoConstrainParticles(const set< shared_ptr< DKinFitParticle >> &locNoConstrainParticles)
TVector3 Get_CommonVertex(void) const
void Set_CommonVxParamIndex(char locCommonVxParamIndex)
set< shared_ptr< DKinFitParticle > > Get_NoConstrainParticles(void) const
map< shared_ptr< DKinFitParticle >, char > dConstraintEquationParticleMap
virtual void Release(void)
void Print_ConstraintInfo(void) const
char Get_FIndex(const shared_ptr< DKinFitParticle > &locKinFitParticle) const
void Set_InitVertexGuess(const TVector3 &locInitVertexGuess)
void Set_FIndex(const shared_ptr< DKinFitParticle > &locKinFitParticle, char locFIndex)
virtual ~DKinFitConstraint_Vertex(void)
virtual void Set_CommonVertex(const TVector3 &locVertex)
virtual set< shared_ptr< DKinFitParticle > > Get_AllConstrainingParticles(void) const
char Get_CommonVxParamIndex(void) const
TVector3 dInitVertexGuess
set< shared_ptr< DKinFitParticle > > dNoConstrainParticles
set< shared_ptr< DKinFitParticle > > Get_FullConstrainParticles(void) const
virtual set< shared_ptr< DKinFitParticle > > Get_AllParticles(void) const
DKinFitConstraint_Vertex(void)
void Set_FullConstrainParticles(const set< shared_ptr< DKinFitParticle >> &locFullConstrainParticles)
TVector3 Get_InitVertexGuess(void) const