![]() |
![]() |
Producer for DisplacedVertices. More...
#include <PFDisplacedVertexCandidateProducer.h>
Public Member Functions | |
PFDisplacedVertexCandidateProducer (const edm::ParameterSet &) | |
virtual void | produce (edm::Event &, const edm::EventSetup &) override |
~PFDisplacedVertexCandidateProducer () | |
Private Attributes | |
edm::InputTag | inputTagBeamSpot_ |
edm::InputTag | inputTagMainVertex_ |
Input tag for main vertex to cut of dxy of secondary tracks. | |
edm::InputTag | inputTagTracks_ |
Reco Tracks used to spot the nuclear interactions. | |
PFDisplacedVertexCandidateFinder | pfDisplacedVertexCandidateFinder_ |
Displaced Vertex Candidates finder. | |
bool | verbose_ |
verbose ? |
Producer for DisplacedVertices.
This producer makes use of DisplacedVertexCandidateFinder. This Finder loop recursively over reco::Tracks to find those which are linked together by the criterion which is by default the minimal approach distance.
Definition at line 25 of file PFDisplacedVertexCandidateProducer.h.
PFDisplacedVertexCandidateProducer::PFDisplacedVertexCandidateProducer | ( | const edm::ParameterSet & | iConfig | ) | [explicit] |
Definition at line 22 of file PFDisplacedVertexCandidateProducer.cc.
References debug, edm::ParameterSet::getParameter(), and edm::ParameterSet::getUntrackedParameter().
{ // --- Setup input collection names --- // inputTagTracks_ = iConfig.getParameter<InputTag>("trackCollection"); inputTagMainVertex_ = iConfig.getParameter<InputTag>("mainVertexLabel"); inputTagBeamSpot_ = iConfig.getParameter<InputTag>("offlineBeamSpotLabel"); verbose_ = iConfig.getUntrackedParameter<bool>("verbose"); bool debug = iConfig.getUntrackedParameter<bool>("debug"); // ------ Algo Parameters ------ // // Distance of minimal approach below which // two tracks are considered as linked together double dcaCut = iConfig.getParameter< double >("dcaCut"); // Do not reconstruct vertices wich are // too close to the beam pipe double primaryVertexCut = iConfig.getParameter< double >("primaryVertexCut"); //maximum distance between the DCA Point and the inner hit of the track double dcaPInnerHitCut = iConfig.getParameter< double >("dcaPInnerHitCut"); edm::ParameterSet ps_trk = iConfig.getParameter<edm::ParameterSet>("tracksSelectorParameters"); // Collection to be produced produces<reco::PFDisplacedVertexCandidateCollection>(); // Vertex Finder parameters ----------------------------------- pfDisplacedVertexCandidateFinder_.setDebug(debug); pfDisplacedVertexCandidateFinder_.setParameters(dcaCut, primaryVertexCut, dcaPInnerHitCut, ps_trk); }
PFDisplacedVertexCandidateProducer::~PFDisplacedVertexCandidateProducer | ( | ) |
Definition at line 69 of file PFDisplacedVertexCandidateProducer.cc.
{ }
void PFDisplacedVertexCandidateProducer::produce | ( | edm::Event & | iEvent, |
const edm::EventSetup & | iSetup | ||
) | [override, virtual] |
Implements edm::EDProducer.
Definition at line 73 of file PFDisplacedVertexCandidateProducer.cc.
References gather_cfg::cout, edm::EventID::event(), edm::EventSetup::get(), edm::Event::getByLabel(), edm::EventBase::id(), LogDebug, edm::ESHandle< T >::product(), edm::Event::put(), and edm::EventID::run().
{ LogDebug("PFDisplacedVertexCandidateProducer")<<"START event: "<<iEvent.id().event() <<" in run "<<iEvent.id().run()<<endl; // Prepare and fill useful event information for the Finder edm::ESHandle<MagneticField> magField; iSetup.get<IdealMagneticFieldRecord>().get(magField); const MagneticField* theMagField = magField.product(); Handle <reco::TrackCollection> trackCollection; iEvent.getByLabel(inputTagTracks_, trackCollection); Handle< reco::VertexCollection > mainVertexHandle; iEvent.getByLabel(inputTagMainVertex_, mainVertexHandle); Handle< reco::BeamSpot > beamSpotHandle; iEvent.getByLabel(inputTagBeamSpot_, beamSpotHandle); pfDisplacedVertexCandidateFinder_.setPrimaryVertex(mainVertexHandle, beamSpotHandle); pfDisplacedVertexCandidateFinder_.setInput( trackCollection, theMagField ); // Run the finder pfDisplacedVertexCandidateFinder_.findDisplacedVertexCandidates(); if(verbose_) { ostringstream str; str<<pfDisplacedVertexCandidateFinder_<<endl; cout << pfDisplacedVertexCandidateFinder_<<endl; LogInfo("PFDisplacedVertexCandidateProducer") << str.str()<<endl; } auto_ptr< reco::PFDisplacedVertexCandidateCollection > pOutputDisplacedVertexCandidateCollection( pfDisplacedVertexCandidateFinder_.transferVertexCandidates() ); iEvent.put(pOutputDisplacedVertexCandidateCollection); LogDebug("PFDisplacedVertexCandidateProducer")<<"STOP event: "<<iEvent.id().event() <<" in run "<<iEvent.id().run()<<endl; }
Definition at line 41 of file PFDisplacedVertexCandidateProducer.h.
Input tag for main vertex to cut of dxy of secondary tracks.
Definition at line 40 of file PFDisplacedVertexCandidateProducer.h.
Reco Tracks used to spot the nuclear interactions.
Definition at line 37 of file PFDisplacedVertexCandidateProducer.h.
PFDisplacedVertexCandidateFinder PFDisplacedVertexCandidateProducer::pfDisplacedVertexCandidateFinder_ [private] |
Displaced Vertex Candidates finder.
Definition at line 47 of file PFDisplacedVertexCandidateProducer.h.
bool PFDisplacedVertexCandidateProducer::verbose_ [private] |
verbose ?
Definition at line 44 of file PFDisplacedVertexCandidateProducer.h.