PandaRoot
AbsFitterInfo.h
Go to the documentation of this file.
1 /* Copyright 2008-2010, Technische Universitaet Muenchen,
2  Authors: Christian Hoeppner & Sebastian Neubert & Johannes Rauch
3 
4  This file is part of GENFIT.
5 
6  GENFIT is free software: you can redistribute it and/or modify
7  it under the terms of the GNU Lesser General Public License as published
8  by the Free Software Foundation, either version 3 of the License, or
9  (at your option) any later version.
10 
11  GENFIT is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  GNU Lesser General Public License for more details.
15 
16  You should have received a copy of the GNU Lesser General Public License
17  along with GENFIT. If not, see <http://www.gnu.org/licenses/>.
18 */
19 
24 #ifndef genfit_AbsFitterInfo_h
25 #define genfit_AbsFitterInfo_h
26 
27 #include "MeasurementOnPlane.h"
28 #include "FitStatus.h"
29 
30 #include <TObject.h>
31 #include <TVectorD.h>
32 
33 namespace genfit {
34 
35 class AbsTrackRep;
36 class TrackPoint;
37 
41 class AbsFitterInfo : public TObject {
42 
43  public:
44  AbsFitterInfo();
45  AbsFitterInfo(const TrackPoint *trackPoint, const AbsTrackRep *rep);
46 
47  virtual ~AbsFitterInfo(){};
48 
50  virtual AbsFitterInfo *clone() const = 0;
51 
52  const TrackPoint *getTrackPoint() const { return trackPoint_; }
53  const AbsTrackRep *getRep() const { return rep_; }
54 
55  void setTrackPoint(const TrackPoint *tp) { trackPoint_ = tp; }
56  virtual void setRep(const AbsTrackRep *rep) { rep_ = rep; }
57 
58  virtual bool hasMeasurements() const = 0;
59  virtual bool hasReferenceState() const = 0;
60  virtual bool hasForwardPrediction() const = 0;
61  virtual bool hasBackwardPrediction() const = 0;
62  virtual bool hasPrediction(int direction) const
63  {
64  if (direction >= 0)
65  return hasForwardPrediction();
66  return hasBackwardPrediction();
67  }
68  virtual bool hasForwardUpdate() const = 0;
69  virtual bool hasBackwardUpdate() const = 0;
70  virtual bool hasUpdate(int direction) const
71  {
72  if (direction >= 0)
73  return hasForwardUpdate();
74  return hasBackwardUpdate();
75  }
76 
77  virtual void deleteForwardInfo() = 0;
78  virtual void deleteBackwardInfo() = 0;
79  virtual void deleteReferenceInfo() = 0;
80  virtual void deleteMeasurementInfo() = 0;
81 
82  const SharedPlanePtr &getPlane() const { return sharedPlane_; }
83  virtual const MeasuredStateOnPlane &getFittedState(bool biased = true) const = 0;
84  virtual MeasurementOnPlane getResidual(unsigned int iMeasurement = 0, bool biased = true, bool onlyMeasurementErrors = false) const = 0;
85 
86  void setPlane(const SharedPlanePtr &plane) { sharedPlane_ = plane; }
87 
88  virtual void Print(const Option_t * = "") const { ; }
89 
90  virtual bool checkConsistency(const PruneFlags * = nullptr) const = 0;
91 
92  protected:
96 
99  const AbsTrackRep *rep_;
100 
102 
103  private:
104  AbsFitterInfo(const AbsFitterInfo &); // copy constructor
105  AbsFitterInfo &operator=(const AbsFitterInfo &); // assignment operator
106 
107  public:
108  ClassDef(AbsFitterInfo, 1)
109 };
110 
113 {
114  return a.clone();
115 }
116 
117 } /* End of namespace genfit */
120 #endif // genfit_AbsFitterInfo_h
void setPlane(const SharedPlanePtr &plane)
Definition: AbsFitterInfo.h:86
virtual bool hasUpdate(int direction) const
Definition: AbsFitterInfo.h:70
virtual void Print(const Option_t *="") const
Definition: AbsFitterInfo.h:88
virtual bool hasForwardUpdate() const =0
virtual bool hasMeasurements() const =0
virtual bool hasBackwardPrediction() const =0
Info which information has been pruned from the Track.
Definition: FitStatus.h:45
Abstract base class for a track representation.
Definition: AbsTrackRep.h:62
StateOnPlane with additional covariance matrix.
SharedPlanePtr sharedPlane_
No ownership.
This class collects all information needed and produced by a specific AbsFitter and is specific to on...
Definition: AbsFitterInfo.h:41
virtual void deleteBackwardInfo()=0
virtual void deleteReferenceInfo()=0
virtual void deleteMeasurementInfo()=0
const AbsTrackRep * rep_
No ownership.
Definition: AbsFitterInfo.h:99
void setTrackPoint(const TrackPoint *tp)
Definition: AbsFitterInfo.h:55
Measured coordinates on a plane.
virtual bool hasForwardPrediction() const =0
Object containing AbsMeasurement and AbsFitterInfo objects.
Definition: TrackPoint.h:49
virtual void setRep(const AbsTrackRep *rep)
Definition: AbsFitterInfo.h:56
virtual bool hasBackwardUpdate() const =0
const TrackPoint * trackPoint_
Definition: AbsFitterInfo.h:95
const TrackPoint * getTrackPoint() const
Definition: AbsFitterInfo.h:52
virtual bool hasReferenceState() const =0
boost::shared_ptr< genfit::DetPlane > SharedPlanePtr
Shared Pointer to a DetPlane.
virtual void deleteForwardInfo()=0
virtual AbsFitterInfo * clone() const =0
Deep copy ctor for polymorphic class.
const AbsTrackRep * getRep() const
Definition: AbsFitterInfo.h:53
virtual MeasurementOnPlane getResidual(unsigned int iMeasurement=0, bool biased=true, bool onlyMeasurementErrors=false) const =0
virtual bool checkConsistency(const PruneFlags *=nullptr) const =0
virtual bool hasPrediction(int direction) const
Definition: AbsFitterInfo.h:62
virtual const MeasuredStateOnPlane & getFittedState(bool biased=true) const =0
AbsFitterInfo * new_clone(const AbsFitterInfo &a)
Needed for boost cloneability:
Matrix inversion tools.
Definition: AbsBField.h:28
const SharedPlanePtr & getPlane() const
Definition: AbsFitterInfo.h:82