Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 //
0002 //
0003 
0004 #ifndef PhysicsTools_PatUtils_LeptonVertexSignificance_h
0005 #define PhysicsTools_PatUtils_LeptonVertexSignificance_h
0006 
0007 /**
0008   \class    pat::LeptonVertexSignificance LeptonVertexSignificance.h "PhysicsTools/PatUtils/interface/LeptonVertexSignificance.h"
0009   \brief    Calculates a lepton's vertex association significance
0010 
0011    LeptonVertexSignificance calculates the significance of the association
0012    of the lepton to a given vertex, as defined in CMS Note 2006/024
0013 
0014   \author   Steven Lowette
0015 */
0016 
0017 #include "DataFormats/VertexReco/interface/Vertex.h"
0018 #include "DataFormats/VertexReco/interface/VertexFwd.h"
0019 #include "FWCore/Utilities/interface/InputTag.h"
0020 
0021 class TransientTrackBuilder;
0022 
0023 namespace reco {
0024   class Track;
0025 }
0026 
0027 namespace pat {
0028   class Electron;
0029   class Muon;
0030 
0031   class LeptonVertexSignificance {
0032   public:
0033     LeptonVertexSignificance() = default;
0034     ~LeptonVertexSignificance() = default;
0035 
0036     //NOTE: expects vertices from "offlinePrimaryVerticesFromCTFTracks"
0037     static edm::InputTag vertexCollectionTag();
0038 
0039     //NOTE: expects TransientTrackBuilder to be a copy of one from record TransientTrackRecord with label "TransientTrackBuilder"
0040     float calculate(const Electron& anElectron,
0041                     const reco::VertexCollection& vertices,
0042                     const TransientTrackBuilder& builder);
0043     float calculate(const Muon& aMuon, const reco::VertexCollection& vertices, const TransientTrackBuilder& builder);
0044 
0045   private:
0046     float calculate(const reco::Track& track,
0047                     const reco::VertexCollection& vertices,
0048                     const TransientTrackBuilder& builder);
0049   };
0050 
0051 }  // namespace pat
0052 
0053 #endif