MarlinKinfit  0.4.0
ParticleConstraint.h
Go to the documentation of this file.
1 
41 #ifndef __PARTICLECONSTRAINT_H
42 #define __PARTICLECONSTRAINT_H
43 
44 #include<vector>
45 #include<cassert>
46 #include "BaseHardConstraint.h"
47 
48 class ParticleFitObject;
49 
50 // Class ParticleConstraint:
52 
90  public:
92  inline ParticleConstraint();
94  virtual ~ParticleConstraint() {};
95 
97  virtual void setFOList(std::vector <ParticleFitObject*> *fitobjects_
98  ){
99  for (int i = 0; i < (int) fitobjects_->size(); i++) {
100  fitobjects.push_back ( reinterpret_cast < BaseFitObject* > ( (*fitobjects_)[i] ) );
101  flags.push_back (1);
102  }
103  };
105  virtual void addToFOList(ParticleFitObject& fitobject, int flag = 1
106  ){
107  fitobjects.push_back ( reinterpret_cast < BaseFitObject* > ( &fitobject ) );
108  flags.push_back (flag);
109  };
111  virtual void resetFOList(){
112  fitobjects.resize (0);
113  flags.resize (0);
114  };
115 
117  virtual void invalidateCache() const
118  {}
119 
120  protected:
121 
122 };
123 
125 // : fitobjects( FitObjectContainer() ), derivatives( std::vector <double> () ), flags( std::vector <int> () ), globalNum(-999)
126 {
127  invalidateCache();
128 }
129 
130 #endif // __PARTICLECONSTRAINT_H
ParticleConstraint()
Creates an empty ParticleConstraint object.
Definition: ParticleConstraint.h:124
virtual void invalidateCache() const
Invalidates any cached values for the next event.
Definition: ParticleConstraint.h:117
virtual void setFOList(std::vector< ParticleFitObject * > *fitobjects_)
Adds several ParticleFitObject objects to the list.
Definition: ParticleConstraint.h:97
Abstract base class for constraints of kinematic fits.
Definition: ParticleConstraint.h:89
FitObjectContainer fitobjects
The FitObjectContainer.
Definition: BaseHardConstraint.h:171
virtual void resetFOList()
Resests ParticleFitObject list.
Definition: ParticleConstraint.h:111
Declares class BaseHardConstraint.
virtual void addToFOList(ParticleFitObject &fitobject, int flag=1)
Adds one ParticleFitObject objects to the list.
Definition: ParticleConstraint.h:105
std::vector< int > flags
The flags can be used to divide the FitObjectContainer into several subsets used for example to imple...
Definition: BaseHardConstraint.h:176
Abstract base class for particle objects of kinematic fits.
Definition: ParticleFitObject.h:63
Abstract base class for constraints of kinematic fits.
Definition: BaseHardConstraint.h:69
virtual ~ParticleConstraint()
Virtual destructor.
Definition: ParticleConstraint.h:94