CMS 3D CMS Logo

IsoTrackCalibration.cc
Go to the documentation of this file.
1 
2 //#define DebugLog
3 
4 // system include files
5 #include <memory>
6 #include <string>
7 #include <vector>
8 
9 // Root objects
10 #include "TROOT.h"
11 #include "TSystem.h"
12 #include "TFile.h"
13 #include "TProfile.h"
14 #include "TDirectory.h"
15 #include "TTree.h"
16 #include "TH1F.h"
17 #include "TLorentzVector.h"
18 #include "TInterpreter.h"
19 
20 //Tracks
25 
26 // Vertices
30 
31 //Triggers
40 
51 
57 
73 
74 class IsoTrackCalibration : public edm::one::EDAnalyzer<edm::one::WatchRuns, edm::one::SharedResources> {
75 public:
76  explicit IsoTrackCalibration(const edm::ParameterSet &);
77  ~IsoTrackCalibration() override;
78 
79  static void fillDescriptions(edm::ConfigurationDescriptions &descriptions);
80 
81 private:
82  void analyze(edm::Event const &, edm::EventSetup const &) override;
83  void beginJob() override;
84  void beginRun(edm::Run const &, edm::EventSetup const &) override;
85  void endRun(edm::Run const &, edm::EventSetup const &) override;
86  virtual void beginLuminosityBlock(edm::LuminosityBlock const &, edm::EventSetup const &);
87  virtual void endLuminosityBlock(edm::LuminosityBlock const &, edm::EventSetup const &);
88 
91  std::vector<std::string> trigNames_, HLTNames_;
98  double maxEcalEnr_;
100  int nRun_;
104 
112 
113  TTree *tree;
119  std::vector<unsigned int> *t_DetIds, *t_DetIds1, *t_DetIds3;
120  std::vector<double> *t_HitEnergies, *t_HitEnergies1, *t_HitEnergies3;
121 
122  TH1F *h_nTrk, *h_nVtx;
124  TH1I *h_iEta, *h_tketa0[5], *h_tketa1[5], *h_tketa2[5];
125  TH1I *h_tketa3[5], *h_tketa4[5], *h_tketa5[5];
127  TH1F *h_jetpt[4];
128  TH1I *h_tketav1[5][6], *h_tketav2[5][6];
129 };
130 
132  usesResource("TFileService");
133  //now do whatever initialization is needed
134  const double isolationRadius(28.9);
135  verbosity_ = iConfig.getUntrackedParameter<int>("Verbosity", 0);
136  trigNames_ = iConfig.getUntrackedParameter<std::vector<std::string> >("Triggers");
137  theTrackQuality_ = iConfig.getUntrackedParameter<std::string>("TrackQuality", "highPurity");
139  constTrackPt_ = iConfig.getUntrackedParameter<double>("ConstTrackPt", 10.0);
140  slopeTrackPt_ = iConfig.getUntrackedParameter<double>("SlopeTrackPt", 0.16);
142  selectionParameters_.minQuality = trackQuality_;
143  selectionParameters_.maxDxyPV = iConfig.getUntrackedParameter<double>("MaxDxyPV", 0.02);
144  selectionParameters_.maxDzPV = iConfig.getUntrackedParameter<double>("MaxDzPV", 0.02);
145  selectionParameters_.maxChi2 = iConfig.getUntrackedParameter<double>("MaxChi2", 5.0);
146  selectionParameters_.maxDpOverP = iConfig.getUntrackedParameter<double>("MaxDpOverP", 0.1);
147  selectionParameters_.minOuterHit = iConfig.getUntrackedParameter<int>("MinOuterHit", 4);
148  selectionParameters_.minLayerCrossed = iConfig.getUntrackedParameter<int>("MinLayerCrossed", 8);
149  selectionParameters_.maxInMiss = iConfig.getUntrackedParameter<int>("MaxInMiss", 0);
150  selectionParameters_.maxOutMiss = iConfig.getUntrackedParameter<int>("MaxOutMiss", 0);
151  a_coneR_ = iConfig.getUntrackedParameter<double>("ConeRadius", 34.98);
152  a_charIsoR_ = a_coneR_ + isolationRadius;
153  a_mipR_ = iConfig.getUntrackedParameter<double>("ConeRadiusMIP", 14.0);
154  maxEcalEnr_ = iConfig.getUntrackedParameter<double>("MaxEcalEnergyInCone", 2.5);
155  maxNeighborTrackEnr_ = iConfig.getUntrackedParameter<double>("MaxNeighborTrackEnergy", 40.0);
156  isMC_ = iConfig.getUntrackedParameter<bool>("IsMC", false);
157  isQCD_ = iConfig.getUntrackedParameter<bool>("IsQCD", false);
158  isAOD_ = iConfig.getUntrackedParameter<bool>("IsAOD", true);
159  triggerEvent_ = edm::InputTag("hltTriggerSummaryAOD", "", "HLT");
160  theTriggerResultsLabel_ = edm::InputTag("TriggerResults", "", "HLT");
161 
162  // define tokens for access
163  tok_trigEvt_ = consumes<trigger::TriggerEvent>(triggerEvent_);
164  tok_trigRes_ = consumes<edm::TriggerResults>(theTriggerResultsLabel_);
165  tok_genTrack_ = consumes<reco::TrackCollection>(edm::InputTag("generalTracks"));
166  tok_recVtx_ = consumes<reco::VertexCollection>(edm::InputTag("offlinePrimaryVertices"));
167  tok_bs_ = consumes<reco::BeamSpot>(edm::InputTag("offlineBeamSpot"));
168  tok_ew_ = consumes<GenEventInfoProduct>(edm::InputTag("generator"));
169 
170  if (isAOD_) {
171  tok_EB_ = consumes<EcalRecHitCollection>(edm::InputTag("reducedEcalRecHitsEB"));
172  tok_EE_ = consumes<EcalRecHitCollection>(edm::InputTag("reducedEcalRecHitsEE"));
173  tok_hbhe_ = consumes<HBHERecHitCollection>(edm::InputTag("reducedHcalRecHits", "hbhereco"));
174  } else {
175  tok_EB_ = consumes<EcalRecHitCollection>(edm::InputTag("ecalRecHit", "EcalRecHitsEB"));
176  tok_EE_ = consumes<EcalRecHitCollection>(edm::InputTag("ecalRecHit", "EcalRecHitsEE"));
177  tok_hbhe_ = consumes<HBHERecHitCollection>(edm::InputTag("hbhereco"));
178  }
179 
180 #ifdef DebugLog
181  if (verbosity_ >= 0) {
182  std::cout << "Parameters read from config file \n"
183  << "\t minPt " << selectionParameters_.minPt << "\t theTrackQuality " << theTrackQuality_
184  << "\t minQuality " << selectionParameters_.minQuality << "\t maxDxyPV " << selectionParameters_.maxDxyPV
185  << "\t maxDzPV " << selectionParameters_.maxDzPV << "\t maxChi2 " << selectionParameters_.maxChi2
186  << "\t maxDpOverP " << selectionParameters_.maxDpOverP << "\t minOuterHit "
188  << "\t maxInMiss " << selectionParameters_.maxInMiss << "\t maxOutMiss "
189  << selectionParameters_.maxOutMiss << "\t a_coneR " << a_coneR_ << "\t a_charIsoR " << a_charIsoR_
190  << "\t a_mipR " << a_mipR_ << "\t isMC " << isMC_ << "\t isQCD " << isQCD_ << "\t isAOD " << isAOD_
191  << std::endl;
192  std::cout << trigNames_.size() << " triggers to be studied:";
193  for (unsigned int k = 0; k < trigNames_.size(); ++k)
194  std::cout << " " << trigNames_[k];
195  std::cout << std::endl;
196  }
197 #endif
198 }
199 
201  // do anything here that needs to be done at desctruction time
202  // (e.g. close files, deallocate resources etc.)
203 }
204 
206  t_Run = iEvent.id().run();
207  t_Event = iEvent.id().event();
208 #ifdef DebugLog
209  if (verbosity_ % 10 > 0)
210  std::cout << "Run " << t_Run << " Event " << t_Event << " Luminosity " << iEvent.luminosityBlock() << " Bunch "
211  << iEvent.bunchCrossing() << " starts ==========" << std::endl;
212 #endif
213  //Get magnetic field and ECAL channel status
215  iSetup.get<IdealMagneticFieldRecord>().get(bFieldH);
216  const MagneticField *bField = bFieldH.product();
217 
219  iSetup.get<EcalSeverityLevelAlgoRcd>().get(sevlv);
220 
221  // get handles to calogeometry and calotopology
223  iSetup.get<CaloGeometryRecord>().get(pG);
224  const CaloGeometry *geo = pG.product();
225 
226  //Get track collection
228  iEvent.getByToken(tok_genTrack_, trkCollection);
229 
230  //event weight for FLAT sample and PU information
231  t_EventWeight = 1.0;
233  iEvent.getByToken(tok_ew_, genEventInfo);
234  if (genEventInfo.isValid())
235  t_EventWeight = genEventInfo->weight();
236 
237  //Define the best vertex and the beamspot
239  iEvent.getByToken(tok_recVtx_, recVtxs);
240  edm::Handle<reco::BeamSpot> beamSpotH;
241  iEvent.getByToken(tok_bs_, beamSpotH);
242  math::XYZPoint leadPV(0, 0, 0);
243 
244  t_nVtx = recVtxs->size();
245  h_nVtx->Fill(t_nVtx);
246 
247  if (!recVtxs->empty() && !((*recVtxs)[0].isFake())) {
248  leadPV = math::XYZPoint((*recVtxs)[0].x(), (*recVtxs)[0].y(), (*recVtxs)[0].z());
249  } else if (beamSpotH.isValid()) {
250  leadPV = beamSpotH->position();
251  }
252 #ifdef DebugLog
253  if ((verbosity_ / 100) % 10 > 0) {
254  std::cout << "Primary Vertex " << leadPV;
255  if (beamSpotH.isValid())
256  std::cout << " Beam Spot " << beamSpotH->position();
257  std::cout << std::endl;
258  }
259 #endif
260 
261  // RecHits
262  edm::Handle<EcalRecHitCollection> barrelRecHitsHandle;
263  edm::Handle<EcalRecHitCollection> endcapRecHitsHandle;
264  iEvent.getByToken(tok_EB_, barrelRecHitsHandle);
265  iEvent.getByToken(tok_EE_, endcapRecHitsHandle);
267  iEvent.getByToken(tok_hbhe_, hbhe);
268 
269  //Trigger
270  bool triggerOK = false;
271  if (isMC_ && !isQCD_) {
272  triggerOK = true; // ignore HLT for single pion MC
273  } else {
275  edm::Handle<trigger::TriggerEvent> triggerEventHandle;
276  iEvent.getByToken(tok_trigEvt_, triggerEventHandle);
277  if (!triggerEventHandle.isValid()) {
278 #ifdef DebugLog
279  std::cout << "Error! Can't get the product " << triggerEvent_.label() << std::endl;
280 #endif
281  } else {
284  iEvent.getByToken(tok_trigRes_, triggerResults);
285  if (triggerResults.isValid()) {
286  const edm::TriggerNames &triggerNames = iEvent.triggerNames(*triggerResults);
287  const std::vector<std::string> &triggerNames_ = triggerNames.triggerNames();
288  for (unsigned int iHLT = 0; iHLT < triggerResults->size(); iHLT++) {
289  int hlt = triggerResults->accept(iHLT);
290  if (hlt > 0) {
291  for (unsigned int i = 0; i < trigNames_.size(); ++i) {
292  if (triggerNames_[iHLT].find(trigNames_[i]) != std::string::npos) {
293  triggerOK = true;
294 #ifdef DebugLog
295  if (verbosity_ % 10 > 0)
296  std::cout << "This is the trigger we are looking for " << triggerNames_[iHLT] << " Flag " << hlt
297  << std::endl;
298 #endif
299  }
300  }
301  }
302  }
303  }
304  }
305  }
306 
307  if (triggerOK) {
308  //Propagate tracks to calorimeter surface)
309  std::vector<spr::propagatedTrackDirection> trkCaloDirections;
310  spr::propagateCALO(trkCollection, geo, bField, theTrackQuality_, trkCaloDirections, ((verbosity_ / 100) % 10 > 2));
311  //Loop over tracks
312  std::vector<spr::propagatedTrackDirection>::const_iterator trkDetItr;
313  unsigned int nTracks(0), nselTracks(0);
314  t_nTrk = trkCaloDirections.size();
315 
316  for (trkDetItr = trkCaloDirections.begin(), nTracks = 0; trkDetItr != trkCaloDirections.end();
317  trkDetItr++, nTracks++) {
318  const reco::Track *pTrack = &(*(trkDetItr->trkItr));
319 #ifdef DebugLog
320  if (verbosity_ % 10 > 0)
321  std::cout << "This track : " << nTracks << " (pt/eta/phi/p) :" << pTrack->pt() << "/" << pTrack->eta() << "/"
322  << pTrack->phi() << "/" << pTrack->p() << std::endl;
323 #endif
324 
325  t_ieta = 0;
326  if (trkDetItr->okHCAL) {
327  HcalDetId detId = (HcalDetId)(trkDetItr->detIdHCAL);
328  t_ieta = detId.ieta();
329  }
330  // ---------- eta-dependent restriction on Pt ----------------------------
332  // -----------------------------------------------------------------------
333 
334  //Selection of good track
335  t_selectTk = spr::goodTrack(pTrack, leadPV, selectionParameters_, ((verbosity_ / 100) % 10 > 2));
337  oneCutParameters.maxDxyPV = 10;
338  oneCutParameters.maxDzPV = 100;
339  oneCutParameters.maxInMiss = 2;
340  oneCutParameters.maxOutMiss = 2;
341  bool qltyFlag = spr::goodTrack(pTrack, leadPV, oneCutParameters, ((verbosity_ / 100) % 10 > 2));
342  oneCutParameters = selectionParameters_;
343  oneCutParameters.maxDxyPV = 10;
344  oneCutParameters.maxDzPV = 100;
345  t_qltyMissFlag = spr::goodTrack(pTrack, leadPV, oneCutParameters, ((verbosity_ / 100) % 10 > 2));
346  oneCutParameters = selectionParameters_;
347  oneCutParameters.maxInMiss = 2;
348  oneCutParameters.maxOutMiss = 2;
349  t_qltyPVFlag = spr::goodTrack(pTrack, leadPV, oneCutParameters, ((verbosity_ / 100) % 10 > 2));
350 
351 #ifdef DebugLog
352  if (verbosity_ % 10 > 0)
353  std::cout << "qltyFlag|okECAL|okHCAL : " << qltyFlag << "|" << trkDetItr->okECAL << "/" << trkDetItr->okHCAL
354  << std::endl;
355 #endif
356  if (qltyFlag && trkDetItr->okECAL && trkDetItr->okHCAL) {
357  nselTracks++;
358  int nRH_eMipDR(0), nNearTRKs(0);
359  //------ ecal energy around track -------------------------------
361  barrelRecHitsHandle,
362  endcapRecHitsHandle,
363  trkDetItr->pointHCAL,
364  trkDetItr->pointECAL,
365  a_mipR_,
366  trkDetItr->directionECAL,
367  nRH_eMipDR);
368  //---- isolation criteria ----------------------------------------------
369  t_hmaxNearP =
370  spr::chargeIsolationCone(nTracks, trkCaloDirections, a_charIsoR_, nNearTRKs, ((verbosity_ / 100) % 10 > 2));
371 
373  //------------ HCAL --------------------------------------------------
374  //------ initialize arrays of DetID and hit energies -----------------
375  t_DetIds->clear();
376  t_DetIds1->clear();
377  t_DetIds3->clear();
378  t_HitEnergies->clear();
379  t_HitEnergies1->clear();
380  t_HitEnergies3->clear();
381  int nRecHits(-999), nRecHits1(-999), nRecHits3(-999);
382  std::vector<DetId> ids, ids1, ids3;
383  //------ hcal energy in the main cone -------------------------------
384  t_eHcal = spr::eCone_hcal(geo,
385  hbhe,
386  trkDetItr->pointHCAL,
387  trkDetItr->pointECAL,
388  a_coneR_,
389  trkDetItr->directionHCAL,
390  nRecHits,
391  ids,
392  *t_HitEnergies);
393  t_DetIds->reserve(ids.size());
394  for (unsigned int k = 0; k < ids.size(); ++k) {
395  t_DetIds->push_back(ids[k].rawId());
396  }
397  //----- hcal energy in the extended cone 1 (a_coneR+10) --------------
399  hbhe,
400  trkDetItr->pointHCAL,
401  trkDetItr->pointECAL,
402  a_coneR_ + 10,
403  trkDetItr->directionHCAL,
404  nRecHits1,
405  ids1,
406  *t_HitEnergies1);
407  t_DetIds1->reserve(ids1.size());
408  for (unsigned int k = 0; k < ids1.size(); ++k) {
409  t_DetIds1->push_back(ids1[k].rawId());
410  }
411  //----- hcal energy in the extended cone 3 (a_coneR+30) --------------
413  hbhe,
414  trkDetItr->pointHCAL,
415  trkDetItr->pointECAL,
416  a_coneR_ + 30,
417  trkDetItr->directionHCAL,
418  nRecHits3,
419  ids3,
420  *t_HitEnergies3);
421  t_DetIds3->reserve(ids3.size());
422  for (unsigned int k = 0; k < ids3.size(); ++k) {
423  t_DetIds3->push_back(ids3[k].rawId());
424  }
425 
426  t_p = pTrack->p();
427  t_pt = pTrack->pt();
428  t_phi = pTrack->phi();
429 #ifdef DebugLog
430  if (verbosity_ % 10 > 0) {
431  std::cout << "This track : " << nTracks << " (pt/eta/phi/p) :" << pTrack->pt() << "/" << pTrack->eta()
432  << "/" << pTrack->phi() << "/" << t_p << std::endl;
433  std::cout << "e_MIP " << t_eMipDR << " Chg Isolation " << t_hmaxNearP << " eHcal" << t_eHcal << " ieta "
434  << t_ieta << " Quality " << t_qltyMissFlag << ":" << t_qltyPVFlag << ":" << t_selectTk
435  << std::endl;
436  for (unsigned int lll = 0; lll < t_DetIds->size(); lll++) {
437  std::cout << "det id is = " << t_DetIds->at(lll) << " "
438  << " hit enery is = " << t_HitEnergies->at(lll) << std::endl;
439  }
440  }
441 #endif
442  tree->Fill();
443  } // end of conditions on t_eMipDR and t_hmaxNearP
444  } // end of loose check of track quality
445  } // end of loop over tracks
446 
447  h_nTrk->Fill(nTracks);
448  } // end of triggerOK
449 }
450 
452  h_nVtx = fs_->make<TH1F>("h_nVtx", "h_nVtx", 100, 0, 100);
453  h_nTrk = fs_->make<TH1F>("h_nTrk", "h_nTrk", 100, 0, 2000);
454 
455  tree = fs_->make<TTree>("CalibTree", "CalibTree");
456 
457  tree->Branch("t_Run", &t_Run, "t_Run/I");
458  tree->Branch("t_Event", &t_Event, "t_Event/I");
459  tree->Branch("t_nVtx", &t_nVtx, "t_nVtx/I");
460  tree->Branch("t_nTrk", &t_nTrk, "t_nTrk/I");
461  tree->Branch("t_EventWeight", &t_EventWeight, "t_EventWeight/D");
462  tree->Branch("t_p", &t_p, "t_p/D");
463  tree->Branch("t_pt", &t_pt, "t_pt/D");
464  tree->Branch("t_ieta", &t_ieta, "t_ieta/I");
465  tree->Branch("t_phi", &t_phi, "t_phi/D");
466  tree->Branch("t_eMipDR", &t_eMipDR, "t_eMipDR/D");
467  tree->Branch("t_eHcal", &t_eHcal, "t_eHcal/D");
468  tree->Branch("t_eHcal10", &t_eHcal10, "t_eHcal10/D");
469  tree->Branch("t_eHcal30", &t_eHcal30, "t_eHcal30/D");
470  tree->Branch("t_hmaxNearP", &t_hmaxNearP, "t_hmaxNearP/D");
471  tree->Branch("t_selectTk", &t_selectTk, "t_selectTk/O");
472  tree->Branch("t_qltyMissFlag", &t_qltyMissFlag, "t_qltyMissFlag/O");
473  tree->Branch("t_qltyPVFlag", &t_qltyPVFlag, "t_qltyPVFlag/O)");
474 
475  t_DetIds = new std::vector<unsigned int>();
476  t_DetIds1 = new std::vector<unsigned int>();
477  t_DetIds3 = new std::vector<unsigned int>();
478  t_HitEnergies = new std::vector<double>();
479  t_HitEnergies1 = new std::vector<double>();
480  t_HitEnergies3 = new std::vector<double>();
481 
482  tree->Branch("t_DetIds", "std::vector<unsigned int>", &t_DetIds);
483  //tree->Branch("t_DetIds1", "std::vector<unsigned int>", &t_DetIds1);
484  //tree->Branch("t_DetIds3", "std::vector<unsigned int>", &t_DetIds3);
485  tree->Branch("t_HitEnergies", "std::vector<double>", &t_HitEnergies);
486  //tree->Branch("t_HitEnergies1", "std::vector<double>", &t_HitEnergies1);
487  //tree->Branch("t_HitEnergies3", "std::vector<double>", &t_HitEnergies3);
488 }
489 
490 // ------------ method called when starting to processes a run ------------
491 void IsoTrackCalibration::beginRun(edm::Run const &iRun, edm::EventSetup const &iSetup) {
492  bool changed_(true);
493  bool flag = hltConfig_.init(iRun, iSetup, "HLT", changed_);
494  edm::LogInfo("HcalIsoTrack") << "Run[" << nRun_ << "] " << iRun.run() << " process HLT init flag " << flag
495  << " change flag " << changed_;
496 
497  // check if trigger names in (new) config
498  if (changed_) {
499  changed_ = false;
500  edm::LogInfo("HcalIsoTrack") << "New trigger menu found !!!";
501  const unsigned int n(hltConfig_.size());
502  for (unsigned itrig = 0; itrig < trigNames_.size(); itrig++) {
503  unsigned int triggerindx = hltConfig_.triggerIndex(trigNames_[itrig]);
504  if (triggerindx >= n) {
505  edm::LogWarning("HcalIsoTrack") << trigNames_[itrig] << " " << triggerindx << " does not exist in "
506  << "the current menu";
507  } else {
508  edm::LogInfo("HcalIsoTrack") << trigNames_[itrig] << " " << triggerindx << " exists";
509  }
510  }
511  }
512 }
513 
514 // ------------ method called when ending the processing of a run ------------
516  ++nRun_;
517  edm::LogWarning("HcalIsoTrack") << "endRun[" << nRun_ << "] " << iRun.run();
518 }
519 
520 // ------------ method called when starting to processes a luminosity block ------------
522 // ------------ method called when ending the processing of a luminosity block ------------
524 // ------------ method fills 'descriptions' with the allowed parameters for the module ------------
526  //The following says we do not know what parameters are allowed so do no validation
527  // Please change this to state exactly what you do use, even if it is no parameters
529  desc.setUnknown();
530  descriptions.addDefault(desc);
531 }
532 
533 //define this as a plug-in
spr::trackSelectionParameters::maxDxyPV
double maxDxyPV
Definition: TrackSelection.h:22
IsoTrackCalibration::h_jetp
TH1F * h_jetp
Definition: IsoTrackCalibration.cc:126
IsoTrackCalibration::t_eHcal30
double t_eHcal30
Definition: IsoTrackCalibration.cc:116
edm::ESHandle::product
T const * product() const
Definition: ESHandle.h:86
IsoTrackCalibration::tok_hbhe_
edm::EDGetTokenT< HBHERecHitCollection > tok_hbhe_
Definition: IsoTrackCalibration.cc:110
IsoTrackCalibration::tok_recVtx_
edm::EDGetTokenT< reco::VertexCollection > tok_recVtx_
Definition: IsoTrackCalibration.cc:106
IsoTrackCalibration::h_tketav1
TH1I * h_tketav1[5][6]
Definition: IsoTrackCalibration.cc:128
DDAxes::y
nTracks
const unsigned int nTracks(const reco::Vertex &sv)
Definition: TemplatedVertexArbitrator.h:44
IsoTrackCalibration::t_nTrk
int t_nTrk
Definition: IsoTrackCalibration.cc:114
PileupSummaryInfo.h
EDAnalyzer.h
mps_fire.i
i
Definition: mps_fire.py:355
IsoTrackCalibration::t_qltyPVFlag
bool t_qltyPVFlag
Definition: IsoTrackCalibration.cc:118
MessageLogger.h
dqmiodumpmetadata.n
n
Definition: dqmiodumpmetadata.py:28
IsoTrackCalibration::tok_EE_
edm::EDGetTokenT< EcalRecHitCollection > tok_EE_
Definition: IsoTrackCalibration.cc:109
IsoTrackCalibration::h_tketa1
TH1I * h_tketa1[5]
Definition: IsoTrackCalibration.cc:124
TriggerResults.h
spr::trackSelectionParameters::maxDzPV
double maxDzPV
Definition: TrackSelection.h:22
IsoTrackCalibration::t_DetIds3
std::vector< unsigned int > * t_DetIds3
Definition: IsoTrackCalibration.cc:119
IsoTrackCalibration::t_selectTk
bool t_selectTk
Definition: IsoTrackCalibration.cc:118
IsoTrackCalibration::h_nTrk
TH1F * h_nTrk
Definition: IsoTrackCalibration.cc:122
spr::trackSelectionParameters::maxChi2
double maxChi2
Definition: TrackSelection.h:22
IsoTrackCalibration::tok_EB_
edm::EDGetTokenT< EcalRecHitCollection > tok_EB_
Definition: IsoTrackCalibration.cc:108
IsoTrackCalibration::t_DetIds
std::vector< unsigned int > * t_DetIds
Definition: IsoTrackCalibration.cc:119
edm::LuminosityBlock
Definition: LuminosityBlock.h:50
reco::TrackBase::p
double p() const
momentum vector magnitude
Definition: TrackBase.h:605
IsoTrackCalibration::h_nVtx
TH1F * h_nVtx
Definition: IsoTrackCalibration.cc:122
EcalSeverityLevelAlgoRcd.h
edm::Run
Definition: Run.h:45
IsoTrackCalibration::t_DetIds1
std::vector< unsigned int > * t_DetIds1
Definition: IsoTrackCalibration.cc:119
TriggerEvent.h
edm::EDGetTokenT< trigger::TriggerEvent >
CaloGeometryRecord
Definition: CaloGeometryRecord.h:30
TrackBase.h
IsoTrackCalibration::h_RecHit_num
TProfile * h_RecHit_num
Definition: IsoTrackCalibration.cc:123
tree
Definition: tree.py:1
IsoTrackCalibration::t_Run
int t_Run
Definition: IsoTrackCalibration.cc:114
gather_cfg.cout
cout
Definition: gather_cfg.py:144
IsoTrackCalibration::beginJob
void beginJob() override
Definition: IsoTrackCalibration.cc:451
PFJet.h
IsoTrackCalibration::tok_ew_
edm::EDGetTokenT< GenEventInfoProduct > tok_ew_
Definition: IsoTrackCalibration.cc:111
IsoTrackCalibration::t_HitEnergies1
std::vector< double > * t_HitEnergies1
Definition: IsoTrackCalibration.cc:120
IsoTrackCalibration::isMC_
bool isMC_
Definition: IsoTrackCalibration.cc:96
edm::LogInfo
Definition: MessageLogger.h:254
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
triggerResults
static const std::string triggerResults
Definition: EdmProvDump.cc:45
IsoTrackCalibration::beginLuminosityBlock
virtual void beginLuminosityBlock(edm::LuminosityBlock const &, edm::EventSetup const &)
Definition: IsoTrackCalibration.cc:521
IsoTrackCalibration::analyze
void analyze(edm::Event const &, edm::EventSetup const &) override
Definition: IsoTrackCalibration.cc:205
IsoTrackCalibration::endLuminosityBlock
virtual void endLuminosityBlock(edm::LuminosityBlock const &, edm::EventSetup const &)
Definition: IsoTrackCalibration.cc:523
reco::TrackBase::TrackQuality
TrackQuality
track quality
Definition: TrackBase.h:150
IsoTrackCalibration::tok_bs_
edm::EDGetTokenT< reco::BeamSpot > tok_bs_
Definition: IsoTrackCalibration.cc:107
IsoTrackCalibration::t_phi
double t_phi
Definition: IsoTrackCalibration.cc:115
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
IsoTrackCalibration::t_Event
int t_Event
Definition: IsoTrackCalibration.cc:114
IsoTrackCalibration::h_tketa5
TH1I * h_tketa5[5]
Definition: IsoTrackCalibration.cc:125
edm::one::EDAnalyzer
Definition: EDAnalyzer.h:30
spr::find
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:19
IsoTrackCalibration::t_pt
double t_pt
Definition: IsoTrackCalibration.cc:115
edm::Handle< reco::TrackCollection >
IsoTrackCalibration::h_tketa0
TH1I * h_tketa0[5]
Definition: IsoTrackCalibration.cc:124
IsoTrackCalibration::a_coneR_
double a_coneR_
Definition: IsoTrackCalibration.cc:95
edm::RunBase::run
RunNumber_t run() const
Definition: RunBase.h:40
IsoTrackCalibration::selectionParameters_
spr::trackSelectionParameters selectionParameters_
Definition: IsoTrackCalibration.cc:93
deltaR.h
reco::TrackBase::pt
double pt() const
track transverse momentum
Definition: TrackBase.h:608
IdealMagneticFieldRecord
Definition: IdealMagneticFieldRecord.h:11
edm::InputTag::label
std::string const & label() const
Definition: InputTag.h:36
IsoTrackCalibration::fillDescriptions
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
Definition: IsoTrackCalibration.cc:525
MakerMacros.h
IsoTrackCalibration::hltConfig_
HLTConfigProvider hltConfig_
Definition: IsoTrackCalibration.cc:90
CaloGeometry
Definition: CaloGeometry.h:21
Track.h
IsoTrackCalibration
Definition: IsoTrackCalibration.cc:74
edm::EventSetup::get
T get() const
Definition: EventSetup.h:73
TrackFwd.h
DEFINE_FWK_MODULE
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
BeamSpot.h
IsoTrackCalibration::isAOD_
bool isAOD_
Definition: IsoTrackCalibration.cc:96
L1TEGammaOffline_cfi.triggerNames
triggerNames
Definition: L1TEGammaOffline_cfi.py:40
IsoTrackCalibration::t_eHcal
double t_eHcal
Definition: IsoTrackCalibration.cc:116
IsoTrackCalibration::tok_trigEvt_
edm::EDGetTokenT< trigger::TriggerEvent > tok_trigEvt_
Definition: IsoTrackCalibration.cc:102
Service.h
ChargeIsolation.h
DDAxes::z
reco::Track
Definition: Track.h:27
IdealMagneticFieldRecord.h
edm::ESHandle< MagneticField >
EcalSeverityLevelAlgoRcd
Definition: EcalSeverityLevelAlgoRcd.h:12
IsoTrackCalibration::h_tketa4
TH1I * h_tketa4[5]
Definition: IsoTrackCalibration.cc:125
IsoTrackCalibration::a_mipR_
double a_mipR_
Definition: IsoTrackCalibration.cc:95
spr::trackSelectionParameters::minPt
double minPt
Definition: TrackSelection.h:20
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
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
IsoTrackCalibration::maxEcalEnr_
double maxEcalEnr_
Definition: IsoTrackCalibration.cc:98
EcalSeverityLevelAlgo.h
reco::TrackBase::phi
double phi() const
azimuthal angle of momentum vector
Definition: TrackBase.h:620
IsoTrackCalibration::HLTNames_
std::vector< std::string > HLTNames_
Definition: IsoTrackCalibration.cc:91
IsoTrackCalibration::a_charIsoR_
double a_charIsoR_
Definition: IsoTrackCalibration.cc:95
spr::trackSelectionParameters::maxDpOverP
double maxDpOverP
Definition: TrackSelection.h:22
IsoTrackCalibration::h_jetpt
TH1F * h_jetpt[4]
Definition: IsoTrackCalibration.cc:127
edm::ConfigurationDescriptions
Definition: ConfigurationDescriptions.h:28
spr::trackSelectionParameters::minLayerCrossed
int minLayerCrossed
Definition: TrackSelection.h:23
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
Vertex.h
HLTConfigProvider::size
unsigned int size() const
number of trigger paths in trigger table
Definition: HLTConfigProvider.h:62
edm::LogWarning
Definition: MessageLogger.h:141
TFileService.h
IsoTrackCalibration::constTrackPt_
double constTrackPt_
Definition: IsoTrackCalibration.cc:97
CaloSubdetectorGeometry.h
HcalDetId::ieta
constexpr int ieta() const
get the cell ieta
Definition: HcalDetId.h:155
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
GenEventInfoProduct.h
Event.h
LumiDetails.h
IsoTrackCalibration::t_ieta
int t_ieta
Definition: IsoTrackCalibration.cc:114
TrackSelection.h
IsoTrackCalibration::h_tketa3
TH1I * h_tketa3[5]
Definition: IsoTrackCalibration.cc:125
spr::trackSelectionParameters::maxOutMiss
int maxOutMiss
Definition: TrackSelection.h:24
reco::TrackBase::eta
double eta() const
pseudorapidity of momentum vector
Definition: TrackBase.h:623
CaloTopologyRecord.h
IsoTrackCalibration::endRun
void endRun(edm::Run const &, edm::EventSetup const &) override
Definition: IsoTrackCalibration.cc:515
LorentzVector.h
IsoTrackCalibration::isQCD_
bool isQCD_
Definition: IsoTrackCalibration.cc:96
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)
IsoTrackCalibration::fs_
edm::Service< TFileService > fs_
Definition: IsoTrackCalibration.cc:89
TriggerNames.h
iEvent
int iEvent
Definition: GenABIO.cc:224
IsoTrackCalibration::t_hmaxNearP
double t_hmaxNearP
Definition: IsoTrackCalibration.cc:117
edm::ParameterSetDescription::setUnknown
void setUnknown()
Definition: ParameterSetDescription.cc:39
MagneticField.h
edm::EventSetup
Definition: EventSetup.h:57
trigger::TriggerEvent
The single EDProduct to be saved for each event (AOD case)
Definition: TriggerEvent.h:25
IsoTrackCalibration::nRun_
int nRun_
Definition: IsoTrackCalibration.cc:100
HLTConfigProvider.h
get
#define get
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
TriggerObject.h
IsoTrackCalibration::h_Rechit_E
TH1F * h_Rechit_E
Definition: IsoTrackCalibration.cc:126
HLTConfigProvider::triggerIndex
unsigned int triggerIndex(const std::string &triggerName) const
slot position of trigger path in trigger table (0 to size-1)
Definition: HLTConfigProvider.h:72
IsoTrackCalibration::~IsoTrackCalibration
~IsoTrackCalibration() override
Definition: IsoTrackCalibration.cc:200
CaloTopology.h
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
IsoTrackCalibration::t_qltyMissFlag
bool t_qltyMissFlag
Definition: IsoTrackCalibration.cc:118
CaloSubdetectorTopology.h
HcalTopology.h
IsoTrackCalibration::triggerEvent_
edm::InputTag triggerEvent_
Definition: IsoTrackCalibration.cc:101
EcalTrigTowerConstituentsMap.h
HLTConfigProvider
Definition: HLTConfigProvider.h:28
IsoTrackCalibration::tok_genTrack_
edm::EDGetTokenT< reco::TrackCollection > tok_genTrack_
Definition: IsoTrackCalibration.cc:105
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
Calorimetry_cff.bField
bField
Definition: Calorimetry_cff.py:292
Frameworkfwd.h
CaloPropagateTrack.h
IsoTrackCalibration::beginRun
void beginRun(edm::Run const &, edm::EventSetup const &) override
Definition: IsoTrackCalibration.cc:491
spr::trackSelectionParameters::maxInMiss
int maxInMiss
Definition: TrackSelection.h:24
IsoTrackCalibration::h_tketav2
TH1I * h_tketav2[5][6]
Definition: IsoTrackCalibration.cc:128
CaloGeometry.h
IsoTrackCalibration::trigNames_
std::vector< std::string > trigNames_
Definition: IsoTrackCalibration.cc:91
edm::TriggerNames
Definition: TriggerNames.h:55
IsoTrackCalibration::maxNeighborTrackEnr_
double maxNeighborTrackEnr_
Definition: IsoTrackCalibration.cc:99
IsoTrackCalibration::t_nVtx
int t_nVtx
Definition: IsoTrackCalibration.cc:114
IsoTrackCalibration::t_HitEnergies
std::vector< double > * t_HitEnergies
Definition: IsoTrackCalibration.cc:120
IsoTrackCalibration::theTrackQuality_
std::string theTrackQuality_
Definition: IsoTrackCalibration.cc:94
IsoTrackCalibration::t_HitEnergies3
std::vector< double > * t_HitEnergies3
Definition: IsoTrackCalibration.cc:120
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
IsoTrackCalibration::h_RecHit_iEta
TProfile * h_RecHit_iEta
Definition: IsoTrackCalibration.cc:123
ParameterSet.h
IsoTrackCalibration::h_tketa2
TH1I * h_tketa2[5]
Definition: IsoTrackCalibration.cc:124
edm::HandleBase::isValid
bool isValid() const
Definition: HandleBase.h:70
IsoTrackCalibration::h_iEta
TH1I * h_iEta
Definition: IsoTrackCalibration.cc:124
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)
IsoTrackCalibration::verbosity_
int verbosity_
Definition: IsoTrackCalibration.cc:92
IsoTrackCalibration::t_eMipDR
double t_eMipDR
Definition: IsoTrackCalibration.cc:117
edm::ConfigurationDescriptions::addDefault
void addDefault(ParameterSetDescription const &psetDescription)
Definition: ConfigurationDescriptions.cc:99
IsoTrackCalibration::t_p
double t_p
Definition: IsoTrackCalibration.cc:115
MagneticField
Definition: MagneticField.h:19
IsoTrackCalibration::tree
TTree * tree
Definition: IsoTrackCalibration.cc:113
edm::InputTag
Definition: InputTag.h:15
L1GlobalTriggerReadoutRecord.h
IsoTrackCalibration::IsoTrackCalibration
IsoTrackCalibration(const edm::ParameterSet &)
Definition: IsoTrackCalibration.cc:131
IsoTrackCalibration::tok_trigRes_
edm::EDGetTokenT< edm::TriggerResults > tok_trigRes_
Definition: IsoTrackCalibration.cc:103
EcalChannelStatusRcd.h
deltaPhi.h
TFileService::make
T * make(const Args &... args) const
make new ROOT object
Definition: TFileService.h:64
IsoTrackCalibration::slopeTrackPt_
double slopeTrackPt_
Definition: IsoTrackCalibration.cc:97
RemoveAddSevLevel.flag
flag
Definition: RemoveAddSevLevel.py:116
IsoTrackCalibration::t_EventWeight
double t_EventWeight
Definition: IsoTrackCalibration.cc:115
IsoTrackCalibration::t_eHcal10
double t_eHcal10
Definition: IsoTrackCalibration.cc:116
ValidationMatrix.hlt
hlt
Definition: ValidationMatrix.py:459
IsoTrackCalibration::theTriggerResultsLabel_
edm::InputTag theTriggerResultsLabel_
Definition: IsoTrackCalibration.cc:101