CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Attributes
PFDisplacedVertexProducer Class Reference

Producer for DisplacedVertices. More...

#include <PFDisplacedVertexProducer.h>

Inheritance diagram for PFDisplacedVertexProducer:
edm::EDProducer edm::ProducerBase edm::ProductRegistryHelper

Public Member Functions

virtual void beginJob ()
 
virtual void beginRun (edm::Run &r, const edm::EventSetup &c)
 
 PFDisplacedVertexProducer (const edm::ParameterSet &)
 
virtual void produce (edm::Event &, const edm::EventSetup &)
 
 ~PFDisplacedVertexProducer ()
 
- Public Member Functions inherited from edm::EDProducer
 EDProducer ()
 
virtual ~EDProducer ()
 
- Public Member Functions inherited from edm::ProducerBase
 ProducerBase ()
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
boost::function< void(const
BranchDescription &)> 
registrationCallback () const
 used by the fwk to register list of products More...
 
virtual ~ProducerBase ()
 

Private Attributes

edm::InputTag inputTagBeamSpot_
 
edm::InputTag inputTagMainVertex_
 Input tag for main vertex to cut of dxy of secondary tracks. More...
 
edm::InputTag inputTagVertexCandidates_
 
PFDisplacedVertexFinder pfDisplacedVertexFinder_
 Displaced Vertices finder. More...
 
bool verbose_
 verbose ? More...
 

Additional Inherited Members

- Public Types inherited from edm::EDProducer
typedef EDProducer ModuleType
 
typedef WorkerT< EDProducerWorkerType
 
- Public Types inherited from edm::ProducerBase
typedef
ProductRegistryHelper::TypeLabelList 
TypeLabelList
 
- Static Public Member Functions inherited from edm::EDProducer
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from edm::EDProducer
CurrentProcessingContext const * currentContext () const
 
- Protected Member Functions inherited from edm::ProducerBase
template<class TProducer , class TMethod >
void callWhenNewProductsRegistered (TProducer *iProd, TMethod iMethod)
 

Detailed Description

Producer for DisplacedVertices.

This producer makes use of DisplacedVertexFinder. This Finder fit vertex candidates out of the DisplacedVertexCandidates which contain all tracks linked together by the criterion which is by default the minimal approach distance.

Author
Maxime Gouzevitch
Date
November 2009

Definition at line 25 of file PFDisplacedVertexProducer.h.

Constructor & Destructor Documentation

PFDisplacedVertexProducer::PFDisplacedVertexProducer ( const edm::ParameterSet iConfig)
explicit

Definition at line 27 of file PFDisplacedVertexProducer.cc.

References debug, edm::ParameterSet::getParameter(), and edm::ParameterSet::getUntrackedParameter().

27  {
28 
29  // --- Setup input collection names --- //
30 
32  = iConfig.getParameter<InputTag>("vertexCandidatesLabel");
33 
35  = iConfig.getParameter<InputTag>("mainVertexLabel");
36 
38  = iConfig.getParameter<InputTag>("offlineBeamSpotLabel");
39 
40  verbose_ =
41  iConfig.getUntrackedParameter<bool>("verbose");
42 
43  bool debug =
44  iConfig.getUntrackedParameter<bool>("debug");
45 
46  // ------ Algo Parameters ------ //
47 
48  // Maximal transverse distance between two minimal
49  // approach points to be used together
50  double transvSize
51  = iConfig.getParameter< double >("transvSize");
52 
53  // Maximal longitudinal distance between two minimal
54  // approach points to be used together
55  double longSize
56  = iConfig.getParameter< double >("longSize");
57 
58  // Minimal radius below which we do not reconstruct interactions
59  // Typically the position of the first Pixel layer
60  double primaryVertexCut
61  = iConfig.getParameter< double >("primaryVertexCut");
62 
63  // Radius at which no secondary tracks are availables
64  // in the barrel.For the moment we exclude the TOB barrel
65  // since 5-th track step starts the latest at first TOB
66  // layer.
67  double tobCut
68  = iConfig.getParameter< double >("tobCut");
69 
70  // Radius at which no secondary tracks are availables
71  // in the endcaps.For the moment we exclude the TEC wheel.
72  double tecCut
73  = iConfig.getParameter< double >("tecCut");
74 
75  // The minimal accepted weight for the tracks calculated in the
76  // adaptive vertex fitter to be associated to the displaced vertex
77  double minAdaptWeight
78  = iConfig.getParameter< double >("minAdaptWeight");
79 
80  edm::ParameterSet ps_trk = iConfig.getParameter<edm::ParameterSet>("tracksSelectorParameters");
81  edm::ParameterSet ps_vtx = iConfig.getParameter<edm::ParameterSet>("vertexIdentifierParameters");
82  edm::ParameterSet ps_avf = iConfig.getParameter<edm::ParameterSet>("avfParameters");
83 
84  produces<reco::PFDisplacedVertexCollection>();
85 
86  // Vertex Finder parameters -----------------------------------
88  pfDisplacedVertexFinder_.setParameters(transvSize, longSize,
89  primaryVertexCut, tobCut,
90  tecCut, minAdaptWeight);
94 
95 }
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
PFDisplacedVertexFinder pfDisplacedVertexFinder_
Displaced Vertices finder.
void setDebug(bool debug)
Sets debug printout flag.
void setVertexIdentifier(edm::ParameterSet ps)
void setAVFParameters(edm::ParameterSet ps)
void setTracksSelector(edm::ParameterSet ps)
edm::InputTag inputTagMainVertex_
Input tag for main vertex to cut of dxy of secondary tracks.
#define debug
Definition: MEtoEDMFormat.h:34
void setParameters(double transvSize, double longSize, double primaryVertexCut, double tobCut, double tecCut, double minAdaptWeight)
--—— Set different algo parameters --—— ///
PFDisplacedVertexProducer::~PFDisplacedVertexProducer ( )

