CMS 3D CMS Logo

AlCaIsoTracksProducer.cc
Go to the documentation of this file.
1 // -*- C++ -*-
2 //#define EDM_ML_DEBUG
3 
4 // system include files
5 #include <atomic>
6 #include <memory>
7 #include <string>
8 #include <cmath>
9 #include <iostream>
10 #include <sstream>
11 #include <fstream>
12 #include <vector>
13 #include <boost/regex.hpp>
14 
15 // user include files
25 
52 
54 
59 
73 
74 //
75 // class declaration
76 //
77 
78 namespace AlCaIsoTracks {
79  struct Counters {
80  Counters() : nAll_(0), nGood_(0), nRange_(0) {}
81  mutable std::atomic<unsigned int> nAll_, nGood_, nRange_;
82  };
83 } // namespace AlCaIsoTracks
84 
85 class AlCaIsoTracksProducer : public edm::stream::EDProducer<edm::GlobalCache<AlCaIsoTracks::Counters> > {
86 public:
88  ~AlCaIsoTracksProducer() override;
89 
90  static std::unique_ptr<AlCaIsoTracks::Counters> initializeGlobalCache(edm::ParameterSet const&) {
91  return std::make_unique<AlCaIsoTracks::Counters>();
92  }
93 
94  void produce(edm::Event&, edm::EventSetup const&) override;
95  void endStream() override;
96  static void globalEndJob(const AlCaIsoTracks::Counters* counters);
97  static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
98 
99 private:
100  void beginRun(edm::Run const&, edm::EventSetup const&) override;
101  void endRun(edm::Run const&, edm::EventSetup const&) override;
103  const std::vector<std::string>& triggerNames_,
104  edm::Handle<reco::TrackCollection>& trkCollection,
105  math::XYZPoint& leadPV,
106  edm::Handle<EcalRecHitCollection>& barrelRecHitsHandle,
107  edm::Handle<EcalRecHitCollection>& endcapRecHitsHandle,
109  double ptL1,
110  double etaL1,
111  double phiL1);
113  double& ptL1,
114  double& etaL1,
115  double& phiL1);
116 
117  // ----------member data ---------------------------
119  unsigned int nRun_, nAll_, nGood_, nRange_;
121  const std::vector<std::string> trigNames_;
123  const double a_coneR_, a_mipR_;
126  const double pTrackLow_, pTrackHigh_;
127  const int preScale_;
132  double a_charIsoR_;
135 
147 };
148 
150  : nRun_(0),
151  nAll_(0),
152  nGood_(0),
153  nRange_(0),
154  trigNames_(iConfig.getParameter<std::vector<std::string> >("triggers")),
155  theTrackQuality_(iConfig.getParameter<std::string>("trackQuality")),
156  processName_(iConfig.getParameter<std::string>("processName")),
157  a_coneR_(iConfig.getParameter<double>("coneRadius")),
158  a_mipR_(iConfig.getParameter<double>("coneRadiusMIP")),
159  maxRestrictionP_(iConfig.getParameter<double>("maxTrackP")),
160  slopeRestrictionP_(iConfig.getParameter<double>("slopeTrackP")),
161  pTrackMin_(iConfig.getParameter<double>("minimumTrackP")),
162  eEcalMax_(iConfig.getParameter<double>("maximumEcalEnergy")),
163  eIsolate_(iConfig.getParameter<double>("isolationEnergy")),
164  pTrackLow_(iConfig.getParameter<double>("momentumRangeLow")),
165  pTrackHigh_(iConfig.getParameter<double>("momentumRangeHigh")),
166  preScale_(iConfig.getParameter<int>("preScaleFactor")),
167  labelGenTrack_(iConfig.getParameter<edm::InputTag>("TrackLabel")),
168  labelRecVtx_(iConfig.getParameter<edm::InputTag>("VertexLabel")),
169  labelBS_(iConfig.getParameter<edm::InputTag>("BeamSpotLabel")),
170  labelEB_(iConfig.getParameter<edm::InputTag>("EBRecHitLabel")),
171  labelEE_(iConfig.getParameter<edm::InputTag>("EERecHitLabel")),
172  labelHBHE_(iConfig.getParameter<edm::InputTag>("HBHERecHitLabel")),
173  labelHltGT_(iConfig.getParameter<edm::InputTag>("L1GTSeedLabel")),
174  labelTriggerEvent_(iConfig.getParameter<edm::InputTag>("TriggerEventLabel")),
175  labelTriggerResults_(iConfig.getParameter<edm::InputTag>("TriggerResultLabel")),
176  labelIsoTk_(iConfig.getParameter<std::string>("IsoTrackLabel")) {
177  // Get the run parameters
178  // Different isolation cuts are described in DN-2016/029
179  // Tight cut uses 2 GeV; Loose cut uses 10 GeV
180  // Eta dependent cut uses (maxRestrictionP_ * exp(|ieta|*log(2.5)/18))
181  // with the factor for exponential slopeRestrictionP_ = log(2.5)/18
182  // maxRestrictionP_ = 8 GeV as came from a study
183  const double isolationRadius(28.9);
184  selectionParameter_.minPt = iConfig.getParameter<double>("minTrackPt");
185  ;
187  selectionParameter_.maxDxyPV = iConfig.getParameter<double>("maxDxyPV");
188  selectionParameter_.maxDzPV = iConfig.getParameter<double>("maxDzPV");
189  selectionParameter_.maxChi2 = iConfig.getParameter<double>("maxChi2");
190  selectionParameter_.maxDpOverP = iConfig.getParameter<double>("maxDpOverP");
191  selectionParameter_.minOuterHit = iConfig.getParameter<int>("minOuterHit");
192  selectionParameter_.minLayerCrossed = iConfig.getParameter<int>("minLayerCrossed");
193  selectionParameter_.maxInMiss = iConfig.getParameter<int>("maxInMiss");
194  selectionParameter_.maxOutMiss = iConfig.getParameter<int>("maxOutMiss");
195  a_charIsoR_ = a_coneR_ + isolationRadius;
196 
197  // define tokens for access
198  tok_hltGT_ = consumes<trigger::TriggerFilterObjectWithRefs>(labelHltGT_);
199  tok_trigEvt_ = consumes<trigger::TriggerEvent>(labelTriggerEvent_);
200  tok_trigRes_ = consumes<edm::TriggerResults>(labelTriggerResults_);
201  tok_genTrack_ = consumes<reco::TrackCollection>(labelGenTrack_);
202  tok_recVtx_ = consumes<reco::VertexCollection>(labelRecVtx_);
203  tok_bs_ = consumes<reco::BeamSpot>(labelBS_);
204  tok_EB_ = consumes<EcalRecHitCollection>(labelEB_);
205  tok_EE_ = consumes<EcalRecHitCollection>(labelEE_);
206  tok_hbhe_ = consumes<HBHERecHitCollection>(labelHBHE_);
207  // for event setup
208  tok_geom_ = esConsumes<CaloGeometry, CaloGeometryRecord, edm::Transition::BeginRun>();
209  tok_magField_ = esConsumes<MagneticField, IdealMagneticFieldRecord, edm::Transition::BeginRun>();
210 
211  edm::LogVerbatim("HcalIsoTrack") << "Parameters read from config file \n"
212  << "\t minPt " << selectionParameter_.minPt << "\t theTrackQuality "
213  << theTrackQuality_ << "\t minQuality " << selectionParameter_.minQuality
214  << "\t maxDxyPV " << selectionParameter_.maxDxyPV << "\t maxDzPV "
216  << "\t maxDpOverP " << selectionParameter_.maxDpOverP << "\t minOuterHit "
217  << selectionParameter_.minOuterHit << "\t minLayerCrossed "
218  << selectionParameter_.minLayerCrossed << "\t maxInMiss "
219  << selectionParameter_.maxInMiss << "\t maxOutMiss "
221  << "\t a_coneR " << a_coneR_ << "\t a_charIsoR " << a_charIsoR_ << "\t a_mipR "
222  << a_mipR_ << "\t pTrackMin " << pTrackMin_ << "\t eEcalMax " << eEcalMax_
223  << "\t maxRestrictionP_ " << maxRestrictionP_ << "\t slopeRestrictionP_ "
224  << slopeRestrictionP_ << "\t eIsolate_ " << eIsolate_ << "\t Process "
225  << processName_ << "\n"
226  << "\t Precale factor " << preScale_ << "\t in momentum range " << pTrackLow_ << ":"
227  << pTrackHigh_;
228  for (unsigned int k = 0; k < trigNames_.size(); ++k)
229  edm::LogVerbatim("HcalIsoTrack") << "Trigger[" << k << "] " << trigNames_[k];
230 
231  //create also IsolatedPixelTrackCandidateCollection which contains isolation info and reference to primary track
232  produces<reco::HcalIsolatedTrackCandidateCollection>(labelIsoTk_);
233  produces<reco::VertexCollection>(labelRecVtx_.label());
234  produces<EcalRecHitCollection>(labelEB_.instance());
235  produces<EcalRecHitCollection>(labelEE_.instance());
236  produces<HBHERecHitCollection>(labelHBHE_.label());
237 
238  edm::LogVerbatim("HcalIsoTrack") << " Expected to produce the collections:\n"
239  << "reco::HcalIsolatedTrackCandidateCollection "
240  << " with label HcalIsolatedTrackCollection\n"
241  << "reco::VertexCollection with label " << labelRecVtx_.label() << "\n"
242  << "EcalRecHitCollection with label EcalRecHitsEB\n"
243  << "EcalRecHitCollection with label EcalRecHitsEE\n"
244  << "HBHERecHitCollection with label " << labelHBHE_.label();
245 }
246 
248 
251  // producer for (HCAL isolated tracks)
252  desc.add<edm::InputTag>("TrackLabel", edm::InputTag("generalTracks"));
253  desc.add<edm::InputTag>("VertexLabel", edm::InputTag("offlinePrimaryVertices"));
254  desc.add<edm::InputTag>("BeamSpotLabel", edm::InputTag("offlineBeamSpot"));
255  desc.add<edm::InputTag>("EBRecHitLabel", edm::InputTag("ecalRecHit", "EcalRecHitsEB"));
256  desc.add<edm::InputTag>("EERecHitLabel", edm::InputTag("ecalRecHit", "EcalRecHitsEE"));
257  desc.add<edm::InputTag>("HBHERecHitLabel", edm::InputTag("hbhereco"));
258  desc.add<edm::InputTag>("L1GTSeedLabel", edm::InputTag("hltL1sV0SingleJet60"));
259  desc.add<edm::InputTag>("TriggerEventLabel", edm::InputTag("hltTriggerSummaryAOD", "", "HLT"));
260  desc.add<edm::InputTag>("TriggerResultLabel", edm::InputTag("TriggerResults", "", "HLT"));
261  desc.add<std::string>("IsoTrackLabel", "HcalIsolatedTrackCollection");
262  std::vector<std::string> triggers = {"HLT_IsoTrackHB", "HLT_IsoTrackHE"};
263  desc.add<std::vector<std::string> >("triggers", triggers);
264  desc.add<std::string>("processName", "HLT");
265  // following 10 parameters are parameters to select good tracks
266  desc.add<std::string>("trackQuality", "highPurity");
267  desc.add<double>("minTrackPt", 1.0);
268  desc.add<double>("maxDxyPV", 10.0);
269  desc.add<double>("maxDzPV", 100.0);
270  desc.add<double>("maxChi2", 5.0);
271  desc.add<double>("maxDpOverP", 0.1);
272  desc.add<int>("minOuterHit", 4);
273  desc.add<int>("minLayerCrossed", 8);
274  desc.add<int>("maxInMiss", 2);
275  desc.add<int>("maxOutMiss", 2);
276  // Minimum momentum of selected isolated track and signal zone
277  desc.add<double>("coneRadius", 34.98);
278  desc.add<double>("minimumTrackP", 20.0);
279  // signal zone in ECAL and MIP energy cutoff
280  desc.add<double>("coneRadiusMIP", 14.0);
281  desc.add<double>("maximumEcalEnergy", 2.0);
282  // following 3 parameters are for isolation cuts and described in the code
283  desc.add<double>("maxTrackP", 8.0);
284  desc.add<double>("slopeTrackP", 0.05090504066);
285  desc.add<double>("isolationEnergy", 10.0);
286  // Prescale events only containing isolated tracks in the range
287  desc.add<double>("momentumRangeLow", 20.0);
288  desc.add<double>("momentumRangeHigh", 40.0);
289  desc.add<int>("preScaleFactor", 10);
290  descriptions.add("alcaisotrk", desc);
291 }
292 
294  nAll_++;
295 #ifdef EDM_ML_DEBUG
296  edm::LogVerbatim("HcalIsoTrack") << "Run " << iEvent.id().run() << " Event " << iEvent.id().event() << " Luminosity "
297  << iEvent.luminosityBlock() << " Bunch " << iEvent.bunchCrossing();
298 #endif
299  bool valid(true);
300  //Step1: Get all the relevant containers
302  edm::Handle<trigger::TriggerEvent> triggerEventHandle;
303  iEvent.getByToken(tok_trigEvt_, triggerEventHandle);
304  if (!triggerEventHandle.isValid()) {
305  edm::LogWarning("HcalIsoTrack") << "Cannot access the collection " << labelTriggerEvent_;
306  valid = false;
307  }
309  iEvent.getByToken(tok_trigRes_, triggerResults);
310  if (!triggerResults.isValid()) {
311  edm::LogWarning("HcalIsoTrack") << "Cannot access the collection " << labelTriggerResults_;
312  valid = false;
313  }
314 
316  iEvent.getByToken(tok_genTrack_, trkCollection);
317  if (!trkCollection.isValid()) {
318  edm::LogWarning("HcalIsoTrack") << "Cannot access the collection " << labelGenTrack_;
319  valid = false;
320  }
321 
323  iEvent.getByToken(tok_recVtx_, recVtxs);
324  if (!recVtxs.isValid()) {
325  edm::LogWarning("HcalIsoTrack") << "Cannot access the collection " << labelGenTrack_;
326  valid = false;
327  }
328 
329  edm::Handle<reco::BeamSpot> beamSpotH;
330  iEvent.getByToken(tok_bs_, beamSpotH);
331  math::XYZPoint leadPV(0, 0, 0);
332  if (valid) {
333  if (!recVtxs->empty() && !((*recVtxs)[0].isFake())) {
334  leadPV = math::XYZPoint((*recVtxs)[0].x(), (*recVtxs)[0].y(), (*recVtxs)[0].z());
335  } else if (beamSpotH.isValid()) {
336  leadPV = beamSpotH->position();
337  }
338  }
339 #ifdef EDM_ML_DEBUG
340  edm::LogVerbatim("HcalIsoTrack") << "Primary Vertex " << leadPV;
341 #endif
342 
343  edm::Handle<EcalRecHitCollection> barrelRecHitsHandle;
344  iEvent.getByToken(tok_EB_, barrelRecHitsHandle);
345  if (!barrelRecHitsHandle.isValid()) {
346  edm::LogWarning("HcalIsoTrack") << "Cannot access the collection " << labelEB_;
347  valid = false;
348  }
349  edm::Handle<EcalRecHitCollection> endcapRecHitsHandle;
350  iEvent.getByToken(tok_EE_, endcapRecHitsHandle);
351  if (!endcapRecHitsHandle.isValid()) {
352  edm::LogWarning("HcalIsoTrack") << "Cannot access the collection " << labelEE_;
353  valid = false;
354  }
356  iEvent.getByToken(tok_hbhe_, hbhe);
357  if (!hbhe.isValid()) {
358  edm::LogWarning("HcalIsoTrack") << "Cannot access the collection " << labelHBHE_;
359  valid = false;
360  }
361 
362  //Get L1 trigger object
363  double ptL1(0), etaL1(0), phiL1(0);
365  iEvent.getByToken(tok_hltGT_, l1trigobj);
366 
367  if (l1trigobj.isValid()) {
368  std::vector<edm::Ref<l1extra::L1JetParticleCollection> > l1tauobjref;
369  l1trigobj->getObjects(trigger::TriggerL1TauJet, l1tauobjref);
370  setPtEtaPhi(l1tauobjref, ptL1, etaL1, phiL1);
371 
372  std::vector<edm::Ref<l1extra::L1JetParticleCollection> > l1jetobjref;
373  l1trigobj->getObjects(trigger::TriggerL1CenJet, l1jetobjref);
374  setPtEtaPhi(l1jetobjref, ptL1, etaL1, phiL1);
375 
376  std::vector<edm::Ref<l1extra::L1JetParticleCollection> > l1forjetobjref;
377  l1trigobj->getObjects(trigger::TriggerL1ForJet, l1forjetobjref);
378  setPtEtaPhi(l1forjetobjref, ptL1, etaL1, phiL1);
379  } else {
380  valid = false;
381  }
382 
383  auto outputHcalIsoTrackColl = std::make_unique<reco::HcalIsolatedTrackCandidateCollection>();
384  auto outputVColl = std::make_unique<reco::VertexCollection>();
385  auto outputEBColl = std::make_unique<EBRecHitCollection>();
386  auto outputEEColl = std::make_unique<EERecHitCollection>();
387  auto outputHBHEColl = std::make_unique<HBHERecHitCollection>();
388 
389  //For valid HLT record
390  if (!valid) {
391  edm::LogWarning("HcalIsoTrack") << "Error! Can't get some of the products";
392  } else {
393  trigger::TriggerEvent triggerEvent = *(triggerEventHandle.product());
394  if (triggerResults.isValid()) {
395  const edm::TriggerNames& triggerNames = iEvent.triggerNames(*triggerResults);
396  const std::vector<std::string>& triggerNames_ = triggerNames.triggerNames();
398  triggerNames_,
399  trkCollection,
400  leadPV,
401  barrelRecHitsHandle,
402  endcapRecHitsHandle,
403  hbhe,
404  ptL1,
405  etaL1,
406  phiL1);
407 #ifdef EDM_ML_DEBUG
408  edm::LogVerbatim("HcalIsoTrack") << "AlCaIsoTracksProducer::select returns " << isotk->size()
409  << " isolated tracks";
410 #endif
411 
412  if (!isotk->empty()) {
413  int ntrin(0), ntrout(0);
414  for (reco::HcalIsolatedTrackCandidateCollection::const_iterator itr = isotk->begin(); itr != isotk->end();
415  ++itr) {
416  if (itr->p() > pTrackLow_ && itr->p() < pTrackHigh_)
417  ntrin++;
418  else
419  ntrout++;
420  }
421  bool selectEvent = ntrout > 0;
422  if (!selectEvent && ntrin > 0) {
423  ++nRange_;
424  if (preScale_ <= 1)
425  selectEvent = true;
426  else if (nRange_ % preScale_ == 1)
427  selectEvent = true;
428  }
429  if (selectEvent) {
430  for (reco::HcalIsolatedTrackCandidateCollection::const_iterator itr = isotk->begin(); itr != isotk->end();
431  ++itr)
432  outputHcalIsoTrackColl->push_back(*itr);
433 
434  for (reco::VertexCollection::const_iterator vtx = recVtxs->begin(); vtx != recVtxs->end(); ++vtx)
435  outputVColl->push_back(*vtx);
436 
437  for (edm::SortedCollection<EcalRecHit>::const_iterator ehit = barrelRecHitsHandle->begin();
438  ehit != barrelRecHitsHandle->end();
439  ++ehit)
440  outputEBColl->push_back(*ehit);
441 
442  for (edm::SortedCollection<EcalRecHit>::const_iterator ehit = endcapRecHitsHandle->begin();
443  ehit != endcapRecHitsHandle->end();
444  ++ehit)
445  outputEEColl->push_back(*ehit);
446 
447  for (std::vector<HBHERecHit>::const_iterator hhit = hbhe->begin(); hhit != hbhe->end(); ++hhit)
448  outputHBHEColl->push_back(*hhit);
449  ++nGood_;
450  }
451  }
452  }
453  }
454  iEvent.put(std::move(outputHcalIsoTrackColl), labelIsoTk_);
455  iEvent.put(std::move(outputVColl), labelRecVtx_.label());
456  iEvent.put(std::move(outputEBColl), labelEB_.instance());
457  iEvent.put(std::move(outputEEColl), labelEE_.instance());
458  iEvent.put(std::move(outputHBHEColl), labelHBHE_.label());
459 }
460 
462  globalCache()->nAll_ += nAll_;
463  globalCache()->nGood_ += nGood_;
464  globalCache()->nRange_ += nRange_;
465 }
466 
468  edm::LogVerbatim("HcalIsoTrack") << "Finds " << count->nGood_ << " good tracks in " << count->nAll_ << " events and "
469  << count->nRange_ << " events in the momentum raange";
470 }
471 
472 void AlCaIsoTracksProducer::beginRun(edm::Run const& iRun, edm::EventSetup const& iSetup) {
473  bool changed(false);
474  edm::LogVerbatim("HcalIsoTrack") << "Run[" << nRun_ << "] " << iRun.run() << " hltconfig.init "
475  << hltConfig_.init(iRun, iSetup, processName_, changed);
476 
477  bField = &(iSetup.getData(tok_magField_));
478  geo = &(iSetup.getData(tok_geom_));
479 }
480 
482  edm::LogVerbatim("HcalIsoTrack") << "endRun [" << nRun_ << "] " << iRun.run();
483  ++nRun_;
484 }
485 
488  const std::vector<std::string>& triggerNames_,
489  edm::Handle<reco::TrackCollection>& trkCollection,
490  math::XYZPoint& leadPV,
491  edm::Handle<EcalRecHitCollection>& barrelRecHitsHandle,
492  edm::Handle<EcalRecHitCollection>& endcapRecHitsHandle,
494  double ptL1,
495  double etaL1,
496  double phiL1) {
498  bool ok(false);
499 
500  // Find a good HLT trigger
501  for (unsigned int iHLT = 0; iHLT < triggerResults->size(); iHLT++) {
502  int hlt = triggerResults->accept(iHLT);
503  for (unsigned int i = 0; i < trigNames_.size(); ++i) {
504  if (triggerNames_[iHLT].find(trigNames_[i]) != std::string::npos) {
505  if (hlt > 0) {
506  ok = true;
507  }
508  edm::LogVerbatim("HcalIsoTrack") << "The trigger we are looking for " << triggerNames_[iHLT] << " Flag " << hlt
509  << ":" << ok;
510  }
511  }
512  }
513 
514  //Propagate tracks to calorimeter surface)
515  std::vector<spr::propagatedTrackDirection> trkCaloDirections;
516  spr::propagateCALO(trkCollection, geo, bField, theTrackQuality_, trkCaloDirections, false);
517 
518  std::vector<spr::propagatedTrackDirection>::const_iterator trkDetItr;
519  unsigned int nTracks(0), nselTracks(0);
520  for (trkDetItr = trkCaloDirections.begin(), nTracks = 0; trkDetItr != trkCaloDirections.end();
521  trkDetItr++, nTracks++) {
522  const reco::Track* pTrack = &(*(trkDetItr->trkItr));
523  math::XYZTLorentzVector v4(pTrack->px(), pTrack->py(), pTrack->pz(), pTrack->p());
524 #ifdef EDM_ML_DEBUG
525  edm::LogVerbatim("HcalIsoTrack") << "This track : " << nTracks << " (pt|eta|phi|p) :" << pTrack->pt() << "|"
526  << pTrack->eta() << "|" << pTrack->phi() << "|" << pTrack->p();
527 #endif
528  //Selection of good track
529  bool qltyFlag = spr::goodTrack(pTrack, leadPV, selectionParameter_, false);
530 #ifdef EDM_ML_DEBUG
531  edm::LogVerbatim("HcalIsoTrack") << "qltyFlag|okECAL|okHCAL : " << qltyFlag << "|" << trkDetItr->okECAL << "|"
532  << trkDetItr->okHCAL;
533 #endif
534  if (qltyFlag && trkDetItr->okECAL && trkDetItr->okHCAL) {
535  double t_p = pTrack->p();
536  nselTracks++;
537  int nRH_eMipDR(0), nNearTRKs(0);
538  double eMipDR = spr::eCone_ecal(geo,
539  barrelRecHitsHandle,
540  endcapRecHitsHandle,
541  trkDetItr->pointHCAL,
542  trkDetItr->pointECAL,
543  a_mipR_,
544  trkDetItr->directionECAL,
545  nRH_eMipDR);
546  double hmaxNearP = spr::chargeIsolationCone(nTracks, trkCaloDirections, a_charIsoR_, nNearTRKs, false);
547  HcalDetId detId = (HcalDetId)(trkDetItr->detIdHCAL);
548  int ieta = detId.ietaAbs();
549  double eIsolation = (maxRestrictionP_ * exp(slopeRestrictionP_ * ((double)(ieta))));
550  if (eIsolation < eIsolate_)
551  eIsolation = eIsolate_;
552 #ifdef EDM_ML_DEBUG
553  edm::LogVerbatim("HcalIsoTrack") << "This track : " << nTracks << " (pt|eta|phi|p) :" << pTrack->pt() << "|"
554  << pTrack->eta() << "|" << pTrack->phi() << "|" << t_p << " e_MIP " << eMipDR
555  << " Chg Isolation " << hmaxNearP << ":" << eIsolation;
556 #endif
557  if (t_p > pTrackMin_ && eMipDR < eEcalMax_ && hmaxNearP < eIsolation) {
558  reco::HcalIsolatedTrackCandidate newCandidate(v4);
559  newCandidate.SetMaxP(hmaxNearP);
560  newCandidate.SetEnergyEcal(eMipDR);
561  newCandidate.setL1(ptL1, etaL1, phiL1);
562  newCandidate.SetEtaPhiEcal((trkDetItr->pointECAL).eta(), (trkDetItr->pointECAL).phi());
563  HcalDetId detId = HcalDetId(trkDetItr->detIdHCAL);
564  newCandidate.SetEtaPhiHcal(
565  (trkDetItr->pointHCAL).eta(), (trkDetItr->pointHCAL).phi(), detId.ieta(), detId.iphi());
566  int indx(0);
567  for (reco::TrackCollection::const_iterator trkItr1 = trkCollection->begin(); trkItr1 != trkCollection->end();
568  ++trkItr1, ++indx) {
569  const reco::Track* pTrack1 = &(*trkItr1);
570  if (pTrack1 == pTrack) {
571  reco::TrackRef tRef = reco::TrackRef(trkCollection, indx);
572  newCandidate.setTrack(tRef);
573  break;
574  }
575  }
576  trackCollection->push_back(newCandidate);
577  }
578  }
579  }
580  return trackCollection;
581 }
582 
584  double& ptL1,
585  double& etaL1,
586  double& phiL1) {
587  for (unsigned int p = 0; p < objref.size(); p++) {
588  if (objref[p]->pt() > ptL1) {
589  ptL1 = objref[p]->pt();
590  phiL1 = objref[p]->phi();
591  etaL1 = objref[p]->eta();
592  }
593  }
594 }
595 
597 
ConfigurationDescriptions.h
spr::trackSelectionParameters::maxDxyPV
double maxDxyPV
Definition: TrackSelection.h:22
AlCaIsoTracksProducer::tok_EB_
edm::EDGetTokenT< EcalRecHitCollection > tok_EB_
Definition: AlCaIsoTracksProducer.cc:142
reco::HcalIsolatedTrackCandidate::SetEtaPhiEcal
void SetEtaPhiEcal(double eta, double phi)
eta, phi at ECAL surface
Definition: HcalIsolatedTrackCandidate.h:85
TrackExtra.h
DDAxes::y
Handle.h
reco::HcalIsolatedTrackCandidate::setL1
void setL1(double pt, double eta, double phi)
Definition: HcalIsolatedTrackCandidate.h:74
mps_fire.i
i
Definition: mps_fire.py:428
edm::SortedCollection::const_iterator
std::vector< T >::const_iterator const_iterator
Definition: SortedCollection.h:80
reco::HcalIsolatedTrackCandidate::SetMaxP
void SetMaxP(double mp)
Definition: HcalIsolatedTrackCandidate.h:67
MessageLogger.h
TrackExtraFwd.h
edm::Handle::product
T const * product() const
Definition: Handle.h:70
AlCaIsoTracksProducer::tok_geom_
edm::ESGetToken< CaloGeometry, CaloGeometryRecord > tok_geom_
Definition: AlCaIsoTracksProducer.cc:145
edm::InputTag::instance
std::string const & instance() const
Definition: InputTag.h:37
TriggerResults.h
AlCaIsoTracksProducer::labelRecVtx_
const edm::InputTag labelRecVtx_
Definition: AlCaIsoTracksProducer.cc:128
spr::trackSelectionParameters::maxDzPV
double maxDzPV
Definition: TrackSelection.h:22
HcalDetId::iphi
constexpr int iphi() const
get the cell iphi
Definition: HcalDetId.h:157
spr::trackSelectionParameters::maxChi2
double maxChi2
Definition: TrackSelection.h:22
DiDispStaMuonMonitor_cfi.pt
pt
Definition: DiDispStaMuonMonitor_cfi.py:39
reco::TrackBase::p
double p() const
momentum vector magnitude
Definition: TrackBase.h:631
trigger::TriggerL1ForJet
Definition: TriggerTypeDefs.h:34
EcalSeverityLevelAlgoRcd.h
edm::Run
Definition: Run.h:45
AlCaIsoTracksProducer
Definition: AlCaIsoTracksProducer.cc:85
TriggerEvent.h
edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs >
HcalIsolatedTrackCandidate.h
TrackBase.h
edm
HLT enums.
Definition: AlignableModifier.h:19
AlCaHLTBitMon_ParallelJobs.p
p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
AlCaIsoTracksProducer::labelEE_
const edm::InputTag labelEE_
Definition: AlCaIsoTracksProducer.cc:129
AlCaIsoTracksProducer::slopeRestrictionP_
const double slopeRestrictionP_
Definition: AlCaIsoTracksProducer.cc:124
AlCaIsoTracksProducer::endRun
void endRun(edm::Run const &, edm::EventSetup const &) override
Definition: AlCaIsoTracksProducer.cc:481
AlCaIsoTracksProducer::hltConfig_
HLTConfigProvider hltConfig_
Definition: AlCaIsoTracksProducer.cc:118
reco::HcalIsolatedTrackCandidate::SetEtaPhiHcal
void SetEtaPhiHcal(double eta, double phi, int ieta, int iphi)
eta, phi at HCAL surface
Definition: HcalIsolatedTrackCandidate.h:96
EBDetId.h
EEDetId.h
AlCaIsoTracksProducer::select
reco::HcalIsolatedTrackCandidateCollection * select(edm::Handle< edm::TriggerResults > &triggerResults, const std::vector< std::string > &triggerNames_, edm::Handle< reco::TrackCollection > &trkCollection, math::XYZPoint &leadPV, edm::Handle< EcalRecHitCollection > &barrelRecHitsHandle, edm::Handle< EcalRecHitCollection > &endcapRecHitsHandle, edm::Handle< HBHERecHitCollection > &hbhe, double ptL1, double etaL1, double phiL1)
Definition: AlCaIsoTracksProducer.cc:486
AlCaIsoTracksProducer::labelBS_
const edm::InputTag labelBS_
Definition: AlCaIsoTracksProducer.cc:128
HLT_FULL_cff.InputTag
InputTag
Definition: HLT_FULL_cff.py:89281
AlCaIsoTracksProducer::tok_hltGT_
edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > tok_hltGT_
Definition: AlCaIsoTracksProducer.cc:136
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
triggerResults
static const std::string triggerResults
Definition: EdmProvDump.cc:45
AlCaIsoTracks::Counters::nGood_
std::atomic< unsigned int > nGood_
Definition: AlCaIsoTracksFilter.cc:63
reco::HcalIsolatedTrackCandidate
Definition: HcalIsolatedTrackCandidate.h:21
EDProducer.h
AlCaIsoTracksProducer::eIsolate_
const double eIsolate_
Definition: AlCaIsoTracksProducer.cc:125
TriggerFilterObjectWithRefs.h
reco::TrackBase::px
double px() const
x coordinate of momentum vector
Definition: TrackBase.h:640
spr::goodTrack
bool goodTrack(const reco::Track *pTrack, math::XYZPoint leadPV, trackSelectionParameters parameters, bool debug=false)
Definition: TrackSelection.cc:10
AlCaIsoTracksProducer::AlCaIsoTracksProducer
AlCaIsoTracksProducer(edm::ParameterSet const &, const AlCaIsoTracks::Counters *count)
Definition: AlCaIsoTracksProducer.cc:149
DDAxes::x
AlCaIsoTracksProducer::globalEndJob
static void globalEndJob(const AlCaIsoTracks::Counters *counters)
Definition: AlCaIsoTracksProducer.cc:467
spr::find
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:19
BeamSpotPI::nTracks
Definition: BeamSpotPayloadInspectorHelper.h:42
convertSQLiteXML.ok
bool ok
Definition: convertSQLiteXML.py:98
edm::Handle< edm::TriggerResults >
AlCaIsoTracksProducer::labelHBHE_
const edm::InputTag labelHBHE_
Definition: AlCaIsoTracksProducer.cc:129
edm::RunBase::run
RunNumber_t run() const
Definition: RunBase.h:40
edm::LogWarning
Log< level::Warning, false > LogWarning
Definition: MessageLogger.h:122
trigger::TriggerRefsCollections::getObjects
void getObjects(Vids &ids, VRphoton &refs) const
various physics-level getters:
Definition: TriggerRefsCollections.h:590
EcalRecHitCollections.h
edm::Ref
Definition: AssociativeIterator.h:58
AlCaIsoTracksProducer::tok_recVtx_
edm::EDGetTokenT< reco::VertexCollection > tok_recVtx_
Definition: AlCaIsoTracksProducer.cc:140
AlCaIsoTracksProducer::labelIsoTk_
const std::string labelIsoTk_
Definition: AlCaIsoTracksProducer.cc:131
reco::TrackBase::pt
double pt() const
track transverse momentum
Definition: TrackBase.h:637
edm::InputTag::label
std::string const & label() const
Definition: InputTag.h:36
AlCaIsoTracksProducer::labelHltGT_
const edm::InputTag labelHltGT_
Definition: AlCaIsoTracksProducer.cc:129
MakerMacros.h
CaloGeometry
Definition: CaloGeometry.h:21
AlCaIsoTracksProducer::pTrackLow_
const double pTrackLow_
Definition: AlCaIsoTracksProducer.cc:126
Track.h
counters
const caConstants::TupleMultiplicity const CAHitNtupletGeneratorKernelsGPU::HitToTuple cms::cuda::AtomicPairCounter const GPUCACell *__restrict__ const uint32_t *__restrict__ const gpuPixelDoublets::CellNeighborsVector const gpuPixelDoublets::CellTracksVector const GPUCACell::OuterHitOfCell *__restrict__ uint32_t uint32_t CAHitNtupletGeneratorKernelsGPU::Counters * counters
Definition: CAHitNtupletGeneratorKernelsImpl.h:43
TrackFwd.h
DEFINE_FWK_MODULE
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
AlCaIsoTracks::Counters::nRange_
std::atomic< unsigned int > nRange_
Definition: AlCaIsoTracksFilter.cc:63
BeamSpot.h
edm::ConfigurationDescriptions::add
void add(std::string const &label, ParameterSetDescription const &psetDescription)
Definition: ConfigurationDescriptions.cc:57
reco::TrackBase::py
double py() const
y coordinate of momentum vector
Definition: TrackBase.h:643
AlCaIsoTracks::Counters::Counters
Counters()
Definition: AlCaIsoTracksProducer.cc:80
L1TEGammaOffline_cfi.triggerNames
triggerNames
Definition: L1TEGammaOffline_cfi.py:40
edm::SortedCollection::begin
const_iterator begin() const
Definition: SortedCollection.h:262
AlCaIsoTracksProducer::produce
void produce(edm::Event &, edm::EventSetup const &) override
Definition: AlCaIsoTracksProducer.cc:293
ChargeIsolation.h
DDAxes::z
reco::Track
Definition: Track.h:27
ProductID.h
IdealMagneticFieldRecord.h
AlCaIsoTracksProducer::selectionParameter_
spr::trackSelectionParameters selectionParameter_
Definition: AlCaIsoTracksProducer.cc:120
AlCaIsoTracksProducer::nRange_
unsigned int nRange_
Definition: AlCaIsoTracksProducer.cc:119
AlCaIsoTracksProducer::endStream
void endStream() override
Definition: AlCaIsoTracksProducer.cc:461
submitPVResolutionJobs.count
count
Definition: submitPVResolutionJobs.py:352
spr::trackSelectionParameters::minPt
double minPt
Definition: TrackSelection.h:20
AlCaIsoTracksProducer::~AlCaIsoTracksProducer
~AlCaIsoTracksProducer() override
Definition: AlCaIsoTracksProducer.cc:247
spr::trackSelectionParameters
Definition: TrackSelection.h:12
spr::trackSelectionParameters::minOuterHit
int minOuterHit
Definition: TrackSelection.h:23
AlCaIsoTracksProducer::tok_EE_
edm::EDGetTokenT< EcalRecHitCollection > tok_EE_
Definition: AlCaIsoTracksProducer.cc:143
AlCaIsoTracksProducer::tok_trigRes_
edm::EDGetTokenT< edm::TriggerResults > tok_trigRes_
Definition: AlCaIsoTracksProducer.cc:138
dqmdumpme.k
k
Definition: dqmdumpme.py:60
reco::BeamSpot::position
const Point & position() const
position
Definition: BeamSpot.h:59
AlCaIsoTracksProducer::nAll_
unsigned int nAll_
Definition: AlCaIsoTracksProducer.cc:119
AlCaIsoTracksProducer::pTrackHigh_
const double pTrackHigh_
Definition: AlCaIsoTracksProducer.cc:126
AlCaIsoTracks
Definition: AlCaIsoTracksFilter.cc:60
spr::chargeIsolationCone
double chargeIsolationCone(unsigned int trkIndex, std::vector< spr::propagatedTrackDirection > &trkDirs, double dR, int &nNearTRKs, bool debug=false)
Definition: ChargeIsolation.cc:288
eCone.h
reco::HcalIsolatedTrackCandidate::setTrack
void setTrack(const reco::TrackRef &tr)
Definition: HcalIsolatedTrackCandidate.h:63
EcalSeverityLevelAlgo.h
AlCaIsoTracksProducer::labelEB_
const edm::InputTag labelEB_
Definition: AlCaIsoTracksProducer.cc:129
reco::TrackBase::phi
double phi() const
azimuthal angle of momentum vector
Definition: TrackBase.h:649
AlCaIsoTracksProducer::preScale_
const int preScale_
Definition: AlCaIsoTracksProducer.cc:127
spr::trackSelectionParameters::maxDpOverP
double maxDpOverP
Definition: TrackSelection.h:22
CaloGeometryRecord.h
edm::ConfigurationDescriptions
Definition: ConfigurationDescriptions.h:28
reco::TrackRef
edm::Ref< TrackCollection > TrackRef
persistent reference to a Track
Definition: TrackFwd.h:20
spr::trackSelectionParameters::minLayerCrossed
int minLayerCrossed
Definition: TrackSelection.h:23
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
Vertex.h
EcalSubdetector.h
reco::HcalIsolatedTrackCandidateCollection
std::vector< HcalIsolatedTrackCandidate > HcalIsolatedTrackCandidateCollection
collectin of HcalIsolatedTrackCandidate objects
Definition: HcalIsolatedTrackCandidateFwd.h:9
AlCaIsoTracksProducer::a_coneR_
const double a_coneR_
Definition: AlCaIsoTracksProducer.cc:123
AlCaIsoTracksProducer::tok_trigEvt_
edm::EDGetTokenT< trigger::TriggerEvent > tok_trigEvt_
Definition: AlCaIsoTracksProducer.cc:137
LEDCalibrationChannels.ieta
ieta
Definition: LEDCalibrationChannels.py:63
CaloSubdetectorGeometry.h
HcalDetId::ieta
constexpr int ieta() const
get the cell ieta
Definition: HcalDetId.h:155
L1JetParticleFwd.h
AlCaIsoTracksProducer::labelTriggerEvent_
const edm::InputTag labelTriggerEvent_
Definition: AlCaIsoTracksProducer.cc:130
edm::ParameterSet
Definition: ParameterSet.h:47
math::XYZPoint
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:12
duplicaterechits_cfi.trackCollection
trackCollection
Definition: duplicaterechits_cfi.py:4
Event.h
edm::SortedCollection::end
const_iterator end() const
Definition: SortedCollection.h:267
TrackSelection.h
AlCaIsoTracksProducer::tok_bs_
edm::EDGetTokenT< reco::BeamSpot > tok_bs_
Definition: AlCaIsoTracksProducer.cc:141
HcalDetId.h
spr::trackSelectionParameters::maxOutMiss
int maxOutMiss
Definition: TrackSelection.h:24
AlCaIsoTracks::Counters
Definition: AlCaIsoTracksFilter.cc:61
reco::TrackBase::eta
double eta() const
pseudorapidity of momentum vector
Definition: TrackBase.h:652
CaloTopologyRecord.h
HcalDetId
Definition: HcalDetId.h:12
createfilelist.int
int
Definition: createfilelist.py:10
TriggerNames.h
iEvent
int iEvent
Definition: GenABIO.cc:224
AlCaIsoTracksProducer::maxRestrictionP_
const double maxRestrictionP_
Definition: AlCaIsoTracksProducer.cc:124
trackerHitRTTI::vector
Definition: trackerHitRTTI.h:21
edm::stream::EDProducer
Definition: EDProducer.h:38
AlCaIsoTracksProducer::a_mipR_
const double a_mipR_
Definition: AlCaIsoTracksProducer.cc:123
MagneticField.h
edm::EventSetup
Definition: EventSetup.h:58
HcalSubdetector.h
trigger::TriggerEvent
The single EDProduct to be saved for each event (AOD case)
Definition: TriggerEvent.h:25
AlCaIsoTracksProducer::tok_hbhe_
edm::EDGetTokenT< HBHERecHitCollection > tok_hbhe_
Definition: AlCaIsoTracksProducer.cc:144
HLTConfigProvider.h
HitPattern.h
PDWG_DiPhoton_SD_cff.triggerEvent
triggerEvent
Definition: PDWG_DiPhoton_SD_cff.py:39
spr::trackSelectionParameters::minQuality
reco::TrackBase::TrackQuality minQuality
Definition: TrackSelection.h:21
edm::ESGetToken< CaloGeometry, CaloGeometryRecord >
AlCaIsoTracksProducer::trigNames_
const std::vector< std::string > trigNames_
Definition: AlCaIsoTracksProducer.cc:121
edm::EventSetup::getData
bool getData(T &iHolder) const
Definition: EventSetup.h:127
CaloTopology.h
photonIsolationHIProducer_cfi.hbhe
hbhe
Definition: photonIsolationHIProducer_cfi.py:8
AlCaIsoTracksProducer::a_charIsoR_
double a_charIsoR_
Definition: AlCaIsoTracksProducer.cc:132
AlCaIsoTracksProducer::beginRun
void beginRun(edm::Run const &, edm::EventSetup const &) override
Definition: AlCaIsoTracksProducer.cc:472
spr::propagateCALO
std::vector< spr::propagatedTrackID > propagateCALO(edm::Handle< reco::TrackCollection > &trkCollection, const CaloGeometry *geo, const MagneticField *bField, const std::string &theTrackQuality, bool debug=false)
Definition: CaloPropagateTrack.cc:141
reco::TrackBase::qualityByName
static TrackQuality qualityByName(const std::string &name)
Definition: TrackBase.cc:126
VertexFwd.h
AlCaIsoTracksProducer::processName_
const std::string processName_
Definition: AlCaIsoTracksProducer.cc:122
DDAxes::phi
CaloSubdetectorTopology.h
AlCaIsoTracksProducer::theTrackQuality_
const std::string theTrackQuality_
Definition: AlCaIsoTracksProducer.cc:122
HcalTopology.h
EcalTrigTowerConstituentsMap.h
submitPVResolutionJobs.desc
string desc
Definition: submitPVResolutionJobs.py:251
HLTConfigProvider
Definition: HLTConfigProvider.h:29
eostools.move
def move(src, dest)
Definition: eostools.py:511
std
Definition: JetResolutionObject.h:76
Ref.h
AlCaIsoTracksProducer::eEcalMax_
const double eEcalMax_
Definition: AlCaIsoTracksProducer.cc:125
AlCaIsoTracksProducer::nGood_
unsigned int nGood_
Definition: AlCaIsoTracksProducer.cc:119
HLTConfigProvider::init
bool init(const edm::Run &iRun, const edm::EventSetup &iSetup, const std::string &processName, bool &changed)
d'tor
Definition: HLTConfigProvider.cc:36
AlCaIsoTracksProducer::setPtEtaPhi
void setPtEtaPhi(std::vector< edm::Ref< l1extra::L1JetParticleCollection > > &objref, double &ptL1, double &etaL1, double &phiL1)
Definition: AlCaIsoTracksProducer.cc:583
AlCaIsoTracksProducer::initializeGlobalCache
static std::unique_ptr< AlCaIsoTracks::Counters > initializeGlobalCache(edm::ParameterSet const &)
Definition: AlCaIsoTracksProducer.cc:90
extraflags_cff.vtx
vtx
Definition: extraflags_cff.py:18
DetId.h
Frameworkfwd.h
trigger::TriggerL1TauJet
Definition: TriggerTypeDefs.h:35
edm::LogVerbatim
Log< level::Info, true > LogVerbatim
Definition: MessageLogger.h:128
CaloPropagateTrack.h
AlCaIsoTracksProducer::fillDescriptions
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
Definition: AlCaIsoTracksProducer.cc:249
math::XYZTLorentzVector
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:29
spr::trackSelectionParameters::maxInMiss
int maxInMiss
Definition: TrackSelection.h:24
CaloGeometry.h
AlCaIsoTracksProducer::nRun_
unsigned int nRun_
Definition: AlCaIsoTracksProducer.cc:119
edm::TriggerNames
Definition: TriggerNames.h:55
AlCaIsoTracks::Counters::nAll_
std::atomic< unsigned int > nAll_
Definition: AlCaIsoTracksFilter.cc:63
AlCaIsoTracksProducer::labelTriggerResults_
const edm::InputTag labelTriggerResults_
Definition: AlCaIsoTracksProducer.cc:130
EventSetup.h
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
HcalRecHitCollections.h
Exception.h
AlCaIsoTracksProducer::tok_genTrack_
edm::EDGetTokenT< reco::TrackCollection > tok_genTrack_
Definition: AlCaIsoTracksProducer.cc:139
reco::TrackBase::pz
double pz() const
z coordinate of momentum vector
Definition: TrackBase.h:646
RunInfoPI::valid
Definition: RunInfoPayloadInspectoHelper.h:16
AlCaIsoTracksProducer::labelGenTrack_
const edm::InputTag labelGenTrack_
Definition: AlCaIsoTracksProducer.cc:128
trigger::TriggerL1CenJet
Definition: TriggerTypeDefs.h:33
HcalDetId::ietaAbs
constexpr int ietaAbs() const
get the absolute value of the cell ieta
Definition: HcalDetId.h:148
ParameterSet.h
JetChargeProducer_cfi.exp
exp
Definition: JetChargeProducer_cfi.py:6
AlCaIsoTracksProducer::pTrackMin_
const double pTrackMin_
Definition: AlCaIsoTracksProducer.cc:125
edm::HandleBase::isValid
bool isValid() const
Definition: HandleBase.h:70
AlCaIsoTracksProducer::geo
const CaloGeometry * geo
Definition: AlCaIsoTracksProducer.cc:134
edm::Event
Definition: Event.h:73
spr::eCone_ecal
double eCone_ecal(const CaloGeometry *geo, edm::Handle< T > &barrelhits, edm::Handle< T > &endcaphits, const GlobalPoint &hpoint1, const GlobalPoint &point1, double dR, const GlobalVector &trackMom, int &nRecHits, double ebThr=-100, double eeThr=-100, double tMin=-500, double tMax=500, bool debug=false)
MagneticField
Definition: MagneticField.h:19
edm::Log
Definition: MessageLogger.h:70
L1JetParticle.h
edm::InputTag
Definition: InputTag.h:15
reco::HcalIsolatedTrackCandidate::SetEnergyEcal
void SetEnergyEcal(double a)
Definition: HcalIsolatedTrackCandidate.h:82
EcalChannelStatusRcd.h
AlCaIsoTracksProducer::tok_magField_
edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > tok_magField_
Definition: AlCaIsoTracksProducer.cc:146
ValidationMatrix.hlt
hlt
Definition: ValidationMatrix.py:459
AlCaIsoTracksProducer::bField
const MagneticField * bField
Definition: AlCaIsoTracksProducer.cc:133