CMS 3D CMS Logo

List of all members | Classes | Public Member Functions | Static Public Member Functions | Private Attributes
PrimaryVertexProducer Class Reference

#include <RecoVertex/PrimaryVertexProducer/src/PrimaryVertexProducer.cc>

Inheritance diagram for PrimaryVertexProducer:
edm::stream::EDProducer<>

Classes

struct  algo
 

Public Member Functions

edm::ParameterSet config () const
 
 PrimaryVertexProducer (const edm::ParameterSet &)
 
void produce (edm::Event &, const edm::EventSetup &) override
 
 ~PrimaryVertexProducer () override
 
- Public Member Functions inherited from edm::stream::EDProducer<>
 EDProducer ()=default
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 

Private Attributes

std::vector< algoalgorithms
 
edm::EDGetTokenT< reco::BeamSpotbsToken
 
bool f4D
 
bool fRecoveryIteration
 
bool fVerbose
 
edm::EDGetTokenT< reco::VertexCollectionrecoveryVtxToken
 
edm::ParameterSet theConfig
 
TrackClusterizerInZtheTrackClusterizer
 
TrackFilterForPVFindingBasetheTrackFilter
 
const edm::ESGetToken< TransientTrackBuilder, TransientTrackRecordtheTTBToken
 
edm::EDGetTokenT< edm::ValueMap< float > > trkTimeResosToken
 
edm::EDGetTokenT< edm::ValueMap< float > > trkTimesToken
 
edm::EDGetTokenT< reco::TrackCollectiontrkToken
 

Additional Inherited Members

- Public Types inherited from edm::stream::EDProducer<>
typedef CacheContexts< T... > CacheTypes
 
typedef CacheTypes::GlobalCache GlobalCache
 
typedef AbilityChecker< T... > HasAbility
 
typedef CacheTypes::LuminosityBlockCache LuminosityBlockCache
 
typedef LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCacheLuminosityBlockContext
 
typedef CacheTypes::LuminosityBlockSummaryCache LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache, GlobalCacheRunContext
 
typedef CacheTypes::RunSummaryCache RunSummaryCache
 

Detailed Description

Description: steers tracker primary vertex reconstruction and storage

Implementation: <Notes on="" implementation>="">

Definition at line 56 of file PrimaryVertexProducer.h.

Constructor & Destructor Documentation

◆ PrimaryVertexProducer()

PrimaryVertexProducer::PrimaryVertexProducer ( const edm::ParameterSet conf)

Definition at line 18 of file PrimaryVertexProducer.cc.