Definition at line 99 of file PFDisplacedVertexProducer.cc.

99 { }

Member Function Documentation

void PFDisplacedVertexProducer::beginJob ( void  )
virtual

Reimplemented from edm::EDProducer.

Definition at line 104 of file PFDisplacedVertexProducer.cc.

104 { }
void PFDisplacedVertexProducer::beginRun ( edm::Run r,
const edm::EventSetup c 
)
virtual

Reimplemented from edm::EDProducer.

Definition at line 107 of file PFDisplacedVertexProducer.cc.

108  { }
void PFDisplacedVertexProducer::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
virtual

Implements edm::EDProducer.

Definition at line 112 of file PFDisplacedVertexProducer.cc.

References gather_cfg::cout, edm::EventID::event(), edm::EventSetup::get(), edm::Event::getByLabel(), edm::EventBase::id(), LogDebug, edm::ESHandle< class >::product(), edm::Event::put(), and edm::EventID::run().

113  {
114 
115  LogDebug("PFDisplacedVertexProducer")<<"START event: "<<iEvent.id().event()
116  <<" in run "<<iEvent.id().run()<<endl;
117 
118  // Prepare useful information for the Finder
119 
120  ESHandle<MagneticField> magField;
121  iSetup.get<IdealMagneticFieldRecord>().get(magField);
122  const MagneticField* theMagField = magField.product();
123 
124  ESHandle<GlobalTrackingGeometry> globTkGeomHandle;
125  iSetup.get<GlobalTrackingGeometryRecord>().get(globTkGeomHandle);
126 
127  ESHandle<TrackerGeometry> tkerGeomHandle;
128  iSetup.get<TrackerDigiGeometryRecord>().get(tkerGeomHandle);
129 
131  iEvent.getByLabel(inputTagVertexCandidates_, vertexCandidates);
132 
133  Handle< reco::VertexCollection > mainVertexHandle;
134  iEvent.getByLabel(inputTagMainVertex_, mainVertexHandle);
135 
136  Handle< reco::BeamSpot > beamSpotHandle;
137  iEvent.getByLabel(inputTagBeamSpot_, beamSpotHandle);
138 
139  // Fill useful event information for the Finder
140  pfDisplacedVertexFinder_.setEdmParameters(theMagField, globTkGeomHandle, tkerGeomHandle);
141  pfDisplacedVertexFinder_.setPrimaryVertex(mainVertexHandle, beamSpotHandle);
142  pfDisplacedVertexFinder_.setInput(vertexCandidates);
143 
144  // Run the finder
146 
147 
148  if(verbose_) {
149  ostringstream str;
150  //str<<pfDisplacedVertexFinder_<<endl;
152  LogInfo("PFDisplacedVertexProducer") << str.str()<<endl;
153  }
154 
155 
156  auto_ptr< reco::PFDisplacedVertexCollection >
157  pOutputDisplacedVertexCollection(
159 
160 
161 
162  iEvent.put(pOutputDisplacedVertexCollection);
163 
164  LogDebug("PFDisplacedVertexProducer")<<"STOP event: "<<iEvent.id().event()
165  <<" in run "<<iEvent.id().run()<<endl;
166 
167 }
#define LogDebug(id)
RunNumber_t run() const
Definition: EventID.h:42
EventNumber_t event() const
Definition: EventID.h:44
PFDisplacedVertexFinder pfDisplacedVertexFinder_
Displaced Vertices finder.
void setEdmParameters(const MagneticField *magField, edm::ESHandle< GlobalTrackingGeometry > globTkGeomHandle, edm::ESHandle< TrackerGeometry > tkerGeomHandle)
Sets parameters for track extrapolation and hits study.
void findDisplacedVertices()
-----— Main function which find vertices -----— ///
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
Definition: Event.h:84
std::auto_ptr< reco::PFDisplacedVertexCollection > transferDisplacedVertices()
void setInput(const edm::Handle< reco::PFDisplacedVertexCandidateCollection > &)
Set input collections of tracks.
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:355
void setPrimaryVertex(edm::Handle< reco::VertexCollection > mainVertexHandle, edm::Handle< reco::BeamSpot > beamSpotHandle)
const T & get() const
Definition: EventSetup.h:55
T const * product() const
Definition: ESHandle.h:62
edm::EventID id() const
Definition: EventBase.h:56
edm::InputTag inputTagMainVertex_
Input tag for main vertex to cut of dxy of secondary tracks.
tuple cout
Definition: gather_cfg.py:41

Member Data Documentation

edm::InputTag PFDisplacedVertexProducer::inputTagBeamSpot_
private

Definition at line 46 of file PFDisplacedVertexProducer.h.

edm::InputTag PFDisplacedVertexProducer::inputTagMainVertex_
private

Input tag for main vertex to cut of dxy of secondary tracks.

Definition at line 45 of file PFDisplacedVertexProducer.h.

edm::InputTag PFDisplacedVertexProducer::inputTagVertexCandidates_
private

Collection of DisplacedVertex Candidates used as input for the Displaced VertexFinder.

Definition at line 42 of file PFDisplacedVertexProducer.h.

PFDisplacedVertexFinder PFDisplacedVertexProducer::pfDisplacedVertexFinder_
private

Displaced Vertices finder.

Definition at line 52 of file PFDisplacedVertexProducer.h.

bool PFDisplacedVertexProducer::verbose_
private

verbose ?

Definition at line 49 of file PFDisplacedVertexProducer.h.