CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_1_8_patch9/src/RecoVertex/KinematicFitPrimitives/interface/VirtualKinematicParticle.h

Go to the documentation of this file.
00001 #ifndef VirtualKinematicParticle_H
00002 #define VirtualKinematicParticle_H
00003 
00004 #include "RecoVertex/KinematicFitPrimitives/interface/KinematicParticle.h"
00005 #include "RecoVertex/KinematicFitPrimitives/interface/KinematicStatePropagator.h"
00006 #include "RecoVertex/KinematicFitPrimitives/interface/ParticleKinematicLinearizedTrackStateFactory.h"
00007 
00014 class VirtualKinematicParticle:public KinematicParticle
00015 {
00016  public:
00017 
00025   VirtualKinematicParticle(const KinematicState& kineState,float& chiSquared,
00026                          float& degreesOfFr, KinematicConstraint * lastConstraint,
00027                      ReferenceCountingPointer<KinematicParticle> previousParticle,
00028                                                    KinematicStatePropagator * pr);
00029  
00030  virtual ~VirtualKinematicParticle();
00031  
00039   bool operator==(const KinematicParticle& other)const;
00040 
00041   bool operator==(const ReferenceCountingPointer<KinematicParticle>& other) const;
00042 
00043   bool operator!=(const KinematicParticle& other)const;
00044 
00049  KinematicState stateAtPoint(const GlobalPoint& point)const;
00050  
00056  RefCountedKinematicParticle refittedParticle(const KinematicState& state,
00057                                float chi2, float ndf, KinematicConstraint * cons = 0)const;
00058                                
00063  RefCountedLinearizedTrackState particleLinearizedTrackState(const GlobalPoint& point)const; 
00064                                 
00065  private:
00066  
00067 //propagator for kinematic states
00068  KinematicStatePropagator * propagator;  
00069  
00070 //LinearizedTrackStateFactory  specific for this
00071 //type of particle
00072  ParticleKinematicLinearizedTrackStateFactory linFactory;
00073 };
00074 #endif