Belle II Software development
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
38namespace 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.