19  : theTTBToken(esConsumes(edm::ESInputTag("", "TransientTrackBuilder"))), theConfig(conf) {
20  fVerbose = conf.getUntrackedParameter<bool>("verbose", false);
21 
22  trkToken = consumes<reco::TrackCollection>(conf.getParameter<edm::InputTag>("TrackLabel"));
23  bsToken = consumes<reco::BeamSpot>(conf.getParameter<edm::InputTag>("beamSpotLabel"));
24  f4D = false;
25 
26  // select and configure the track selection
27  std::string trackSelectionAlgorithm =
28  conf.getParameter<edm::ParameterSet>("TkFilterParameters").getParameter<std::string>("algorithm");
29  if (trackSelectionAlgorithm == "filter") {
30  theTrackFilter = new TrackFilterForPVFinding(conf.getParameter<edm::ParameterSet>("TkFilterParameters"));
31  } else if (trackSelectionAlgorithm == "filterWithThreshold") {
33  } else {
34  throw VertexException("PrimaryVertexProducer: unknown track selection algorithm: " + trackSelectionAlgorithm);
35  }
36 
37  // select and configure the track clusterizer
38  std::string clusteringAlgorithm =
39  conf.getParameter<edm::ParameterSet>("TkClusParameters").getParameter<std::string>("algorithm");
40  if (clusteringAlgorithm == "gap") {
42  conf.getParameter<edm::ParameterSet>("TkClusParameters").getParameter<edm::ParameterSet>("TkGapClusParameters"));
43  } else if (clusteringAlgorithm == "DA") {
45  conf.getParameter<edm::ParameterSet>("TkClusParameters").getParameter<edm::ParameterSet>("TkDAClusParameters"));
46  }
47  // provide the vectorized version of the clusterizer, if supported by the build
48  else if (clusteringAlgorithm == "DA_vect") {
50  conf.getParameter<edm::ParameterSet>("TkClusParameters").getParameter<edm::ParameterSet>("TkDAClusParameters"));
51  } else if (clusteringAlgorithm == "DA2D_vect") {
53  conf.getParameter<edm::ParameterSet>("TkClusParameters").getParameter<edm::ParameterSet>("TkDAClusParameters"));
54  f4D = true;
55  }
56 
57  else {
58  throw VertexException("PrimaryVertexProducer: unknown clustering algorithm: " + clusteringAlgorithm);
59  }
60 
61  if (f4D) {
62  trkTimesToken = consumes<edm::ValueMap<float> >(conf.getParameter<edm::InputTag>("TrackTimesLabel"));
63  trkTimeResosToken = consumes<edm::ValueMap<float> >(conf.getParameter<edm::InputTag>("TrackTimeResosLabel"));
64  }
65 
66  // select and configure the vertex fitters
67  if (conf.exists("vertexCollections")) {
68  std::vector<edm::ParameterSet> vertexCollections =
69  conf.getParameter<std::vector<edm::ParameterSet> >("vertexCollections");
70 
71  for (std::vector<edm::ParameterSet>::const_iterator algoconf = vertexCollections.begin();
72  algoconf != vertexCollections.end();
73  algoconf++) {
75  std::string fitterAlgorithm = algoconf->getParameter<std::string>("algorithm");
76  if (fitterAlgorithm == "KalmanVertexFitter") {
77  algorithm.fitter = new KalmanVertexFitter();
78  } else if (fitterAlgorithm == "AdaptiveVertexFitter") {
79  algorithm.fitter = new AdaptiveVertexFitter(GeometricAnnealing(algoconf->getParameter<double>("chi2cutoff")));
80  } else {
81  throw VertexException("PrimaryVertexProducer: unknown algorithm: " + fitterAlgorithm);
82  }
83  algorithm.label = algoconf->getParameter<std::string>("label");
84  algorithm.minNdof = algoconf->getParameter<double>("minNdof");
85  algorithm.useBeamConstraint = algoconf->getParameter<bool>("useBeamConstraint");
86  algorithm.vertexSelector =
87  new VertexCompatibleWithBeam(VertexDistanceXY(), algoconf->getParameter<double>("maxDistanceToBeam"));
88  algorithms.push_back(algorithm);
89 
90  produces<reco::VertexCollection>(algorithm.label);
91  }
92  } else {
93  edm::LogWarning("MisConfiguration")
94  << "this module's configuration has changed, please update to have a vertexCollections=cms.VPSet parameter.";
95 
97  std::string fitterAlgorithm = conf.getParameter<std::string>("algorithm");
98  if (fitterAlgorithm == "KalmanVertexFitter") {
99  algorithm.fitter = new KalmanVertexFitter();
100  } else if (fitterAlgorithm == "AdaptiveVertexFitter") {
101  algorithm.fitter = new AdaptiveVertexFitter();
102  } else {
103  throw VertexException("PrimaryVertexProducerAlgorithm: unknown algorithm: " + fitterAlgorithm);
104  }
105  algorithm.label = "";
106  algorithm.minNdof = conf.getParameter<double>("minNdof");
107  algorithm.useBeamConstraint = conf.getParameter<bool>("useBeamConstraint");
108 
109  algorithm.vertexSelector = new VertexCompatibleWithBeam(
111  conf.getParameter<edm::ParameterSet>("PVSelParameters").getParameter<double>("maxDistanceToBeam"));
112 
113  algorithms.push_back(algorithm);
114  produces<reco::VertexCollection>(algorithm.label);
115  }
116 
117  //check if this is a recovery iteration
118  fRecoveryIteration = conf.getParameter<bool>("isRecoveryIteration");
119  if (fRecoveryIteration) {
120  if (algorithms.empty()) {
121  throw VertexException("PrimaryVertexProducer: No algorithm specified. ");
122  } else if (algorithms.size() > 1) {
123  throw VertexException(
124  "PrimaryVertexProducer: Running in Recovery mode and more than one algorithm specified. Please "
125  "only one algorithm.");
126  }
127  recoveryVtxToken = consumes<reco::VertexCollection>(conf.getParameter<edm::InputTag>("recoveryVtxCollection"));
128  }
129 }

