CMS 3D CMS Logo

IsoTrackCalib.cc
Go to the documentation of this file.
1 // system include files
2 #include <memory>
3 
4 // Root objects
5 #include "TROOT.h"
6 #include "TSystem.h"
7 #include "TFile.h"
8 #include "TProfile.h"
9 #include "TDirectory.h"
10 #include "TTree.h"
11 #include "TLorentzVector.h"
12 #include "TInterpreter.h"
13 
19 
20 //L1 trigger Menus etc
26 
30 
31 //Tracks
36 // Vertices
40 // Jets
44 
45 //Triggers
52 
62 
65 
74 
77 
81 
82 class IsoTrackCalib : public edm::one::EDAnalyzer<edm::one::WatchRuns, edm::one::SharedResources> {
83 public:
84  explicit IsoTrackCalib(const edm::ParameterSet&);
85  ~IsoTrackCalib() override;
86 
87  static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
88 
89 private:
90  void beginJob() override;
91  void analyze(const edm::Event&, const edm::EventSetup&) override;
92  void endJob() override {}
93  void beginRun(edm::Run const&, edm::EventSetup const&) override;
94  void endRun(edm::Run const&, edm::EventSetup const&) override;
95 
99  double deltaR(double eta1, double eta2, double phi1, double phi2);
100 
105  const int verbosity_;
106  const std::vector<std::string> l1Names_;
109  const double a_coneR_, a_charIsoR_, a_mipR_;
110  std::vector<bool>* t_l1bits;
111 
124 
125  TTree* tree;
130 
132  std::vector<unsigned int>* t_DetIds;
133  std::vector<double>*t_HitEnergies, pbin;
135  TH1I *h_iEta, *h_tkEta0[5], *h_tkEta1[5], *h_tkEta2[5];
136  TH1I *h_tkEta3[5], *h_tkEta4[5], *h_tkEta5[5];
138  TH1F* h_jetpt[4];
139  TH1I *h_tketa0[6], *h_tketa1[6], *h_tketa2[6];
140  TH1I *h_tketa3[6], *h_tketa4[6], *h_tketa5[6];
141  std::map<std::pair<unsigned int, std::string>, int> l1AlgoMap_;
142 };
143 
144 static const bool useL1GtTriggerMenuLite(true);
146  : m_l1GtUtils(iConfig, consumesCollector(), useL1GtTriggerMenuLite, *this, L1GtUtils::UseEventSetupIn::Event),
147  verbosity_(iConfig.getUntrackedParameter<int>("Verbosity", 0)),
148  l1Names_(iConfig.getUntrackedParameter<std::vector<std::string> >("L1Seed")),
149  theTrackQuality_(iConfig.getUntrackedParameter<std::string>("TrackQuality", "highPurity")),
150  a_coneR_(iConfig.getUntrackedParameter<double>("ConeRadius", 34.98)),
151  a_charIsoR_(a_coneR_ + 28.9),
152  a_mipR_(iConfig.getUntrackedParameter<double>("ConeRadiusMIP", 14.0)),
153  tok_genTrack_(consumes<reco::TrackCollection>(edm::InputTag("generalTracks"))),
154  tok_recVtx_(consumes<reco::VertexCollection>(edm::InputTag("offlinePrimaryVertices"))),
155  tok_bs_(consumes<reco::BeamSpot>(edm::InputTag("offlineBeamSpot"))),
156  tok_ew_(consumes<GenEventInfoProduct>(edm::InputTag("generatorSmeared"))),
157  tok_jets_(consumes<reco::GenJetCollection>(iConfig.getParameter<edm::InputTag>("JetSource"))),
158  tok_pfjets_(consumes<reco::PFJetCollection>(edm::InputTag("ak5PFJets"))) {
159  usesResource(TFileService::kSharedResource);
160 
161  //now do whatever initialization is needed
163  selectionParameters_.minPt = iConfig.getUntrackedParameter<double>("MinTrackPt", 10.0);
164  selectionParameters_.minQuality = trackQuality_;
165  selectionParameters_.maxDxyPV = iConfig.getUntrackedParameter<double>("MaxDxyPV", 0.2);
166  selectionParameters_.maxDzPV = iConfig.getUntrackedParameter<double>("MaxDzPV", 5.0);
167  selectionParameters_.maxChi2 = iConfig.getUntrackedParameter<double>("MaxChi2", 5.0);
168  selectionParameters_.maxDpOverP = iConfig.getUntrackedParameter<double>("MaxDpOverP", 0.1);
169  selectionParameters_.minOuterHit = iConfig.getUntrackedParameter<int>("MinOuterHit", 4);
170  selectionParameters_.minLayerCrossed = iConfig.getUntrackedParameter<int>("MinLayerCrossed", 8);
171  selectionParameters_.maxInMiss = iConfig.getUntrackedParameter<int>("MaxInMiss", 0);
172  selectionParameters_.maxOutMiss = iConfig.getUntrackedParameter<int>("MaxOutMiss", 0);
173  bool isItAOD = iConfig.getUntrackedParameter<bool>("IsItAOD", false);
174  edm::InputTag L1extraTauJetSource_ = iConfig.getParameter<edm::InputTag>("L1extraTauJetSource");
175  edm::InputTag L1extraCenJetSource_ = iConfig.getParameter<edm::InputTag>("L1extraCenJetSource");
176  edm::InputTag L1extraFwdJetSource_ = iConfig.getParameter<edm::InputTag>("L1extraFwdJetSource");
177 
178  // define tokens for access
179  if (isItAOD) {
180  tok_EB_ = consumes<EcalRecHitCollection>(edm::InputTag("reducedEcalRecHitsEB"));
181  tok_EE_ = consumes<EcalRecHitCollection>(edm::InputTag("reducedEcalRecHitsEE"));
182  tok_hbhe_ = consumes<HBHERecHitCollection>(edm::InputTag("reducedHcalRecHits", "hbhereco"));
183  } else {
184  tok_EB_ = consumes<EcalRecHitCollection>(edm::InputTag("ecalRecHit", "EcalRecHitsEB"));
185  tok_EE_ = consumes<EcalRecHitCollection>(edm::InputTag("ecalRecHit", "EcalRecHitsEE"));
186  tok_hbhe_ = consumes<HBHERecHitCollection>(edm::InputTag("hbhereco"));
187  }
188  tok_L1extTauJet_ = consumes<l1extra::L1JetParticleCollection>(L1extraTauJetSource_);
189  tok_L1extCenJet_ = consumes<l1extra::L1JetParticleCollection>(L1extraCenJetSource_);
190  tok_L1extFwdJet_ = consumes<l1extra::L1JetParticleCollection>(L1extraFwdJetSource_);
191  if (verbosity_ >= 0) {
192  edm::LogInfo("IsoTrack") << "Parameters read from config file \n"
193  << "\t minPt " << selectionParameters_.minPt << "\t theTrackQuality " << theTrackQuality_
194  << "\t minQuality " << selectionParameters_.minQuality << "\t maxDxyPV "
196  << "\t maxChi2 " << selectionParameters_.maxChi2 << "\t maxDpOverP "
198  << "\t minLayerCrossed " << selectionParameters_.minLayerCrossed << "\t maxInMiss "
200  << "\t a_coneR " << a_coneR_ << "\t a_charIsoR " << a_charIsoR_ << "\t a_mipR " << a_mipR_
201  << "\t isItAOD " << isItAOD;
202  edm::LogInfo("IsoTrack") << l1Names_.size() << " triggers to be studied";
203  for (unsigned int k = 0; k < l1Names_.size(); ++k)
204  edm::LogInfo("IsoTrack") << "[" << k << "]: " << l1Names_[k];
205  }
206 }
207 
209  // do anything here that needs to be done at desctruction time
210  // (e.g. close files, deallocate resources etc.)
211 }
212 
213 // ------------ method fills 'descriptions' with the allowed parameters for the module ------------
215  std::vector<std::string> seeds = {
216  "L1_SingleJet36", "L1_SingleJet52", "L1_SingleJet68", "L1_SingleJet92", "L1_SingleJet128"};
218  desc.addUntracked<int>("Verbosity", 0);
219  desc.addUntracked<std::vector<std::string> >("L1Seed", seeds);
220  desc.addUntracked<std::string>("TrackQuality", "highPurity");
221  desc.addUntracked<double>("MinTrackPt", 10.0);
222  desc.addUntracked<double>("MaxDxyPV", 0.02);
223  desc.addUntracked<double>("MaxDzPV", 0.02);
224  desc.addUntracked<double>("MaxChi2", 5.0);
225  desc.addUntracked<double>("MaxDpOverP", 0.1);
226  desc.addUntracked<int>("MinOuterHit", 4);
227  desc.addUntracked<int>("MinLayerCrossed", 8);
228  desc.addUntracked<int>("MaxInMiss", 0);
229  desc.addUntracked<int>("MaxOutMiss", 0);
230  desc.addUntracked<double>("ConeRadius", 34.98);
231  desc.addUntracked<double>("ConeRadiusMIP", 14.0);
232  desc.addUntracked<bool>("IsItAOD", false);
233  descriptions.add("isoTrackCalib", desc);
234 }
235 
237  t_Run = iEvent.id().run();
238  t_Event = iEvent.id().event();
239  if (verbosity_ % 10 > 0)
240  edm::LogInfo("IsoTrack") << "Run " << t_Run << " Event " << t_Event << " Luminosity " << iEvent.luminosityBlock()
241  << " Bunch " << iEvent.bunchCrossing() << " starts ==========";
242 
243  //Get magnetic field and ECAL channel status
245  iSetup.get<IdealMagneticFieldRecord>().get(bFieldH);
246  const MagneticField* bField = bFieldH.product();
247 
249  iSetup.get<EcalSeverityLevelAlgoRcd>().get(sevlv);
250 
251  // get handles to calogeometry and calotopology
253  iSetup.get<CaloGeometryRecord>().get(pG);
254  const CaloGeometry* geo = pG.product();
255 
256  //Get track collection
258  iEvent.getByToken(tok_genTrack_, trkCollection);
259 
260  //event weight for FLAT sample
261  t_EventWeight = 1.0;
263  iEvent.getByToken(tok_ew_, genEventInfo);
264  if (genEventInfo.isValid())
265  t_EventWeight = genEventInfo->weight();
266 
267  // genJet information
269  iEvent.getByToken(tok_jets_, genJets);
270  if (genJets.isValid()) {
271  for (unsigned iGenJet = 0; iGenJet < genJets->size(); ++iGenJet) {
272  const reco::GenJet& genJet = (*genJets)[iGenJet];
273  double genJetPt = genJet.pt();
274  double genJetEta = genJet.eta();
275  h_jetpt[0]->Fill(genJetPt);
276  h_jetpt[1]->Fill(genJetPt, t_EventWeight);
277  if (genJetEta > -2.5 && genJetEta < 2.5) {
278  h_jetpt[2]->Fill(genJetPt);
279  h_jetpt[3]->Fill(genJetPt, t_EventWeight);
280  }
281  break;
282  }
283  }
284 
285  //pf jets
287  iEvent.getByToken(tok_pfjets_, pfJets);
288 
289  //Define the best vertex and the beamspot
291  iEvent.getByToken(tok_recVtx_, recVtxs);
292  edm::Handle<reco::BeamSpot> beamSpotH;
293  iEvent.getByToken(tok_bs_, beamSpotH);
294  math::XYZPoint leadPV(0, 0, 0);
295  if (!recVtxs->empty() && !((*recVtxs)[0].isFake())) {
296  leadPV = math::XYZPoint((*recVtxs)[0].x(), (*recVtxs)[0].y(), (*recVtxs)[0].z());
297  } else if (beamSpotH.isValid()) {
298  leadPV = beamSpotH->position();
299  }
300  if (verbosity_ > 10) {
301  if ((verbosity_ % 100) / 10 > 2)
302  edm::LogInfo("IsoTrack") << "Primary Vertex " << leadPV;
303  if (beamSpotH.isValid())
304  edm::LogInfo("IsoTrack") << " Beam Spot " << beamSpotH->position();
305  }
306 
307  // RecHits
308  edm::Handle<EcalRecHitCollection> barrelRecHitsHandle;
309  edm::Handle<EcalRecHitCollection> endcapRecHitsHandle;
310  iEvent.getByToken(tok_EB_, barrelRecHitsHandle);
311  iEvent.getByToken(tok_EE_, endcapRecHitsHandle);
313  iEvent.getByToken(tok_hbhe_, hbhe);
315 
316  for (rhitItr = hbhe->begin(); rhitItr != hbhe->end(); rhitItr++) {
317  double rec_energy = rhitItr->energy();
318  int rec_ieta = rhitItr->id().ieta();
319  int rec_depth = rhitItr->id().depth();
320  int rec_zside = rhitItr->id().zside();
321  double num1_1 = rec_zside * (rec_ieta + 0.2 * (rec_depth - 1));
322  if (verbosity_ % 10 > 0)
323  edm::LogInfo("IsoTrack") << "detid/rechit/ieta/zside/depth/num "
324  << " = " << rhitItr->id() << "/" << rec_energy << "/" << rec_ieta << "/" << rec_zside
325  << "/" << rec_depth << "/" << num1_1;
326  h_iEta->Fill(rec_ieta);
327  h_Rechit_E->Fill(rec_energy);
328  h_RecHit_iEta->Fill(rec_ieta, rec_energy);
329  h_RecHit_num->Fill(num1_1, rec_energy);
330  }
331 
332  //Propagate tracks to calorimeter surface)
333  std::vector<spr::propagatedTrackDirection> trkCaloDirections;
334  spr::propagateCALO(trkCollection, geo, bField, theTrackQuality_, trkCaloDirections, ((verbosity_ / 100) % 10 > 2));
335  std::vector<spr::propagatedTrackDirection>::const_iterator trkDetItr;
336  for (trkDetItr = trkCaloDirections.begin(); trkDetItr != trkCaloDirections.end(); trkDetItr++) {
337  if (trkDetItr->okHCAL) {
338  HcalDetId detId = (HcalDetId)(trkDetItr->detIdHCAL);
339  int tk_ieta = detId.ieta();
340  const reco::Track* pTrack = &(*(trkDetItr->trkItr));
341  double tk_p = pTrack->p();
342  h_tketa0[0]->Fill(tk_ieta);
343  for (unsigned int k = 1; k < pbin.size(); ++k) {
344  if (tk_p >= pbin[k - 1] && tk_p < pbin[k]) {
345  h_tketa0[k]->Fill(tk_ieta);
346  break;
347  }
348  }
349  }
350  }
352  t_l1bits->clear();
353  for (unsigned int i = 0; i < l1Names_.size(); ++i)
354  t_l1bits->push_back(false);
355  bool useL1EventSetup = true;
356  bool useL1GtTriggerMenuLite = true;
357 
359  int iErrorCode = -1;
360  int l1ConfCode = -1;
361  const bool l1Conf = m_l1GtUtils.availableL1Configuration(iErrorCode, l1ConfCode);
362  if (!l1Conf) {
363  edm::LogInfo("IsoTrack") << "\nL1 configuration code:" << l1ConfCode
364  << "\nNo valid L1 trigger configuration available."
365  << "\nSee text above for error code interpretation"
366  << "\nNo return here, in order to test each method"
367  << ", protected against configuration error.";
368  }
369 
370  const AlgorithmMap& algorithmMap = m_l1GtMenu->gtAlgorithmMap();
371  const std::string& menuName = m_l1GtMenu->gtTriggerMenuName();
372  if (verbosity_ % 10 > 0)
373  edm::LogInfo("IsoTrack") << "menuName " << menuName << std::endl;
374 
375  std::vector<int> algbits;
376  for (CItAlgo itAlgo = algorithmMap.begin(); itAlgo != algorithmMap.end(); itAlgo++) {
377  std::string algName = itAlgo->first;
378  int algBitNumber = (itAlgo->second).algoBitNumber();
379  bool decision = m_l1GtUtils.decision(iEvent, itAlgo->first, iErrorCode);
380 
381  bool l1ok(false);
382  if (verbosity_ % 10 > 0)
383  edm::LogInfo("IsoTrack") << algName << " " << algBitNumber << " " << decision;
384  for (unsigned int i = 0; i < l1Names_.size(); ++i) {
385  if (algName.find(l1Names_[i]) != std::string::npos) {
386  if (verbosity_ % 10 > 0)
387  edm::LogInfo("IsoTrack") << "match found"
388  << " " << algName << " " << decision;
389  t_l1bits->at(i) = (decision > 0);
390  if (decision > 0)
391  l1ok = true;
392  }
393  }
394  if (verbosity_ % 10 > 0)
395  edm::LogInfo("IsoTrack") << "l1 ok =" << l1ok;
396 
397  if (l1ok) {
399  iEvent.getByToken(tok_L1extTauJet_, l1TauHandle);
400  l1extra::L1JetParticleCollection::const_iterator itr;
401  double ptTriggered = -10;
402  double etaTriggered = -100;
403  double phiTriggered = -100;
404 
405  for (itr = l1TauHandle->begin(); itr != l1TauHandle->end(); ++itr) {
406  if (itr->pt() > ptTriggered) {
407  ptTriggered = itr->pt();
408  etaTriggered = itr->eta();
409  phiTriggered = itr->phi();
410  }
411  if (verbosity_ % 10 > 0)
412  edm::LogInfo("IsoTrack") << "tauJ pt " << itr->pt() << " eta/phi " << itr->eta() << " " << itr->phi();
413  }
415  iEvent.getByToken(tok_L1extCenJet_, l1CenJetHandle);
416  for (itr = l1CenJetHandle->begin(); itr != l1CenJetHandle->end(); ++itr) {
417  if (itr->pt() > ptTriggered) {
418  ptTriggered = itr->pt();
419  etaTriggered = itr->eta();
420  phiTriggered = itr->phi();
421  }
422  if (verbosity_ % 10 > 0)
423  edm::LogInfo("IsoTrack") << "cenJ pt " << itr->pt() << " eta/phi " << itr->eta() << " " << itr->phi();
424  }
426  iEvent.getByToken(tok_L1extFwdJet_, l1FwdJetHandle);
427  for (itr = l1FwdJetHandle->begin(); itr != l1FwdJetHandle->end(); ++itr) {
428  if (itr->pt() > ptTriggered) {
429  ptTriggered = itr->pt();
430  etaTriggered = itr->eta();
431  phiTriggered = itr->phi();
432  }
433  if (verbosity_ % 10 > 0)
434  edm::LogInfo("IsoTrack") << "forJ pt " << itr->pt() << " eta/phi " << itr->eta() << " " << itr->phi();
435  }
436  if (verbosity_ % 10 > 0)
437  edm::LogInfo("IsoTrack") << "jets pt/eta/phi = " << ptTriggered << "/" << etaTriggered << "/" << phiTriggered;
439  unsigned int nTracks(0), nselTracks(0);
440  for (trkDetItr = trkCaloDirections.begin(), nTracks = 0; trkDetItr != trkCaloDirections.end();
441  trkDetItr++, nTracks++) {
442  const reco::Track* pTrack = &(*(trkDetItr->trkItr));
443  math::XYZTLorentzVector v4(pTrack->px(), pTrack->py(), pTrack->pz(), pTrack->p());
444 
445  t_mindR1 = deltaR(etaTriggered, v4.eta(), phiTriggered, v4.phi());
446  t_mindR2 = -999;
447  if (verbosity_ % 10 > 0)
448  edm::LogInfo("IsoTrack") << "This track : " << nTracks << " (pt/eta/phi/p) :" << pTrack->pt() << "/"
449  << pTrack->eta() << "/" << pTrack->phi() << "/" << pTrack->p();
450 
451  if (verbosity_ % 10 > 0)
452  edm::LogInfo("IsoTrack") << "dr values are = " << t_mindR1;
453 
454  t_l1pt = ptTriggered;
455  t_l1eta = etaTriggered;
456  t_l1phi = phiTriggered;
457  t_l3pt = -999;
458  t_l3eta = -999;
459  t_l3phi = -999;
460 
461  //Selection of good track
462  t_selectTk = spr::goodTrack(pTrack, leadPV, selectionParameters_, ((verbosity_ / 100) % 10 > 2));
464  oneCutParameters.maxDxyPV = 10;
465  oneCutParameters.maxDzPV = 100;
466  oneCutParameters.maxInMiss = 2;
467  oneCutParameters.maxOutMiss = 2;
468  bool qltyFlag = spr::goodTrack(pTrack, leadPV, oneCutParameters, ((verbosity_ / 100) % 10 > 2));
469  oneCutParameters = selectionParameters_;
470  oneCutParameters.maxDxyPV = 10;
471  oneCutParameters.maxDzPV = 100;
472  t_qltyMissFlag = spr::goodTrack(pTrack, leadPV, oneCutParameters, ((verbosity_ / 100) % 10 > 2));
473  oneCutParameters = selectionParameters_;
474  oneCutParameters.maxInMiss = 2;
475  oneCutParameters.maxOutMiss = 2;
476  t_qltyPVFlag = spr::goodTrack(pTrack, leadPV, oneCutParameters, ((verbosity_ / 100) % 10 > 2));
477  t_ieta = 0;
478  if (trkDetItr->okHCAL) {
479  HcalDetId detId = (HcalDetId)(trkDetItr->detIdHCAL);
480  t_ieta = detId.ieta();
481  }
482  if (verbosity_ % 10 > 0)
483  edm::LogInfo("IsoTrack") << "qltyFlag|okECAL|okHCAL : " << qltyFlag << "|" << trkDetItr->okECAL << "/"
484  << trkDetItr->okHCAL;
485  t_qltyFlag = (qltyFlag && trkDetItr->okECAL && trkDetItr->okHCAL);
486  t_p = pTrack->p();
487  h_tketa1[0]->Fill(t_ieta);
488  for (unsigned int k = 1; k < pbin.size(); ++k) {
489  if (t_p >= pbin[k - 1] && t_p < pbin[k]) {
490  h_tketa1[k]->Fill(t_ieta);
491  break;
492  }
493  }
494  if (t_qltyFlag) {
495  nselTracks++;
496  h_tketa2[0]->Fill(t_ieta);
497  for (unsigned int k = 1; k < pbin.size(); ++k) {
498  if (t_p >= pbin[k - 1] && t_p < pbin[k]) {
499  h_tketa2[k]->Fill(t_ieta);
500  break;
501  }
502  }
503  int nRH_eMipDR(0), nNearTRKs(0), nRecHits(-999);
505  barrelRecHitsHandle,
506  endcapRecHitsHandle,
507  trkDetItr->pointHCAL,
508  trkDetItr->pointECAL,
509  a_mipR_,
510  trkDetItr->directionECAL,
511  nRH_eMipDR);
512  t_DetIds->clear();
513  t_HitEnergies->clear();
514  std::vector<DetId> ids;
515  t_eHcal = spr::eCone_hcal(geo,
516  hbhe,
517  trkDetItr->pointHCAL,
518  trkDetItr->pointECAL,
519  a_coneR_,
520  trkDetItr->directionHCAL,
521  nRecHits,
522  ids,
523  *t_HitEnergies);
524  for (unsigned int k = 0; k < ids.size(); ++k) {
525  t_DetIds->push_back(ids[k].rawId());
526  }
528  nTracks, trkCaloDirections, a_charIsoR_, nNearTRKs, ((verbosity_ / 100) % 10 > 2));
529  if (t_hmaxNearP < 2) {
530  h_tketa3[0]->Fill(t_ieta);
531  for (unsigned int k = 1; k < pbin.size(); ++k) {
532  if (t_p >= pbin[k - 1] && t_p < pbin[k]) {
533  h_tketa3[k]->Fill(t_ieta);
534  break;
535  }
536  }
537  if (t_eMipDR < 1) {
538  h_tketa4[0]->Fill(t_ieta);
539  for (unsigned int k = 1; k < pbin.size(); ++k) {
540  if (t_p >= pbin[k - 1] && t_p < pbin[k]) {
541  h_tketa4[k]->Fill(t_ieta);
542  break;
543  }
544  }
545  if (t_mindR1 > 1) {
546  h_tketa5[0]->Fill(t_ieta);
547  for (unsigned int k = 1; k < pbin.size(); ++k) {
548  if (t_p >= pbin[k - 1] && t_p < pbin[k]) {
549  h_tketa5[k]->Fill(t_ieta);
550  break;
551  }
552  }
553  }
554  }
555  }
556  if (verbosity_ % 10 > 0) {
557  edm::LogInfo("IsoTrack") << "This track : " << nTracks << " (pt/eta/phi/p) :" << pTrack->pt() << "/"
558  << pTrack->eta() << "/" << pTrack->phi() << "/" << t_p;
559  edm::LogInfo("IsoTrack") << "e_MIP " << t_eMipDR << " Chg Isolation " << t_hmaxNearP << " eHcal" << t_eHcal
560  << " ieta " << t_ieta << " Quality " << t_qltyMissFlag << ":" << t_qltyPVFlag
561  << ":" << t_selectTk;
562  for (unsigned int lll = 0; lll < t_DetIds->size(); lll++) {
563  edm::LogInfo("IsoTrack") << "det id is = " << t_DetIds->at(lll) << " "
564  << " hit enery is = " << t_HitEnergies->at(lll);
565  }
566  }
567  if (t_p > 20.0 && t_eMipDR < 2.0 && t_hmaxNearP < 10.0) {
568  tree->Fill();
569  }
570  }
571  }
572  }
573  }
574 }
575 
577  h_RecHit_iEta = fs_->make<TProfile>("rechit_ieta", "Rec hit vs. ieta", 60, -30, 30, 0, 1000);
578  h_RecHit_num = fs_->make<TProfile>("rechit_num", "Rec hit vs. num", 100, 0, 20, 0, 1000);
579  h_iEta = fs_->make<TH1I>("iEta", "iEta", 60, -30, 30);
580  h_Rechit_E = fs_->make<TH1F>("Rechit_E", "Rechit_E", 100, 0, 1000);
581 
582  double prange[5] = {20, 30, 40, 60, 100};
583  for (int k = 0; k < 5; ++k)
584  pbin.push_back(prange[k]);
585  std::string type[6] = {"All", "Trigger OK", "Tree Selected", "Charge Isolation", "MIP Cut", "L1 Cut"};
586  for (unsigned int k = 0; k < pbin.size(); ++k) {
587  char name[20], namp[20], title[100];
588  if (k == 0)
589  sprintf(namp, "all momentum");
590  else
591  sprintf(namp, "p = %4.0f:%4.0f GeV", pbin[k - 1], pbin[k]);
592  sprintf(name, "TrackEta0%d", k);
593  sprintf(title, "Track #eta for tracks with %s (%s)", namp, type[0].c_str());
594  h_tketa0[k] = fs_->make<TH1I>(name, title, 60, -30, 30);
595  sprintf(name, "TrackEta1%d", k);
596  sprintf(title, "Track #eta for tracks with %s (%s)", namp, type[1].c_str());
597  h_tketa1[k] = fs_->make<TH1I>(name, title, 60, -30, 30);
598  sprintf(name, "TrackEta2%d", k);
599  sprintf(title, "Track #eta for tracks with %s (%s)", namp, type[2].c_str());
600  h_tketa2[k] = fs_->make<TH1I>(name, title, 60, -30, 30);
601  sprintf(name, "TrackEta3%d", k);
602  sprintf(title, "Track #eta for tracks with %s (%s)", namp, type[3].c_str());
603  h_tketa3[k] = fs_->make<TH1I>(name, title, 60, -30, 30);
604  sprintf(name, "TrackEta4%d", k);
605  sprintf(title, "Track #eta for tracks with %s (%s)", namp, type[4].c_str());
606  h_tketa4[k] = fs_->make<TH1I>(name, title, 60, -30, 30);
607  sprintf(name, "TrackEta5%d", k);
608  sprintf(title, "Track #eta for tracks with %s (%s)", namp, type[5].c_str());
609  h_tketa5[k] = fs_->make<TH1I>(name, title, 60, -30, 30);
610  }
611  h_jetpt[0] = fs_->make<TH1F>("Jetpt0", "Jet p_T (All)", 500, 0., 2500.);
612  h_jetpt[1] = fs_->make<TH1F>("Jetpt1", "Jet p_T (All Weighted)", 500, 0., 2500.);
613  h_jetpt[2] = fs_->make<TH1F>("Jetpt2", "Jet p_T (|#eta| < 2.5)", 500, 0., 2500.);
614  h_jetpt[3] = fs_->make<TH1F>("Jetpt3", "Jet p_T (|#eta| < 2.5 Weighted)", 500, 0., 2500.);
615 
616  tree = fs_->make<TTree>("CalibTree", "CalibTree");
617 
618  tree->Branch("t_Run", &t_Run, "t_Run/I");
619  tree->Branch("t_Event", &t_Event, "t_Event/I");
620  tree->Branch("t_ieta", &t_ieta, "t_ieta/I");
621  tree->Branch("t_EventWeight", &t_EventWeight, "t_EventWeight/D");
622  tree->Branch("t_l1pt", &t_l1pt, "t_l1pt/D");
623  tree->Branch("t_l1eta", &t_l1eta, "t_l1eta/D");
624  tree->Branch("t_l1phi", &t_l1phi, "t_l1phi/D");
625  tree->Branch("t_l3pt", &t_l3pt, "t_l3pt/D");
626  tree->Branch("t_l3eta", &t_l3eta, "t_l3eta/D");
627  tree->Branch("t_l3phi", &t_l3phi, "t_l3phi/D");
628  tree->Branch("t_p", &t_p, "t_p/D");
629  tree->Branch("t_mindR1", &t_mindR1, "t_mindR1/D");
630  tree->Branch("t_mindR2", &t_mindR2, "t_mindR2/D");
631  tree->Branch("t_eMipDR", &t_eMipDR, "t_eMipDR/D");
632  tree->Branch("t_eHcal", &t_eHcal, "t_eHcal/D");
633  tree->Branch("t_hmaxNearP", &t_hmaxNearP, "t_hmaxNearP/D");
634  tree->Branch("t_selectTk", &t_selectTk, "t_selectTk/O");
635  tree->Branch("t_qltyFlag", &t_qltyFlag, "t_qltyFlag/O");
636  tree->Branch("t_qltyMissFlag", &t_qltyMissFlag, "t_qltyMissFlag/O");
637  tree->Branch("t_qltyPVFlag", &t_qltyPVFlag, "t_qltyPVFlag/O)");
638 
639  t_DetIds = new std::vector<unsigned int>();
640  t_HitEnergies = new std::vector<double>();
641  t_l1bits = new std::vector<bool>();
642  tree->Branch("t_DetIds", "std::vector<unsigned int>", &t_DetIds);
643  tree->Branch("t_HitEnergies", "std::vector<double>", &t_HitEnergies);
644  tree->Branch("t_l1bits", "std::vector<bool>", &t_l1bits);
645 }
646 
647 // ------------ method called when starting to processes a run ------------
648 void IsoTrackCalib::beginRun(edm::Run const& iRun, edm::EventSetup const& iSetup) {
649  bool changed = false;
650  bool ok = hltConfig_.init(iRun, iSetup, "HLT", changed);
651  edm::LogInfo("IsoTrack") << "Run " << iRun.run() << " hltconfig.init " << ok;
652 
653  int iErrorCode = -1;
655  const AlgorithmMap& algorithmMap = m_l1GtMenu->gtAlgorithmMap();
656  const std::string& menuName = m_l1GtMenu->gtTriggerMenuName();
657 
658  if (verbosity_ % 10 > 0)
659  edm::LogInfo("IsoTrack") << "menuName " << menuName;
660  for (CItAlgo itAlgo = algorithmMap.begin(); itAlgo != algorithmMap.end(); itAlgo++) {
661  std::string algName = itAlgo->first;
662  int algBitNumber = (itAlgo->second).algoBitNumber();
663  l1AlgoMap_.insert(std::pair<std::pair<unsigned int, std::string>, int>(
664  std::pair<unsigned int, std::string>(algBitNumber, algName), 0));
665  }
666  std::map<std::pair<unsigned int, std::string>, int>::iterator itr;
667  for (itr = l1AlgoMap_.begin(); itr != l1AlgoMap_.end(); itr++) {
668  if (verbosity_ % 10 > 0)
669  edm::LogInfo("IsoTrack") << " ********** " << (itr->first).first << " " << (itr->first).second << " "
670  << itr->second;
671  }
672 }
673 
674 // ------------ method called when ending the processing of a run ------------
675 void IsoTrackCalib::endRun(edm::Run const& iRun, edm::EventSetup const&) {
676  edm::LogInfo("IsoTrack") << "endRun " << iRun.run() << std::endl;
677 }
678 
680  return (vec1.eta() - vec2.eta());
681 }
682 
684  double phi1 = vec1.phi();
685  if (phi1 < 0)
686  phi1 += 2.0 * M_PI;
687  double phi2 = vec2.phi();
688  if (phi2 < 0)
689  phi2 += 2.0 * M_PI;
690  double dphi = phi1 - phi2;
691  if (dphi > M_PI)
692  dphi -= 2. * M_PI;
693  else if (dphi < -M_PI)
694  dphi += 2. * M_PI;
695  return dphi;
696 }
697 
699  double deta = dEta(vec1, vec2);
700  double dphi = dPhi(vec1, vec2);
701  return std::sqrt(deta * deta + dphi * dphi);
702 }
703 
704 double IsoTrackCalib::deltaR(double eta1, double eta2, double phi1, double phi2) {
705  double deta = eta1 - eta2;
706  if (phi1 < 0)
707  phi1 += 2.0 * M_PI;
708  if (phi2 < 0)
709  phi2 += 2.0 * M_PI;
710  double dphi = phi1 - phi2;
711  if (dphi > M_PI)
712  dphi -= 2. * M_PI;
713  else if (dphi < -M_PI)
714  dphi += 2. * M_PI;
715  return std::sqrt(deta * deta + dphi * dphi);
716 }
717 
718 //define this as a plug-in
spr::trackSelectionParameters::maxDxyPV
double maxDxyPV
Definition: TrackSelection.h:22
IsoTrackCalib::a_charIsoR_
const double a_charIsoR_
Definition: IsoTrackCalib.cc:109
GenEventInfoProduct
Definition: GenEventInfoProduct.h:17
edm::ESHandle::product
T const * product() const
Definition: ESHandle.h:86
L1GtTriggerMenu.h
GenJetCollection.h
DDAxes::y
nTracks
const unsigned int nTracks(const reco::Vertex &sv)
Definition: TemplatedVertexArbitrator.h:44
IsoTrackCalib::h_tketa1
TH1I * h_tketa1[6]
Definition: IsoTrackCalib.cc:139
IsoTrackCalib::h_tkEta1
TH1I * h_tkEta1[5]
Definition: IsoTrackCalib.cc:135
L1GtTriggerMenu::gtTriggerMenuName
const std::string & gtTriggerMenuName() const
Definition: L1GtTriggerMenu.h:91
IsoTrackCalib::endJob
void endJob() override
Definition: IsoTrackCalib.cc:92
IsoTrackCalib::h_jetpt
TH1F * h_jetpt[4]
Definition: IsoTrackCalib.cc:138
useL1EventSetup
static const bool useL1EventSetup(true)
EDAnalyzer.h
IsoTrackCalib::verbosity_
const int verbosity_
Definition: IsoTrackCalib.cc:105
mps_fire.i
i
Definition: mps_fire.py:355
IsoTrackCalib::h_tkEta5
TH1I * h_tkEta5[5]
Definition: IsoTrackCalib.cc:136
edm::SortedCollection::const_iterator
std::vector< T >::const_iterator const_iterator
Definition: SortedCollection.h:80
reco::GenJet
Jets made from MC generator particles.
Definition: GenJet.h:23
IsoTrackCalib::tok_jets_
const edm::EDGetTokenT< reco::GenJetCollection > tok_jets_
Definition: IsoTrackCalib.cc:119
MessageLogger.h
IsoTrackCalib::t_Event
int t_Event
Definition: IsoTrackCalib.cc:126
align::BeamSpot
Definition: StructureType.h:89
TriggerResults.h
vec1
std::vector< double > vec1
Definition: HCALResponse.h:15
spr::trackSelectionParameters::maxDzPV
double maxDzPV
Definition: TrackSelection.h:22
reco::GenJetCollection
std::vector< GenJet > GenJetCollection
collection of GenJet objects
Definition: GenJetCollection.h:14
spr::trackSelectionParameters::maxChi2
double maxChi2
Definition: TrackSelection.h:22
IsoTrackCalib::beginRun
void beginRun(edm::Run const &, edm::EventSetup const &) override
Definition: IsoTrackCalib.cc:648
IsoTrackCalib::tok_genTrack_
const edm::EDGetTokenT< reco::TrackCollection > tok_genTrack_
Definition: IsoTrackCalib.cc:112
IsoTrackCalib::endRun
void endRun(edm::Run const &, edm::EventSetup const &) override
Definition: IsoTrackCalib.cc:675
IsoTrackCalib::t_qltyPVFlag
bool t_qltyPVFlag
Definition: IsoTrackCalib.cc:131
reco::TrackBase::p
double p() const
momentum vector magnitude
Definition: TrackBase.h:605
IsoTrackCalib::IsoTrackCalib
IsoTrackCalib(const edm::ParameterSet &)
Definition: IsoTrackCalib.cc:145
EcalSeverityLevelAlgoRcd.h
edm::Run
Definition: Run.h:45
IsoTrackCalib::t_EventWeight
double t_EventWeight
Definition: IsoTrackCalib.cc:127
IsoTrackCalib::h_iEta
TH1I * h_iEta
Definition: IsoTrackCalib.cc:135
TriggerEvent.h
edm::EDGetTokenT< reco::TrackCollection >
CaloGeometryRecord
Definition: CaloGeometryRecord.h:30
IsoTrackCalib::pbin
std::vector< double > pbin
Definition: IsoTrackCalib.cc:133
TrackBase.h
edm
HLT enums.
Definition: AlignableModifier.h:19
IsoTrackCalib::h_tkEta2
TH1I * h_tkEta2[5]
Definition: IsoTrackCalib.cc:135
IsoTrackCalib::h_tkEta4
TH1I * h_tkEta4[5]
Definition: IsoTrackCalib.cc:136
tree
Definition: tree.py:1
L1GtTriggerMenuRcd.h
reco::VertexCollection
std::vector< Vertex > VertexCollection
collection of Vertex objects
Definition: VertexFwd.h:9
L1GtUtils::getL1GtRunCache
void getL1GtRunCache(const edm::Run &, const edm::EventSetup &, const bool, const bool)
get all the run-constant quantities for L1 trigger and cache them
Definition: L1GtUtils.cc:319
IsoTrackCalib::t_l1pt
double t_l1pt
Definition: IsoTrackCalib.cc:127
PFJet.h
HLT_2018_cff.eta1
eta1
Definition: HLT_2018_cff.py:8220
IsoTrackCalib::t_DetIds
std::vector< unsigned int > * t_DetIds
Definition: IsoTrackCalib.cc:132
IsoTrackCalib::t_l1bits
std::vector< bool > * t_l1bits
Definition: IsoTrackCalib.cc:110
edm::LogInfo
Definition: MessageLogger.h:254
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
useL1GtTriggerMenuLite
static const bool useL1GtTriggerMenuLite(true)
reco::TrackBase::TrackQuality
TrackQuality
track quality
Definition: TrackBase.h:150
l1t::UseEventSetupIn
UseEventSetupIn
Definition: L1TGlobalUtil.h:40
IsoTrackCalib::fillDescriptions
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
Definition: IsoTrackCalib.cc:214
TriggerFilterObjectWithRefs.h
reco::TrackBase::px
double px() const
x coordinate of momentum vector
Definition: TrackBase.h:611
IsoTrackCalib::t_mindR2
double t_mindR2
Definition: IsoTrackCalib.cc:129
spr::goodTrack
bool goodTrack(const reco::Track *pTrack, math::XYZPoint leadPV, trackSelectionParameters parameters, bool debug=false)
Definition: TrackSelection.cc:10
edm::ParameterSet::getUntrackedParameter
T getUntrackedParameter(std::string const &, T const &) const
DDAxes::x
L1GtUtils::decision
const bool decision(const edm::Event &iEvent, const std::string &nameAlgoTechTrig, int &errorCode) const
Definition: L1GtUtils.cc:1071
reco::LeafCandidate::pt
double pt() const final
transverse momentum
Definition: LeafCandidate.h:146
reco
fixed size matrix
Definition: AlignmentAlgorithmBase.h:45
edm::one::EDAnalyzer
Definition: EDAnalyzer.h:30
vec2
std::vector< vec1 > vec2
Definition: HCALResponse.h:16
convertSQLiteXML.ok
bool ok
Definition: convertSQLiteXML.py:98
IsoTrackCalib::l1Names_
const std::vector< std::string > l1Names_
Definition: IsoTrackCalib.cc:106
edm::Handle< reco::TrackCollection >
edm::RunBase::run
RunNumber_t run() const
Definition: RunBase.h:40
dqmdumpme.first
first
Definition: dqmdumpme.py:55
IsoTrackCalib::tok_bs_
const edm::EDGetTokenT< reco::BeamSpot > tok_bs_
Definition: IsoTrackCalib.cc:114
IsoTrackCalib::t_eMipDR
double t_eMipDR
Definition: IsoTrackCalib.cc:129
IsoTrackCalib::~IsoTrackCalib
~IsoTrackCalib() override
Definition: IsoTrackCalib.cc:208
IsoTrackCalib::t_l3pt
double t_l3pt
Definition: IsoTrackCalib.cc:128
IsoTrackCalib::l1AlgoMap_
std::map< std::pair< unsigned int, std::string >, int > l1AlgoMap_
Definition: IsoTrackCalib.cc:141
reco::TrackBase::pt
double pt() const
track transverse momentum
Definition: TrackBase.h:608
IdealMagneticFieldRecord
Definition: IdealMagneticFieldRecord.h:11
MakerMacros.h
CaloGeometry
Definition: CaloGeometry.h:21
IsoTrackCalib::t_l3eta
double t_l3eta
Definition: IsoTrackCalib.cc:128
IsoTrackCalib::h_tkEta3
TH1I * h_tkEta3[5]
Definition: IsoTrackCalib.cc:136
Track.h
edm::EventSetup::get
T get() const
Definition: EventSetup.h:73
TrackFwd.h
DEFINE_FWK_MODULE
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
IsoTrackCalib::h_RecHit_num
TProfile * h_RecHit_num
Definition: IsoTrackCalib.cc:134
BeamSpot.h
IsoTrackCalib::m_l1GtUtils
L1GtUtils m_l1GtUtils
Definition: IsoTrackCalib.cc:103
CItAlgo
AlgorithmMap::const_iterator CItAlgo
iterators through map containing the algorithms
Definition: L1GtTriggerMenuFwd.h:38
IsoTrackCalib::h_RecHit_iEta
TProfile * h_RecHit_iEta
Definition: IsoTrackCalib.cc:134
edm::ConfigurationDescriptions::add
void add(std::string const &label, ParameterSetDescription const &psetDescription)
Definition: ConfigurationDescriptions.cc:57
IsoTrackCalib::fs_
edm::Service< TFileService > fs_
Definition: IsoTrackCalib.cc:101
IsoTrackCalib::t_qltyFlag
bool t_qltyFlag
Definition: IsoTrackCalib.cc:131
reco::TrackBase::py
double py() const
y coordinate of momentum vector
Definition: TrackBase.h:614
IsoTrackCalib::tok_EB_
edm::EDGetTokenT< EcalRecHitCollection > tok_EB_
Definition: IsoTrackCalib.cc:115
IsoTrackCalib::tok_hbhe_
edm::EDGetTokenT< HBHERecHitCollection > tok_hbhe_
Definition: IsoTrackCalib.cc:117
IsoTrackCalib::dPhi
double dPhi(math::XYZTLorentzVector &, math::XYZTLorentzVector &)
Definition: IsoTrackCalib.cc:683
Service.h
IsoTrackCalib::tok_EE_
edm::EDGetTokenT< EcalRecHitCollection > tok_EE_
Definition: IsoTrackCalib.cc:116
ChargeIsolation.h
IsoTrackCalib::t_l3phi
double t_l3phi
Definition: IsoTrackCalib.cc:128
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
DDAxes::z
IsoTrackCalib
Definition: IsoTrackCalib.cc:82
reco::Track
Definition: Track.h:27
AlgorithmMap
std::map< std::string, L1GtAlgorithm > AlgorithmMap
map containing the algorithms
Definition: L1GtTriggerMenuFwd.h:31
IsoTrackCalib::tok_recVtx_
const edm::EDGetTokenT< reco::VertexCollection > tok_recVtx_
Definition: IsoTrackCalib.cc:113
IdealMagneticFieldRecord.h
edm::ESHandle< MagneticField >
EcalSeverityLevelAlgoRcd
Definition: EcalSeverityLevelAlgoRcd.h:12
IsoTrackCalib::hltConfig_
HLTConfigProvider hltConfig_
Definition: IsoTrackCalib.cc:102
Event
spr::trackSelectionParameters::minPt
double minPt
Definition: TrackSelection.h:20
L1GtUtils
Definition: L1GtUtils.h:66
spr::trackSelectionParameters
Definition: TrackSelection.h:12
spr::trackSelectionParameters::minOuterHit
int minOuterHit
Definition: TrackSelection.h:23
dqmdumpme.k
k
Definition: dqmdumpme.py:60
reco::BeamSpot::position
const Point & position() const
position
Definition: BeamSpot.h:59
IsoTrackCalib::h_Rechit_E
TH1F * h_Rechit_E
Definition: IsoTrackCalib.cc:137
eECALMatrix.h
spr::chargeIsolationCone
double chargeIsolationCone(unsigned int trkIndex, std::vector< spr::propagatedTrackDirection > &trkDirs, double dR, int &nNearTRKs, bool debug=false)
Definition: ChargeIsolation.cc:287
eCone.h
EcalSeverityLevelAlgo.h
reco::TrackBase::phi
double phi() const
azimuthal angle of momentum vector
Definition: TrackBase.h:620
IsoTrackCalib::h_tketa4
TH1I * h_tketa4[6]
Definition: IsoTrackCalib.cc:140
L1GtUtils::availableL1Configuration
const bool availableL1Configuration(int &errorCode, int &l1ConfCode) const
Definition: L1GtUtils.cc:1684
HLT_2018_cff.eta2
eta2
Definition: HLT_2018_cff.py:8221
IsoTrackCalib::t_Run
int t_Run
Definition: IsoTrackCalib.cc:126
spr::trackSelectionParameters::maxDpOverP
double maxDpOverP
Definition: TrackSelection.h:22
edm::ConfigurationDescriptions
Definition: ConfigurationDescriptions.h:28
spr::trackSelectionParameters::minLayerCrossed
int minLayerCrossed
Definition: TrackSelection.h:23
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
IsoTrackCalib::t_p
double t_p
Definition: IsoTrackCalib.cc:128
Vertex.h
IsoTrackCalib::tok_L1extFwdJet_
edm::EDGetTokenT< l1extra::L1JetParticleCollection > tok_L1extFwdJet_
Definition: IsoTrackCalib.cc:123
TFileService.h
IsoTrackCalib::deltaR
double deltaR(double eta1, double eta2, double phi1, double phi2)
Definition: IsoTrackCalib.cc:704
IsoTrackCalib::t_mindR1
double t_mindR1
Definition: IsoTrackCalib.cc:128
IsoTrackCalib::h_tketa0
TH1I * h_tketa0[6]
Definition: IsoTrackCalib.cc:139
InitialStep_cff.seeds
seeds
Definition: InitialStep_cff.py:232
edm::ParameterSetDescription::addUntracked
ParameterDescriptionBase * addUntracked(U const &iLabel, T const &value)
Definition: ParameterSetDescription.h:100
CaloSubdetectorGeometry.h
HcalDetId::ieta
constexpr int ieta() const
get the cell ieta
Definition: HcalDetId.h:155
L1JetParticleFwd.h
HLT_2018_cff.InputTag
InputTag
Definition: HLT_2018_cff.py:79016
edm::ParameterSet
Definition: ParameterSet.h:36
math::XYZPoint
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:12
L1GtTriggerMenu
Definition: L1GtTriggerMenu.h:48
GenEventInfoProduct.h
Event.h
LumiDetails.h
reco::LeafCandidate::eta
double eta() const final
momentum pseudorapidity
Definition: LeafCandidate.h:152
IsoTrackCalib::dEta
double dEta(math::XYZTLorentzVector &, math::XYZTLorentzVector &)
Definition: IsoTrackCalib.cc:679
TrackSelection.h
IsoTrackCalib::h_jetp
TH1F * h_jetp
Definition: IsoTrackCalib.cc:137
spr::trackSelectionParameters::maxOutMiss
int maxOutMiss
Definition: TrackSelection.h:24
IsoTrackCalib::h_tketa2
TH1I * h_tketa2[6]
Definition: IsoTrackCalib.cc:139
reco::TrackBase::eta
double eta() const
pseudorapidity of momentum vector
Definition: TrackBase.h:623
CaloTopologyRecord.h
LorentzVector.h
IsoTrackCalib::tok_pfjets_
const edm::EDGetTokenT< reco::PFJetCollection > tok_pfjets_
Definition: IsoTrackCalib.cc:120
IsoTrackCalib::tok_L1extTauJet_
edm::EDGetTokenT< l1extra::L1JetParticleCollection > tok_L1extTauJet_
Definition: IsoTrackCalib.cc:121
HcalDetId
Definition: HcalDetId.h:12
edm::Service< TFileService >
spr::eCone_hcal
double eCone_hcal(const CaloGeometry *geo, edm::Handle< T > &hits, const GlobalPoint &hpoint1, const GlobalPoint &point1, double dR, const GlobalVector &trackMom, int &nRecHits, double hbThr=-100, double heThr=-100, double hfThr=-100, double hoThr=-100, double tMin=-500, double tMax=500, int detOnly=-1, int useRaw=0, bool debug=false)
createfilelist.int
int
Definition: createfilelist.py:10
TriggerNames.h
iEvent
int iEvent
Definition: GenABIO.cc:224
M_PI
#define M_PI
Definition: BXVectorInputProducer.cc:50
ttbarCategorization_cff.genJets
genJets
Definition: ttbarCategorization_cff.py:29
MagneticField.h
edm::EventSetup
Definition: EventSetup.h:57
IsoTrackCalib::h_tketa5
TH1I * h_tketa5[6]
Definition: IsoTrackCalib.cc:140
HLTConfigProvider.h
itr
std::vector< std::pair< float, float > >::iterator itr
Definition: HGCDigitizer.cc:28
get
#define get
HitPattern.h
spr::trackSelectionParameters::minQuality
reco::TrackBase::TrackQuality minQuality
Definition: TrackSelection.h:21
IsoTrackCalib::h_tketa3
TH1I * h_tketa3[6]
Definition: IsoTrackCalib.cc:140
TriggerObject.h
CaloTopology.h
overlapproblemtsosanalyzer_cfi.title
title
Definition: overlapproblemtsosanalyzer_cfi.py:7
photonIsolationHIProducer_cfi.hbhe
hbhe
Definition: photonIsolationHIProducer_cfi.py:8
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
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
CaloSubdetectorTopology.h
IsoTrackCalib::selectionParameters_
spr::trackSelectionParameters selectionParameters_
Definition: IsoTrackCalib.cc:107
HcalTopology.h
IsoTrackCalib::t_hmaxNearP
double t_hmaxNearP
Definition: IsoTrackCalib.cc:129
EcalTrigTowerConstituentsMap.h
type
type
Definition: HCALResponse.h:21
HLTConfigProvider
Definition: HLTConfigProvider.h:28
IsoTrackCalib::h_tkEta0
TH1I * h_tkEta0[5]
Definition: IsoTrackCalib.cc:135
IsoTrackCalib::t_HitEnergies
std::vector< double > * t_HitEnergies
Definition: IsoTrackCalib.cc:133
std
Definition: JetResolutionObject.h:76
IsoTrackCalib::analyze
void analyze(const edm::Event &, const edm::EventSetup &) override
Definition: IsoTrackCalib.cc:236
genParticles2HepMC_cfi.genEventInfo
genEventInfo
Definition: genParticles2HepMC_cfi.py:6
HLTConfigProvider::init
bool init(const edm::Run &iRun, const edm::EventSetup &iSetup, const std::string &processName, bool &changed)
d'tor
Definition: HLTConfigProvider.cc:36
reco::PFJetCollection
std::vector< PFJet > PFJetCollection
collection of PFJet objects
Definition: PFJetCollection.h:14
Calorimetry_cff.bField
bField
Definition: Calorimetry_cff.py:292
IsoTrackCalib::dR
double dR(math::XYZTLorentzVector &, math::XYZTLorentzVector &)
Definition: IsoTrackCalib.cc:698
Frameworkfwd.h
IsoTrackCalib::tok_ew_
const edm::EDGetTokenT< GenEventInfoProduct > tok_ew_
Definition: IsoTrackCalib.cc:118
CaloPropagateTrack.h
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
L1GtUtils.h
IsoTrackCalib::t_ieta
int t_ieta
Definition: IsoTrackCalib.cc:126
IsoTrackCalib::t_selectTk
bool t_selectTk
Definition: IsoTrackCalib.cc:131
CaloGeometry.h
TFileService::kSharedResource
static const std::string kSharedResource
Definition: TFileService.h:76
IsoTrackCalib::t_l1phi
double t_l1phi
Definition: IsoTrackCalib.cc:127
IsoTrackCalib::a_coneR_
const double a_coneR_
Definition: IsoTrackCalib.cc:109
Skims_PA_cff.name
name
Definition: Skims_PA_cff.py:17
IsoTrackCalib::tok_L1extCenJet_
edm::EDGetTokenT< l1extra::L1JetParticleCollection > tok_L1extCenJet_
Definition: IsoTrackCalib.cc:122
IsoTrackCalib::t_l1eta
double t_l1eta
Definition: IsoTrackCalib.cc:127
IsoTrackCalib::theTrackQuality_
const std::string theTrackQuality_
Definition: IsoTrackCalib.cc:108
reco::TrackBase::pz
double pz() const
z coordinate of momentum vector
Definition: TrackBase.h:617
GenJet.h
L1GtTriggerMenuFwd.h
ParameterSet.h
IsoTrackCalib::tree
TTree * tree
Definition: IsoTrackCalib.cc:125
edm::HandleBase::isValid
bool isValid() const
Definition: HandleBase.h:70
IsoTrackCalib::t_qltyMissFlag
bool t_qltyMissFlag
Definition: IsoTrackCalib.cc:131
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
IsoTrackCalib::m_l1GtMenu
const L1GtTriggerMenu * m_l1GtMenu
Definition: IsoTrackCalib.cc:104
L1JetParticle.h
L1GtUtils::ptrL1TriggerMenuEventSetup
const L1GtTriggerMenu * ptrL1TriggerMenuEventSetup(int &errorCode)
return a pointer to the L1 trigger menu from event setup
Definition: L1GtUtils.cc:1624
edm::InputTag
Definition: InputTag.h:15
L1GlobalTriggerReadoutRecord.h
reco::TrackCollection
std::vector< Track > TrackCollection
collection of Tracks
Definition: TrackFwd.h:14
IsoTrackCalib::beginJob
void beginJob() override
Definition: IsoTrackCalib.cc:576
IsoTrackCalib::t_eHcal
double t_eHcal
Definition: IsoTrackCalib.cc:129
pfJetBenchmark_cfi.pfJets
pfJets
Definition: pfJetBenchmark_cfi.py:4
EcalChannelStatusRcd.h
TFileService::make
T * make(const Args &... args) const
make new ROOT object
Definition: TFileService.h:64
L1GtTriggerMenu::gtAlgorithmMap
const AlgorithmMap & gtAlgorithmMap() const
get / set the algorithm map (by name)
Definition: L1GtTriggerMenu.h:187
IsoTrackCalib::a_mipR_
const double a_mipR_
Definition: IsoTrackCalib.cc:109