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