File indexing completed on 2024-09-07 04:37:25
0001 #ifndef _BTAGGER_SIGNEDIMPACTPARAMETER3D_H_
0002 #define _BTAGGER_SIGNEDIMPACTPARAMETER3D_H_
0003 #include "TrackingTools/TrajectoryState/interface/TrajectoryStateOnSurface.h"
0004 #include "DataFormats/GeometryCommonDetAlgo/interface/Measurement1D.h"
0005 #include "TrackingTools/TransientTrack/interface/TransientTrack.h"
0006 #include "DataFormats/VertexReco/interface/Vertex.h"
0007 #include "DataFormats/GeometryVector/interface/GlobalVector.h"
0008 #include <utility>
0009
0010
0011
0012
0013 class SignedImpactParameter3D {
0014 public:
0015
0016
0017 SignedImpactParameter3D() {}
0018
0019 std::pair<bool, Measurement1D> apply(const reco::TransientTrack &,
0020 const GlobalVector &direction,
0021 const reco::Vertex &vertex) const;
0022
0023 int id() const { return 2; }
0024
0025
0026
0027
0028
0029
0030 static std::pair<double, Measurement1D> distanceWithJetAxis(const reco::TransientTrack &transientTrack,
0031 const GlobalVector &direction,
0032 const reco::Vertex &vertex);
0033
0034 private:
0035 static GlobalVector distance(const TrajectoryStateOnSurface &, const reco::Vertex &, const GlobalVector &);
0036
0037 static TrajectoryStateOnSurface closestApproachToJet(const FreeTrajectoryState &,
0038 const reco::Vertex &,
0039 const GlobalVector &,
0040 const MagneticField *);
0041 };
0042
0043 #endif