References qcdUeDQM_cfi::algorithm, algorithms, bsToken, edm::ParameterSet::exists(), f4D, fRecoveryIteration, fVerbose, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), recoveryVtxToken, AlCaHLTBitMon_QueryRunRegistry::string, theTrackClusterizer, theTrackFilter, trkTimeResosToken, trkTimesToken, trkToken, and HLT_FULL_cff::vertexCollections.

◆ ~PrimaryVertexProducer()

PrimaryVertexProducer::~PrimaryVertexProducer ( )
override

Definition at line 131 of file PrimaryVertexProducer.cc.

131  {
132  if (theTrackFilter)
133  delete theTrackFilter;
135  delete theTrackClusterizer;
136  for (std::vector<algo>::const_iterator algorithm = algorithms.begin(); algorithm != algorithms.end(); algorithm++) {
137  if (algorithm->fitter)
138  delete algorithm->fitter;
139  if (algorithm->vertexSelector)
140  delete algorithm->vertexSelector;
141  }
142 }

References qcdUeDQM_cfi::algorithm, algorithms, theTrackClusterizer, and theTrackFilter.

Member Function Documentation

◆ config()

edm::ParameterSet PrimaryVertexProducer::config ( void  ) const
inline

Definition at line 66 of file PrimaryVertexProducer.h.

66 { return theConfig; }

References theConfig.

◆ fillDescriptions()

void PrimaryVertexProducer::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 354 of file PrimaryVertexProducer.cc.

354  {
355  // offlinePrimaryVertices
357  {
359  vpsd1.add<double>("maxDistanceToBeam", 1.0);
360  vpsd1.add<std::string>("algorithm", "AdaptiveVertexFitter");
361  vpsd1.add<bool>("useBeamConstraint", false);
362  vpsd1.add<std::string>("label", "");
363  vpsd1.add<double>("chi2cutoff", 2.5);
364  vpsd1.add<double>("minNdof", 0.0);
365  std::vector<edm::ParameterSet> temp1;
366  temp1.reserve(2);
367  {
368  edm::ParameterSet temp2;
369  temp2.addParameter<double>("maxDistanceToBeam", 1.0);
370  temp2.addParameter<std::string>("algorithm", "AdaptiveVertexFitter");
371  temp2.addParameter<bool>("useBeamConstraint", false);
372  temp2.addParameter<std::string>("label", "");
373  temp2.addParameter<double>("chi2cutoff", 2.5);
374  temp2.addParameter<double>("minNdof", 0.0);
375  temp1.push_back(temp2);
376  }
377  {
378  edm::ParameterSet temp2;
379  temp2.addParameter<double>("maxDistanceToBeam", 1.0);
380  temp2.addParameter<std::string>("algorithm", "AdaptiveVertexFitter");
381  temp2.addParameter<bool>("useBeamConstraint", true);
382  temp2.addParameter<std::string>("label", "WithBS");
383  temp2.addParameter<double>("chi2cutoff", 2.5);
384  temp2.addParameter<double>("minNdof", 2.0);
385  temp1.push_back(temp2);
386  }
387  desc.addVPSet("vertexCollections", vpsd1, temp1);
388  }
389  desc.addUntracked<bool>("verbose", false);
390  {
393  psd0.add<int>("numTracksThreshold", 0); // HI only
394  desc.add<edm::ParameterSetDescription>("TkFilterParameters", psd0);
395  }
396  desc.add<edm::InputTag>("beamSpotLabel", edm::InputTag("offlineBeamSpot"));
397  desc.add<edm::InputTag>("TrackLabel", edm::InputTag("generalTracks"));
398  desc.add<edm::InputTag>("TrackTimeResosLabel", edm::InputTag("dummy_default")); // 4D only
399  desc.add<edm::InputTag>("TrackTimesLabel", edm::InputTag("dummy_default")); // 4D only
400 
401  {
403  {
406  psd0.add<edm::ParameterSetDescription>("TkDAClusParameters", psd1);
407 
410  psd0.add<edm::ParameterSetDescription>("TkGapClusParameters", psd2);
411  }
412  psd0.add<std::string>("algorithm", "DA_vect");
413  desc.add<edm::ParameterSetDescription>("TkClusParameters", psd0);
414  }
415 
416  desc.add<bool>("isRecoveryIteration", false);
417  desc.add<edm::InputTag>("recoveryVtxCollection", {""});
418 
419  descriptions.add("primaryVertexProducer", desc);
420 }

