CMS 3D CMS Logo

IPTools.h

Go to the documentation of this file.
00001 #ifndef TrackingTools_IPTools_h
00002 #define TrackingTools_IPTools_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>
00009 #include "DataFormats/CLHEP/interface/Migration.h"
00010 #include "TrackingTools/PatternTools/interface/TransverseImpactPointExtrapolator.h"
00011 
00012  
00013 namespace IPTools
00014 {
00015         std::pair<bool,Measurement1D> signedTransverseImpactParameter(const reco::TransientTrack & track,
00016                  const GlobalVector & direction, const  reco::Vertex & vertex);
00017 
00018 
00019         inline  TrajectoryStateOnSurface transverseExtrapolate(const TrajectoryStateOnSurface & track,const GlobalPoint & vertexPosition, const MagneticField * field)
00020         {
00021                  TransverseImpactPointExtrapolator extrapolator(field);
00022                  return extrapolator.extrapolate(track, vertexPosition);
00023         }
00024 
00025 
00026 
00027         TrajectoryStateOnSurface closestApproachToJet(const TrajectoryStateOnSurface & state, const reco::Vertex & vertex,
00028                  const GlobalVector& aJetDirection,const MagneticField * field);
00029 
00030         GlobalVector linearImpactParameter(const TrajectoryStateOnSurface & aTSOS, const GlobalPoint & point);
00031 
00032         
00033         std::pair<bool,Measurement1D> signedImpactParameter3D(const TrajectoryStateOnSurface & state,
00034                  const GlobalVector & direction, const  reco::Vertex & vertex);
00035         
00036         inline std::pair<bool,Measurement1D> signedImpactParameter3D(const reco::TransientTrack & transientTrack,
00037                  const GlobalVector & direction, const  reco::Vertex & vertex)
00038         {
00039           // extrapolate to the point of closest approach to the jet axis
00040           TrajectoryStateOnSurface closestToJetState = closestApproachToJet(transientTrack.impactPointState(), vertex, direction,transientTrack.field());
00041          return signedImpactParameter3D(closestToJetState,direction,vertex);
00042         }
00043         
00044        std::pair<bool,Measurement1D> signedDecayLength3D(const TrajectoryStateOnSurface & state,
00045                  const GlobalVector & direction, const  reco::Vertex & vertex);
00046 
00047        inline std::pair<bool,Measurement1D> signedDecayLength3D(const reco::TransientTrack & transientTrack,
00048                  const GlobalVector & direction, const  reco::Vertex & vertex)
00049         {
00050           // extrapolate to the point of closest approach to the jet axis
00051           TrajectoryStateOnSurface closestToJetState = closestApproachToJet(transientTrack.impactPointState(), vertex, direction,transientTrack.field());
00052          return signedDecayLength3D(closestToJetState,direction,vertex);
00053         }
00054  
00055 
00056         std::pair<double,Measurement1D> jetTrackDistance(const reco::TransientTrack & track, const GlobalVector & direction,
00057                  const reco::Vertex & vertex);
00058 }
00059 
00060 #endif

Generated on Tue Jun 9 17:48:22 2009 for CMSSW by  doxygen 1.5.4