Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:24:23

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 /** Threedimensional track impact parameter signed according to the jet 
0010    *  direction
0011    */
0012 
0013 class SignedImpactParameter3D {
0014 public:
0015   // construct
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    Return a pair:
0027    first is the decay length
0028    second is the distance of the track from jet axis
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