References edm::ConfigurationDescriptions::add(), edm::ParameterSetDescription::add(), edm::ParameterSet::addParameter(), submitPVResolutionJobs::desc, GapClusterizerInZ::fillPSetDescription(), TrackFilterForPVFinding::fillPSetDescription(), DAClusterizerInZT_vect::fillPSetDescription(), HLT_FULL_cff::InputTag, and AlCaHLTBitMon_QueryRunRegistry::string.

◆ produce()

void PrimaryVertexProducer::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
override

Definition at line 144 of file PrimaryVertexProducer.cc.

144  {
145  // get the BeamSpot, it will always be needed, even when not used as a constraint
147  edm::Handle<reco::BeamSpot> recoBeamSpotHandle;
148  iEvent.getByToken(bsToken, recoBeamSpotHandle);
149  if (recoBeamSpotHandle.isValid()) {
150  beamSpot = *recoBeamSpotHandle;
151  } else {
152  edm::LogError("UnusableBeamSpot") << "No beam spot available from EventSetup";
153  }
154 
155  bool validBS = true;
156  VertexState beamVertexState(beamSpot);
157  if ((beamVertexState.error().cxx() <= 0.) || (beamVertexState.error().cyy() <= 0.) ||
158  (beamVertexState.error().czz() <= 0.)) {
159  validBS = false;
160  edm::LogError("UnusableBeamSpot") << "Beamspot with invalid errors " << beamVertexState.error().matrix();
161  }
162 
163  //if this is a recovery iteration, check if we already have a valid PV
164  if (fRecoveryIteration) {
165  auto const& oldVertices = iEvent.get(recoveryVtxToken);
166  //look for the first valid (not-BeamSpot) vertex
167  for (auto const& old : oldVertices) {
168  if (!(old.isFake())) {
169  //found a valid vertex, write the first one to the collection and return
170  //otherwise continue with regular vertexing procedure
171  auto result = std::make_unique<reco::VertexCollection>();
172  result->push_back(old);
173  iEvent.put(std::move(result), algorithms.begin()->label);
174  return;
175  }
176  }
177  }
178 
179  // get RECO tracks from the event
180  // `tks` can be used as a ptr to a reco::TrackCollection
182  iEvent.getByToken(trkToken, tks);
183 
184  // interface RECO tracks to vertex reconstruction
185  const auto& theB = &iSetup.getData(theTTBToken);
186  std::vector<reco::TransientTrack> t_tks;
187 
188  if (f4D) {
189  edm::Handle<edm::ValueMap<float> > trackTimesH;
190  edm::Handle<edm::ValueMap<float> > trackTimeResosH;
191  iEvent.getByToken(trkTimesToken, trackTimesH);
192  iEvent.getByToken(trkTimeResosToken, trackTimeResosH);
193  t_tks = (*theB).build(tks, beamSpot, *(trackTimesH.product()), *(trackTimeResosH.product()));
194  } else {
195  t_tks = (*theB).build(tks, beamSpot);
196  }
197  if (fVerbose) {
198  std::cout << "RecoVertex/PrimaryVertexProducer"
199  << "Found: " << t_tks.size() << " reconstructed tracks"
200  << "\n";
201  }
202 
203  // select tracks
204  std::vector<reco::TransientTrack>&& seltks = theTrackFilter->select(t_tks);
205 
206  // clusterize tracks in Z
207  std::vector<std::vector<reco::TransientTrack> >&& clusters = theTrackClusterizer->clusterize(seltks);
208 
209  if (fVerbose) {
210  std::cout << " clustering returned " << clusters.size() << " clusters from " << seltks.size()
211  << " selected tracks" << std::endl;
212  }
213 
214  // vertex fits
215  for (std::vector<algo>::const_iterator algorithm = algorithms.begin(); algorithm != algorithms.end(); algorithm++) {
216  auto result = std::make_unique<reco::VertexCollection>();
217  reco::VertexCollection& vColl = (*result);
218 
219  std::vector<TransientVertex> pvs;
220  for (std::vector<std::vector<reco::TransientTrack> >::const_iterator iclus = clusters.begin();
221  iclus != clusters.end();
222  iclus++) {
223  double sumwt = 0.;
224  double sumwt2 = 0.;
225  double sumw = 0.;
226  double meantime = 0.;
227  double vartime = 0.;
228  if (f4D) {
229  for (const auto& tk : *iclus) {
230  const double time = tk.timeExt();
231  const double err = tk.dtErrorExt();
232  const double inverr = err > 0. ? 1.0 / err : 0.;
233  const double w = inverr * inverr;
234  sumwt += w * time;
235  sumwt2 += w * time * time;
236  sumw += w;
237  }
238  meantime = sumwt / sumw;
239  double sumsq = sumwt2 - sumwt * sumwt / sumw;
240  double chisq = iclus->size() > 1 ? sumsq / double(iclus->size() - 1) : sumsq / double(iclus->size());
241  vartime = chisq / sumw;
242  }
243 
245  if (algorithm->useBeamConstraint && validBS && ((*iclus).size() > 1)) {
246  v = algorithm->fitter->vertex(*iclus, beamSpot);
247 
248  if (f4D) {
249  if (v.isValid()) {
250  auto err = v.positionError().matrix4D();
251  auto trkweightMap3d = v.weightMap(); // copy the 3 fit weights
252  err(3, 3) = vartime;
253  v = TransientVertex(v.position(), meantime, err, v.originalTracks(), v.totalChiSquared());
254  v.weightMap(trkweightMap3d);
255  }
256  }
257 
258  } else if (!(algorithm->useBeamConstraint) && ((*iclus).size() > 1)) {
259  v = algorithm->fitter->vertex(*iclus);
260 
261  if (f4D) {
262  if (v.isValid()) {
263  auto err = v.positionError().matrix4D();
264  err(3, 3) = vartime;
265  v = TransientVertex(v.position(), meantime, err, v.originalTracks(), v.totalChiSquared());
266  }
267  }
268 
269  } // else: no fit ==> v.isValid()=False
270 
271  if (fVerbose) {
272  if (v.isValid()) {
273  std::cout << "x,y,z";
274  if (f4D)
275  std::cout << ",t";
276  std::cout << "=" << v.position().x() << " " << v.position().y() << " " << v.position().z();
277  if (f4D)
278  std::cout << " " << v.time();
279  std::cout << " cluster size = " << (*iclus).size() << std::endl;
280  } else {
281  std::cout << "Invalid fitted vertex, cluster size=" << (*iclus).size() << std::endl;
282  }
283  }
284 
285  if (v.isValid() && (v.degreesOfFreedom() >= algorithm->minNdof) &&
286  (!validBS || (*(algorithm->vertexSelector))(v, beamVertexState)))
287  pvs.push_back(v);
288  } // end of cluster loop
289 
290  if (fVerbose) {
291  std::cout << "PrimaryVertexProducerAlgorithm::vertices candidates =" << pvs.size() << std::endl;
292  }
293 
294  if (clusters.size() > 2 && clusters.size() > 2 * pvs.size())
295  edm::LogWarning("PrimaryVertexProducer")
296  << "more than half of candidate vertices lost " << pvs.size() << ' ' << clusters.size();
297 
298  if (pvs.empty() && seltks.size() > 5)
299  edm::LogWarning("PrimaryVertexProducer")
300  << "no vertex found with " << seltks.size() << " tracks and " << clusters.size() << " vertex-candidates";
301 
302  // sort vertices by pt**2 vertex (aka signal vertex tagging)
303  if (pvs.size() > 1) {
304  sort(pvs.begin(), pvs.end(), VertexHigherPtSquared());
305  }
306 
307  // convert transient vertices returned by the theAlgo to (reco) vertices
308  for (std::vector<TransientVertex>::const_iterator iv = pvs.begin(); iv != pvs.end(); iv++) {
309  reco::Vertex v = *iv;
310  vColl.push_back(v);
311  }
312 
313  if (vColl.empty()) {
314  GlobalError bse(beamSpot.rotatedCovariance3D());
315  if ((bse.cxx() <= 0.) || (bse.cyy() <= 0.) || (bse.czz() <= 0.)) {
317  we(0, 0) = 10000;
318  we(1, 1) = 10000;
319  we(2, 2) = 10000;
320  vColl.push_back(reco::Vertex(beamSpot.position(), we, 0., 0., 0));
321  if (fVerbose) {
322  std::cout << "RecoVertex/PrimaryVertexProducer: "
323  << "Beamspot with invalid errors " << bse.matrix() << std::endl;
324  std::cout << "Will put Vertex derived from dummy-fake BeamSpot into Event.\n";
325  }
326  } else {
327  vColl.push_back(reco::Vertex(beamSpot.position(), beamSpot.rotatedCovariance3D(), 0., 0., 0));
328  if (fVerbose) {
329  std::cout << "RecoVertex/PrimaryVertexProducer: "
330  << " will put Vertex derived from BeamSpot into Event.\n";
331  }
332  }
333  }
334 
335  if (fVerbose) {
336  int ivtx = 0;
337  for (reco::VertexCollection::const_iterator v = vColl.begin(); v != vColl.end(); ++v) {
338  std::cout << "recvtx " << ivtx++ << "#trk " << std::setw(3) << v->tracksSize() << " chi2 " << std::setw(4)
339  << v->chi2() << " ndof " << std::setw(3) << v->ndof() << " x " << std::setw(6) << v->position().x()
340  << " dx " << std::setw(6) << v->xError() << " y " << std::setw(6) << v->position().y() << " dy "
341  << std::setw(6) << v->yError() << " z " << std::setw(6) << v->position().z() << " dz " << std::setw(6)
342  << v->zError();
343  if (f4D) {
344  std::cout << " t " << std::setw(6) << v->t() << " dt " << std::setw(6) << v->tError();
345  }
346  std::cout << std::endl;
347  }
348  }
349 
350  iEvent.put(std::move(result), algorithm->label);
351  }
352 }

