![]() |
![]() |
00001 #ifndef TransientTrackKinematicStateBuilder_H 00002 #define TransientTrackKinematicStateBuilder_H 00003 00004 #include "RecoVertex/KinematicFitPrimitives/interface/KinematicState.h" 00005 #include "RecoVertex/KinematicFitPrimitives/interface/TrackKinematicStatePropagator.h" 00006 #include "RecoVertex/KinematicFitPrimitives/interface/PerigeeKinematicState.h" 00007 #include "TrackingTools/TransientTrack/interface/TransientTrack.h" 00008 #include "RecoVertex/KinematicFitPrimitives/interface/ParticleMass.h" 00009 #include "MagneticField/Engine/interface/MagneticField.h" 00010 00016 class TransientTrackKinematicStateBuilder 00017 { 00018 00019 public: 00020 TransientTrackKinematicStateBuilder(){} 00021 00022 ~TransientTrackKinematicStateBuilder(){} 00023 00028 KinematicState operator()(const reco::TransientTrack& track, const ParticleMass& m, float m_sigma) const ; 00029 00030 00031 00036 KinematicState operator()(const KinematicParameters& par, 00037 const KinematicParametersError& er, const TrackCharge& ch, 00038 const MagneticField* field) const; 00039 00045 KinematicState operator()(const reco::TransientTrack& track, const GlobalPoint& point, const ParticleMass& m, 00046 float m_sigma) const; 00047 00053 KinematicState operator()(const FreeTrajectoryState& state, const ParticleMass& mass, 00054 float m_sigma, const GlobalPoint& point) const; 00055 00056 PerigeeKinematicState operator()(const KinematicState& state, const GlobalPoint& point)const; 00057 00058 private: 00059 00060 KinematicState buildState(const FreeTrajectoryState & state, const ParticleMass& mass, 00061 float m_sigma)const; 00062 00063 00064 00065 00066 TrackKinematicStatePropagator propagator; 00067 00068 }; 00069 #endif