CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_4_5_patch3/src/RecoVertex/KinematicFitPrimitives/interface/TransientTrackKinematicParticle.h

Go to the documentation of this file.
00001 #ifndef TransientTrackKinematicParticle_H
00002 #define TransientTrackKinematicParticle_H
00003 
00004 #include "TrackingTools/TransientTrack/interface/TransientTrack.h"
00005 #include "RecoVertex/KinematicFitPrimitives/interface/RefCountedKinematicParticle.h"
00006 #include "RecoVertex/KinematicFitPrimitives/interface/KinematicStatePropagator.h"
00007 #include "RecoVertex/KinematicFitPrimitives/interface/ParticleKinematicLinearizedTrackStateFactory.h"
00008 
00017 class TransientTrackKinematicParticle : public KinematicParticle
00018 {
00019 public:
00020  
00028  TransientTrackKinematicParticle(const KinematicState& kineState,float& chiSquared,
00029                        float& degreesOfFr,KinematicConstraint * lastConstraint,
00030                    ReferenceCountingPointer<KinematicParticle> previousParticle,
00031                    KinematicStatePropagator * pr,const reco::TransientTrack * initialTrack = 0);
00032                         
00033  virtual ~TransientTrackKinematicParticle();
00034                                            
00042   bool operator==(const KinematicParticle& other)const;
00043 
00044   bool operator==(const ReferenceCountingPointer<KinematicParticle>& other) const;
00045 
00046   bool operator!=(const KinematicParticle& other)const;
00047   
00052  KinematicState stateAtPoint(const GlobalPoint& point)const;
00053  
00057  const reco::TransientTrack * initialTransientTrack() const;
00058 
00064  ReferenceCountingPointer<KinematicParticle> refittedParticle(const KinematicState& state,
00065                             float chi2, float ndf, KinematicConstraint * cons = 0)const;
00066                             
00071  RefCountedLinearizedTrackState particleLinearizedTrackState(const GlobalPoint& point)const; 
00072 
00073 
00074 private: 
00075 
00076 //initial TransientTrack (if any) 
00077  const reco::TransientTrack * inTrack;
00078   
00079 //propagator for kinematic states
00080  KinematicStatePropagator * propagator;  
00081 
00082 //LinearizedTrackStateFactory  specific for this
00083 //type of particle
00084  ParticleKinematicLinearizedTrackStateFactory linFactory;
00085 };
00086 #endif