References qcdUeDQM_cfi::algorithm, algorithms, pwdgSkimBPark_cfi::beamSpot, bsToken, TrackClusterizerInZ::clusterize(), bsc_activity_cfg::clusters, gather_cfg::cout, GlobalErrorBase< T, ErrorWeightType >::cxx(), GlobalErrorBase< T, ErrorWeightType >::cyy(), GlobalErrorBase< T, ErrorWeightType >::czz(), submitPVResolutionJobs::err, VertexState::error(), f4D, fRecoveryIteration, fVerbose, edm::EventSetup::getData(), iEvent, edm::HandleBase::isValid(), gpuVertexFinder::iv, GlobalErrorBase< T, ErrorWeightType >::matrix(), eostools::move(), edm::Handle< T >::product(), FSQDQM_cfi::pvs, recoveryVtxToken, mps_fire::result, TrackFilterForPVFindingBase::select(), jetUpdater_cfi::sort, theTrackClusterizer, theTrackFilter, theTTBToken, protons_cff::time, trkTimeResosToken, trkTimesToken, trkToken, findQualityFiles::v, trackerHitRTTI::vector, and w.

Member Data Documentation

◆ algorithms

std::vector<algo> PrimaryVertexProducer::algorithms
private

Definition at line 84 of file PrimaryVertexProducer.h.

