Go to the documentation of this file.00001 #ifndef SingleTrackVertexConstraint_H
00002 #define SingleTrackVertexConstraint_H
00003
00004 #include "RecoVertex/KalmanVertexFit/interface/KalmanVertexUpdator.h"
00005 #include "RecoVertex/VertexPrimitives/interface/VertexSmoother.h"
00006 #include "RecoVertex/KalmanVertexFit/interface/KalmanVertexTrackUpdator.h"
00007
00008 #include "RecoVertex/VertexTools/interface/LinearizedTrackStateFactory.h"
00009 #include "RecoVertex/VertexTools/interface/VertexTrackFactory.h"
00010 #include "TrackingTools/TransientTrack/interface/TransientTrackFromFTSFactory.h"
00011 #include "boost/tuple/tuple.hpp"
00020 class SingleTrackVertexConstraint {
00021
00022 public:
00023
00024 typedef std::pair<reco::TransientTrack, float> TrackFloatPair;
00025 typedef boost::tuple<bool, reco::TransientTrack, float> BTFtuple;
00026
00027 SingleTrackVertexConstraint(bool doTrackerBoundCheck = true) :
00028 doTrackerBoundCheck_(doTrackerBoundCheck){}
00029
00034 BTFtuple constrain(const reco::TransientTrack & track,
00035 const GlobalPoint& priorPos, const GlobalError& priorError) const;
00036
00041 BTFtuple constrain(const FreeTrajectoryState & fts,
00042 const GlobalPoint& priorPos, const GlobalError& priorError) const;
00043
00048 BTFtuple constrain(const reco::TransientTrack & track,
00049 const VertexState priorVertex) const;
00050
00054 BTFtuple constrain(const reco::TransientTrack & track,
00055 const reco::BeamSpot & spot ) const;
00056
00057
00061 BTFtuple constrain(const FreeTrajectoryState & fts,
00062 const reco::BeamSpot & spot) const;
00063
00064
00065 private:
00066
00067 KalmanVertexUpdator<5> vertexUpdator;
00068 KalmanVertexTrackUpdator<5> theVertexTrackUpdator;
00069
00070 LinearizedTrackStateFactory theLTrackFactory;
00071 VertexTrackFactory<5> theVTrackFactory;
00072 TransientTrackFromFTSFactory ttFactory;
00073 bool doTrackerBoundCheck_;
00074
00075 };
00076
00077 #endif