Belle II Software  release-05-01-25
BaseTracer.h
Go to the documentation of this file.
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 
33 #ifndef __BASETRACER_H
34 #define __BASETRACER_H
35 
36 #include <vector>
37 
38 namespace Belle2 {
44  namespace OrcaKinFit {
45 
46  class BaseFitter;
47  class BaseFitObject;
48  class BaseConstraint;
49  class BaseHardConstraint;
50  class BaseSoftConstraint;
51 
52 // Class BaseTracer
54 
70  class BaseTracer {
71  public:
72  BaseTracer();
73 
74  virtual ~BaseTracer();
75 
77  virtual void initialize(BaseFitter& fitter);
78 
80  virtual void step(BaseFitter& fitter);
81 
83  virtual void substep(BaseFitter& fitter,
84  int flag
85  );
86 
88  virtual void finish(BaseFitter& fitter);
89 
90  virtual void setNextTracer(BaseTracer* next_);
91  virtual void setNextTracer(BaseTracer& next_);
92  virtual BaseTracer* getNextTracer();
93 
94  protected:
95 
96  typedef std::vector <BaseFitObject*> FitObjectContainer;
97  typedef std::vector <BaseHardConstraint*> ConstraintContainer;
98  typedef std::vector <BaseSoftConstraint*> SoftConstraintContainer;
99 
100  typedef FitObjectContainer::iterator FitObjectIterator;
101  typedef ConstraintContainer::iterator ConstraintIterator;
102  typedef SoftConstraintContainer::iterator SoftConstraintIterator;
103 
104  BaseTracer* next;
105  };
106 
107  }// end OrcaKinFit namespace
109 } // end Belle2 namespace
110 
111 
112 #endif // __BASETRACER_H
Belle2::OrcaKinFit::BaseFitter
Abstract base class for fitting engines of kinematic fits.
Definition: BaseFitter.h:61
Belle2::OrcaKinFit::BaseTracer::step
virtual void step(BaseFitter &fitter)
Called at the end of each step.
Definition: BaseTracer.cc:49
Belle2::OrcaKinFit::BaseTracer
Abstract base class for trace objects of kinematic fits.
Definition: BaseTracer.h:70
Belle2::OrcaKinFit::BaseTracer::initialize
virtual void initialize(BaseFitter &fitter)
Called at the start of a new fit (during initialization)
Definition: BaseTracer.cc:44
Belle2::OrcaKinFit::BaseTracer::finish
virtual void finish(BaseFitter &fitter)
Called at the end of a fit.
Definition: BaseTracer.cc:59
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::OrcaKinFit::BaseTracer::substep
virtual void substep(BaseFitter &fitter, int flag)
Called at intermediate points during a step.
Definition: BaseTracer.cc:54