Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:27:42

0001 // -*- C++ -*-
0002 //
0003 // Package:    VertexFromTrackProducer
0004 // Class:      VertexFromTrackProducer
0005 //
0006 /**\class VertexFromTrackProducer VertexFromTrackProducer.cc RecoVertex/PrimaryVertexProducer/src/VertexFromTrackProducer.cc
0007 
0008  Description: produces a primary vertex extrapolating the track of a candidate on the beam axis
0009 
0010  Implementation:
0011      <Notes on implementation>
0012 */
0013 //
0014 // Original Author:  Andreas Hinzmann
0015 //         Created:  Tue Dec 6 17:16:45 CET 2011
0016 //
0017 //
0018 
0019 #include <memory>
0020 
0021 #include "FWCore/Framework/interface/Frameworkfwd.h"
0022 #include "FWCore/Framework/interface/global/EDProducer.h"
0023 #include "FWCore/Framework/interface/Event.h"
0024 #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h"
0025 #include "DataFormats/BeamSpot/interface/BeamSpot.h"
0026 #include "DataFormats/VertexReco/interface/Vertex.h"
0027 #include "DataFormats/VertexReco/interface/VertexFwd.h"
0028 #include "DataFormats/TrackReco/interface/Track.h"
0029 #include "DataFormats/RecoCandidate/interface/RecoCandidate.h"
0030 #include "DataFormats/HLTReco/interface/TriggerFilterObjectWithRefs.h"
0031 
0032 class VertexFromTrackProducer : public edm::global::EDProducer<> {
0033 public:
0034   explicit VertexFromTrackProducer(const edm::ParameterSet&);
0035 
0036   void produce(edm::StreamID, edm::Event&, const edm::EventSetup&) const override;
0037 
0038   static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
0039 
0040 private:
0041   // tokens
0042   const edm::EDGetTokenT<edm::View<reco::Track> > trackToken;
0043   const edm::EDGetTokenT<edm::View<reco::RecoCandidate> > candidateToken;
0044   const edm::EDGetTokenT<trigger::TriggerFilterObjectWithRefs> triggerFilterElectronsSrc;
0045   const edm::EDGetTokenT<trigger::TriggerFilterObjectWithRefs> triggerFilterMuonsSrc;
0046   const edm::EDGetTokenT<edm::View<reco::Vertex> > vertexLabel;
0047   const edm::EDGetTokenT<reco::BeamSpot> beamSpotLabel;
0048 
0049   // ----------member data ---------------------------
0050   const bool fIsRecoCandidate;
0051   const bool fUseBeamSpot;
0052   const bool fUseVertex;
0053   const bool fUseTriggerFilterElectrons, fUseTriggerFilterMuons;
0054   const bool fVerbose;
0055 };