Belle II Software  release-08-01-10
BaseTracer.h
Go to the documentation of this file.
1 /**************************************************************************
2  * basf2 (Belle II Analysis Software Framework) *
3  * Author: The Belle II Collaboration *
4  * *
5  * Forked from https://github.com/iLCSoft/MarlinKinfit *
6  * *
7  * Further information about the fit engine and the user interface *
8  * provided in MarlinKinfit can be found at *
9  * https://www.desy.de/~blist/kinfit/doc/html/ *
10  * and in the LCNotes LC-TOOL-2009-001 and LC-TOOL-2009-004 available *
11  * from http://www-flc.desy.de/lcnotes/ *
12  * *
13  * See git log for contributors and copyright holders. *
14  * This file is licensed under LGPL-3.0, see LICENSE.md. *
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
Abstract base class for fitting engines of kinematic fits.
Definition: BaseFitter.h:47
Abstract base class for trace objects of kinematic fits.
Definition: BaseTracer.h:70
virtual void step(BaseFitter &fitter)
Called at the end of each step.
Definition: BaseTracer.cc:35
virtual void initialize(BaseFitter &fitter)
Called at the start of a new fit (during initialization)
Definition: BaseTracer.cc:30
virtual void finish(BaseFitter &fitter)
Called at the end of a fit.
Definition: BaseTracer.cc:45
virtual void substep(BaseFitter &fitter, int flag)
Called at intermediate points during a step.
Definition: BaseTracer.cc:40
Abstract base class for different kinds of events.