CMS 3D CMS Logo

KinematicParticle.h
Go to the documentation of this file.
1 #ifndef KinematicParticle_H
2 #define KinematicParticle_H
3 
7 
9 
19 class KinematicTree;
20 
22 public:
24 
26  friend class KinematicTree;
27 
34 
35  ~KinematicParticle() override;
36 
45  virtual bool operator==(const KinematicParticle& other) const = 0;
46 
47  virtual bool operator==(const ReferenceCountingPointer<KinematicParticle>& other) const = 0;
48 
49  virtual bool operator!=(const KinematicParticle& other) const = 0;
50 
56  virtual bool operator<(const KinematicParticle& other) const;
57 
62  virtual KinematicState initialState() const;
63 
67  virtual KinematicState currentState() const;
68 
74  virtual KinematicState stateAtPoint(const GlobalPoint& point) const = 0;
75 
83  float chi2,
84  float ndf,
85  KinematicConstraint* cons = nullptr) const = 0;
86 
92  virtual RefCountedLinearizedTrackState particleLinearizedTrackState(const GlobalPoint& point) const = 0;
93 
98  virtual KinematicConstraint* lastConstraint() const;
99 
105 
112  virtual KinematicTree* correspondingTree() const;
113 
118  virtual float chiSquared() const;
119 
120  virtual float degreesOfFreedom() const;
121 
122  const MagneticField* magneticField() const { return theField; }
123 
125 
126 protected:
127  virtual void setTreePointer(KinematicTree* tr) const;
128 
135 
136  //pointer to the tree current
137  //particle belongs to
138  mutable KinematicTree* tree;
139 
140  //last constraint applied
142 
143  //previous particle
145 
146  //initial kinematic state of
147  //current particle
149 
150  //particle state at point
152 
153  //chi2 and number of degrees of freedom
154  float chi2;
155 
156  float ndf;
157 };
158 #endif
KinematicTree * tree
ReferenceCountingPointer< LinearizedTrackState< 6 > > RefCountedLinearizedTrackState
ReferenceCountingPointer< KinematicParticle > pState
~KinematicParticle() override
virtual float chiSquared() const
virtual float degreesOfFreedom() const
virtual bool operator==(const KinematicParticle &other) const =0
virtual ReferenceCountingPointer< KinematicParticle > refittedParticle(const KinematicState &state, float chi2, float ndf, KinematicConstraint *cons=0) const =0
virtual RefCountedLinearizedTrackState particleLinearizedTrackState(const GlobalPoint &point) const =0
KinematicState cState
KinematicConstraint * lConstraint
virtual KinematicTree * correspondingTree() const
virtual bool operator<(const KinematicParticle &other) const
KinematicState initState
virtual bool operator!=(const KinematicParticle &other) const =0
virtual void setTreePointer(KinematicTree *tr) const
const MagneticField * theField
virtual KinematicConstraint * lastConstraint() const
virtual KinematicState stateAtPoint(const GlobalPoint &point) const =0
virtual KinematicState initialState() const
reco::TransientTrack refittedTransientTrack() const
const MagneticField * magneticField() const
virtual ReferenceCountingPointer< KinematicParticle > previousParticle() const
*vegas h *****************************************************used in the default bin number in original ***version of VEGAS is ***a higher bin number might help to derive a more precise ***grade subtle point
Definition: invegas.h:5
virtual KinematicState currentState() const