Belle II Software  release-05-02-19
ParticleConstraint.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * See https://github.com/tferber/OrcaKinfit, forked from *
4  * https://github.com/iLCSoft/MarlinKinfit *
5  * *
6  * Further information about the fit engine and the user interface *
7  * provided in MarlinKinfit can be found at *
8  * https://www.desy.de/~blist/kinfit/doc/html/ *
9  * and in the LCNotes LC-TOOL-2009-001 and LC-TOOL-2009-004 available *
10  * from http://www-flc.desy.de/lcnotes/ *
11  * *
12  * Adopted by: Torben Ferber (torben.ferber@desy.de) (TF) *
13  * *
14  * This software is provided "as is" without any warranty. *
15  **************************************************************************/
16 
17 #ifndef __PARTICLECONSTRAINT_H
18 #define __PARTICLECONSTRAINT_H
19 
20 #include<vector>
21 #include<cassert>
22 #include "analysis/OrcaKinFit/BaseHardConstraint.h"
23 
24 namespace Belle2 {
30  namespace OrcaKinFit {
31 
32  class ParticleFitObject;
33 
34 // Class ParticleConstraint:
36 
73  class ParticleConstraint: public BaseHardConstraint {
74  public:
76  inline ParticleConstraint();
78  virtual ~ParticleConstraint() {};
79 
81  virtual void setFOList(std::vector <ParticleFitObject*>* fitobjects_
82  )
83  {
84  for (int i = 0; i < (int) fitobjects_->size(); i++) {
85  fitobjects.push_back(reinterpret_cast < BaseFitObject* >((*fitobjects_)[i]));
86  flags.push_back(1);
87  }
88  };
90  virtual void addToFOList(ParticleFitObject& fitobject, int flag = 1
91  )
92  {
93  fitobjects.push_back(reinterpret_cast < BaseFitObject* >(&fitobject));
94  flags.push_back(flag);
95  };
97  virtual void resetFOList()
98  {
99  fitobjects.resize(0);
100  flags.resize(0);
101  };
102 
104  virtual void invalidateCache() const
105  {}
106 
107  protected:
108 
109  };
110 
112 
113  }// end OrcaKinFit namespace
115 } // end Belle2 namespace
116 
117 #endif // __PARTICLECONSTRAINT_H
Belle2::OrcaKinFit::ParticleConstraint::~ParticleConstraint
virtual ~ParticleConstraint()
Virtual destructor.
Definition: ParticleConstraint.h:92
Belle2::OrcaKinFit::ParticleConstraint::invalidateCache
virtual void invalidateCache() const
Invalidates any cached values for the next event.
Definition: ParticleConstraint.h:118
Belle2::OrcaKinFit::BaseHardConstraint::fitobjects
FitObjectContainer fitobjects
The FitObjectContainer.
Definition: BaseHardConstraint.h:191
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::OrcaKinFit::ParticleConstraint::addToFOList
virtual void addToFOList(ParticleFitObject &fitobject, int flag=1)
Adds one ParticleFitObject objects to the list.
Definition: ParticleConstraint.h:104
Belle2::OrcaKinFit::BaseHardConstraint::flags
std::vector< int > flags
The flags can be used to divide the FitObjectContainer into several subsets used for example to imple...
Definition: BaseHardConstraint.h:196
Belle2::OrcaKinFit::ParticleConstraint::resetFOList
virtual void resetFOList()
Resests ParticleFitObject list.
Definition: ParticleConstraint.h:111
Belle2::OrcaKinFit::ParticleConstraint::setFOList
virtual void setFOList(std::vector< ParticleFitObject * > *fitobjects_)
Adds several ParticleFitObject objects to the list.
Definition: ParticleConstraint.h:95
Belle2::OrcaKinFit::ParticleConstraint::ParticleConstraint
ParticleConstraint()
Creates an empty ParticleConstraint object.
Definition: ParticleConstraint.h:125