Referenced by PrimaryVertexProducer(), produce(), and ~PrimaryVertexProducer().

◆ bsToken

edm::EDGetTokenT<reco::BeamSpot> PrimaryVertexProducer::bsToken
private

Definition at line 92 of file PrimaryVertexProducer.h.

Referenced by PrimaryVertexProducer(), and produce().

◆ f4D

bool PrimaryVertexProducer::f4D
private

Definition at line 97 of file PrimaryVertexProducer.h.

Referenced by PrimaryVertexProducer(), and produce().

◆ fRecoveryIteration

bool PrimaryVertexProducer::fRecoveryIteration
private

Definition at line 89 of file PrimaryVertexProducer.h.

Referenced by PrimaryVertexProducer(), and produce().

◆ fVerbose

bool PrimaryVertexProducer::fVerbose
private

Definition at line 87 of file PrimaryVertexProducer.h.

Referenced by PrimaryVertexProducer(), and produce().

◆ recoveryVtxToken

edm::EDGetTokenT<reco::VertexCollection> PrimaryVertexProducer::recoveryVtxToken
private

Definition at line 90 of file PrimaryVertexProducer.h.

Referenced by PrimaryVertexProducer(), and produce().

◆ theConfig

edm::ParameterSet PrimaryVertexProducer::theConfig
private

Definition at line 86 of file PrimaryVertexProducer.h.

Referenced by config().

◆ theTrackClusterizer

TrackClusterizerInZ* PrimaryVertexProducer::theTrackClusterizer
private

Definition at line 73 of file PrimaryVertexProducer.h.

Referenced by PrimaryVertexProducer(), produce(), and ~PrimaryVertexProducer().

◆ theTrackFilter

TrackFilterForPVFindingBase* PrimaryVertexProducer::theTrackFilter
private

Definition at line 72 of file PrimaryVertexProducer.h.

Referenced by PrimaryVertexProducer(), produce(), and ~PrimaryVertexProducer().

◆ theTTBToken

