CMS 3D CMS Logo

IsolatedTracksHcalScale.cc
Go to the documentation of this file.
1 // System include files
2 #include <cmath>
3 #include <memory>
4 
5 #include <map>
6 #include <string>
7 #include <vector>
8 
9 // root objects
10 #include "TROOT.h"
11 #include "TSystem.h"
12 #include "TFile.h"
13 #include "TH1F.h"
14 #include "TH2F.h"
15 #include "TProfile.h"
16 #include "TDirectory.h"
17 #include "TTree.h"
18 
19 #include <Math/GenVector/VectorUtil.h>
20 
31 
33 
38 
39 // muons and tracks
44 // Vertices
48 // Calorimeters
57 
58 // Jets in the event
62 
70 
71 // TFile Service
74 
82 
88 
89 // SimHit
95 
96 // track associator
101 
102 class IsolatedTracksHcalScale : public edm::one::EDAnalyzer<edm::one::SharedResources> {
103 public:
104  explicit IsolatedTracksHcalScale(const edm::ParameterSet &);
106 
107  static void fillDescriptions(edm::ConfigurationDescriptions &descriptions);
108 
109 private:
110  void beginJob() override;
111  void analyze(const edm::Event &, const edm::EventSetup &) override;
112  void endJob() override;
113 
114  void clearTreeVectors();
115 
116 private:
117  bool doMC_;
122  double tMinE_, tMaxE_;
123 
125 
132 
138 
140 
141  TTree *tree_;
142 
144  std::vector<double> *t_trackP, *t_trackPt, *t_trackEta, *t_trackPhi;
145  std::vector<double> *t_trackHcalEta, *t_trackHcalPhi, *t_eHCALDR;
146  std::vector<double> *t_hCone, *t_conehmaxNearP, *t_eMipDR, *t_eECALDR;
147  std::vector<double> *t_e11x11_20Sig, *t_e15x15_20Sig;
148  std::vector<double> *t_eMipDR_1, *t_eECALDR_1, *t_eMipDR_2, *t_eECALDR_2;
149  std::vector<double> *t_hConeHB, *t_eHCALDRHB;
152  std::vector<double> *t_hsimInfoTotal, *t_hsim;
155  std::vector<int> *t_nSimHits;
156 };
157 
159  : doMC_(iConfig.getUntrackedParameter<bool>("DoMC", false)),
160  myverbose_(iConfig.getUntrackedParameter<int>("Verbosity", 5)),
161  theTrackQuality_(iConfig.getUntrackedParameter<std::string>("TrackQuality", "highPurity")),
162  a_mipR_(iConfig.getUntrackedParameter<double>("ConeRadiusMIP", 14.0)),
163  a_coneR_(iConfig.getUntrackedParameter<double>("ConeRadius", 34.98)),
164  tMinE_(iConfig.getUntrackedParameter<double>("TimeMinCutECAL", -500.)),
165  tMaxE_(iConfig.getUntrackedParameter<double>("TimeMaxCutECAL", 500.)),
166  trackerHitAssociatorConfig_(consumesCollector()) {
167  usesResource(TFileService::kSharedResource);
168 
169  //now do what ever initialization is needed
171  selectionParameters_.minPt = iConfig.getUntrackedParameter<double>("MinTrackPt", 10.0);
173  selectionParameters_.maxDxyPV = iConfig.getUntrackedParameter<double>("MaxDxyPV", 0.2);
174  selectionParameters_.maxDzPV = iConfig.getUntrackedParameter<double>("MaxDzPV", 5.0);
175  selectionParameters_.maxChi2 = iConfig.getUntrackedParameter<double>("MaxChi2", 5.0);
176  selectionParameters_.maxDpOverP = iConfig.getUntrackedParameter<double>("MaxDpOverP", 0.1);
177  selectionParameters_.minOuterHit = iConfig.getUntrackedParameter<int>("MinOuterHit", 4);
178  selectionParameters_.minLayerCrossed = iConfig.getUntrackedParameter<int>("MinLayerCrossed", 8);
179  selectionParameters_.maxInMiss = iConfig.getUntrackedParameter<int>("MaxInMiss", 0);
180  selectionParameters_.maxOutMiss = iConfig.getUntrackedParameter<int>("MaxOutMiss", 0);
181  a_charIsoR_ = a_coneR_ + 28.9;
182  a_neutIsoR_ = a_charIsoR_ * 0.726;
183 
184  tok_genTrack_ = consumes<reco::TrackCollection>(edm::InputTag("generalTracks"));
185  tok_recVtx_ = consumes<reco::VertexCollection>(edm::InputTag("offlinePrimaryVertices"));
186  tok_bs_ = consumes<reco::BeamSpot>(edm::InputTag("offlineBeamSpot"));
187  tok_EB_ = consumes<EcalRecHitCollection>(edm::InputTag("ecalRecHit", "EcalRecHitsEB"));
188  tok_EE_ = consumes<EcalRecHitCollection>(edm::InputTag("ecalRecHit", "EcalRecHitsEE"));
189  tok_hbhe_ = consumes<HBHERecHitCollection>(edm::InputTag("hbhereco"));
190  tok_simTk_ = consumes<edm::SimTrackContainer>(edm::InputTag("g4SimHits"));
191  tok_simVtx_ = consumes<edm::SimVertexContainer>(edm::InputTag("g4SimHits"));
192  tok_caloEB_ = consumes<edm::PCaloHitContainer>(edm::InputTag("g4SimHits", "EcalHitsEB"));
193  tok_caloEE_ = consumes<edm::PCaloHitContainer>(edm::InputTag("g4SimHits", "EcalHitsEE"));
194  tok_caloHH_ = consumes<edm::PCaloHitContainer>(edm::InputTag("g4SimHits", "HcalHits"));
195 
196  if (myverbose_ >= 0) {
197  edm::LogVerbatim("IsoTrack") << "Parameters read from config file \n"
198  << " doMC " << doMC_ << "\t myverbose " << myverbose_ << "\t minPt "
199  << selectionParameters_.minPt << "\t theTrackQuality " << theTrackQuality_
200  << "\t minQuality " << selectionParameters_.minQuality << "\t maxDxyPV "
202  << "\t maxChi2 " << selectionParameters_.maxChi2 << "\t maxDpOverP "
203  << selectionParameters_.maxDpOverP << "\t minOuterHit "
204  << selectionParameters_.minOuterHit << "\t minLayerCrossed "
205  << selectionParameters_.minLayerCrossed << "\t maxInMiss "
206  << selectionParameters_.maxInMiss << "\t maxOutMiss "
207  << selectionParameters_.maxOutMiss << "\t a_coneR " << a_coneR_ << "\t a_charIsoR "
208  << a_charIsoR_ << "\t a_neutIsoR " << a_neutIsoR_ << "\t a_mipR " << a_mipR_
209  << "\t time Range (" << tMinE_ << ":" << tMaxE_ << ")";
210  }
211 }
212 
215  desc.addUntracked<bool>("doMC", false);
216  desc.addUntracked<int>("Verbosity", 0);
217  desc.addUntracked<std::string>("TrackQuality", "highPurity");
218  desc.addUntracked<double>("MinTrackPt", 10.0);
219  desc.addUntracked<double>("MaxDxyPV", 0.02);
220  desc.addUntracked<double>("MaxDzPV", 0.02);
221  desc.addUntracked<double>("MaxChi2", 5.0);
222  desc.addUntracked<double>("MaxDpOverP", 0.1);
223  desc.addUntracked<int>("MinOuterHit", 4);
224  desc.addUntracked<int>("MinLayerCrossed", 8);
225  desc.addUntracked<int>("MaxInMiss", 0);
226  desc.addUntracked<int>("MaxOutMiss", 0);
227  desc.addUntracked<double>("ConeRadius", 34.98);
228  desc.addUntracked<double>("ConeRadiusMIP", 14.0);
229  desc.addUntracked<double>("TimeMinCutECAL", -500.0);
230  desc.addUntracked<double>("TimeMaxCutECAL", 500.0);
231  descriptions.add("isolatedTracksHcalScale", desc);
232 }
233 
236  iSetup.get<IdealMagneticFieldRecord>().get(bFieldH);
237  const MagneticField *bField = bFieldH.product();
238 
239  // get handles to calogeometry and calotopology
241  iSetup.get<CaloGeometryRecord>().get(pG);
242  const CaloGeometry *geo = pG.product();
243 
244  edm::ESHandle<CaloTopology> theCaloTopology;
245  iSetup.get<CaloTopologyRecord>().get(theCaloTopology);
246  const CaloTopology *caloTopology = theCaloTopology.product();
247 
248  // Retrieve the good/bad ECAL channels from the DB
250  iSetup.get<EcalChannelStatusRcd>().get(ecalChStatus);
251  const EcalChannelStatus *theEcalChStatus = ecalChStatus.product();
252 
254 
255  ++nEventProc_;
256 
257  t_RunNo = iEvent.id().run();
258  t_EvtNo = iEvent.id().event();
259  t_Lumi = iEvent.luminosityBlock();
260  t_Bunch = iEvent.bunchCrossing();
261  if (myverbose_ > 0)
262  edm::LogVerbatim("IsoTrack") << nEventProc_ << " Run " << t_RunNo << " Event " << t_EvtNo << " Lumi " << t_Lumi
263  << " Bunch " << t_Bunch;
264 
266  iEvent.getByToken(tok_genTrack_, trkCollection);
267 
269  iEvent.getByToken(tok_recVtx_, recVtxs);
270 
271  // Get the beamspot
272  edm::Handle<reco::BeamSpot> beamSpotH;
273  iEvent.getByToken(tok_bs_, beamSpotH);
274 
275  math::XYZPoint leadPV(0, 0, 0);
276  if (!recVtxs->empty() && !((*recVtxs)[0].isFake())) {
277  leadPV = math::XYZPoint((*recVtxs)[0].x(), (*recVtxs)[0].y(), (*recVtxs)[0].z());
278  } else if (beamSpotH.isValid()) {
279  leadPV = beamSpotH->position();
280  }
281 
282  if (myverbose_ > 0) {
283  edm::LogVerbatim("IsoTrack") << "Primary Vertex " << leadPV;
284  if (beamSpotH.isValid())
285  edm::LogVerbatim("IsoTrack") << "Beam Spot " << beamSpotH->position();
286  }
287 
288  std::vector<spr::propagatedTrackDirection> trkCaloDirections;
289  spr::propagateCALO(trkCollection, geo, bField, theTrackQuality_, trkCaloDirections, (myverbose_ > 2));
290  std::vector<spr::propagatedTrackDirection>::const_iterator trkDetItr;
291 
292  edm::Handle<EcalRecHitCollection> barrelRecHitsHandle;
293  edm::Handle<EcalRecHitCollection> endcapRecHitsHandle;
294  iEvent.getByToken(tok_EB_, barrelRecHitsHandle);
295  iEvent.getByToken(tok_EE_, endcapRecHitsHandle);
296 
298  iEvent.getByToken(tok_hbhe_, hbhe);
299  const HBHERecHitCollection Hithbhe = *(hbhe.product());
300 
301  //get Handles to SimTracks and SimHits
304 
305  //get Handles to PCaloHitContainers of eb/ee/hbhe
309 
310  //associates tracker rechits/simhits to a track
311  std::unique_ptr<TrackerHitAssociator> associate;
312 
313  if (doMC_) {
314  iEvent.getByToken(tok_simTk_, SimTk);
315  iEvent.getByToken(tok_simVtx_, SimVtx);
316  iEvent.getByToken(tok_caloEB_, pcaloeb);
317  iEvent.getByToken(tok_caloEE_, pcaloee);
318  iEvent.getByToken(tok_caloHH_, pcalohh);
319  associate = std::make_unique<TrackerHitAssociator>(iEvent, trackerHitAssociatorConfig_);
320  }
321 
322  unsigned int nTracks = 0;
323  for (trkDetItr = trkCaloDirections.begin(), nTracks = 0; trkDetItr != trkCaloDirections.end();
324  trkDetItr++, nTracks++) {
325  const reco::Track *pTrack = &(*(trkDetItr->trkItr));
326  if (spr::goodTrack(pTrack, leadPV, selectionParameters_, (myverbose_ > 2)) && trkDetItr->okECAL &&
327  trkDetItr->okHCAL) {
328  int nRH_eMipDR = 0, nRH_eDR = 0, nNearTRKs = 0, nRecHitsCone = -99;
329  double distFromHotCell = -99.0, distFromHotCell2 = -99.0;
330  int ietaHotCell = -99, iphiHotCell = -99;
331  int ietaHotCell2 = -99, iphiHotCell2 = -99;
332  GlobalPoint gposHotCell(0., 0., 0.), gposHotCell2(0., 0., 0.);
333  std::vector<DetId> coneRecHitDetIds, coneRecHitDetIds2;
334  std::pair<double, bool> e11x11_20SigP, e15x15_20SigP;
335  double hCone = spr::eCone_hcal(geo,
336  hbhe,
337  trkDetItr->pointHCAL,
338  trkDetItr->pointECAL,
339  a_coneR_,
340  trkDetItr->directionHCAL,
341  nRecHitsCone,
342  coneRecHitDetIds,
343  distFromHotCell,
344  ietaHotCell,
345  iphiHotCell,
346  gposHotCell,
347  -1);
348  double hConeHB = spr::eCone_hcal(geo,
349  hbhe,
350  trkDetItr->pointHCAL,
351  trkDetItr->pointECAL,
352  a_coneR_,
353  trkDetItr->directionHCAL,
354  nRecHitsCone,
355  coneRecHitDetIds,
356  distFromHotCell,
357  ietaHotCell,
358  iphiHotCell,
359  gposHotCell,
360  (int)(HcalBarrel));
361  double eHCALDR = spr::eCone_hcal(geo,
362  hbhe,
363  trkDetItr->pointHCAL,
364  trkDetItr->pointECAL,
365  a_charIsoR_,
366  trkDetItr->directionHCAL,
367  nRecHitsCone,
368  coneRecHitDetIds2,
369  distFromHotCell2,
370  ietaHotCell2,
371  iphiHotCell2,
372  gposHotCell2,
373  -1);
374  double eHCALDRHB = spr::eCone_hcal(geo,
375  hbhe,
376  trkDetItr->pointHCAL,
377  trkDetItr->pointECAL,
378  a_charIsoR_,
379  trkDetItr->directionHCAL,
380  nRecHitsCone,
381  coneRecHitDetIds2,
382  distFromHotCell2,
383  ietaHotCell2,
384  iphiHotCell2,
385  gposHotCell2,
386  (int)(HcalBarrel));
387 
388  double conehmaxNearP =
389  spr::chargeIsolationCone(nTracks, trkCaloDirections, a_charIsoR_, nNearTRKs, (myverbose_ > 3));
390 
391  double eMipDR = spr::eCone_ecal(geo,
392  barrelRecHitsHandle,
393  endcapRecHitsHandle,
394  trkDetItr->pointHCAL,
395  trkDetItr->pointECAL,
396  a_mipR_,
397  trkDetItr->directionECAL,
398  nRH_eMipDR);
399  double eECALDR = spr::eCone_ecal(geo,
400  barrelRecHitsHandle,
401  endcapRecHitsHandle,
402  trkDetItr->pointHCAL,
403  trkDetItr->pointECAL,
404  a_neutIsoR_,
405  trkDetItr->directionECAL,
406  nRH_eDR);
407  double eMipDR_1 = spr::eCone_ecal(geo,
408  barrelRecHitsHandle,
409  endcapRecHitsHandle,
410  trkDetItr->pointHCAL,
411  trkDetItr->pointECAL,
412  a_mipR_,
413  trkDetItr->directionECAL,
414  nRH_eMipDR,
415  0.030,
416  0.150);
417  double eECALDR_1 = spr::eCone_ecal(geo,
418  barrelRecHitsHandle,
419  endcapRecHitsHandle,
420  trkDetItr->pointHCAL,
421  trkDetItr->pointECAL,
422  a_neutIsoR_,
423  trkDetItr->directionECAL,
424  nRH_eDR,
425  0.030,
426  0.150);
427  double eMipDR_2 = spr::eCone_ecal(geo,
428  barrelRecHitsHandle,
429  endcapRecHitsHandle,
430  trkDetItr->pointHCAL,
431  trkDetItr->pointECAL,
432  a_mipR_,
433  trkDetItr->directionECAL,
434  nRH_eMipDR,
435  0.060,
436  0.300);
437  double eECALDR_2 = spr::eCone_ecal(geo,
438  barrelRecHitsHandle,
439  endcapRecHitsHandle,
440  trkDetItr->pointHCAL,
441  trkDetItr->pointECAL,
442  a_neutIsoR_,
443  trkDetItr->directionECAL,
444  nRH_eDR,
445  0.060,
446  0.300);
447 
448  HcalDetId closestCell = (HcalDetId)(trkDetItr->detIdHCAL);
449 
451  iSetup.get<EcalSeverityLevelAlgoRcd>().get(sevlv);
452 
453  e11x11_20SigP = spr::eECALmatrix(trkDetItr->detIdECAL,
454  barrelRecHitsHandle,
455  endcapRecHitsHandle,
456  *theEcalChStatus,
457  geo,
458  caloTopology,
459  sevlv.product(),
460  5,
461  5,
462  0.060,
463  0.300,
464  tMinE_,
465  tMaxE_);
466  e15x15_20SigP = spr::eECALmatrix(trkDetItr->detIdECAL,
467  barrelRecHitsHandle,
468  endcapRecHitsHandle,
469  *theEcalChStatus,
470  geo,
471  caloTopology,
472  sevlv.product(),
473  7,
474  7,
475  0.060,
476  0.300,
477  tMinE_,
478  tMaxE_);
479 
480  // Fill the tree Branches here
481  t_trackP->push_back(pTrack->p());
482  t_trackPt->push_back(pTrack->pt());
483  t_trackEta->push_back(pTrack->momentum().eta());
484  t_trackPhi->push_back(pTrack->momentum().phi());
485  t_trackHcalEta->push_back(closestCell.ieta());
486  t_trackHcalPhi->push_back(closestCell.iphi());
487  t_hCone->push_back(hCone);
488  t_conehmaxNearP->push_back(conehmaxNearP);
489  t_eMipDR->push_back(eMipDR);
490  t_eECALDR->push_back(eECALDR);
491  t_eHCALDR->push_back(eHCALDR);
492  t_e11x11_20Sig->push_back(e11x11_20SigP.first);
493  t_e15x15_20Sig->push_back(e15x15_20SigP.first);
494  t_eMipDR_1->push_back(eMipDR_1);
495  t_eECALDR_1->push_back(eECALDR_1);
496  t_eMipDR_2->push_back(eMipDR_2);
497  t_eECALDR_2->push_back(eECALDR_2);
498  t_hConeHB->push_back(hConeHB);
499  t_eHCALDRHB->push_back(eHCALDRHB);
500 
501  if (myverbose_ > 0) {
502  edm::LogVerbatim("IsoTrack") << "Track p " << pTrack->p() << " pt " << pTrack->pt() << " eta "
503  << pTrack->momentum().eta() << " phi " << pTrack->momentum().phi()
504  << " ieta/iphi (" << closestCell.ieta() << ", " << closestCell.iphi()
505  << ") Energy in cone " << hCone << " Charge Isolation " << conehmaxNearP
506  << " eMIP (" << eMipDR << ", " << eMipDR_1 << ", " << eMipDR_2 << ")"
507  << " Neutral isolation (ECAL) (" << eECALDR - eMipDR << ", "
508  << eECALDR_1 - eMipDR_1 << ", " << eECALDR_2 - eMipDR_2 << ") (ECAL NxN) "
509  << e15x15_20SigP.first - e11x11_20SigP.first << " (HCAL) " << eHCALDR - hCone;
510  }
511 
512  if (doMC_) {
513  int nSimHits = -999;
514  double hsim;
515  std::map<std::string, double> hsimInfo;
516  std::vector<int> multiplicity;
517  hsim = spr::eCone_hcal(
518  geo, pcalohh, trkDetItr->pointHCAL, trkDetItr->pointECAL, a_coneR_, trkDetItr->directionHCAL, nSimHits);
519  hsimInfo = spr::eHCALSimInfoCone(iEvent,
520  pcalohh,
521  SimTk,
522  SimVtx,
523  pTrack,
524  *associate,
525  geo,
526  trkDetItr->pointHCAL,
527  trkDetItr->pointECAL,
528  a_coneR_,
529  trkDetItr->directionHCAL,
530  multiplicity);
531 
532  t_hsimInfoMatched->push_back(hsimInfo["eMatched"]);
533  t_hsimInfoRest->push_back(hsimInfo["eRest"]);
534  t_hsimInfoPhoton->push_back(hsimInfo["eGamma"]);
535  t_hsimInfoNeutHad->push_back(hsimInfo["eNeutralHad"]);
536  t_hsimInfoCharHad->push_back(hsimInfo["eChargedHad"]);
537  t_hsimInfoPdgMatched->push_back(hsimInfo["pdgMatched"]);
538  t_hsimInfoTotal->push_back(hsimInfo["eTotal"]);
539 
540  t_hsimInfoNMatched->push_back(multiplicity.at(0));
541  t_hsimInfoNTotal->push_back(multiplicity.at(1));
542  t_hsimInfoNNeutHad->push_back(multiplicity.at(2));
543  t_hsimInfoNCharHad->push_back(multiplicity.at(3));
544  t_hsimInfoNPhoton->push_back(multiplicity.at(4));
545  t_hsimInfoNRest->push_back(multiplicity.at(5));
546 
547  t_hsim->push_back(hsim);
548  t_nSimHits->push_back(nSimHits);
549 
550  if (myverbose_ > 0) {
551  edm::LogVerbatim("IsoTrack") << "Matched (E) " << hsimInfo["eMatched"] << " (N) " << multiplicity.at(0)
552  << " Rest (E) " << hsimInfo["eRest"] << " (N) " << multiplicity.at(1)
553  << " Gamma (E) " << hsimInfo["eGamma"] << " (N) " << multiplicity.at(2)
554  << " Neutral Had (E) " << hsimInfo["eNeutralHad"] << " (N) "
555  << multiplicity.at(3) << " Charged Had (E) " << hsimInfo["eChargedHad"]
556  << " (N) " << multiplicity.at(4) << " Total (E) " << hsimInfo["eTotal"]
557  << " (N) " << multiplicity.at(5) << " PDG " << hsimInfo["pdgMatched"]
558  << " Total E " << hsim << " NHit " << nSimHits;
559  }
560  }
561  }
562  }
563 
564  tree_->Fill();
565 }
566 
568  nEventProc_ = 0;
570 
572  tree_ = fs->make<TTree>("tree", "tree");
573  tree_->SetAutoSave(10000);
574 
575  tree_->Branch("t_RunNo", &t_RunNo, "t_RunNo/I");
576  tree_->Branch("t_Lumi", &t_Lumi, "t_Lumi/I");
577  tree_->Branch("t_Bunch", &t_Bunch, "t_Bunch/I");
578 
579  t_trackP = new std::vector<double>();
580  t_trackPt = new std::vector<double>();
581  t_trackEta = new std::vector<double>();
582  t_trackPhi = new std::vector<double>();
583  t_trackHcalEta = new std::vector<double>();
584  t_trackHcalPhi = new std::vector<double>();
585  t_hCone = new std::vector<double>();
586  t_conehmaxNearP = new std::vector<double>();
587  t_eMipDR = new std::vector<double>();
588  t_eECALDR = new std::vector<double>();
589  t_eHCALDR = new std::vector<double>();
590  t_e11x11_20Sig = new std::vector<double>();
591  t_e15x15_20Sig = new std::vector<double>();
592  t_eMipDR_1 = new std::vector<double>();
593  t_eECALDR_1 = new std::vector<double>();
594  t_eMipDR_2 = new std::vector<double>();
595  t_eECALDR_2 = new std::vector<double>();
596  t_hConeHB = new std::vector<double>();
597  t_eHCALDRHB = new std::vector<double>();
598 
599  tree_->Branch("t_trackP", "std::vector<double>", &t_trackP);
600  tree_->Branch("t_trackPt", "std::vector<double>", &t_trackPt);
601  tree_->Branch("t_trackEta", "std::vector<double>", &t_trackEta);
602  tree_->Branch("t_trackPhi", "std::vector<double>", &t_trackPhi);
603  tree_->Branch("t_trackHcalEta", "std::vector<double>", &t_trackHcalEta);
604  tree_->Branch("t_trackHcalPhi", "std::vector<double>", &t_trackHcalPhi);
605  tree_->Branch("t_hCone", "std::vector<double>", &t_hCone);
606  tree_->Branch("t_conehmaxNearP", "std::vector<double>", &t_conehmaxNearP);
607  tree_->Branch("t_eMipDR", "std::vector<double>", &t_eMipDR);
608  tree_->Branch("t_eECALDR", "std::vector<double>", &t_eECALDR);
609  tree_->Branch("t_eHCALDR", "std::vector<double>", &t_eHCALDR);
610  tree_->Branch("t_e11x11_20Sig", "std::vector<double>", &t_e11x11_20Sig);
611  tree_->Branch("t_e15x15_20Sig", "std::vector<double>", &t_e15x15_20Sig);
612  tree_->Branch("t_eMipDR_1", "std::vector<double>", &t_eMipDR_1);
613  tree_->Branch("t_eECALDR_1", "std::vector<double>", &t_eECALDR_1);
614  tree_->Branch("t_eMipDR_2", "std::vector<double>", &t_eMipDR_2);
615  tree_->Branch("t_eECALDR_2", "std::vector<double>", &t_eECALDR_2);
616  tree_->Branch("t_hConeHB", "std::vector<double>", &t_hConeHB);
617  tree_->Branch("t_eHCALDRHB", "std::vector<double>", &t_eHCALDRHB);
618 
619  if (doMC_) {
620  t_hsimInfoMatched = new std::vector<double>();
621  t_hsimInfoRest = new std::vector<double>();
622  t_hsimInfoPhoton = new std::vector<double>();
623  t_hsimInfoNeutHad = new std::vector<double>();
624  t_hsimInfoCharHad = new std::vector<double>();
625  t_hsimInfoPdgMatched = new std::vector<double>();
626  t_hsimInfoTotal = new std::vector<double>();
627  t_hsimInfoNMatched = new std::vector<int>();
628  t_hsimInfoNTotal = new std::vector<int>();
629  t_hsimInfoNNeutHad = new std::vector<int>();
630  t_hsimInfoNCharHad = new std::vector<int>();
631  t_hsimInfoNPhoton = new std::vector<int>();
632  t_hsimInfoNRest = new std::vector<int>();
633  t_hsim = new std::vector<double>();
634  t_nSimHits = new std::vector<int>();
635 
636  tree_->Branch("t_hsimInfoMatched", "std::vector<double>", &t_hsimInfoMatched);
637  tree_->Branch("t_hsimInfoRest", "std::vector<double>", &t_hsimInfoRest);
638  tree_->Branch("t_hsimInfoPhoton", "std::vector<double>", &t_hsimInfoPhoton);
639  tree_->Branch("t_hsimInfoNeutHad", "std::vector<double>", &t_hsimInfoNeutHad);
640  tree_->Branch("t_hsimInfoCharHad", "std::vector<double>", &t_hsimInfoCharHad);
641  tree_->Branch("t_hsimInfoPdgMatched", "std::vector<double>", &t_hsimInfoPdgMatched);
642  tree_->Branch("t_hsimInfoTotal", "std::vector<double>", &t_hsimInfoTotal);
643  tree_->Branch("t_hsimInfoNMatched", "std::vector<int>", &t_hsimInfoNMatched);
644  tree_->Branch("t_hsimInfoNTotal", "std::vector<int>", &t_hsimInfoNTotal);
645  tree_->Branch("t_hsimInfoNNeutHad", "std::vector<int>", &t_hsimInfoNNeutHad);
646  tree_->Branch("t_hsimInfoNCharHad", "std::vector<int>", &t_hsimInfoNCharHad);
647  tree_->Branch("t_hsimInfoNPhoton", "std::vector<int>", &t_hsimInfoNPhoton);
648  tree_->Branch("t_hsimInfoNRest", "std::vector<int>", &t_hsimInfoNRest);
649  tree_->Branch("t_hsim", "std::vector<double>", &t_hsim);
650  tree_->Branch("t_nSimHits", "std::vector<int>", &t_nSimHits);
651  }
652 }
653 
654 void IsolatedTracksHcalScale::endJob() { edm::LogVerbatim("IsoTrack") << "Number of Events Processed " << nEventProc_; }
655 
657  t_trackP->clear();
658  t_trackPt->clear();
659  t_trackEta->clear();
660  t_trackPhi->clear();
661  t_trackHcalEta->clear();
662  t_trackHcalPhi->clear();
663  t_hCone->clear();
664  t_conehmaxNearP->clear();
665  t_eMipDR->clear();
666  t_eECALDR->clear();
667  t_eHCALDR->clear();
668  t_e11x11_20Sig->clear();
669  t_e15x15_20Sig->clear();
670  t_eMipDR_1->clear();
671  t_eECALDR_1->clear();
672  t_eMipDR_2->clear();
673  t_eECALDR_2->clear();
674  t_hConeHB->clear();
675  t_eHCALDRHB->clear();
676 
677  if (doMC_) {
678  t_hsimInfoMatched->clear();
679  t_hsimInfoRest->clear();
680  t_hsimInfoPhoton->clear();
681  t_hsimInfoNeutHad->clear();
682  t_hsimInfoCharHad->clear();
683  t_hsimInfoPdgMatched->clear();
684  t_hsimInfoTotal->clear();
685  t_hsimInfoNMatched->clear();
686  t_hsimInfoNTotal->clear();
687  t_hsimInfoNNeutHad->clear();
688  t_hsimInfoNCharHad->clear();
689  t_hsimInfoNPhoton->clear();
690  t_hsimInfoNRest->clear();
691  t_hsim->clear();
692  t_nSimHits->clear();
693  }
694 }
695 
696 //define this as a plug-in
spr::trackSelectionParameters::maxDxyPV
double maxDxyPV
Definition: TrackSelection.h:22
edm::ESHandle::product
T const * product() const
Definition: ESHandle.h:86
CaloJetCollection.h
DDAxes::y
Handle.h
CaloJet.h
electrons_cff.bool
bool
Definition: electrons_cff.py:393
EDAnalyzer.h
FreeTrajectoryState.h
CaloNavigator.h
StandaloneTrackMonitor_cfi.trackQuality
trackQuality
Definition: StandaloneTrackMonitor_cfi.py:11
IsolatedTracksHcalScale::tok_simVtx_
edm::EDGetTokenT< edm::SimVertexContainer > tok_simVtx_
Definition: IsolatedTracksHcalScale.cc:134
funct::false
false
Definition: Factorize.h:29
IsolatedTracksHcalScale::tok_caloEE_
edm::EDGetTokenT< edm::PCaloHitContainer > tok_caloEE_
Definition: IsolatedTracksHcalScale.cc:136
IsolatedTracksHcalScale::clearTreeVectors
void clearTreeVectors()
Definition: IsolatedTracksHcalScale.cc:656
ESHandle.h
spr::trackSelectionParameters::maxDzPV
double maxDzPV
Definition: TrackSelection.h:22
IsolatedTracksHcalScale::t_hConeHB
std::vector< double > * t_hConeHB
Definition: IsolatedTracksHcalScale.cc:149
IsolatedTracksHcalScale::t_Lumi
int t_Lumi
Definition: IsolatedTracksHcalScale.cc:143
IsolatedTracksHcalScale::t_hsimInfoNPhoton
std::vector< int > * t_hsimInfoNPhoton
Definition: IsolatedTracksHcalScale.cc:154
HcalDetId::iphi
constexpr int iphi() const
get the cell iphi
Definition: HcalDetId.h:157
spr::trackSelectionParameters::maxChi2
double maxChi2
Definition: TrackSelection.h:22
reco::TrackBase::p
double p() const
momentum vector magnitude
Definition: TrackBase.h:631
TrackDetectorAssociator.h
EcalSeverityLevelAlgoRcd.h
L1GlobalTriggerReadoutSetupFwd.h
IsolatedTracksHcalScale::t_hsimInfoTotal
std::vector< double > * t_hsimInfoTotal
Definition: IsolatedTracksHcalScale.cc:152
IsolatedTracksHcalScale::theTrackQuality_
std::string theTrackQuality_
Definition: IsolatedTracksHcalScale.cc:119
edm::EDGetTokenT< reco::TrackCollection >
CaloGeometryRecord
Definition: CaloGeometryRecord.h:30
TrackBase.h
IsolatedTracksHcalScale::t_hsim
std::vector< double > * t_hsim
Definition: IsolatedTracksHcalScale.cc:152
IsolatedTracksHcalScale::t_hsimInfoNTotal
std::vector< int > * t_hsimInfoNTotal
Definition: IsolatedTracksHcalScale.cc:153
EBDetId.h
EEDetId.h
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
IsolatedTracksHcalScale::t_hsimInfoNMatched
std::vector< int > * t_hsimInfoNMatched
Definition: IsolatedTracksHcalScale.cc:153
IsolatedTracksHcalScale::doMC_
bool doMC_
Definition: IsolatedTracksHcalScale.cc:117
IsolatedTracksHcalScale::tok_caloEB_
edm::EDGetTokenT< edm::PCaloHitContainer > tok_caloEB_
Definition: IsolatedTracksHcalScale.cc:135
reco::TrackBase::TrackQuality
TrackQuality
track quality
Definition: TrackBase.h:150
edm::SortedCollection
Definition: SortedCollection.h:49
TrackerHitAssociator.h
IsolatedTracksHcalScale::a_charIsoR_
double a_charIsoR_
Definition: IsolatedTracksHcalScale.cc:121
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
CaloTopologyRecord
Definition: CaloTopologyRecord.h:10
edm::one::EDAnalyzer
Definition: EDAnalyzer.h:30
IsolatedTracksHcalScale::tree_
TTree * tree_
Definition: IsolatedTracksHcalScale.cc:141
HcalBarrel
Definition: HcalAssistant.h:33
IsolatedTracksHcalScale::t_nTracks
int t_nTracks
Definition: IsolatedTracksHcalScale.cc:143
TrackerHitAssociator::Config
Definition: TrackerHitAssociator.h:57
EcalCondObjectContainer
Definition: EcalCondObjectContainer.h:13
BeamSpotPI::nTracks
Definition: BeamSpotPayloadInspectorHelper.h:41
edm::Handle< reco::TrackCollection >
CaloTopology
Definition: CaloTopology.h:19
EcalRecHitCollections.h
IsolatedTracksHcalScale::t_hsimInfoNNeutHad
std::vector< int > * t_hsimInfoNNeutHad
Definition: IsolatedTracksHcalScale.cc:153
IsolatedTracksHcalScale::t_eMipDR_2
std::vector< double > * t_eMipDR_2
Definition: IsolatedTracksHcalScale.cc:148
IsolatedTracksHcalScale::t_hCone
std::vector< double > * t_hCone
Definition: IsolatedTracksHcalScale.cc:146
reco::TrackBase::pt
double pt() const
track transverse momentum
Definition: TrackBase.h:637
IdealMagneticFieldRecord
Definition: IdealMagneticFieldRecord.h:11
IsolatedTracksHcalScale::t_trackEta
std::vector< double > * t_trackEta
Definition: IsolatedTracksHcalScale.cc:144
MakerMacros.h
CaloGeometry
Definition: CaloGeometry.h:21
FindCaloHit.h
Track.h
edm::EventSetup::get
T get() const
Definition: EventSetup.h:80
TrackFwd.h
DEFINE_FWK_MODULE
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
IsolatedTracksHcalScale::t_hsimInfoNeutHad
std::vector< double > * t_hsimInfoNeutHad
Definition: IsolatedTracksHcalScale.cc:151
BeamSpot.h
spr::eECALmatrix
double eECALmatrix(const DetId &detId, edm::Handle< T > &hitsEB, edm::Handle< T > &hitsEE, const CaloGeometry *geo, const CaloTopology *caloTopology, int ieta, int iphi, double ebThr=-100, double eeThr=-100, double tMin=-500, double tMax=500, bool debug=false)
edm::ConfigurationDescriptions::add
void add(std::string const &label, ParameterSetDescription const &psetDescription)
Definition: ConfigurationDescriptions.cc:57
IsolatedTracksHcalScale::trackerHitAssociatorConfig_
TrackerHitAssociator::Config trackerHitAssociatorConfig_
Definition: IsolatedTracksHcalScale.cc:124
Service.h
IsolatedTracksHcalScale::t_trackPt
std::vector< double > * t_trackPt
Definition: IsolatedTracksHcalScale.cc:144
ChargeIsolation.h
SimVertex.h
IsolatedTracksHcalScale::a_mipR_
double a_mipR_
Definition: IsolatedTracksHcalScale.cc:121
eHCALMatrix.h
IsolatedTracksHcalScale::t_Bunch
int t_Bunch
Definition: IsolatedTracksHcalScale.cc:143
IsolatedTracksHcalScale::tMaxE_
double tMaxE_
Definition: IsolatedTracksHcalScale.cc:122
DDAxes::z
reco::Track
Definition: Track.h:27
IdealMagneticFieldRecord.h
edm::ESHandle< MagneticField >
EcalSeverityLevelAlgoRcd
Definition: EcalSeverityLevelAlgoRcd.h:12
IsolatedTracksHcalScale::tok_EE_
edm::EDGetTokenT< EcalRecHitCollection > tok_EE_
Definition: IsolatedTracksHcalScale.cc:130
IsolatedTracksHcalScale::tok_recVtx_
edm::EDGetTokenT< reco::VertexCollection > tok_recVtx_
Definition: IsolatedTracksHcalScale.cc:127
IsolatedTracksHcalScale::IsolatedTracksHcalScale
IsolatedTracksHcalScale(const edm::ParameterSet &)
Definition: IsolatedTracksHcalScale.cc:158
spr::trackSelectionParameters::minPt
double minPt
Definition: TrackSelection.h:20
spr::trackSelectionParameters
Definition: TrackSelection.h:12
spr::trackSelectionParameters::minOuterHit
int minOuterHit
Definition: TrackSelection.h:23
reco::BeamSpot::position
const Point & position() const
position
Definition: BeamSpot.h:59
Point3DBase< float, GlobalTag >
eECALMatrix.h
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
EcalSeverityLevelAlgo.h
IsolatedTracksHcalScale::t_hsimInfoNCharHad
std::vector< int > * t_hsimInfoNCharHad
Definition: IsolatedTracksHcalScale.cc:154
IsolatedTracksHcalScale::minQuality_
std::string minQuality_
Definition: IsolatedTracksHcalScale.cc:119
spr::trackSelectionParameters::maxDpOverP
double maxDpOverP
Definition: TrackSelection.h:22
IsolatedTracksHcalScale::analyze
void analyze(const edm::Event &, const edm::EventSetup &) override
Definition: IsolatedTracksHcalScale.cc:234
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
IsolatedTracksHcalScale::nEventProc_
int nEventProc_
Definition: IsolatedTracksHcalScale.cc:139
TFileService.h
IsolatedTracksHcalScale::t_trackP
std::vector< double > * t_trackP
Definition: IsolatedTracksHcalScale.cc:144
CaloSubdetectorGeometry.h
HcalDetId::ieta
constexpr int ieta() const
get the cell ieta
Definition: HcalDetId.h:155
edm::ParameterSet
Definition: ParameterSet.h:47
math::XYZPoint
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:12
IsolatedTracksHcalScale::t_EvtNo
int t_EvtNo
Definition: IsolatedTracksHcalScale.cc:143
Event.h
IsolatedTracksHcalScale::t_hsimInfoCharHad
std::vector< double > * t_hsimInfoCharHad
Definition: IsolatedTracksHcalScale.cc:151
IsolatedTracksHcalScale::~IsolatedTracksHcalScale
~IsolatedTracksHcalScale() override
Definition: IsolatedTracksHcalScale.cc:105
EcalChannelStatusRcd
Definition: EcalChannelStatusRcd.h:5
TrackSelection.h
HcalDetId.h
IsolatedTracksHcalScale::t_eMipDR_1
std::vector< double > * t_eMipDR_1
Definition: IsolatedTracksHcalScale.cc:148
spr::trackSelectionParameters::maxOutMiss
int maxOutMiss
Definition: TrackSelection.h:24
CaloTopologyRecord.h
MatchingSimTrack.h
IsolatedTracksHcalScale::t_conehmaxNearP
std::vector< double > * t_conehmaxNearP
Definition: IsolatedTracksHcalScale.cc:146
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
IsolatedTracksHcalScale
Definition: IsolatedTracksHcalScale.cc:102
iEvent
int iEvent
Definition: GenABIO.cc:224
IsolatedTracksHcalScale::t_RunNo
int t_RunNo
Definition: IsolatedTracksHcalScale.cc:143
IsolatedTracksHcalScale::selectionParameters_
spr::trackSelectionParameters selectionParameters_
Definition: IsolatedTracksHcalScale.cc:120
IsolatedTracksHcalScale::tok_bs_
edm::EDGetTokenT< reco::BeamSpot > tok_bs_
Definition: IsolatedTracksHcalScale.cc:128
IsolatedTracksHcalScale::t_eECALDR_1
std::vector< double > * t_eECALDR_1
Definition: IsolatedTracksHcalScale.cc:148
IsolatedTracksHcalScale::endJob
void endJob() override
Definition: IsolatedTracksHcalScale.cc:654
MagneticField.h
IsolatedTracksHcalScale::a_coneR_
double a_coneR_
Definition: IsolatedTracksHcalScale.cc:121
edm::EventSetup
Definition: EventSetup.h:57
HcalSubdetector.h
TrackAssociatorRecord.h
IsolatedTracksHcalScale::t_trackHcalPhi
std::vector< double > * t_trackHcalPhi
Definition: IsolatedTracksHcalScale.cc:145
IsolatedTracksHcalScale::t_eECALDR_2
std::vector< double > * t_eECALDR_2
Definition: IsolatedTracksHcalScale.cc:148
IsolatedTracksHcalScale::t_eHCALDR
std::vector< double > * t_eHCALDR
Definition: IsolatedTracksHcalScale.cc:145
get
#define get
HitPattern.h
spr::trackSelectionParameters::minQuality
reco::TrackBase::TrackQuality minQuality
Definition: TrackSelection.h:21
IsolatedTracksHcalScale::t_eECALDR
std::vector< double > * t_eECALDR
Definition: IsolatedTracksHcalScale.cc:146
IsolatedTracksHcalScale::t_e11x11_20Sig
std::vector< double > * t_e11x11_20Sig
Definition: IsolatedTracksHcalScale.cc:147
IsolatedTracksHcalScale::t_hsimInfoNRest
std::vector< int > * t_hsimInfoNRest
Definition: IsolatedTracksHcalScale.cc:154
IsolatedTracksHcalScale::t_hsimInfoPdgMatched
std::vector< double > * t_hsimInfoPdgMatched
Definition: IsolatedTracksHcalScale.cc:151
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
CaloSubdetectorTopology.h
IsolatedTracksHcalScale::t_eMipDR
std::vector< double > * t_eMipDR
Definition: IsolatedTracksHcalScale.cc:146
HcalTopology.h
EcalTrigTowerConstituentsMap.h
submitPVResolutionJobs.desc
string desc
Definition: submitPVResolutionJobs.py:251
CaloSimInfo.h
IsolatedTracksHcalScale::tok_caloHH_
edm::EDGetTokenT< edm::PCaloHitContainer > tok_caloHH_
Definition: IsolatedTracksHcalScale.cc:137
std
Definition: JetResolutionObject.h:76
Ref.h
IsolatedTracksHcalScale::myverbose_
int myverbose_
Definition: IsolatedTracksHcalScale.cc:118
IsolatedTracksHcalScale::tok_EB_
edm::EDGetTokenT< EcalRecHitCollection > tok_EB_
Definition: IsolatedTracksHcalScale.cc:129
JetExtendedAssociation.h
Calorimetry_cff.bField
bField
Definition: Calorimetry_cff.py:292
DetId.h
IsolatedTracksHcalScale::tok_simTk_
edm::EDGetTokenT< edm::SimTrackContainer > tok_simTk_
Definition: IsolatedTracksHcalScale.cc:133
Frameworkfwd.h
edm::LogVerbatim
Log< level::Info, true > LogVerbatim
Definition: MessageLogger.h:128
CaloPropagateTrack.h
spr::trackSelectionParameters::maxInMiss
int maxInMiss
Definition: TrackSelection.h:24
IsolatedTracksHcalScale::tMinE_
double tMinE_
Definition: IsolatedTracksHcalScale.cc:122
CaloGeometry.h
TFileService::kSharedResource
static const std::string kSharedResource
Definition: TFileService.h:76
IsolatedTracksHcalScale::a_neutIsoR_
double a_neutIsoR_
Definition: IsolatedTracksHcalScale.cc:121
IsolatedTracksHcalScale::t_eHCALDRHB
std::vector< double > * t_eHCALDRHB
Definition: IsolatedTracksHcalScale.cc:149
IsolatedTracksHcalScale::beginJob
void beginJob() override
Definition: IsolatedTracksHcalScale.cc:567
Point3D.h
IsolatedTracksHcalScale::t_e15x15_20Sig
std::vector< double > * t_e15x15_20Sig
Definition: IsolatedTracksHcalScale.cc:147
EventSetup.h
HcalRecHitCollections.h
IsolatedTracksHcalScale::t_trackHcalEta
std::vector< double > * t_trackHcalEta
Definition: IsolatedTracksHcalScale.cc:145
PCaloHitContainer.h
Candidate.h
IsolatedTracksHcalScale::t_nSimHits
std::vector< int > * t_nSimHits
Definition: IsolatedTracksHcalScale.cc:155
IsolatedTracksHcalScale::tok_genTrack_
edm::EDGetTokenT< reco::TrackCollection > tok_genTrack_
Definition: IsolatedTracksHcalScale.cc:126
SimTrack.h
ParameterSet.h
IsolatedTracksHcalScale::t_hsimInfoRest
std::vector< double > * t_hsimInfoRest
Definition: IsolatedTracksHcalScale.cc:150
reco::TrackBase::momentum
const Vector & momentum() const
track momentum vector
Definition: TrackBase.h:664
IsolatedTracksHcalScale::t_hsimInfoPhoton
std::vector< double > * t_hsimInfoPhoton
Definition: IsolatedTracksHcalScale.cc:150
eHCALMatrixExtra.h
edm::HandleBase::isValid
bool isValid() const
Definition: HandleBase.h:70
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
IsolatedTracksHcalScale::fillDescriptions
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
Definition: IsolatedTracksHcalScale.cc:213
edm::Log
Definition: MessageLogger.h:70
IsolatedTracksHcalScale::tok_hbhe_
edm::EDGetTokenT< HBHERecHitCollection > tok_hbhe_
Definition: IsolatedTracksHcalScale.cc:131
SimTrackContainer.h
edm::InputTag
Definition: InputTag.h:15
SimVertexContainer.h
EcalChannelStatusRcd.h
IsolatedTracksHcalScale::t_hsimInfoMatched
std::vector< double > * t_hsimInfoMatched
Definition: IsolatedTracksHcalScale.cc:150
TFileService::make
T * make(const Args &... args) const
make new ROOT object
Definition: TFileService.h:64
IsolatedTracksHcalScale::t_trackPhi
std::vector< double > * t_trackPhi
Definition: IsolatedTracksHcalScale.cc:144