Go to the documentation of this file.00001 #ifndef _BTAGGER_SIGNEDIMPACTPARAMETER3D_H_
00002 #define _BTAGGER_SIGNEDIMPACTPARAMETER3D_H_
00003 #include "TrackingTools/TrajectoryState/interface/TrajectoryStateOnSurface.h"
00004 #include "DataFormats/GeometryCommonDetAlgo/interface/Measurement1D.h"
00005 #include "TrackingTools/TransientTrack/interface/TransientTrack.h"
00006 #include "DataFormats/VertexReco/interface/Vertex.h"
00007 #include "DataFormats/GeometryVector/interface/GlobalVector.h"
00008 #include <utility>
00013 class SignedImpactParameter3D {
00014
00015 public:
00016
00017
00018
00019 SignedImpactParameter3D(){};
00020
00021 std::pair<bool,Measurement1D> apply( const reco::TransientTrack &, const GlobalVector & direction, const reco::Vertex & vertex) const;
00022
00023 int id() const {return 2;}
00024
00030 static std::pair<double,Measurement1D> distanceWithJetAxis(const reco::TransientTrack & transientTrack, const GlobalVector & direction, const reco::Vertex & vertex) ;
00031
00032 private:
00033
00034 static GlobalVector distance(const TrajectoryStateOnSurface &, const reco::Vertex &, const GlobalVector &) ;
00035
00036 static TrajectoryStateOnSurface closestApproachToJet(const FreeTrajectoryState &, const reco::Vertex &, const GlobalVector &, const MagneticField *) ;
00037
00038 };
00039
00040 #endif
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050