CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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 {
23 public:
24 
26 
28  friend class KinematicTree;
29 
36 
37  virtual ~KinematicParticle();
38 
47  virtual bool operator==(const KinematicParticle& other)const = 0;
48 
49  virtual bool operator==(const ReferenceCountingPointer<KinematicParticle>& other) const = 0;
50 
51  virtual bool operator!=(const KinematicParticle& other) const = 0;
52 
58  virtual bool operator<(const KinematicParticle& other)const;
59 
64  virtual KinematicState initialState()const;
65 
69  virtual KinematicState currentState()const;
70 
76  virtual KinematicState stateAtPoint(const GlobalPoint& point)const = 0;
77 
85  float chi2, float ndf, KinematicConstraint * cons = 0) const = 0;
86 
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 
128  virtual void setTreePointer(KinematicTree * tr) const;
129 
136 
137 //pointer to the tree current
138 //particle belongs to
139  mutable KinematicTree * tree;
140 
141 //last constraint applied
143 
144 //previous particle
146 
147 //initial kinematic state of
148 //current particle
150 
151 //particle state at point
153 
154 //chi2 and number of degrees of freedom
155  float chi2;
156 
157  float ndf;
158 };
159 #endif
KinematicTree * tree
ReferenceCountingPointer< LinearizedTrackState< 6 > > RefCountedLinearizedTrackState
ReferenceCountingPointer< KinematicParticle > pState
virtual float chiSquared() const
virtual float degreesOfFreedom() const
virtual ~KinematicParticle()
KinematicState cState
virtual RefCountedLinearizedTrackState particleLinearizedTrackState(const GlobalPoint &point) const =0
virtual bool operator==(const KinematicParticle &other) const =0
KinematicConstraint * lConstraint
virtual KinematicTree * correspondingTree() const
virtual bool operator<(const KinematicParticle &other) const
KinematicState initState
virtual void setTreePointer(KinematicTree *tr) const
virtual ReferenceCountingPointer< KinematicParticle > refittedParticle(const KinematicState &state, float chi2, float ndf, KinematicConstraint *cons=0) const =0
const MagneticField * theField
virtual KinematicConstraint * lastConstraint() const
virtual KinematicState initialState() const
reco::TransientTrack refittedTransientTrack() const
virtual KinematicState stateAtPoint(const GlobalPoint &point) const =0
virtual bool operator!=(const KinematicParticle &other) const =0
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