const edm::ESGetToken<TransientTrackBuilder, TransientTrackRecord> PrimaryVertexProducer::theTTBToken
private

Definition at line 70 of file PrimaryVertexProducer.h.

Referenced by produce().

◆ trkTimeResosToken

edm::EDGetTokenT<edm::ValueMap<float> > PrimaryVertexProducer::trkTimeResosToken
private

Definition at line 95 of file PrimaryVertexProducer.h.

Referenced by PrimaryVertexProducer(), and produce().

◆ trkTimesToken

edm::EDGetTokenT<edm::ValueMap<float> > PrimaryVertexProducer::trkTimesToken
private

Definition at line 94 of file PrimaryVertexProducer.h.

Referenced by PrimaryVertexProducer(), and produce().

◆ trkToken

edm::EDGetTokenT<reco::TrackCollection> PrimaryVertexProducer::trkToken
private

Definition at line 93 of file PrimaryVertexProducer.h.

Referenced by PrimaryVertexProducer(), and produce().

AdaptiveVertexFitter
Definition: AdaptiveVertexFitter.h:29
TrackFilterForPVFindingBase::select
virtual std::vector< reco::TransientTrack > select(const std::vector< reco::TransientTrack > &tracks) const =0
AlgebraicSymMatrix33
ROOT::Math::SMatrix< double, 3, 3, ROOT::Math::MatRepSym< double, 3 > > AlgebraicSymMatrix33
Definition: AlgebraicROOTObjects.h:21
edm::ESInputTag
Definition: ESInputTag.h:87
edm::ParameterSetDescription::add
ParameterDescriptionBase * add(U const &iLabel, T const &value)
Definition: ParameterSetDescription.h:95
pwdgSkimBPark_cfi.beamSpot
beamSpot
Definition: pwdgSkimBPark_cfi.py:5
edm::Handle::product
T const * product() const
Definition: Handle.h:70
VertexException
Common base class.
Definition: VertexException.h:12
gpuVertexFinder::iv
int32_t *__restrict__ iv
Definition: gpuClusterTracksDBSCAN.h:42
reco::VertexCollection
std::vector< Vertex > VertexCollection
collection of Vertex objects
Definition: VertexFwd.h:9
gather_cfg.cout
cout
Definition: gather_cfg.py:144
HLT_FULL_cff.InputTag
InputTag
Definition: HLT_FULL_cff.py:89285
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
PrimaryVertexProducer::trkTimeResosToken
edm::EDGetTokenT< edm::ValueMap< float > > trkTimeResosToken
Definition: PrimaryVertexProducer.h:95
protons_cff.time
time
Definition: protons_cff.py:39
PrimaryVertexProducer::recoveryVtxToken
edm::EDGetTokenT< reco::VertexCollection > recoveryVtxToken
Definition: PrimaryVertexProducer.h:90
edm::ParameterSet::getUntrackedParameter
T getUntrackedParameter(std::string const &, T const &) const
PrimaryVertexProducer::trkTimesToken
edm::EDGetTokenT< edm::ValueMap< float > > trkTimesToken
Definition: PrimaryVertexProducer.h:94
findQualityFiles.v
v
Definition: findQualityFiles.py:179
edm::Handle< reco::BeamSpot >
edm::LogWarning
Log< level::Warning, false > LogWarning
Definition: MessageLogger.h:122
PrimaryVertexProducer::theTrackClusterizer
TrackClusterizerInZ * theTrackClusterizer
Definition: PrimaryVertexProducer.h:73
cmsdt::algo
algo
Definition: constants.h:165
edm::ConfigurationDescriptions::add
void add(std::string const &label, ParameterSetDescription const &psetDescription)
Definition: ConfigurationDescriptions.cc:57
w
const double w
Definition: UKUtility.cc:23
PrimaryVertexProducer::fRecoveryIteration
bool fRecoveryIteration
Definition: PrimaryVertexProducer.h:89
PrimaryVertexProducer::theTTBToken
const edm::ESGetToken< TransientTrackBuilder, TransientTrackRecord > theTTBToken
Definition: PrimaryVertexProducer.h:70
PrimaryVertexProducer::theConfig
edm::ParameterSet theConfig
Definition: PrimaryVertexProducer.h:86
TrackFilterForPVFinding::fillPSetDescription
static void fillPSetDescription(edm::ParameterSetDescription &desc)
Definition: TrackFilterForPVFinding.cc:51
reco::BeamSpot
Definition: BeamSpot.h:21
PrimaryVertexProducer::theTrackFilter
TrackFilterForPVFindingBase * theTrackFilter
Definition: PrimaryVertexProducer.h:72
DAClusterizerInZT_vect
Definition: DAClusterizerInZT_vect.h:25
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
bsc_activity_cfg.clusters
clusters
Definition: bsc_activity_cfg.py:36
edm::ParameterSet::exists
bool exists(std::string const &parameterName) const
checks if a parameter exists
Definition: ParameterSet.cc:681
PrimaryVertexProducer::f4D
bool f4D
Definition: PrimaryVertexProducer.h:97
edm::ParameterSet
Definition: ParameterSet.h:47
TrackClusterizerInZ::clusterize
virtual std::vector< std::vector< reco::TransientTrack > > clusterize(const std::vector< reco::TransientTrack > &tracks) const =0
jetUpdater_cfi.sort
sort
Definition: jetUpdater_cfi.py:29
edm::ParameterSet::addParameter
void addParameter(std::string const &name, T const &value)
Definition: ParameterSet.h:135
qcdUeDQM_cfi.algorithm
algorithm
Definition: qcdUeDQM_cfi.py:32
iEvent
int iEvent
Definition: GenABIO.cc:224
VertexCompatibleWithBeam
Definition: VertexCompatibleWithBeam.h:15
GeometricAnnealing
Definition: GeometricAnnealing.h:7
DAClusterizerInZ
Definition: DAClusterizerInZ.h:18
trackerHitRTTI::vector
Definition: trackerHitRTTI.h:21
GlobalErrorBase< double, ErrorMatrixTag >
TransientVertex
Definition: TransientVertex.h:18
VertexDistanceXY
Definition: VertexDistanceXY.h:11
edm::LogError
Log< level::Error, false > LogError
Definition: MessageLogger.h:123
submitPVResolutionJobs.err
err
Definition: submitPVResolutionJobs.py:85
FSQDQM_cfi.pvs
pvs
Definition: FSQDQM_cfi.py:12
PrimaryVertexProducer::trkToken
edm::EDGetTokenT< reco::TrackCollection > trkToken
Definition: PrimaryVertexProducer.h:93
edm::EventSetup::getData
bool getData(T &iHolder) const
Definition: EventSetup.h:127
DAClusterizerInZ_vect
Definition: DAClusterizerInZ_vect.h:21
submitPVResolutionJobs.desc
string desc
Definition: submitPVResolutionJobs.py:251
DAClusterizerInZT_vect::fillPSetDescription
static void fillPSetDescription(edm::ParameterSetDescription &desc)
Definition: DAClusterizerInZT_vect.cc:1561
eostools.move
def move(src, dest)
Definition: eostools.py:511
PrimaryVertexProducer::fVerbose
bool fVerbose
Definition: PrimaryVertexProducer.h:87
HITrackFilterForPVFinding
Definition: HITrackFilterForPVFinding.h:13
VertexState
Definition: VertexState.h:13
HLT_FULL_cff.vertexCollections
vertexCollections
Definition: HLT_FULL_cff.py:34807
PrimaryVertexProducer::bsToken
edm::EDGetTokenT< reco::BeamSpot > bsToken
Definition: PrimaryVertexProducer.h:92
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
GapClusterizerInZ
Definition: GapClusterizerInZ.h:15
TrackFilterForPVFinding
Definition: TrackFilterForPVFinding.h:15
VertexHigherPtSquared
Definition: VertexHigherPtSquared.h:13
PrimaryVertexProducer::algorithms
std::vector< algo > algorithms
Definition: PrimaryVertexProducer.h:84
mps_fire.result
result
Definition: mps_fire.py:311
GapClusterizerInZ::fillPSetDescription
static void fillPSetDescription(edm::ParameterSetDescription &desc)
Definition: GapClusterizerInZ.cc:64
edm::HandleBase::isValid
bool isValid() const
Definition: HandleBase.h:70
DeDxTools::esConsumes
ESGetTokenH3DDVariant esConsumes(std::string const &Reccord, edm::ConsumesCollector &)
Definition: DeDxTools.cc:283
edm::Log
Definition: MessageLogger.h:70
edm::InputTag
Definition: InputTag.h:15
reco::Vertex
Definition: Vertex.h:35
KalmanVertexFitter
Definition: KalmanVertexFitter.h:22