CMS 3D CMS Logo

IsolatedTracksCone.cc
Go to the documentation of this file.
1 // -*- C++ -*-
2 //
3 // Package: IsolatedParticles
4 // Class: IsolatedTracksCone
5 //
14 //
15 // Original Author: Jim Hirschauer (adaptation of Seema Sharma's
16 // IsolatedTracksNew)
17 // Created: Thu Nov 6 15:30:40 CST 2008
18 //
19 //
20 // system include files
21 #include <cmath>
22 #include <map>
23 #include <memory>
24 #include <string>
25 #include <vector>
26 
27 #include <Math/GenVector/VectorUtil.h>
28 
29 // user include files
38 
40 
50 // muons and tracks
54 // Vertices
57 //L1 objects
64 
74 
75 //TFile Service
78 
79 // ecal / hcal
86 
89 
90 // SimHit, SimTrack, ...
96 
97 // track associator
100 
101 // tracker hit associator
105 
106 // root objects
107 #include "TROOT.h"
108 #include "TSystem.h"
109 #include "TFile.h"
110 #include "TH1F.h"
111 #include "TH2F.h"
112 #include "TProfile.h"
113 #include "TDirectory.h"
114 #include "TTree.h"
115 
116 class IsolatedTracksCone : public edm::one::EDAnalyzer<edm::one::SharedResources> {
117 public:
118  explicit IsolatedTracksCone(const edm::ParameterSet&);
119  ~IsolatedTracksCone() override;
120 
121  static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
122 
123 private:
124  void beginJob() override;
125  void analyze(const edm::Event&, const edm::EventSetup&) override;
126  void endJob() override;
127 
128  void printTrack(const reco::Track* pTrack);
129 
130  // void BookHistograms();
131  void buildTree();
132  void clearTrackVectors();
133 
134  double deltaPhi(double v1, double v2);
135  double deltaR(double eta1, double phi1, double eta2, double phi2);
136 
137  static constexpr int nEtaBins_ = 4;
138  static constexpr int nPBins_ = 21;
139  std::array<double, nPBins_ + 1> genPartPBins_;
140  std::array<double, nEtaBins_ + 1> genPartEtaBins;
141 
142  const bool doMC_;
143  const int myverbose_;
144  const bool useJetTrigger_;
146  const int debugTrks_;
148 
150 
154 
158 
162 
167 
169  const int debugEcalSimInfo_;
171 
172  // track associator to detector parameters
174  std::unique_ptr<TrackDetectorAssociator> trackAssociator_;
175 
176  TTree* ntp_;
177 
178  TH1F* h_RawPt;
179  TH1F* h_RawP;
180  TH1F* h_RawEta;
181  TH1F* h_RawPhi;
182 
183  int nRawTRK;
185  int nFailPt;
186  int nFailEta;
189  int nEVT;
191  int nTRK;
192  double leadL1JetPT;
193  double leadL1JetEta;
194  double leadL1JetPhi;
195 
196  std::unique_ptr<std::vector<std::vector<int> > > t_v_hnNearTRKs;
197  std::unique_ptr<std::vector<std::vector<int> > > t_v_hnLayers_maxNearP;
198  std::unique_ptr<std::vector<std::vector<int> > > t_v_htrkQual_maxNearP;
199  std::unique_ptr<std::vector<std::vector<double> > > t_v_hmaxNearP_goodTrk;
200  std::unique_ptr<std::vector<std::vector<double> > > t_v_hmaxNearP;
201 
202  std::unique_ptr<std::vector<std::vector<int> > > t_v_cone_hnNearTRKs;
203  std::unique_ptr<std::vector<std::vector<int> > > t_v_cone_hnLayers_maxNearP;
204  std::unique_ptr<std::vector<std::vector<int> > > t_v_cone_htrkQual_maxNearP;
205  std::unique_ptr<std::vector<std::vector<double> > > t_v_cone_hmaxNearP_goodTrk;
206  std::unique_ptr<std::vector<std::vector<double> > > t_v_cone_hmaxNearP;
207 
208  std::unique_ptr<std::vector<double> > t_trkNOuterHits;
209  std::unique_ptr<std::vector<double> > t_trkNLayersCrossed;
210  std::unique_ptr<std::vector<double> > t_dtFromLeadJet;
211  std::unique_ptr<std::vector<double> > t_trkP;
212  std::unique_ptr<std::vector<double> > t_simP;
213  std::unique_ptr<std::vector<double> > t_trkPt;
214  std::unique_ptr<std::vector<double> > t_trkEta;
215  std::unique_ptr<std::vector<double> > t_trkPhi;
216  std::unique_ptr<std::vector<double> > t_e3x3;
217 
218  std::unique_ptr<std::vector<std::vector<double> > > t_v_eDR;
219  std::unique_ptr<std::vector<std::vector<double> > > t_v_eMipDR;
220 
221  std::unique_ptr<std::vector<double> > t_h3x3;
222  std::unique_ptr<std::vector<double> > t_h5x5;
223  std::unique_ptr<std::vector<double> > t_hsim3x3;
224  std::unique_ptr<std::vector<double> > t_hsim5x5;
225 
226  std::unique_ptr<std::vector<double> > t_nRH_h3x3;
227  std::unique_ptr<std::vector<double> > t_nRH_h5x5;
228 
229  std::unique_ptr<std::vector<double> > t_hsim3x3Matched;
230  std::unique_ptr<std::vector<double> > t_hsim5x5Matched;
231  std::unique_ptr<std::vector<double> > t_hsim3x3Rest;
232  std::unique_ptr<std::vector<double> > t_hsim5x5Rest;
233  std::unique_ptr<std::vector<double> > t_hsim3x3Photon;
234  std::unique_ptr<std::vector<double> > t_hsim5x5Photon;
235  std::unique_ptr<std::vector<double> > t_hsim3x3NeutHad;
236  std::unique_ptr<std::vector<double> > t_hsim5x5NeutHad;
237  std::unique_ptr<std::vector<double> > t_hsim3x3CharHad;
238  std::unique_ptr<std::vector<double> > t_hsim5x5CharHad;
239  std::unique_ptr<std::vector<double> > t_hsim3x3PdgMatched;
240  std::unique_ptr<std::vector<double> > t_hsim5x5PdgMatched;
241  std::unique_ptr<std::vector<double> > t_hsim3x3Total;
242  std::unique_ptr<std::vector<double> > t_hsim5x5Total;
243 
244  std::unique_ptr<std::vector<int> > t_hsim3x3NMatched;
245  std::unique_ptr<std::vector<int> > t_hsim3x3NRest;
246  std::unique_ptr<std::vector<int> > t_hsim3x3NPhoton;
247  std::unique_ptr<std::vector<int> > t_hsim3x3NNeutHad;
248  std::unique_ptr<std::vector<int> > t_hsim3x3NCharHad;
249  std::unique_ptr<std::vector<int> > t_hsim3x3NTotal;
250 
251  std::unique_ptr<std::vector<int> > t_hsim5x5NMatched;
252  std::unique_ptr<std::vector<int> > t_hsim5x5NRest;
253  std::unique_ptr<std::vector<int> > t_hsim5x5NPhoton;
254  std::unique_ptr<std::vector<int> > t_hsim5x5NNeutHad;
255  std::unique_ptr<std::vector<int> > t_hsim5x5NCharHad;
256  std::unique_ptr<std::vector<int> > t_hsim5x5NTotal;
257 
258  std::unique_ptr<std::vector<double> > t_distFromHotCell_h3x3;
259  std::unique_ptr<std::vector<int> > t_ietaFromHotCell_h3x3;
260  std::unique_ptr<std::vector<int> > t_iphiFromHotCell_h3x3;
261  std::unique_ptr<std::vector<double> > t_distFromHotCell_h5x5;
262  std::unique_ptr<std::vector<int> > t_ietaFromHotCell_h5x5;
263  std::unique_ptr<std::vector<int> > t_iphiFromHotCell_h5x5;
264 
265  std::unique_ptr<std::vector<double> > t_trkHcalEne;
266  std::unique_ptr<std::vector<double> > t_trkEcalEne;
267 
268  std::unique_ptr<std::vector<std::vector<double> > > t_v_hsimInfoConeMatched;
269  std::unique_ptr<std::vector<std::vector<double> > > t_v_hsimInfoConeRest;
270  std::unique_ptr<std::vector<std::vector<double> > > t_v_hsimInfoConePhoton;
271  std::unique_ptr<std::vector<std::vector<double> > > t_v_hsimInfoConeNeutHad;
272  std::unique_ptr<std::vector<std::vector<double> > > t_v_hsimInfoConeCharHad;
273  std::unique_ptr<std::vector<std::vector<double> > > t_v_hsimInfoConePdgMatched;
274  std::unique_ptr<std::vector<std::vector<double> > > t_v_hsimInfoConeTotal;
275 
276  std::unique_ptr<std::vector<std::vector<int> > > t_v_hsimInfoConeNMatched;
277  std::unique_ptr<std::vector<std::vector<int> > > t_v_hsimInfoConeNRest;
278  std::unique_ptr<std::vector<std::vector<int> > > t_v_hsimInfoConeNPhoton;
279  std::unique_ptr<std::vector<std::vector<int> > > t_v_hsimInfoConeNNeutHad;
280  std::unique_ptr<std::vector<std::vector<int> > > t_v_hsimInfoConeNCharHad;
281  std::unique_ptr<std::vector<std::vector<int> > > t_v_hsimInfoConeNTotal;
282 
283  std::unique_ptr<std::vector<std::vector<double> > > t_v_hsimCone;
284  std::unique_ptr<std::vector<std::vector<double> > > t_v_hCone;
285  std::unique_ptr<std::vector<std::vector<int> > > t_v_nRecHitsCone;
286  std::unique_ptr<std::vector<std::vector<int> > > t_v_nSimHitsCone;
287 
288  std::unique_ptr<std::vector<std::vector<double> > > t_v_distFromHotCell;
289  std::unique_ptr<std::vector<std::vector<int> > > t_v_ietaFromHotCell;
290  std::unique_ptr<std::vector<std::vector<int> > > t_v_iphiFromHotCell;
291 
292  std::unique_ptr<std::vector<std::vector<int> > > t_v_hlTriggers;
293  std::unique_ptr<std::vector<int> > t_hltHB;
294  std::unique_ptr<std::vector<int> > t_hltHE;
295  std::unique_ptr<std::vector<int> > t_hltL1Jet15;
296  std::unique_ptr<std::vector<int> > t_hltJet30;
297  std::unique_ptr<std::vector<int> > t_hltJet50;
298  std::unique_ptr<std::vector<int> > t_hltJet80;
299  std::unique_ptr<std::vector<int> > t_hltJet110;
300  std::unique_ptr<std::vector<int> > t_hltJet140;
301  std::unique_ptr<std::vector<int> > t_hltJet180;
302  std::unique_ptr<std::vector<int> > t_hltL1SingleEG5;
303  std::unique_ptr<std::vector<int> > t_hltZeroBias;
304  std::unique_ptr<std::vector<int> > t_hltMinBiasHcal;
305  std::unique_ptr<std::vector<int> > t_hltMinBiasEcal;
306  std::unique_ptr<std::vector<int> > t_hltMinBiasPixel;
307  std::unique_ptr<std::vector<int> > t_hltSingleIsoTau30_Trk5;
308  std::unique_ptr<std::vector<int> > t_hltDoubleLooseIsoTau15_Trk5;
309 
310  std::unique_ptr<std::vector<std::vector<int> > > t_v_RH_h3x3_ieta;
311  std::unique_ptr<std::vector<std::vector<int> > > t_v_RH_h3x3_iphi;
312  std::unique_ptr<std::vector<std::vector<double> > > t_v_RH_h3x3_ene;
313  std::unique_ptr<std::vector<std::vector<int> > > t_v_RH_h5x5_ieta;
314  std::unique_ptr<std::vector<std::vector<int> > > t_v_RH_h5x5_iphi;
315  std::unique_ptr<std::vector<std::vector<double> > > t_v_RH_h5x5_ene;
316  std::unique_ptr<std::vector<std::vector<int> > > t_v_RH_r26_ieta;
317  std::unique_ptr<std::vector<std::vector<int> > > t_v_RH_r26_iphi;
318  std::unique_ptr<std::vector<std::vector<double> > > t_v_RH_r26_ene;
319  std::unique_ptr<std::vector<std::vector<int> > > t_v_RH_r44_ieta;
320  std::unique_ptr<std::vector<std::vector<int> > > t_v_RH_r44_iphi;
321  std::unique_ptr<std::vector<std::vector<double> > > t_v_RH_r44_ene;
322 
323  std::unique_ptr<std::vector<unsigned int> > t_irun;
324  std::unique_ptr<std::vector<unsigned int> > t_ievt;
325  std::unique_ptr<std::vector<unsigned int> > t_ilum;
326 };
327 
329  : doMC_(iConfig.getUntrackedParameter<bool>("doMC", false)),
330  myverbose_(iConfig.getUntrackedParameter<int>("verbosity", 5)),
331  useJetTrigger_(iConfig.getUntrackedParameter<bool>("useJetTrigger", false)),
332  drLeadJetVeto_(iConfig.getUntrackedParameter<double>("drLeadJetVeto", 1.2)),
333  ptMinLeadJet_(iConfig.getUntrackedParameter<double>("ptMinLeadJet", 15.0)),
334  debugTrks_(iConfig.getUntrackedParameter<int>("debugTracks")),
335  printTrkHitPattern_(iConfig.getUntrackedParameter<bool>("printTrkHitPattern")),
336  trackerHitAssociatorConfig_(consumesCollector()),
337  tok_L1extTauJet_(
338  consumes<l1extra::L1JetParticleCollection>(iConfig.getParameter<edm::InputTag>("L1extraTauJetSource"))),
339  tok_L1extCenJet_(
340  consumes<l1extra::L1JetParticleCollection>(iConfig.getParameter<edm::InputTag>("L1extraCenJetSource"))),
341  tok_L1extFwdJet_(
342  consumes<l1extra::L1JetParticleCollection>(iConfig.getParameter<edm::InputTag>("L1extraFwdJetSource"))),
343  tok_EB_(consumes<EcalRecHitCollection>(edm::InputTag("ecalRecHit", "EcalRecHitsEB"))),
344  tok_EE_(consumes<EcalRecHitCollection>(edm::InputTag("ecalRecHit", "EcalRecHitsEE"))),
345  tok_hbhe_(consumes<HBHERecHitCollection>(edm::InputTag("hbhereco"))),
346  tok_genTrack_(consumes<reco::TrackCollection>(edm::InputTag("generalTracks"))),
347  tok_simTk_(consumes<edm::SimTrackContainer>(edm::InputTag("g4SimHits"))),
348  tok_simVtx_(consumes<edm::SimVertexContainer>(edm::InputTag("g4SimHits"))),
349  tok_caloEB_(consumes<edm::PCaloHitContainer>(edm::InputTag("g4SimHits", "EcalHitsEB"))),
350  tok_caloEE_(consumes<edm::PCaloHitContainer>(edm::InputTag("g4SimHits", "EcalHitsEE"))),
351  tok_caloHH_(consumes<edm::PCaloHitContainer>(edm::InputTag("g4SimHits", "HcalHits"))),
352  tok_trigger_(consumes<edm::TriggerResults>(edm::InputTag("TriggerResults", "", "HLT"))),
353  minTrackP_(iConfig.getUntrackedParameter<double>("minTrackP", 10.0)),
354  maxTrackEta_(iConfig.getUntrackedParameter<double>("maxTrackEta", 5.0)),
355  maxNearTrackP_(iConfig.getUntrackedParameter<double>("maxNearTrackP", 1.0)),
356  debugEcalSimInfo_(iConfig.getUntrackedParameter<int>("debugEcalSimInfo")),
357  applyEcalIsolation_(iConfig.getUntrackedParameter<bool>("applyEcalIsolation")) {
358  //now do what ever initialization is needed
359 
360  edm::ParameterSet parameters = iConfig.getParameter<edm::ParameterSet>("TrackAssociatorParameters");
363  trackAssociator_ = std::unique_ptr<TrackDetectorAssociator>(new TrackDetectorAssociator());
364  trackAssociator_->useDefaultPropagator();
365 
366  if (myverbose_ >= 0) {
367  edm::LogVerbatim("IsoTrack") << "Parameters read from config file \n"
368  << "myverbose_ " << myverbose_ << "\n"
369  << "useJetTrigger_ " << useJetTrigger_ << "\n"
370  << "drLeadJetVeto_ " << drLeadJetVeto_ << "\n"
371  << "minTrackP_ " << minTrackP_ << "\n"
372  << "maxTrackEta_ " << maxTrackEta_ << "\n"
373  << "maxNearTrackP_ " << maxNearTrackP_;
374  }
375 }
376 
378 
381  desc.addUntracked<bool>("doMC", false);
382  desc.addUntracked<int>("verbosity", 1);
383  desc.addUntracked<bool>("useJetTrigger", false);
384  desc.addUntracked<double>("drLeadJetVeto", 1.2);
385  desc.addUntracked<double>("ptMinLeadJet", 15.0);
386  desc.addUntracked<int>("debugTracks", 0);
387  desc.addUntracked<bool>("printTrkHitPattern", true);
388  desc.addUntracked<double>("minTrackP", 1.0);
389  desc.addUntracked<double>("maxTrackEta", 2.6);
390  desc.addUntracked<double>("maxNearTrackP", 1.0);
391  desc.addUntracked<bool>("debugEcalSimInfo", false);
392  desc.addUntracked<bool>("applyEcalIsolation", true);
393  desc.addUntracked<bool>("debugL1Info", false);
394  desc.add<edm::InputTag>("L1extraTauJetSource", edm::InputTag("l1extraParticles", "Tau"));
395  desc.add<edm::InputTag>("L1extraCenJetSource", edm::InputTag("l1extraParticles", "Central"));
396  desc.add<edm::InputTag>("L1extraFwdJetSource", edm::InputTag("l1extraParticles", "Forward"));
397  //The following parameters are used as default for track association
398  edm::ParameterSetDescription desc_TrackAssoc;
399  desc_TrackAssoc.add<double>("muonMaxDistanceSigmaX", 0.0);
400  desc_TrackAssoc.add<double>("muonMaxDistanceSigmaY", 0.0);
401  desc_TrackAssoc.add<edm::InputTag>("CSCSegmentCollectionLabel", edm::InputTag("cscSegments"));
402  desc_TrackAssoc.add<double>("dRHcal", 9999.0);
403  desc_TrackAssoc.add<double>("dREcal", 9999.0);
404  desc_TrackAssoc.add<edm::InputTag>("CaloTowerCollectionLabel", edm::InputTag("towerMaker"));
405  desc_TrackAssoc.add<bool>("useEcal", true);
406  desc_TrackAssoc.add<double>("dREcalPreselection", 0.05);
407  desc_TrackAssoc.add<edm::InputTag>("HORecHitCollectionLabel", edm::InputTag("horeco"));
408  desc_TrackAssoc.add<double>("dRMuon", 9999.0);
409  desc_TrackAssoc.add<std::string>("crossedEnergyType", "SinglePointAlongTrajectory");
410  desc_TrackAssoc.add<double>("muonMaxDistanceX", 5.0);
411  desc_TrackAssoc.add<double>("muonMaxDistanceY", 5.0);
412  desc_TrackAssoc.add<bool>("useHO", false);
413  desc_TrackAssoc.add<bool>("accountForTrajectoryChangeCalo", false);
414  desc_TrackAssoc.add<edm::InputTag>("DTRecSegment4DCollectionLabel", edm::InputTag("dt4DSegments"));
415  desc_TrackAssoc.add<edm::InputTag>("EERecHitCollectionLabel", edm::InputTag("ecalRecHit", "EcalRecHitsEE"));
416  desc_TrackAssoc.add<double>("dRHcalPreselection", 0.2);
417  desc_TrackAssoc.add<bool>("useMuon", false);
418  desc_TrackAssoc.add<bool>("useCalo", true);
419  desc_TrackAssoc.add<edm::InputTag>("EBRecHitCollectionLabel", edm::InputTag("ecalRecHit", "EcalRecHitsEB"));
420  desc_TrackAssoc.add<double>("dRMuonPreselection", 0.2);
421  desc_TrackAssoc.add<bool>("truthMatch", false);
422  desc_TrackAssoc.add<edm::InputTag>("HBHERecHitCollectionLabel", edm::InputTag("hbhereco"));
423  desc_TrackAssoc.add<bool>("useHcal", true);
424  desc_TrackAssoc.add<bool>("usePreshower", false);
425  desc_TrackAssoc.add<double>("dRPreshowerPreselection", 0.2);
426  desc_TrackAssoc.add<double>("trajectoryUncertaintyTolerance", 1.0);
427  desc.add<edm::ParameterSetDescription>("TrackAssociatorParameters", desc_TrackAssoc);
428  descriptions.add("isolatedTracksCone", desc);
429 }
430 
432  unsigned int irun = (unsigned int)iEvent.id().run();
433  unsigned int ilum = (unsigned int)iEvent.getLuminosityBlock().luminosityBlock();
434  unsigned int ievt = (unsigned int)iEvent.id().event();
435 
437 
438  // check the L1 objects
439  bool L1Pass = false;
440  leadL1JetPT = -999, leadL1JetEta = -999, leadL1JetPhi = -999;
441  if (!useJetTrigger_) {
442  L1Pass = true;
443  } else {
445  iEvent.getByToken(tok_L1extTauJet_, l1TauHandle);
446  l1extra::L1JetParticleCollection::const_iterator itr;
447  for (itr = l1TauHandle->begin(); itr != l1TauHandle->end(); ++itr) {
448  if (itr->pt() > leadL1JetPT) {
449  leadL1JetPT = itr->pt();
450  leadL1JetEta = itr->eta();
451  leadL1JetPhi = itr->phi();
452  }
453  }
455  iEvent.getByToken(tok_L1extCenJet_, l1CenJetHandle);
456  for (itr = l1CenJetHandle->begin(); itr != l1CenJetHandle->end(); ++itr) {
457  if (itr->pt() > leadL1JetPT) {
458  leadL1JetPT = itr->pt();
459  leadL1JetEta = itr->eta();
460  leadL1JetPhi = itr->phi();
461  }
462  }
464  iEvent.getByToken(tok_L1extFwdJet_, l1FwdJetHandle);
465  for (itr = l1FwdJetHandle->begin(); itr != l1FwdJetHandle->end(); ++itr) {
466  if (itr->pt() > leadL1JetPT) {
467  leadL1JetPT = itr->pt();
468  leadL1JetEta = itr->eta();
469  leadL1JetPhi = itr->phi();
470  }
471  }
472  if (leadL1JetPT > ptMinLeadJet_) {
473  L1Pass = true;
474  }
475  }
476 
478  // Break now if L1Pass is false
480  if (!L1Pass) {
481  nEVT_failL1++;
482  // edm::LogVerbatim("IsoTrack") << "L1Pass is false : " << L1Pass;
483  // return;
484  }
485 
487  // Get the collection handles
489 
491  iSetup.get<CaloGeometryRecord>().get(pG);
492  const CaloGeometry* geo = pG.product();
497 
498  edm::ESHandle<CaloTopology> theCaloTopology;
499  iSetup.get<CaloTopologyRecord>().get(theCaloTopology);
500  const CaloTopology* caloTopology = theCaloTopology.product();
501 
503  iSetup.get<HcalRecNumberingRecord>().get(htopo);
504  const HcalTopology* theHBHETopology = htopo.product();
505 
506  edm::Handle<EcalRecHitCollection> barrelRecHitsHandle;
507  edm::Handle<EcalRecHitCollection> endcapRecHitsHandle;
508  iEvent.getByToken(tok_EB_, barrelRecHitsHandle);
509  iEvent.getByToken(tok_EE_, endcapRecHitsHandle);
510 
511  // Retrieve the good/bad ECAL channels from the DB
513  iSetup.get<EcalChannelStatusRcd>().get(ecalChStatus);
514  const EcalChannelStatus* theEcalChStatus = ecalChStatus.product();
515 
517  iEvent.getByToken(tok_hbhe_, hbhe);
518  const HBHERecHitCollection Hithbhe = *(hbhe.product());
519 
521  iEvent.getByToken(tok_genTrack_, trkCollection);
522  reco::TrackCollection::const_iterator trkItr;
523  if (debugTrks_ > 1) {
524  edm::LogVerbatim("IsoTrack") << "Track Collection: ";
525  edm::LogVerbatim("IsoTrack") << "Number of Tracks " << trkCollection->size();
526  }
527  std::string theTrackQuality = "highPurity";
528  reco::TrackBase::TrackQuality trackQuality_ = reco::TrackBase::qualityByName(theTrackQuality);
529 
530  //get Handles to SimTracks and SimHits
532  if (doMC_)
533  iEvent.getByToken(tok_simTk_, SimTk);
534 
536  if (doMC_)
537  iEvent.getByToken(tok_simVtx_, SimVtx);
538 
539  //get Handles to PCaloHitContainers of eb/ee/hbhe
541  if (doMC_)
542  iEvent.getByToken(tok_caloEB_, pcaloeb);
543 
545  if (doMC_)
546  iEvent.getByToken(tok_caloEE_, pcaloee);
547 
549  if (doMC_)
550  iEvent.getByToken(tok_caloHH_, pcalohh);
551 
553  // Get HLT_IsoTrackHB/HE Information
555 
557  iEvent.getByToken(tok_trigger_, triggerResults);
558 
559  std::vector<int> v_hlTriggers;
560  int hltHB(-99);
561  int hltHE(-99);
562  int hltL1Jet15(-99);
563  int hltJet30(-99);
564  int hltJet50(-99);
565  int hltJet80(-99);
566  int hltJet110(-99);
567  int hltJet140(-99);
568  int hltJet180(-99);
569  int hltL1SingleEG5(-99);
570  int hltZeroBias(-99);
571  int hltMinBiasHcal(-99);
572  int hltMinBiasEcal(-99);
573  int hltMinBiasPixel(-99);
574  int hltSingleIsoTau30_Trk5(-99);
575  int hltDoubleLooseIsoTau15_Trk5(-99);
576 
577  if (triggerResults.isValid()) {
578  const edm::TriggerNames& triggerNames = iEvent.triggerNames(*triggerResults);
579  // TriggerNames class triggerNames.init(*triggerResults);
580 
581  for (unsigned int i = 0; i < triggerResults->size(); i++) {
582  // edm::LogVerbatim("IsoTrack") << "triggerNames.triggerName(" << i << ") = " << triggerNames.triggerName(i);
583  if (triggerNames.triggerName(i) == "HLT_IsoTrackHE_1E31")
584  hltHE = triggerResults->accept(i);
585  if (triggerNames.triggerName(i) == "HLT_IsoTrackHB_1E31")
586  hltHB = triggerResults->accept(i);
587  if (triggerNames.triggerName(i) == "HLT_L1Jet15")
588  hltL1Jet15 = triggerResults->accept(i);
589  if (triggerNames.triggerName(i) == "HLT_Jet30")
590  hltJet30 = triggerResults->accept(i);
591  if (triggerNames.triggerName(i) == "HLT_Jet50")
592  hltJet50 = triggerResults->accept(i);
593  if (triggerNames.triggerName(i) == "HLT_Jet80")
594  hltJet80 = triggerResults->accept(i);
595  if (triggerNames.triggerName(i) == "HLT_Jet110")
596  hltJet110 = triggerResults->accept(i);
597  if (triggerNames.triggerName(i) == "HLT_Jet140")
598  hltJet140 = triggerResults->accept(i);
599  if (triggerNames.triggerName(i) == "HLT_Jet180")
600  hltJet180 = triggerResults->accept(i);
601  if (triggerNames.triggerName(i) == "HLT_L1SingleEG5")
602  hltL1SingleEG5 = triggerResults->accept(i);
603  if (triggerNames.triggerName(i) == "HLT_ZeroBias")
604  hltZeroBias = triggerResults->accept(i);
605  if (triggerNames.triggerName(i) == "HLT_MinBiasHcal")
606  hltMinBiasHcal = triggerResults->accept(i);
607  if (triggerNames.triggerName(i) == "HLT_MinBiasEcal")
608  hltMinBiasEcal = triggerResults->accept(i);
609  if (triggerNames.triggerName(i) == "HLT_MinBiasPixel")
610  hltMinBiasPixel = triggerResults->accept(i);
611  if (triggerNames.triggerName(i) == "HLT_SingleIsoTau30_Trk5")
612  hltSingleIsoTau30_Trk5 = triggerResults->accept(i);
613  if (triggerNames.triggerName(i) == "HLT_DoubleLooseIsoTau15_Trk5")
614  hltDoubleLooseIsoTau15_Trk5 = triggerResults->accept(i);
615  }
616  }
617 
619  // Primary loop over tracks
621  std::unique_ptr<TrackerHitAssociator> associate;
622  if (doMC_)
624 
625  nTRK = 0;
626  nRawTRK = 0;
627  nFailPt = 0;
628  nFailEta = 0;
630  nMissEcal = 0;
631  nMissHcal = 0;
632 
633  for (trkItr = trkCollection->begin(); trkItr != trkCollection->end(); ++trkItr) {
634  nRawTRK++;
635 
636  const reco::Track* pTrack = &(*trkItr);
637 
639  // Check for min Pt and max Eta P
641 
642  bool trkQual = pTrack->quality(trackQuality_);
643  bool goodPt = pTrack->p() > minTrackP_;
644  bool goodEta = std::abs(pTrack->momentum().eta()) < maxTrackEta_;
645 
646  double eta1 = pTrack->momentum().eta();
647  double phi1 = pTrack->momentum().phi();
648  double pt1 = pTrack->pt();
649  double p1 = pTrack->p();
650 
651  if (!goodEta) {
652  nFailEta++;
653  }
654  if (!goodPt) {
655  nFailPt++;
656  }
657  if (!trkQual) {
659  }
660 
661  h_RawPt->Fill(pt1);
662  h_RawP->Fill(p1);
663  h_RawEta->Fill(eta1);
664  h_RawPhi->Fill(phi1);
665 
666  if (!goodEta || !goodPt || !trkQual)
667  continue; // Skip to next track
668 
670  // Find track trajectory
672 
673  const FreeTrajectoryState fts1 = trackAssociator_->getFreeTrajectoryState(iSetup, *pTrack);
674 
675  TrackDetMatchInfo info1 = trackAssociator_->associate(iEvent, iSetup, fts1, parameters_);
676 
678  // First confirm track makes it to Hcal
680 
681  if (info1.trkGlobPosAtHcal.x() == 0 && info1.trkGlobPosAtHcal.y() == 0 && info1.trkGlobPosAtHcal.z() == 0) {
682  nMissHcal++;
683  continue;
684  }
685 
686  const GlobalPoint hpoint1(info1.trkGlobPosAtHcal.x(), info1.trkGlobPosAtHcal.y(), info1.trkGlobPosAtHcal.z());
687 
689  // Get basic quantities
691 
692  const reco::HitPattern& hitp = pTrack->hitPattern();
693  int nLayersCrossed = hitp.trackerLayersWithMeasurement();
694  int nOuterHits = hitp.stripTOBLayersWithMeasurement() + hitp.stripTECLayersWithMeasurement();
695 
696  double simP = 0;
697  if (doMC_) {
698  edm::SimTrackContainer::const_iterator matchedSimTrk =
699  spr::matchedSimTrack(iEvent, SimTk, SimVtx, pTrack, *associate, false);
700  simP = matchedSimTrk->momentum().P();
701  }
703  // Get Ecal Point
705 
706  const GlobalPoint point1(info1.trkGlobPosAtEcal.x(), info1.trkGlobPosAtEcal.y(), info1.trkGlobPosAtEcal.z());
707 
708  // Sanity check that track hits Ecal
709 
710  if (info1.trkGlobPosAtEcal.x() == 0 && info1.trkGlobPosAtEcal.y() == 0 && info1.trkGlobPosAtEcal.z() == 0) {
711  edm::LogVerbatim("IsoTrack") << "Track doesn't reach Ecal.";
712  nMissEcal++;
713  continue;
714  }
715 
716  // Get Track Momentum - make sure you have latest version of TrackDetMatchInfo
717 
718  GlobalVector trackMomAtEcal = info1.trkMomAtEcal;
719  GlobalVector trackMomAtHcal = info1.trkMomAtHcal;
720 
722  // If using Jet trigger, get distance from leading jet
724 
725  double drFromLeadJet = 999.0;
726  if (useJetTrigger_) {
727  double dphi = deltaPhi(phi1, leadL1JetPhi);
728  double deta = eta1 - leadL1JetEta;
729  drFromLeadJet = sqrt(dphi * dphi + deta * deta);
730  }
731 
733  // Define Arrays for sizes of Charge, Neut Iso Radii and
734  // Clustering Cone Radius.
736 
737  const int a_size = 7;
738  double a_coneR[a_size];
739  double a_charIsoR[a_size];
740  double a_neutIsoR[a_size];
741 
742  a_coneR[0] = 17.49; // = area of 2x2
743  a_coneR[1] = 26.23; // = area of 3x3
744  a_coneR[2] = 30.61;
745  a_coneR[3] = 34.98; // = area of 4x4
746  a_coneR[4] = 39.35;
747  a_coneR[5] = 43.72; // = area of 5x5
748  a_coneR[6] = 52.46; // = area of 6x6
749 
750  for (int i = 0; i < a_size; i++) {
751  a_charIsoR[i] = a_coneR[i] + 28.9; // 28.9 gives 55.1 for 3x3 benchmark
752  a_neutIsoR[i] = a_charIsoR[i] * 0.726; // Ecal radius = 0.726*Hcal radius
753  }
754 
756  // Do Neutral Iso in radius on Ecal surface.
758 
759  // NxN cluster
760  double e3x3 = -999.0;
761  double trkEcalEne = -999.0;
763  iSetup.get<EcalSeverityLevelAlgoRcd>().get(sevlv);
764 
765  if (std::abs(point1.eta()) < 1.479) {
766  const DetId isoCell = gEB->getClosestCell(point1);
767  e3x3 = spr::eECALmatrix(isoCell,
768  barrelRecHitsHandle,
769  endcapRecHitsHandle,
770  *theEcalChStatus,
771  geo,
772  caloTopology,
773  sevlv.product(),
774  1,
775  1)
776  .first;
777  trkEcalEne = spr::eCaloSimInfo(iEvent, geo, pcaloeb, pcaloee, SimTk, SimVtx, pTrack, *associate);
778  } else {
779  const DetId isoCell = gEE->getClosestCell(point1);
780  e3x3 = spr::eECALmatrix(isoCell,
781  barrelRecHitsHandle,
782  endcapRecHitsHandle,
783  *theEcalChStatus,
784  geo,
785  caloTopology,
786  sevlv.product(),
787  1,
788  1)
789  .first;
790  trkEcalEne = spr::eCaloSimInfo(iEvent, geo, pcaloeb, pcaloee, SimTk, SimVtx, pTrack, *associate);
791  }
792 
793  // Cone cluster
794 
795  // Set up array of cone sizes for MIP cut
796  const int a_mip_size = 5;
797  double a_mipR[a_mip_size];
798  a_mipR[0] = 3.84; // = area of 3x3 ecal
799  a_mipR[1] = 14.0;
800  a_mipR[2] = 19.0;
801  a_mipR[3] = 24.0;
802  a_mipR[4] = 9.0; // = from standard analyzer
803 
804  std::vector<double> v_eDR;
805  for (int i = 0; i < a_size; i++) {
806  int nRH_eDR = 0;
807 
808  // Cone in ecal
809  double eDR = spr::eCone_ecal(
810  geo, barrelRecHitsHandle, endcapRecHitsHandle, hpoint1, point1, a_neutIsoR[i], trackMomAtEcal, nRH_eDR);
811  v_eDR.push_back(eDR);
812  }
813 
814  std::vector<double> v_eMipDR;
815  for (int i = 0; i < a_mip_size; i++) {
816  int nRH_eMipDR = 0;
817  double eMipDR = spr::eCone_ecal(
818  geo, barrelRecHitsHandle, endcapRecHitsHandle, hpoint1, point1, a_mipR[i], trackMomAtEcal, nRH_eMipDR);
819 
820  v_eMipDR.push_back(eMipDR);
821  }
822 
824  // Do charge isolation in radius at Hcal surface for 5 different
825  // radii defined above in a_charIso
827 
828  std::vector<double> v_hmaxNearP_goodTrk;
829  std::vector<double> v_hmaxNearP;
830  std::vector<int> v_hnNearTRKs;
831  std::vector<int> v_hnLayers_maxNearP;
832  std::vector<int> v_htrkQual_maxNearP;
833 
834  std::vector<double> v_cone_hmaxNearP_goodTrk;
835  std::vector<double> v_cone_hmaxNearP;
836  std::vector<int> v_cone_hnNearTRKs;
837  std::vector<int> v_cone_hnLayers_maxNearP;
838  std::vector<int> v_cone_htrkQual_maxNearP;
839 
840  for (int i = 0; i < a_size; i++) {
841  double hmaxNearP = -999.0;
842  int hnNearTRKs = 0;
843  int hnLayers_maxNearP = 0;
844  int htrkQual_maxNearP = -1;
845  double hmaxNearP_goodTrk = -999.0;
846 
847  double conehmaxNearP = -999.0;
848  int conehnNearTRKs = 0;
849  int conehnLayers_maxNearP = 0;
850  int conehtrkQual_maxNearP = -1;
851  double conehmaxNearP_goodTrk = -999.0;
852 
853  conehmaxNearP = spr::coneChargeIsolation(iEvent,
854  iSetup,
855  trkItr,
856  trkCollection,
858  parameters_,
859  theTrackQuality,
860  conehnNearTRKs,
861  conehnLayers_maxNearP,
862  conehtrkQual_maxNearP,
863  conehmaxNearP_goodTrk,
864  hpoint1,
865  trackMomAtHcal,
866  a_charIsoR[i]);
867 
868  v_hmaxNearP_goodTrk.push_back(hmaxNearP_goodTrk);
869  v_hmaxNearP.push_back(hmaxNearP);
870  v_hnNearTRKs.push_back(hnNearTRKs);
871  v_hnLayers_maxNearP.push_back(hnLayers_maxNearP);
872  v_htrkQual_maxNearP.push_back(htrkQual_maxNearP);
873 
874  v_cone_hmaxNearP_goodTrk.push_back(conehmaxNearP_goodTrk);
875  v_cone_hmaxNearP.push_back(conehmaxNearP);
876  v_cone_hnNearTRKs.push_back(conehnNearTRKs);
877  v_cone_hnLayers_maxNearP.push_back(conehnLayers_maxNearP);
878  v_cone_htrkQual_maxNearP.push_back(conehtrkQual_maxNearP);
879  }
880 
881  double h3x3 = -999.0, h5x5 = -999.0;
882  double hsim3x3 = -999.0, hsim5x5 = -999.0, trkHcalEne = -999.0;
883  std::map<std::string, double> hsimInfo3x3, hsimInfo5x5;
884  double distFromHotCell_h3x3 = -99.;
885  int ietaFromHotCell_h3x3 = -99;
886  int iphiFromHotCell_h3x3 = -99;
887  double distFromHotCell_h5x5 = -99.;
888  int ietaFromHotCell_h5x5 = -99;
889  int iphiFromHotCell_h5x5 = -99;
890 
891  GlobalPoint gPosHotCell_h3x3(0., 0., 0.);
892  GlobalPoint gPosHotCell_h5x5(0., 0., 0.);
893 
894  int nRH_h3x3(0), nRH_h5x5(0);
895 
896  // Hcal Energy Clustering
897 
898  // Get closetcell for ietaFromHotCell and iphiFromHotCell
899  DetId ClosestCell;
900  if (std::abs(pTrack->eta()) < 1.392) {
901  ClosestCell = gHB->getClosestCell(hpoint1);
902  } else {
903  ClosestCell = gHE->getClosestCell(hpoint1);
904  }
905  // Transform into HcalDetId so that I can get ieta, iphi later.
906  HcalDetId ClosestCell_HcalDetId(ClosestCell.rawId());
907 
908  // Using NxN Cluster
909  std::vector<int> v_RH_h3x3_ieta;
910  std::vector<int> v_RH_h3x3_iphi;
911  std::vector<double> v_RH_h3x3_ene;
912  std::vector<int> v_RH_h5x5_ieta;
913  std::vector<int> v_RH_h5x5_iphi;
914  std::vector<double> v_RH_h5x5_ene;
915 
916  h3x3 = spr::eHCALmatrix(geo,
917  theHBHETopology,
918  ClosestCell,
919  hbhe,
920  1,
921  1,
922  nRH_h3x3,
923  v_RH_h3x3_ieta,
924  v_RH_h3x3_iphi,
925  v_RH_h3x3_ene,
926  gPosHotCell_h3x3);
927  distFromHotCell_h3x3 = spr::getDistInPlaneTrackDir(hpoint1, trackMomAtHcal, gPosHotCell_h3x3);
928 
929  h5x5 = spr::eHCALmatrix(geo,
930  theHBHETopology,
931  ClosestCell,
932  hbhe,
933  2,
934  2,
935  nRH_h5x5,
936  v_RH_h5x5_ieta,
937  v_RH_h5x5_iphi,
938  v_RH_h5x5_ene,
939  gPosHotCell_h5x5);
940  distFromHotCell_h5x5 = spr::getDistInPlaneTrackDir(hpoint1, trackMomAtHcal, gPosHotCell_h5x5);
941 
942  // double heta = (double)hpoint1.eta();
943  // double hphi = (double)hpoint1.phi();
944  std::vector<int> multiplicity3x3;
945  std::vector<int> multiplicity5x5;
946  if (doMC_) {
947  hsim3x3 = spr::eHCALmatrix(theHBHETopology, ClosestCell, pcalohh, 1, 1);
948  hsim5x5 = spr::eHCALmatrix(theHBHETopology, ClosestCell, pcalohh, 2, 2);
949 
950  hsimInfo3x3 = spr::eHCALSimInfo(
951  iEvent, theHBHETopology, ClosestCell, pcalohh, SimTk, SimVtx, pTrack, *associate, 1, 1, multiplicity3x3);
952  hsimInfo5x5 = spr::eHCALSimInfo(
953  iEvent, theHBHETopology, ClosestCell, pcalohh, SimTk, SimVtx, pTrack, *associate, 2, 2, multiplicity5x5);
954 
955  // Get energy from all simhits in hcal associated with iso track
956  trkHcalEne = spr::eCaloSimInfo(iEvent, geo, pcalohh, SimTk, SimVtx, pTrack, *associate);
957  }
958 
959  // Finally for cones of varying radii.
960  std::vector<double> v_hsimInfoConeMatched;
961  std::vector<double> v_hsimInfoConeRest;
962  std::vector<double> v_hsimInfoConePhoton;
963  std::vector<double> v_hsimInfoConeNeutHad;
964  std::vector<double> v_hsimInfoConeCharHad;
965  std::vector<double> v_hsimInfoConePdgMatched;
966  std::vector<double> v_hsimInfoConeTotal;
967 
968  std::vector<int> v_hsimInfoConeNMatched;
969  std::vector<int> v_hsimInfoConeNTotal;
970  std::vector<int> v_hsimInfoConeNNeutHad;
971  std::vector<int> v_hsimInfoConeNCharHad;
972  std::vector<int> v_hsimInfoConeNPhoton;
973  std::vector<int> v_hsimInfoConeNRest;
974 
975  std::vector<double> v_hsimCone;
976  std::vector<double> v_hCone;
977 
978  std::vector<int> v_nRecHitsCone;
979  std::vector<int> v_nSimHitsCone;
980 
981  std::vector<double> v_distFromHotCell;
982  std::vector<int> v_ietaFromHotCell;
983  std::vector<int> v_iphiFromHotCell;
984  GlobalPoint gposHotCell(0., 0., 0.);
985 
986  std::vector<int> v_RH_r26_ieta;
987  std::vector<int> v_RH_r26_iphi;
988  std::vector<double> v_RH_r26_ene;
989  std::vector<int> v_RH_r44_ieta;
990  std::vector<int> v_RH_r44_iphi;
991  std::vector<double> v_RH_r44_ene;
992 
993  for (int i = 0; i < a_size; i++) {
994  std::map<std::string, double> hsimInfoCone;
995  double hsimCone = -999.0, hCone = -999.0;
996  double distFromHotCell = -99.0;
997  int ietaFromHotCell = -99;
998  int iphiFromHotCell = -99;
999  int ietaHotCell = -99;
1000  int iphiHotCell = -99;
1001  int nRecHitsCone = -999;
1002  int nSimHitsCone = -999;
1003 
1004  std::vector<int> multiplicityCone;
1005  std::vector<DetId> coneRecHitDetIds;
1006  if (doMC_)
1007  hsimCone = spr::eCone_hcal(geo, pcalohh, hpoint1, point1, a_coneR[i], trackMomAtHcal, nSimHitsCone);
1008 
1009  // If needed, get ieta and iphi of rechits for cones of 23.25
1010  // and for hitmap for debugging
1011  bool makeHitmaps = false;
1012  if (a_coneR[i] == 26.23 && makeHitmaps) {
1013  hCone = spr::eCone_hcal(geo,
1014  hbhe,
1015  hpoint1,
1016  point1,
1017  a_coneR[i],
1018  trackMomAtHcal,
1019  nRecHitsCone,
1020  v_RH_r26_ieta,
1021  v_RH_r26_iphi,
1022  v_RH_r26_ene,
1023  coneRecHitDetIds,
1024  distFromHotCell,
1025  ietaHotCell,
1026  iphiHotCell,
1027  gposHotCell);
1028  } else if (a_coneR[i] == 43.72 && makeHitmaps) {
1029  hCone = spr::eCone_hcal(geo,
1030  hbhe,
1031  hpoint1,
1032  point1,
1033  a_coneR[i],
1034  trackMomAtHcal,
1035  nRecHitsCone,
1036  v_RH_r44_ieta,
1037  v_RH_r44_iphi,
1038  v_RH_r44_ene,
1039  coneRecHitDetIds,
1040  distFromHotCell,
1041  ietaHotCell,
1042  iphiHotCell,
1043  gposHotCell);
1044  } else {
1045  hCone = spr::eCone_hcal(geo,
1046  hbhe,
1047  hpoint1,
1048  point1,
1049  a_coneR[i],
1050  trackMomAtHcal,
1051  nRecHitsCone,
1052  coneRecHitDetIds,
1053  distFromHotCell,
1054  ietaHotCell,
1055  iphiHotCell,
1056  gposHotCell);
1057  }
1058 
1059  if (ietaHotCell != 99) {
1060  ietaFromHotCell = ietaHotCell - ClosestCell_HcalDetId.ieta();
1061  iphiFromHotCell = iphiHotCell - ClosestCell_HcalDetId.iphi();
1062  }
1063 
1064  // SimHits NOT matched to RecHits
1065  if (doMC_) {
1066  hsimInfoCone = spr::eHCALSimInfoCone(iEvent,
1067  pcalohh,
1068  SimTk,
1069  SimVtx,
1070  pTrack,
1071  *associate,
1072  geo,
1073  hpoint1,
1074  point1,
1075  a_coneR[i],
1076  trackMomAtHcal,
1077  multiplicityCone);
1078 
1079  // SimHits matched to RecHits
1080  // hsimInfoCone = spr::eHCALSimInfoCone(iEvent,pcalohh, SimTk, SimVtx,
1081  // pTrack, *associate,
1082  // geo, hpoint1, point1,
1083  // a_coneR[i], trackMomAtHcal,
1084  // multiplicityCone,
1085  // coneRecHitDetIds);
1086 
1087  v_hsimInfoConeMatched.push_back(hsimInfoCone["eMatched"]);
1088  v_hsimInfoConeRest.push_back(hsimInfoCone["eRest"]);
1089  v_hsimInfoConePhoton.push_back(hsimInfoCone["eGamma"]);
1090  v_hsimInfoConeNeutHad.push_back(hsimInfoCone["eNeutralHad"]);
1091  v_hsimInfoConeCharHad.push_back(hsimInfoCone["eChargedHad"]);
1092  v_hsimInfoConePdgMatched.push_back(hsimInfoCone["pdgMatched"]);
1093  v_hsimInfoConeTotal.push_back(hsimInfoCone["eTotal"]);
1094 
1095  v_hsimInfoConeNMatched.push_back(multiplicityCone.at(0));
1096 
1097  v_hsimInfoConeNTotal.push_back(multiplicityCone.at(1));
1098  v_hsimInfoConeNNeutHad.push_back(multiplicityCone.at(2));
1099  v_hsimInfoConeNCharHad.push_back(multiplicityCone.at(3));
1100  v_hsimInfoConeNPhoton.push_back(multiplicityCone.at(4));
1101  v_hsimInfoConeNRest.push_back(multiplicityCone.at(5));
1102 
1103  v_hsimCone.push_back(hsimCone);
1104  v_nSimHitsCone.push_back(nSimHitsCone);
1105  }
1106  v_hCone.push_back(hCone);
1107  v_nRecHitsCone.push_back(nRecHitsCone);
1108 
1109  v_distFromHotCell.push_back(distFromHotCell);
1110  v_ietaFromHotCell.push_back(ietaFromHotCell);
1111  v_iphiFromHotCell.push_back(iphiFromHotCell);
1112  }
1113 
1115  // Fill Vectors that go into root file
1117 
1118  t_v_hnNearTRKs->push_back(v_hnNearTRKs);
1119  t_v_hnLayers_maxNearP->push_back(v_hnLayers_maxNearP);
1120  t_v_htrkQual_maxNearP->push_back(v_htrkQual_maxNearP);
1121  t_v_hmaxNearP_goodTrk->push_back(v_hmaxNearP_goodTrk);
1122  t_v_hmaxNearP->push_back(v_hmaxNearP);
1123 
1124  t_v_cone_hnNearTRKs->push_back(v_cone_hnNearTRKs);
1125  t_v_cone_hnLayers_maxNearP->push_back(v_cone_hnLayers_maxNearP);
1126  t_v_cone_htrkQual_maxNearP->push_back(v_cone_htrkQual_maxNearP);
1127  t_v_cone_hmaxNearP_goodTrk->push_back(v_cone_hmaxNearP_goodTrk);
1128  t_v_cone_hmaxNearP->push_back(v_cone_hmaxNearP);
1129 
1130  // t_hScale ->push_back(hScale );
1131  t_trkNOuterHits->push_back(nOuterHits);
1132  t_trkNLayersCrossed->push_back(nLayersCrossed);
1133  t_dtFromLeadJet->push_back(drFromLeadJet);
1134  t_trkP->push_back(p1);
1135  t_trkPt->push_back(pt1);
1136  t_trkEta->push_back(eta1);
1137  t_trkPhi->push_back(phi1);
1138 
1139  t_e3x3->push_back(e3x3);
1140  t_v_eDR->push_back(v_eDR);
1141  t_v_eMipDR->push_back(v_eMipDR);
1142 
1143  t_h3x3->push_back(h3x3);
1144  t_h5x5->push_back(h5x5);
1145  t_nRH_h3x3->push_back(nRH_h3x3);
1146  t_nRH_h5x5->push_back(nRH_h5x5);
1147 
1148  t_v_RH_h3x3_ieta->push_back(v_RH_h3x3_ieta);
1149  t_v_RH_h3x3_iphi->push_back(v_RH_h3x3_iphi);
1150  t_v_RH_h3x3_ene->push_back(v_RH_h3x3_ene);
1151  t_v_RH_h5x5_ieta->push_back(v_RH_h5x5_ieta);
1152  t_v_RH_h5x5_iphi->push_back(v_RH_h5x5_iphi);
1153  t_v_RH_h5x5_ene->push_back(v_RH_h5x5_ene);
1154 
1155  if (doMC_) {
1156  t_simP->push_back(simP);
1157  t_hsim3x3->push_back(hsim3x3);
1158  t_hsim5x5->push_back(hsim5x5);
1159 
1160  t_hsim3x3Matched->push_back(hsimInfo3x3["eMatched"]);
1161  t_hsim5x5Matched->push_back(hsimInfo5x5["eMatched"]);
1162  t_hsim3x3Rest->push_back(hsimInfo3x3["eRest"]);
1163  t_hsim5x5Rest->push_back(hsimInfo5x5["eRest"]);
1164  t_hsim3x3Photon->push_back(hsimInfo3x3["eGamma"]);
1165  t_hsim5x5Photon->push_back(hsimInfo5x5["eGamma"]);
1166  t_hsim3x3NeutHad->push_back(hsimInfo3x3["eNeutralHad"]);
1167  t_hsim5x5NeutHad->push_back(hsimInfo5x5["eNeutralHad"]);
1168  t_hsim3x3CharHad->push_back(hsimInfo3x3["eChargedHad"]);
1169  t_hsim5x5CharHad->push_back(hsimInfo5x5["eChargedHad"]);
1170  t_hsim3x3Total->push_back(hsimInfo3x3["eTotal"]);
1171  t_hsim5x5Total->push_back(hsimInfo5x5["eTotal"]);
1172  t_hsim3x3PdgMatched->push_back(hsimInfo3x3["pdgMatched"]);
1173  t_hsim5x5PdgMatched->push_back(hsimInfo5x5["pdgMatched"]);
1174 
1175  t_hsim3x3NMatched->push_back(multiplicity3x3.at(0));
1176  t_hsim3x3NTotal->push_back(multiplicity3x3.at(1));
1177  t_hsim3x3NNeutHad->push_back(multiplicity3x3.at(2));
1178  t_hsim3x3NCharHad->push_back(multiplicity3x3.at(3));
1179  t_hsim3x3NPhoton->push_back(multiplicity3x3.at(4));
1180  t_hsim3x3NRest->push_back(multiplicity3x3.at(5));
1181 
1182  t_hsim5x5NMatched->push_back(multiplicity5x5.at(0));
1183  t_hsim5x5NTotal->push_back(multiplicity5x5.at(1));
1184  t_hsim5x5NNeutHad->push_back(multiplicity5x5.at(2));
1185  t_hsim5x5NCharHad->push_back(multiplicity5x5.at(3));
1186  t_hsim5x5NPhoton->push_back(multiplicity5x5.at(4));
1187  t_hsim5x5NRest->push_back(multiplicity5x5.at(5));
1188  }
1189 
1190  t_distFromHotCell_h3x3->push_back(distFromHotCell_h3x3);
1191  t_ietaFromHotCell_h3x3->push_back(ietaFromHotCell_h3x3);
1192  t_iphiFromHotCell_h3x3->push_back(iphiFromHotCell_h3x3);
1193  t_distFromHotCell_h5x5->push_back(distFromHotCell_h5x5);
1194  t_ietaFromHotCell_h5x5->push_back(ietaFromHotCell_h5x5);
1195  t_iphiFromHotCell_h5x5->push_back(iphiFromHotCell_h5x5);
1196 
1197  if (doMC_) {
1198  t_trkHcalEne->push_back(trkHcalEne);
1199  t_trkEcalEne->push_back(trkEcalEne);
1200 
1201  t_v_hsimInfoConeMatched->push_back(v_hsimInfoConeMatched);
1202  t_v_hsimInfoConeRest->push_back(v_hsimInfoConeRest);
1203  t_v_hsimInfoConePhoton->push_back(v_hsimInfoConePhoton);
1204  t_v_hsimInfoConeNeutHad->push_back(v_hsimInfoConeNeutHad);
1205  t_v_hsimInfoConeCharHad->push_back(v_hsimInfoConeCharHad);
1206  t_v_hsimInfoConePdgMatched->push_back(v_hsimInfoConePdgMatched);
1207  t_v_hsimInfoConeTotal->push_back(v_hsimInfoConeTotal);
1208 
1209  t_v_hsimInfoConeNMatched->push_back(v_hsimInfoConeNMatched);
1210  t_v_hsimInfoConeNTotal->push_back(v_hsimInfoConeNTotal);
1211  t_v_hsimInfoConeNNeutHad->push_back(v_hsimInfoConeNNeutHad);
1212  t_v_hsimInfoConeNCharHad->push_back(v_hsimInfoConeNCharHad);
1213  t_v_hsimInfoConeNPhoton->push_back(v_hsimInfoConeNPhoton);
1214  t_v_hsimInfoConeNRest->push_back(v_hsimInfoConeNRest);
1215 
1216  t_v_hsimCone->push_back(v_hsimCone);
1217  t_v_hCone->push_back(v_hCone);
1218  t_v_nRecHitsCone->push_back(v_nRecHitsCone);
1219  t_v_nSimHitsCone->push_back(v_nSimHitsCone);
1220  }
1221 
1222  t_v_distFromHotCell->push_back(v_distFromHotCell);
1223  t_v_ietaFromHotCell->push_back(v_ietaFromHotCell);
1224  t_v_iphiFromHotCell->push_back(v_iphiFromHotCell);
1225 
1226  t_v_RH_r26_ieta->push_back(v_RH_r26_ieta);
1227  t_v_RH_r26_iphi->push_back(v_RH_r26_iphi);
1228  t_v_RH_r26_ene->push_back(v_RH_r26_ene);
1229  t_v_RH_r44_ieta->push_back(v_RH_r44_ieta);
1230  t_v_RH_r44_iphi->push_back(v_RH_r44_iphi);
1231  t_v_RH_r44_ene->push_back(v_RH_r44_ene);
1232 
1233  t_v_hlTriggers->push_back(v_hlTriggers);
1234  t_hltHB->push_back(hltHB);
1235  t_hltHE->push_back(hltHE);
1236  t_hltL1Jet15->push_back(hltL1Jet15);
1237  t_hltJet30->push_back(hltJet30);
1238  t_hltJet50->push_back(hltJet50);
1239  t_hltJet80->push_back(hltJet80);
1240  t_hltJet110->push_back(hltJet110);
1241  t_hltJet140->push_back(hltJet140);
1242  t_hltJet180->push_back(hltJet180);
1243  t_hltL1SingleEG5->push_back(hltL1SingleEG5);
1244  t_hltZeroBias->push_back(hltZeroBias);
1245  t_hltMinBiasHcal->push_back(hltMinBiasHcal);
1246  t_hltMinBiasEcal->push_back(hltMinBiasEcal);
1247  t_hltMinBiasPixel->push_back(hltMinBiasPixel);
1248  t_hltSingleIsoTau30_Trk5->push_back(hltSingleIsoTau30_Trk5);
1249  t_hltDoubleLooseIsoTau15_Trk5->push_back(hltDoubleLooseIsoTau15_Trk5);
1250 
1251  t_irun->push_back(irun);
1252  t_ievt->push_back(ievt);
1253  t_ilum->push_back(ilum);
1254 
1255  nTRK++;
1256 
1257  } // Loop over track collection
1258 
1259  // edm::LogVerbatim("IsoTrack") << "nEVT= " << nEVT;
1260 
1261  ntp_->Fill();
1262  nEVT++;
1263 }
1264 
1266  // hbScale = 120.0;
1267  // heScale = 135.0;
1268  nEVT = 0;
1269  nEVT_failL1 = 0;
1270  nTRK = 0;
1271 
1272  genPartPBins_ = {{0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0,
1273  12.0, 15.0, 20.0, 25.0, 30.0, 40.0, 50.0, 60.0, 70.0, 80.0, 100.0}};
1274 
1275  genPartEtaBins = {{0.0, 0.5, 1.1, 1.7, 2.0}};
1276 
1277  t_v_hnNearTRKs = std::make_unique<std::vector<std::vector<int> > >();
1278  t_v_hnLayers_maxNearP = std::make_unique<std::vector<std::vector<int> > >();
1279  t_v_htrkQual_maxNearP = std::make_unique<std::vector<std::vector<int> > >();
1280  t_v_hmaxNearP_goodTrk = std::make_unique<std::vector<std::vector<double> > >();
1281  t_v_hmaxNearP = std::make_unique<std::vector<std::vector<double> > >();
1282 
1283  t_v_cone_hnNearTRKs = std::make_unique<std::vector<std::vector<int> > >();
1284  t_v_cone_hnLayers_maxNearP = std::make_unique<std::vector<std::vector<int> > >();
1285  t_v_cone_htrkQual_maxNearP = std::make_unique<std::vector<std::vector<int> > >();
1286  t_v_cone_hmaxNearP_goodTrk = std::make_unique<std::vector<std::vector<double> > >();
1287  t_v_cone_hmaxNearP = std::make_unique<std::vector<std::vector<double> > >();
1288 
1289  // t_hScale = std::make_unique<std::vector<double> >();
1290  t_trkNOuterHits = std::make_unique<std::vector<double> >();
1291  t_trkNLayersCrossed = std::make_unique<std::vector<double> >();
1292  t_dtFromLeadJet = std::make_unique<std::vector<double> >();
1293  t_trkP = std::make_unique<std::vector<double> >();
1294  t_trkPt = std::make_unique<std::vector<double> >();
1295  t_trkEta = std::make_unique<std::vector<double> >();
1296  t_trkPhi = std::make_unique<std::vector<double> >();
1297 
1298  t_e3x3 = std::make_unique<std::vector<double> >();
1299  t_v_eDR = std::make_unique<std::vector<std::vector<double> > >();
1300  t_v_eMipDR = std::make_unique<std::vector<std::vector<double> > >();
1301 
1302  t_h3x3 = std::make_unique<std::vector<double> >();
1303  t_h5x5 = std::make_unique<std::vector<double> >();
1304 
1305  t_nRH_h3x3 = std::make_unique<std::vector<double> >();
1306  t_nRH_h5x5 = std::make_unique<std::vector<double> >();
1307 
1308  if (doMC_) {
1309  t_simP = std::make_unique<std::vector<double> >();
1310  t_hsim3x3 = std::make_unique<std::vector<double> >();
1311  t_hsim5x5 = std::make_unique<std::vector<double> >();
1312 
1313  t_hsim3x3Matched = std::make_unique<std::vector<double> >();
1314  t_hsim5x5Matched = std::make_unique<std::vector<double> >();
1315  t_hsim3x3Rest = std::make_unique<std::vector<double> >();
1316  t_hsim5x5Rest = std::make_unique<std::vector<double> >();
1317  t_hsim3x3Photon = std::make_unique<std::vector<double> >();
1318  t_hsim5x5Photon = std::make_unique<std::vector<double> >();
1319  t_hsim3x3NeutHad = std::make_unique<std::vector<double> >();
1320  t_hsim5x5NeutHad = std::make_unique<std::vector<double> >();
1321  t_hsim3x3CharHad = std::make_unique<std::vector<double> >();
1322  t_hsim5x5CharHad = std::make_unique<std::vector<double> >();
1323  t_hsim3x3PdgMatched = std::make_unique<std::vector<double> >();
1324  t_hsim5x5PdgMatched = std::make_unique<std::vector<double> >();
1325  t_hsim3x3Total = std::make_unique<std::vector<double> >();
1326  t_hsim5x5Total = std::make_unique<std::vector<double> >();
1327 
1328  t_hsim3x3NMatched = std::make_unique<std::vector<int> >();
1329  t_hsim3x3NTotal = std::make_unique<std::vector<int> >();
1330  t_hsim3x3NNeutHad = std::make_unique<std::vector<int> >();
1331  t_hsim3x3NCharHad = std::make_unique<std::vector<int> >();
1332  t_hsim3x3NPhoton = std::make_unique<std::vector<int> >();
1333  t_hsim3x3NRest = std::make_unique<std::vector<int> >();
1334 
1335  t_hsim5x5NMatched = std::make_unique<std::vector<int> >();
1336  t_hsim5x5NTotal = std::make_unique<std::vector<int> >();
1337  t_hsim5x5NNeutHad = std::make_unique<std::vector<int> >();
1338  t_hsim5x5NCharHad = std::make_unique<std::vector<int> >();
1339  t_hsim5x5NPhoton = std::make_unique<std::vector<int> >();
1340  t_hsim5x5NRest = std::make_unique<std::vector<int> >();
1341 
1342  t_trkHcalEne = std::make_unique<std::vector<double> >();
1343  t_trkEcalEne = std::make_unique<std::vector<double> >();
1344  }
1345 
1346  t_distFromHotCell_h3x3 = std::make_unique<std::vector<double> >();
1347  t_ietaFromHotCell_h3x3 = std::make_unique<std::vector<int> >();
1348  t_iphiFromHotCell_h3x3 = std::make_unique<std::vector<int> >();
1349  t_distFromHotCell_h5x5 = std::make_unique<std::vector<double> >();
1350  t_ietaFromHotCell_h5x5 = std::make_unique<std::vector<int> >();
1351  t_iphiFromHotCell_h5x5 = std::make_unique<std::vector<int> >();
1352 
1353  if (doMC_) {
1354  t_v_hsimInfoConeMatched = std::make_unique<std::vector<std::vector<double> > >();
1355  t_v_hsimInfoConeRest = std::make_unique<std::vector<std::vector<double> > >();
1356  t_v_hsimInfoConePhoton = std::make_unique<std::vector<std::vector<double> > >();
1357  t_v_hsimInfoConeNeutHad = std::make_unique<std::vector<std::vector<double> > >();
1358  t_v_hsimInfoConeCharHad = std::make_unique<std::vector<std::vector<double> > >();
1359  t_v_hsimInfoConePdgMatched = std::make_unique<std::vector<std::vector<double> > >();
1360  t_v_hsimInfoConeTotal = std::make_unique<std::vector<std::vector<double> > >();
1361 
1362  t_v_hsimInfoConeNMatched = std::make_unique<std::vector<std::vector<int> > >();
1363  t_v_hsimInfoConeNTotal = std::make_unique<std::vector<std::vector<int> > >();
1364  t_v_hsimInfoConeNNeutHad = std::make_unique<std::vector<std::vector<int> > >();
1365  t_v_hsimInfoConeNCharHad = std::make_unique<std::vector<std::vector<int> > >();
1366  t_v_hsimInfoConeNPhoton = std::make_unique<std::vector<std::vector<int> > >();
1367  t_v_hsimInfoConeNRest = std::make_unique<std::vector<std::vector<int> > >();
1368 
1369  t_v_hsimCone = std::make_unique<std::vector<std::vector<double> > >();
1370  }
1371 
1372  t_v_hCone = std::make_unique<std::vector<std::vector<double> > >();
1373  t_v_nRecHitsCone = std::make_unique<std::vector<std::vector<int> > >();
1374  t_v_nSimHitsCone = std::make_unique<std::vector<std::vector<int> > >();
1375 
1376  t_v_distFromHotCell = std::make_unique<std::vector<std::vector<double> > >();
1377  t_v_ietaFromHotCell = std::make_unique<std::vector<std::vector<int> > >();
1378  t_v_iphiFromHotCell = std::make_unique<std::vector<std::vector<int> > >();
1379 
1380  t_v_RH_h3x3_ieta = std::make_unique<std::vector<std::vector<int> > >();
1381  t_v_RH_h3x3_iphi = std::make_unique<std::vector<std::vector<int> > >();
1382  t_v_RH_h3x3_ene = std::make_unique<std::vector<std::vector<double> > >();
1383  t_v_RH_h5x5_ieta = std::make_unique<std::vector<std::vector<int> > >();
1384  t_v_RH_h5x5_iphi = std::make_unique<std::vector<std::vector<int> > >();
1385  t_v_RH_h5x5_ene = std::make_unique<std::vector<std::vector<double> > >();
1386  t_v_RH_r26_ieta = std::make_unique<std::vector<std::vector<int> > >();
1387  t_v_RH_r26_iphi = std::make_unique<std::vector<std::vector<int> > >();
1388  t_v_RH_r26_ene = std::make_unique<std::vector<std::vector<double> > >();
1389  t_v_RH_r44_ieta = std::make_unique<std::vector<std::vector<int> > >();
1390  t_v_RH_r44_iphi = std::make_unique<std::vector<std::vector<int> > >();
1391  t_v_RH_r44_ene = std::make_unique<std::vector<std::vector<double> > >();
1392 
1393  t_v_hlTriggers = std::make_unique<std::vector<std::vector<int> > >();
1394 
1395  t_hltHE = std::make_unique<std::vector<int> >();
1396  t_hltHB = std::make_unique<std::vector<int> >();
1397  t_hltL1Jet15 = std::make_unique<std::vector<int> >();
1398  t_hltJet30 = std::make_unique<std::vector<int> >();
1399  t_hltJet50 = std::make_unique<std::vector<int> >();
1400  t_hltJet80 = std::make_unique<std::vector<int> >();
1401  t_hltJet110 = std::make_unique<std::vector<int> >();
1402  t_hltJet140 = std::make_unique<std::vector<int> >();
1403  t_hltJet180 = std::make_unique<std::vector<int> >();
1404  t_hltL1SingleEG5 = std::make_unique<std::vector<int> >();
1405  t_hltZeroBias = std::make_unique<std::vector<int> >();
1406  t_hltMinBiasHcal = std::make_unique<std::vector<int> >();
1407  t_hltMinBiasEcal = std::make_unique<std::vector<int> >();
1408  t_hltMinBiasPixel = std::make_unique<std::vector<int> >();
1409  t_hltSingleIsoTau30_Trk5 = std::make_unique<std::vector<int> >();
1410  t_hltDoubleLooseIsoTau15_Trk5 = std::make_unique<std::vector<int> >();
1411 
1412  t_irun = std::make_unique<std::vector<unsigned int> >();
1413  t_ievt = std::make_unique<std::vector<unsigned int> >();
1414  t_ilum = std::make_unique<std::vector<unsigned int> >();
1415 
1416  buildTree();
1417 }
1418 
1420  t_v_hnNearTRKs->clear();
1421  t_v_hnLayers_maxNearP->clear();
1422  t_v_htrkQual_maxNearP->clear();
1423  t_v_hmaxNearP_goodTrk->clear();
1424  t_v_hmaxNearP->clear();
1425 
1426  t_v_cone_hnNearTRKs->clear();
1427  t_v_cone_hnLayers_maxNearP->clear();
1428  t_v_cone_htrkQual_maxNearP->clear();
1429  t_v_cone_hmaxNearP_goodTrk->clear();
1430  t_v_cone_hmaxNearP->clear();
1431 
1432  // t_hScale ->clear();
1433  t_trkNOuterHits->clear();
1434  t_trkNLayersCrossed->clear();
1435  t_dtFromLeadJet->clear();
1436  t_trkP->clear();
1437  t_trkPt->clear();
1438  t_trkEta->clear();
1439  t_trkPhi->clear();
1440  t_e3x3->clear();
1441  t_v_eDR->clear();
1442  t_v_eMipDR->clear();
1443  t_h3x3->clear();
1444  t_h5x5->clear();
1445  t_nRH_h3x3->clear();
1446  t_nRH_h5x5->clear();
1447 
1448  if (doMC_) {
1449  t_simP->clear();
1450  t_hsim3x3->clear();
1451  t_hsim5x5->clear();
1452  t_hsim3x3Matched->clear();
1453  t_hsim5x5Matched->clear();
1454  t_hsim3x3Rest->clear();
1455  t_hsim5x5Rest->clear();
1456  t_hsim3x3Photon->clear();
1457  t_hsim5x5Photon->clear();
1458  t_hsim3x3NeutHad->clear();
1459  t_hsim5x5NeutHad->clear();
1460  t_hsim3x3CharHad->clear();
1461  t_hsim5x5CharHad->clear();
1462  t_hsim3x3PdgMatched->clear();
1463  t_hsim5x5PdgMatched->clear();
1464  t_hsim3x3Total->clear();
1465  t_hsim5x5Total->clear();
1466 
1467  t_hsim3x3NMatched->clear();
1468  t_hsim3x3NTotal->clear();
1469  t_hsim3x3NNeutHad->clear();
1470  t_hsim3x3NCharHad->clear();
1471  t_hsim3x3NPhoton->clear();
1472  t_hsim3x3NRest->clear();
1473 
1474  t_hsim5x5NMatched->clear();
1475  t_hsim5x5NTotal->clear();
1476  t_hsim5x5NNeutHad->clear();
1477  t_hsim5x5NCharHad->clear();
1478  t_hsim5x5NPhoton->clear();
1479  t_hsim5x5NRest->clear();
1480 
1481  t_trkHcalEne->clear();
1482  t_trkEcalEne->clear();
1483  }
1484 
1485  t_distFromHotCell_h3x3->clear();
1486  t_ietaFromHotCell_h3x3->clear();
1487  t_iphiFromHotCell_h3x3->clear();
1488  t_distFromHotCell_h5x5->clear();
1489  t_ietaFromHotCell_h5x5->clear();
1490  t_iphiFromHotCell_h5x5->clear();
1491 
1492  if (doMC_) {
1493  t_v_hsimInfoConeMatched->clear();
1494  t_v_hsimInfoConeRest->clear();
1495  t_v_hsimInfoConePhoton->clear();
1496  t_v_hsimInfoConeNeutHad->clear();
1497  t_v_hsimInfoConeCharHad->clear();
1498  t_v_hsimInfoConePdgMatched->clear();
1499  t_v_hsimInfoConeTotal->clear();
1500 
1501  t_v_hsimInfoConeNMatched->clear();
1502  t_v_hsimInfoConeNRest->clear();
1503  t_v_hsimInfoConeNPhoton->clear();
1504  t_v_hsimInfoConeNNeutHad->clear();
1505  t_v_hsimInfoConeNCharHad->clear();
1506  t_v_hsimInfoConeNTotal->clear();
1507 
1508  t_v_hsimCone->clear();
1509  }
1510 
1511  t_v_hCone->clear();
1512  t_v_nRecHitsCone->clear();
1513  t_v_nSimHitsCone->clear();
1514 
1515  t_v_distFromHotCell->clear();
1516  t_v_ietaFromHotCell->clear();
1517  t_v_iphiFromHotCell->clear();
1518 
1519  t_v_RH_h3x3_ieta->clear();
1520  t_v_RH_h3x3_iphi->clear();
1521  t_v_RH_h3x3_ene->clear();
1522  t_v_RH_h5x5_ieta->clear();
1523  t_v_RH_h5x5_iphi->clear();
1524  t_v_RH_h5x5_ene->clear();
1525  t_v_RH_r26_ieta->clear();
1526  t_v_RH_r26_iphi->clear();
1527  t_v_RH_r26_ene->clear();
1528  t_v_RH_r44_ieta->clear();
1529  t_v_RH_r44_iphi->clear();
1530  t_v_RH_r44_ene->clear();
1531 
1532  t_v_hlTriggers->clear();
1533  t_hltHB->clear();
1534  t_hltHE->clear();
1535  t_hltL1Jet15->clear();
1536  t_hltJet30->clear();
1537  t_hltJet50->clear();
1538  t_hltJet80->clear();
1539  t_hltJet110->clear();
1540  t_hltJet140->clear();
1541  t_hltJet180->clear();
1542  t_hltL1SingleEG5->clear();
1543  t_hltZeroBias->clear();
1544  t_hltMinBiasHcal->clear();
1545  t_hltMinBiasEcal->clear();
1546  t_hltMinBiasPixel->clear();
1547  t_hltSingleIsoTau30_Trk5->clear();
1549 
1550  t_irun->clear();
1551  t_ievt->clear();
1552  t_ilum->clear();
1553 }
1554 
1555 // ----- method called once each job just after ending the event loop ----
1557  edm::LogVerbatim("IsoTrack") << "Number of Events Processed " << nEVT << " failed L1 " << nEVT_failL1;
1558 }
1559 
1562  h_RawPt = fs->make<TH1F>("hRawPt", "hRawPt", 100, 0.0, 100.0);
1563  h_RawP = fs->make<TH1F>("hRawP", "hRawP", 100, 0.0, 100.0);
1564  h_RawEta = fs->make<TH1F>("hRawEta", "hRawEta", 15, 0.0, 3.0);
1565  h_RawPhi = fs->make<TH1F>("hRawPhi", "hRawPhi", 100, -3.2, 3.2);
1566 
1567  ntp_ = fs->make<TTree>("ntp", "ntp");
1568 
1569  // Counters
1570  ntp_->Branch("nEVT", &nEVT, "nEVT/I");
1571  ntp_->Branch("leadL1JetPT", &leadL1JetPT, "leadL1JetPT/D");
1572  ntp_->Branch("leadL1JetEta", &leadL1JetEta, "leadL1JetEta/D");
1573  ntp_->Branch("leadL1JetPhi", &leadL1JetPhi, "leadL1JetPhi/D");
1574  ntp_->Branch("nTRK", &nTRK, "nTRK/I");
1575  ntp_->Branch("nRawTRK", &nRawTRK, "nRawTRK/I");
1576  ntp_->Branch("nFailHighPurityQaul", &nFailHighPurityQaul, "nFailHighPurityQaul/I");
1577  ntp_->Branch("nFailPt", &nFailPt, "nFailPt/I");
1578  ntp_->Branch("nFailEta", &nFailEta, "nFailEta/I");
1579  ntp_->Branch("nMissEcal", &nMissEcal, "nMissEcal/I");
1580  ntp_->Branch("nMissHcal", &nMissHcal, "nMissHcal/I");
1581 
1582  ntp_->Branch("hnNearTRKs", "std::vector<std::vector<int> > ", &t_v_hnNearTRKs);
1583  ntp_->Branch("hnLayers_maxNearP", "std::vector<std::vector<int> > ", &t_v_hnLayers_maxNearP);
1584  ntp_->Branch("htrkQual_maxNearP", "std::vector<std::vector<int> > ", &t_v_htrkQual_maxNearP);
1585  ntp_->Branch("hmaxNearP_goodTrk", "std::vector<std::vector<double> >", &t_v_hmaxNearP_goodTrk);
1586  ntp_->Branch("hmaxNearP", "std::vector<std::vector<double> >", &t_v_hmaxNearP);
1587 
1588  ntp_->Branch("cone_hnNearTRKs", "std::vector<std::vector<int> > ", &t_v_cone_hnNearTRKs);
1589  ntp_->Branch("cone_hnLayers_maxNearP", "std::vector<std::vector<int> > ", &t_v_cone_hnLayers_maxNearP);
1590  ntp_->Branch("cone_htrkQual_maxNearP", "std::vector<std::vector<int> > ", &t_v_cone_htrkQual_maxNearP);
1591  ntp_->Branch("cone_hmaxNearP_goodTrk", "std::vector<std::vector<double> >", &t_v_cone_hmaxNearP_goodTrk);
1592  ntp_->Branch("cone_hmaxNearP", "std::vector<std::vector<double> >", &t_v_cone_hmaxNearP);
1593 
1594  //ntp_->Branch("hScale" , "std::vector<double>", &t_hScale );
1595  ntp_->Branch("trkNOuterHits", "std::vector<double>", &t_trkNOuterHits);
1596  ntp_->Branch("trkNLayersCrossed", "std::vector<double>", &t_trkNLayersCrossed);
1597  ntp_->Branch("drFromLeadJet", "std::vector<double>", &t_dtFromLeadJet);
1598  ntp_->Branch("trkP", "std::vector<double>", &t_trkP);
1599  ntp_->Branch("trkPt", "std::vector<double>", &t_trkPt);
1600  ntp_->Branch("trkEta", "std::vector<double>", &t_trkEta);
1601  ntp_->Branch("trkPhi", "std::vector<double>", &t_trkPhi);
1602  ntp_->Branch("e3x3", "std::vector<double>", &t_e3x3);
1603 
1604  ntp_->Branch("e3x3", "std::vector<double>", &t_e3x3);
1605  ntp_->Branch("v_eDR", "std::vector<std::vector<double> >", &t_v_eDR);
1606  ntp_->Branch("v_eMipDR", "std::vector<std::vector<double> >", &t_v_eMipDR);
1607 
1608  ntp_->Branch("h3x3", "std::vector<double>", &t_h3x3);
1609  ntp_->Branch("h5x5", "std::vector<double>", &t_h5x5);
1610  ntp_->Branch("nRH_h3x3", "std::vector<double>", &t_nRH_h3x3);
1611  ntp_->Branch("nRH_h5x5", "std::vector<double>", &t_nRH_h5x5);
1612 
1613  if (doMC_) {
1614  ntp_->Branch("simP", "std::vector<double>", &t_simP);
1615  ntp_->Branch("hsim3x3", "std::vector<double>", &t_hsim3x3);
1616  ntp_->Branch("hsim5x5", "std::vector<double>", &t_hsim5x5);
1617 
1618  ntp_->Branch("hsim3x3Matched", "std::vector<double>", &t_hsim3x3Matched);
1619  ntp_->Branch("hsim5x5Matched", "std::vector<double>", &t_hsim5x5Matched);
1620  ntp_->Branch("hsim3x3Rest", "std::vector<double>", &t_hsim3x3Rest);
1621  ntp_->Branch("hsim5x5Rest", "std::vector<double>", &t_hsim5x5Rest);
1622  ntp_->Branch("hsim3x3Photon", "std::vector<double>", &t_hsim3x3Photon);
1623  ntp_->Branch("hsim5x5Photon", "std::vector<double>", &t_hsim5x5Photon);
1624  ntp_->Branch("hsim3x3NeutHad", "std::vector<double>", &t_hsim3x3NeutHad);
1625  ntp_->Branch("hsim5x5NeutHad", "std::vector<double>", &t_hsim5x5NeutHad);
1626  ntp_->Branch("hsim3x3CharHad", "std::vector<double>", &t_hsim3x3CharHad);
1627  ntp_->Branch("hsim5x5CharHad", "std::vector<double>", &t_hsim5x5CharHad);
1628  ntp_->Branch("hsim3x3PdgMatched", "std::vector<double>", &t_hsim3x3PdgMatched);
1629  ntp_->Branch("hsim5x5PdgMatched", "std::vector<double>", &t_hsim5x5PdgMatched);
1630  ntp_->Branch("hsim3x3Total", "std::vector<double>", &t_hsim3x3Total);
1631  ntp_->Branch("hsim5x5Total", "std::vector<double>", &t_hsim5x5Total);
1632 
1633  ntp_->Branch("hsim3x3NMatched", "std::vector<int>", &t_hsim3x3NMatched);
1634  ntp_->Branch("hsim3x3NRest", "std::vector<int>", &t_hsim3x3NRest);
1635  ntp_->Branch("hsim3x3NPhoton", "std::vector<int>", &t_hsim3x3NPhoton);
1636  ntp_->Branch("hsim3x3NNeutHad", "std::vector<int>", &t_hsim3x3NNeutHad);
1637  ntp_->Branch("hsim3x3NCharHad", "std::vector<int>", &t_hsim3x3NCharHad);
1638  ntp_->Branch("hsim3x3NTotal", "std::vector<int>", &t_hsim3x3NTotal);
1639 
1640  ntp_->Branch("hsim5x5NMatched", "std::vector<int>", &t_hsim5x5NMatched);
1641  ntp_->Branch("hsim5x5NRest", "std::vector<int>", &t_hsim5x5NRest);
1642  ntp_->Branch("hsim5x5NPhoton", "std::vector<int>", &t_hsim5x5NPhoton);
1643  ntp_->Branch("hsim5x5NNeutHad", "std::vector<int>", &t_hsim5x5NNeutHad);
1644  ntp_->Branch("hsim5x5NCharHad", "std::vector<int>", &t_hsim5x5NCharHad);
1645  ntp_->Branch("hsim5x5NTotal", "std::vector<int>", &t_hsim5x5NTotal);
1646 
1647  ntp_->Branch("trkHcalEne", "std::vector<double>", &t_trkHcalEne);
1648  ntp_->Branch("trkEcalEne", "std::vector<double>", &t_trkEcalEne);
1649  }
1650 
1651  ntp_->Branch("distFromHotCell_h3x3", "std::vector<double>", &t_distFromHotCell_h3x3);
1652  ntp_->Branch("ietaFromHotCell_h3x3", "std::vector<int>", &t_ietaFromHotCell_h3x3);
1653  ntp_->Branch("iphiFromHotCell_h3x3", "std::vector<int>", &t_iphiFromHotCell_h3x3);
1654  ntp_->Branch("distFromHotCell_h5x5", "std::vector<double>", &t_distFromHotCell_h5x5);
1655  ntp_->Branch("ietaFromHotCell_h5x5", "std::vector<int>", &t_ietaFromHotCell_h5x5);
1656  ntp_->Branch("iphiFromHotCell_h5x5", "std::vector<int>", &t_iphiFromHotCell_h5x5);
1657 
1658  if (doMC_) {
1659  ntp_->Branch("v_hsimInfoConeMatched", "std::vector<std::vector<double> >", &t_v_hsimInfoConeMatched);
1660  ntp_->Branch("v_hsimInfoConeRest", "std::vector<std::vector<double> >", &t_v_hsimInfoConeRest);
1661  ntp_->Branch("v_hsimInfoConePhoton", "std::vector<std::vector<double> >", &t_v_hsimInfoConePhoton);
1662  ntp_->Branch("v_hsimInfoConeNeutHad", "std::vector<std::vector<double> >", &t_v_hsimInfoConeNeutHad);
1663  ntp_->Branch("v_hsimInfoConeCharHad", "std::vector<std::vector<double> >", &t_v_hsimInfoConeCharHad);
1664  ntp_->Branch("v_hsimInfoConePdgMatched", "std::vector<std::vector<double> >", &t_v_hsimInfoConePdgMatched);
1665  ntp_->Branch("v_hsimInfoConeTotal", "std::vector<std::vector<double> >", &t_v_hsimInfoConeTotal);
1666 
1667  ntp_->Branch("v_hsimInfoConeNMatched", "std::vector<std::vector<int> >", &t_v_hsimInfoConeNMatched);
1668  ntp_->Branch("v_hsimInfoConeNRest", "std::vector<std::vector<int> >", &t_v_hsimInfoConeNRest);
1669  ntp_->Branch("v_hsimInfoConeNPhoton", "std::vector<std::vector<int> >", &t_v_hsimInfoConeNPhoton);
1670  ntp_->Branch("v_hsimInfoConeNNeutHad", "std::vector<std::vector<int> >", &t_v_hsimInfoConeNNeutHad);
1671  ntp_->Branch("v_hsimInfoConeNCharHad", "std::vector<std::vector<int> >", &t_v_hsimInfoConeNCharHad);
1672  ntp_->Branch("v_hsimInfoConeNTotal", "std::vector<std::vector<int> >", &t_v_hsimInfoConeNTotal);
1673 
1674  ntp_->Branch("v_hsimCone", "std::vector<std::vector<double> >", &t_v_hsimCone);
1675  }
1676 
1677  ntp_->Branch("v_hCone", "std::vector<std::vector<double> >", &t_v_hCone);
1678  ntp_->Branch("v_nRecHitsCone", "std::vector<std::vector<int> >", &t_v_nRecHitsCone);
1679  ntp_->Branch("v_nSimHitsCone", "std::vector<std::vector<int> >", &t_v_nSimHitsCone);
1680 
1681  ntp_->Branch("v_distFromHotCell", "std::vector<std::vector<double> >", &t_v_distFromHotCell);
1682  ntp_->Branch("v_ietaFromHotCell", "std::vector<std::vector<int> >", &t_v_ietaFromHotCell);
1683  ntp_->Branch("v_iphiFromHotCell", "std::vector<std::vector<int> >", &t_v_iphiFromHotCell);
1684 
1685  ntp_->Branch("v_RH_h3x3_ieta", "std::vector<std::vector<int> >", &t_v_RH_h3x3_ieta);
1686  ntp_->Branch("v_RH_h3x3_iphi", "std::vector<std::vector<int> >", &t_v_RH_h3x3_iphi);
1687  ntp_->Branch("v_RH_h3x3_ene", "std::vector<std::vector<double> >", &t_v_RH_h3x3_ene);
1688  ntp_->Branch("v_RH_h5x5_ieta", "std::vector<std::vector<int> >", &t_v_RH_h5x5_ieta);
1689  ntp_->Branch("v_RH_h5x5_iphi", "std::vector<std::vector<int> >", &t_v_RH_h5x5_iphi);
1690  ntp_->Branch("v_RH_h5x5_ene", "std::vector<std::vector<double> >", &t_v_RH_h5x5_ene);
1691  ntp_->Branch("v_RH_r26_ieta", "std::vector<std::vector<int> >", &t_v_RH_r26_ieta);
1692  ntp_->Branch("v_RH_r26_iphi", "std::vector<std::vector<int> >", &t_v_RH_r26_iphi);
1693  ntp_->Branch("v_RH_r26_ene", "std::vector<std::vector<double> >", &t_v_RH_r26_ene);
1694  ntp_->Branch("v_RH_r44_ieta", "std::vector<std::vector<int> >", &t_v_RH_r44_ieta);
1695  ntp_->Branch("v_RH_r44_iphi", "std::vector<std::vector<int> >", &t_v_RH_r44_iphi);
1696  ntp_->Branch("v_RH_r44_ene", "std::vector<std::vector<double> >", &t_v_RH_r44_ene);
1697 
1698  ntp_->Branch("v_hlTriggers", "std::vector<std::vector<int> >", &t_v_hlTriggers);
1699  ntp_->Branch("v_hltHB", "std::vector<int>", &t_hltHB);
1700  ntp_->Branch("v_hltHE", "std::vector<int>", &t_hltHE);
1701  ntp_->Branch("v_hltL1Jet15", "std::vector<int>", &t_hltL1Jet15);
1702  ntp_->Branch("v_hltJet30", "std::vector<int>", &t_hltJet30);
1703  ntp_->Branch("v_hltJet50", "std::vector<int>", &t_hltJet50);
1704  ntp_->Branch("v_hltJet80", "std::vector<int>", &t_hltJet80);
1705  ntp_->Branch("v_hltJet110", "std::vector<int>", &t_hltJet110);
1706  ntp_->Branch("v_hltJet140", "std::vector<int>", &t_hltJet140);
1707  ntp_->Branch("v_hltJet180", "std::vector<int>", &t_hltJet180);
1708  ntp_->Branch("v_hltL1SingleEG5", "std::vector<int>", &t_hltL1SingleEG5);
1709  ntp_->Branch("v_hltZeroBias", "std::vector<int>", &t_hltZeroBias);
1710  ntp_->Branch("v_hltMinBiasHcal", "std::vector<int>", &t_hltMinBiasHcal);
1711  ntp_->Branch("v_hltMinBiasEcal", "std::vector<int>", &t_hltMinBiasEcal);
1712  ntp_->Branch("v_hltMinBiasPixel", "std::vector<int>", &t_hltMinBiasPixel);
1713  ntp_->Branch("v_hltSingleIsoTau30_Trk5", "std::vector<int>", &t_hltSingleIsoTau30_Trk5);
1714  ntp_->Branch("v_hltDoubleLooseIsoTau15_Trk5", "std::vector<int>", &t_hltDoubleLooseIsoTau15_Trk5);
1715 
1716  ntp_->Branch("irun", "std::vector<unsigned int>", &t_irun);
1717  ntp_->Branch("ievt", "std::vector<unsigned int>", &t_ievt);
1718  ntp_->Branch("ilum", "std::vector<unsigned int>", &t_ilum);
1719 }
1720 
1722  std::string theTrackQuality = "highPurity";
1723  reco::TrackBase::TrackQuality trackQuality_ = reco::TrackBase::qualityByName(theTrackQuality);
1724 
1725  edm::LogVerbatim("IsoTrack") << " Reference Point " << pTrack->referencePoint() << "\n"
1726  << " TrackMmentum " << pTrack->momentum() << " (pt,eta,phi)(" << pTrack->pt() << ","
1727  << pTrack->eta() << "," << pTrack->phi() << ")"
1728  << " p " << pTrack->p() << "\n"
1729  << " Normalized chi2 " << pTrack->normalizedChi2() << " charge " << pTrack->charge()
1730  << " qoverp() " << pTrack->qoverp() << "+-" << pTrack->qoverpError() << " d0 "
1731  << pTrack->d0() << "\n"
1732  << " NValidHits " << pTrack->numberOfValidHits() << " NLostHits "
1733  << pTrack->numberOfLostHits() << " TrackQuality " << pTrack->qualityName(trackQuality_)
1734  << " " << pTrack->quality(trackQuality_);
1735 
1736  if (printTrkHitPattern_) {
1737  const reco::HitPattern& p = pTrack->hitPattern();
1738  for (int i = 0; i < p.numberOfAllHits(reco::HitPattern::TRACK_HITS); i++) {
1739  p.printHitPattern(reco::HitPattern::TRACK_HITS, i, std::cout);
1740  }
1741  }
1742 }
1743 
1744 double IsolatedTracksCone::deltaPhi(double v1, double v2) {
1745  // Computes the correctly normalized phi difference
1746  // v1, v2 = phi of object 1 and 2
1747  double diff = std::abs(v2 - v1);
1748  double corr = 2.0 * M_PI - diff;
1749  return ((diff < M_PI) ? diff : corr);
1750 }
1751 
1752 double IsolatedTracksCone::deltaR(double eta1, double phi1, double eta2, double phi2) {
1753  double deta = eta1 - eta2;
1754  double dphi = deltaPhi(phi1, phi2);
1755  return std::sqrt(deta * deta + dphi * dphi);
1756 }
1757 
1758 //define this as a plug-in
Vector3DBase
Definition: Vector3DBase.h:8
IsolatedTracksCone::t_v_RH_r26_ieta
std::unique_ptr< std::vector< std::vector< int > > > t_v_RH_r26_ieta
Definition: IsolatedTracksCone.cc:316
edm::ESHandle::product
T const * product() const
Definition: ESHandle.h:86
IsolatedTracksCone::doMC_
const bool doMC_
Definition: IsolatedTracksCone.cc:142
change_name.diff
diff
Definition: change_name.py:13
IsolatedTracksCone::h_RawP
TH1F * h_RawP
Definition: IsolatedTracksCone.cc:179
IsolatedTracksCone::t_hsim3x3NeutHad
std::unique_ptr< std::vector< double > > t_hsim3x3NeutHad
Definition: IsolatedTracksCone.cc:235
IsolatedTracksCone::t_v_cone_hmaxNearP_goodTrk
std::unique_ptr< std::vector< std::vector< double > > > t_v_cone_hmaxNearP_goodTrk
Definition: IsolatedTracksCone.cc:205
IsolatedTracksCone::endJob
void endJob() override
Definition: IsolatedTracksCone.cc:1556
IsolatedTracksCone::t_hsim5x5NTotal
std::unique_ptr< std::vector< int > > t_hsim5x5NTotal
Definition: IsolatedTracksCone.cc:256
Handle.h
L1JetParticleCollection
IsolatedTracksCone::t_nRH_h5x5
std::unique_ptr< std::vector< double > > t_nRH_h5x5
Definition: IsolatedTracksCone.cc:227
IsolatedTracksCone::t_hsim5x5Matched
std::unique_ptr< std::vector< double > > t_hsim5x5Matched
Definition: IsolatedTracksCone.cc:230
electrons_cff.bool
bool
Definition: electrons_cff.py:372
EDAnalyzer.h
mps_fire.i
i
Definition: mps_fire.py:355
IsolatedTracksCone::nFailEta
int nFailEta
Definition: IsolatedTracksCone.cc:186
reco::TrackBase::qoverpError
double qoverpError() const
error on signed transverse curvature
Definition: TrackBase.h:699
edm::ParameterSetDescription::add
ParameterDescriptionBase * add(U const &iLabel, T const &value)
Definition: ParameterSetDescription.h:95
FreeTrajectoryState.h
CaloNavigator.h
IsolatedTracksCone::t_v_RH_h3x3_ene
std::unique_ptr< std::vector< std::vector< double > > > t_v_RH_h3x3_ene
Definition: IsolatedTracksCone.cc:312
IsolatedTracksCone::drLeadJetVeto_
const double drLeadJetVeto_
Definition: IsolatedTracksCone.cc:145
funct::false
false
Definition: Factorize.h:34
IsolatedTracksCone::tok_trigger_
const edm::EDGetTokenT< edm::TriggerResults > tok_trigger_
Definition: IsolatedTracksCone.cc:166
IsolatedTracksCone::h_RawPt
TH1F * h_RawPt
Definition: IsolatedTracksCone.cc:178
IsolatedTracksCone::t_v_hsimInfoConeNRest
std::unique_ptr< std::vector< std::vector< int > > > t_v_hsimInfoConeNRest
Definition: IsolatedTracksCone.cc:277
ESHandle.h
IsolatedTracksCone::t_e3x3
std::unique_ptr< std::vector< double > > t_e3x3
Definition: IsolatedTracksCone.cc:216
TriggerResults.h
reco::TrackBase::referencePoint
const Point & referencePoint() const
Reference point on the track.
Definition: TrackBase.h:638
IsolatedTracksCone::t_hltL1SingleEG5
std::unique_ptr< std::vector< int > > t_hltL1SingleEG5
Definition: IsolatedTracksCone.cc:302
IsolatedTracksCone::t_v_RH_h5x5_ene
std::unique_ptr< std::vector< std::vector< double > > > t_v_RH_h5x5_ene
Definition: IsolatedTracksCone.cc:315
IsolatedTracksCone::t_v_hsimInfoConeNPhoton
std::unique_ptr< std::vector< std::vector< int > > > t_v_hsimInfoConeNPhoton
Definition: IsolatedTracksCone.cc:278
IsolatedTracksCone::clearTrackVectors
void clearTrackVectors()
Definition: IsolatedTracksCone.cc:1419
IsolatedTracksCone::genPartPBins_
std::array< double, nPBins_+1 > genPartPBins_
Definition: IsolatedTracksCone.cc:139
IsolatedTracksCone::tok_caloEE_
const edm::EDGetTokenT< edm::PCaloHitContainer > tok_caloEE_
Definition: IsolatedTracksCone.cc:164
reco::TrackBase::p
double p() const
momentum vector magnitude
Definition: TrackBase.h:605
TrackDetectorAssociator.h
EcalSeverityLevelAlgoRcd.h
IsolatedTracksCone::ntp_
TTree * ntp_
Definition: IsolatedTracksCone.cc:176
IsolatedTracksCone::nEVT_failL1
int nEVT_failL1
Definition: IsolatedTracksCone.cc:190
TriggerEvent.h
IsolatedTracksCone::t_dtFromLeadJet
std::unique_ptr< std::vector< double > > t_dtFromLeadJet
Definition: IsolatedTracksCone.cc:210
edm::EDGetTokenT< l1extra::L1JetParticleCollection >
CaloGeometryRecord
Definition: CaloGeometryRecord.h:30
LuminosityBlock.h
edm
HLT enums.
Definition: AlignableModifier.h:19
AlCaHLTBitMon_ParallelJobs.p
p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
gather_cfg.cout
cout
Definition: gather_cfg.py:144
HcalTopology
Definition: HcalTopology.h:26
EBDetId.h
HLT_2018_cff.eta1
eta1
Definition: HLT_2018_cff.py:8220
EEDetId.h
DetId::Hcal
Definition: DetId.h:28
IsolatedTracksCone::t_v_RH_h5x5_iphi
std::unique_ptr< std::vector< std::vector< int > > > t_v_RH_h5x5_iphi
Definition: IsolatedTracksCone.cc:314
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
spr::eHCALSimInfo
std::map< std::string, double > eHCALSimInfo(const edm::Event &, const HcalTopology *topology, const DetId &det, const CaloGeometry *geo, edm::Handle< T > &hits, edm::Handle< edm::SimTrackContainer > &SimTk, edm::Handle< edm::SimVertexContainer > &SimVtx, const reco::Track *pTrack, TrackerHitAssociator &associate, int ieta, int iphi, double timeCut=150, bool includeHO=false, bool debug=false)
triggerResults
static const std::string triggerResults
Definition: EdmProvDump.cc:45
TrackDetMatchInfo::trkGlobPosAtHcal
math::XYZPoint trkGlobPosAtHcal
Definition: TrackDetMatchInfo.h:40
CaloGeometry::getSubdetectorGeometry
const CaloSubdetectorGeometry * getSubdetectorGeometry(const DetId &id) const
access the subdetector geometry for the given subdetector directly
Definition: CaloGeometry.cc:34
IsolatedTracksCone::useJetTrigger_
const bool useJetTrigger_
Definition: IsolatedTracksCone.cc:144
IsolatedTracksCone::trackAssociator_
std::unique_ptr< TrackDetectorAssociator > trackAssociator_
Definition: IsolatedTracksCone.cc:174
HLT_2018_cff.pt1
pt1
Definition: HLT_2018_cff.py:8550
IsolatedTracksCone::t_v_hsimInfoConeMatched
std::unique_ptr< std::vector< std::vector< double > > > t_v_hsimInfoConeMatched
Definition: IsolatedTracksCone.cc:268
IsolatedTracksCone::t_v_RH_r26_iphi
std::unique_ptr< std::vector< std::vector< int > > > t_v_RH_r26_iphi
Definition: IsolatedTracksCone.cc:317
reco::TrackBase::TrackQuality
TrackQuality
track quality
Definition: TrackBase.h:150
TriggerTypeDefs.h
edm::SortedCollection< EcalRecHit >
IsolatedTracksCone::t_trkEcalEne
std::unique_ptr< std::vector< double > > t_trkEcalEne
Definition: IsolatedTracksCone.cc:266
edm::EDConsumerBase::consumesCollector
ConsumesCollector consumesCollector()
Use a ConsumesCollector to gather consumes information from helper functions.
Definition: EDConsumerBase.cc:71
IsolatedTracksCone::t_v_RH_r26_ene
std::unique_ptr< std::vector< std::vector< double > > > t_v_RH_r26_ene
Definition: IsolatedTracksCone.cc:318
reco::TrackBase::qualityName
static std::string qualityName(TrackQuality)
Definition: TrackBase.h:557
IsolatedTracksCone::t_trkP
std::unique_ptr< std::vector< double > > t_trkP
Definition: IsolatedTracksCone.cc:211
IsolatedTracksCone::t_v_hsimInfoConeNNeutHad
std::unique_ptr< std::vector< std::vector< int > > > t_v_hsimInfoConeNNeutHad
Definition: IsolatedTracksCone.cc:279
TrackerHitAssociator.h
IsolatedTracksCone::t_v_hsimInfoConeRest
std::unique_ptr< std::vector< std::vector< double > > > t_v_hsimInfoConeRest
Definition: IsolatedTracksCone.cc:269
IsolatedTracksCone::t_v_hmaxNearP
std::unique_ptr< std::vector< std::vector< double > > > t_v_hmaxNearP
Definition: IsolatedTracksCone.cc:200
IsolatedTracksCone::t_ietaFromHotCell_h5x5
std::unique_ptr< std::vector< int > > t_ietaFromHotCell_h5x5
Definition: IsolatedTracksCone.cc:262
FindCaloHitCone.h
IsolatedTracksCone::t_trkNLayersCrossed
std::unique_ptr< std::vector< double > > t_trkNLayersCrossed
Definition: IsolatedTracksCone.cc:209
CaloTopologyRecord
Definition: CaloTopologyRecord.h:10
IsolatedTracksCone::t_v_cone_hnLayers_maxNearP
std::unique_ptr< std::vector< std::vector< int > > > t_v_cone_hnLayers_maxNearP
Definition: IsolatedTracksCone.cc:203
IsolatedTracksCone::t_hsim5x5
std::unique_ptr< std::vector< double > > t_hsim5x5
Definition: IsolatedTracksCone.cc:224
reco
fixed size matrix
Definition: AlignmentAlgorithmBase.h:45
IsolatedTracksCone::t_v_eDR
std::unique_ptr< std::vector< std::vector< double > > > t_v_eDR
Definition: IsolatedTracksCone.cc:218
edm::one::EDAnalyzer
Definition: EDAnalyzer.h:30
HcalBarrel
Definition: HcalAssistant.h:33
TrackerHitAssociator::Config
Definition: TrackerHitAssociator.h:57
IsolatedTracksCone::t_v_hsimCone
std::unique_ptr< std::vector< std::vector< double > > > t_v_hsimCone
Definition: IsolatedTracksCone.cc:283
EcalCondObjectContainer< EcalChannelStatusCode >
IsolatedTracksCone::t_iphiFromHotCell_h3x3
std::unique_ptr< std::vector< int > > t_iphiFromHotCell_h3x3
Definition: IsolatedTracksCone.cc:260
edm::Handle
Definition: AssociativeIterator.h:50
reco::TrackBase::numberOfValidHits
unsigned short numberOfValidHits() const
number of valid hits found
Definition: TrackBase.h:751
spr::getDistInPlaneTrackDir
double getDistInPlaneTrackDir(const GlobalPoint &caloPoint, const GlobalVector &caloVector, const GlobalPoint &rechitPoint, bool debug=false)
Definition: FindDistCone.cc:12
IsolatedTracksCone::t_hsim3x3NPhoton
std::unique_ptr< std::vector< int > > t_hsim3x3NPhoton
Definition: IsolatedTracksCone.cc:246
dqmdumpme.first
first
Definition: dqmdumpme.py:55
IsolatedTracksCone::t_hsim5x5NNeutHad
std::unique_ptr< std::vector< int > > t_hsim5x5NNeutHad
Definition: IsolatedTracksCone.cc:254
CaloTopology
Definition: CaloTopology.h:19
EcalBarrel
Definition: EcalSubdetector.h:10
EcalRecHitCollections.h
IsolatedTracksCone::t_v_RH_h3x3_iphi
std::unique_ptr< std::vector< std::vector< int > > > t_v_RH_h3x3_iphi
Definition: IsolatedTracksCone.cc:311
parameters
parameters
Definition: BeamSpot_PayloadInspector.cc:14
IsolatedTracksCone::tok_L1extFwdJet_
const edm::EDGetTokenT< l1extra::L1JetParticleCollection > tok_L1extFwdJet_
Definition: IsolatedTracksCone.cc:153
IsolatedTracksCone::t_v_cone_htrkQual_maxNearP
std::unique_ptr< std::vector< std::vector< int > > > t_v_cone_htrkQual_maxNearP
Definition: IsolatedTracksCone.cc:204
IsolatedTracksCone::t_v_hsimInfoConePhoton
std::unique_ptr< std::vector< std::vector< double > > > t_v_hsimInfoConePhoton
Definition: IsolatedTracksCone.cc:270
IsolatedTracksCone::tok_caloHH_
const edm::EDGetTokenT< edm::PCaloHitContainer > tok_caloHH_
Definition: IsolatedTracksCone.cc:165
reco::TrackBase::pt
double pt() const
track transverse momentum
Definition: TrackBase.h:608
DetId
Definition: DetId.h:17
IsolatedTracksCone::t_hltL1Jet15
std::unique_ptr< std::vector< int > > t_hltL1Jet15
Definition: IsolatedTracksCone.cc:295
IsolatedTracksCone::tok_L1extCenJet_
const edm::EDGetTokenT< l1extra::L1JetParticleCollection > tok_L1extCenJet_
Definition: IsolatedTracksCone.cc:152
IsolatedTracksCone::t_hltDoubleLooseIsoTau15_Trk5
std::unique_ptr< std::vector< int > > t_hltDoubleLooseIsoTau15_Trk5
Definition: IsolatedTracksCone.cc:308
IsolatedTracksCone::t_v_RH_h5x5_ieta
std::unique_ptr< std::vector< std::vector< int > > > t_v_RH_h5x5_ieta
Definition: IsolatedTracksCone.cc:313
MakerMacros.h
IsolatedTracksCone::t_nRH_h3x3
std::unique_ptr< std::vector< double > > t_nRH_h3x3
Definition: IsolatedTracksCone.cc:226
CaloGeometry
Definition: CaloGeometry.h:21
reco::HitPattern
Definition: HitPattern.h:147
IsolatedTracksCone::t_irun
std::unique_ptr< std::vector< unsigned int > > t_irun
Definition: IsolatedTracksCone.cc:323
FindCaloHit.h
Track.h
edm::EventSetup::get
T get() const
Definition: EventSetup.h:73
TrackFwd.h
DEFINE_FWK_MODULE
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
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
reco::HitPattern::trackerLayersWithMeasurement
int trackerLayersWithMeasurement() const
Definition: HitPattern.cc:513
IsolatedTracksCone::leadL1JetEta
double leadL1JetEta
Definition: IsolatedTracksCone.cc:193
IsolatedTracksCone::debugEcalSimInfo_
const int debugEcalSimInfo_
Definition: IsolatedTracksCone.cc:169
L1TEGammaOffline_cfi.triggerNames
triggerNames
Definition: L1TEGammaOffline_cfi.py:40
alignCSCRings.corr
dictionary corr
Definition: alignCSCRings.py:124
IsolatedTracksCone::t_v_hsimInfoConeNCharHad
std::unique_ptr< std::vector< std::vector< int > > > t_v_hsimInfoConeNCharHad
Definition: IsolatedTracksCone.cc:280
Service.h
IsolatedTracksCone::nPBins_
static constexpr int nPBins_
Definition: IsolatedTracksCone.cc:138
ChargeIsolation.h
IsolatedTracksCone::t_v_eMipDR
std::unique_ptr< std::vector< std::vector< double > > > t_v_eMipDR
Definition: IsolatedTracksCone.cc:219
IsolatedTracksCone::t_hsim3x3NNeutHad
std::unique_ptr< std::vector< int > > t_hsim3x3NNeutHad
Definition: IsolatedTracksCone.cc:247
IsolatedTracksCone::ptMinLeadJet_
const double ptMinLeadJet_
Definition: IsolatedTracksCone.cc:145
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
SimVertex.h
eHCALMatrix.h
IsolatedTracksCone::t_hsim3x3Total
std::unique_ptr< std::vector< double > > t_hsim3x3Total
Definition: IsolatedTracksCone.cc:241
reco::TrackBase::numberOfLostHits
unsigned short numberOfLostHits() const
number of cases where track crossed a layer without getting a hit.
Definition: TrackBase.h:754
reco::Track
Definition: Track.h:27
IsolatedTracksCone::nEtaBins_
static constexpr int nEtaBins_
Definition: IsolatedTracksCone.cc:137
edm::ESHandle< CaloGeometry >
spr::coneChargeIsolation
double coneChargeIsolation(const edm::Event &iEvent, const edm::EventSetup &iSetup, reco::TrackCollection::const_iterator trkItr, edm::Handle< reco::TrackCollection > trkCollection, TrackDetectorAssociator &associator, TrackAssociatorParameters &parameters_, const std::string &theTrackQuality, int &nNearTRKs, int &nLayers_maxNearP, int &trkQual_maxNearP, double &maxNearP_goodTrk, const GlobalPoint &hpoint1, const GlobalVector &trackMom, double dR)
Definition: ChargeIsolation.cc:224
EcalSeverityLevelAlgoRcd
Definition: EcalSeverityLevelAlgoRcd.h:12
IsolatedTracksCone::tok_genTrack_
const edm::EDGetTokenT< reco::TrackCollection > tok_genTrack_
Definition: IsolatedTracksCone.cc:159
IsolatedTracksCone::t_hsim3x3Rest
std::unique_ptr< std::vector< double > > t_hsim3x3Rest
Definition: IsolatedTracksCone.cc:231
IsolatedTracksCone::t_hltJet30
std::unique_ptr< std::vector< int > > t_hltJet30
Definition: IsolatedTracksCone.cc:296
IsolatedTracksCone::t_hsim5x5Rest
std::unique_ptr< std::vector< double > > t_hsim5x5Rest
Definition: IsolatedTracksCone.cc:232
IsolatedTracksCone::t_hsim5x5NMatched
std::unique_ptr< std::vector< int > > t_hsim5x5NMatched
Definition: IsolatedTracksCone.cc:251
IsolatedTracksCone::t_hsim3x3CharHad
std::unique_ptr< std::vector< double > > t_hsim3x3CharHad
Definition: IsolatedTracksCone.cc:237
reco::TrackBase::charge
int charge() const
track electric charge
Definition: TrackBase.h:581
IsolatedTracksCone::t_v_distFromHotCell
std::unique_ptr< std::vector< std::vector< double > > > t_v_distFromHotCell
Definition: IsolatedTracksCone.cc:288
IsolatedTracksCone::t_hsim5x5NPhoton
std::unique_ptr< std::vector< int > > t_hsim5x5NPhoton
Definition: IsolatedTracksCone.cc:253
Point3DBase< float, GlobalTag >
TrackAssociatorParameters::loadParameters
void loadParameters(const edm::ParameterSet &, edm::ConsumesCollector &)
Definition: TrackAssociatorParameters.cc:18
IsolatedTracksCone::printTrkHitPattern_
const bool printTrkHitPattern_
Definition: IsolatedTracksCone.cc:147
eECALMatrix.h
eCone.h
EcalSeverityLevelAlgo.h
reco::TrackBase::phi
double phi() const
azimuthal angle of momentum vector
Definition: TrackBase.h:620
HcalRecNumberingRecord
Definition: HcalRecNumberingRecord.h:23
HLT_2018_cff.eta2
eta2
Definition: HLT_2018_cff.py:8221
edm::ConfigurationDescriptions
Definition: ConfigurationDescriptions.h:28
IsolatedTracksCone::t_v_cone_hmaxNearP
std::unique_ptr< std::vector< std::vector< double > > > t_v_cone_hmaxNearP
Definition: IsolatedTracksCone.cc:206
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
Vertex.h
IsolatedTracksCone::tok_caloEB_
const edm::EDGetTokenT< edm::PCaloHitContainer > tok_caloEB_
Definition: IsolatedTracksCone.cc:163
EcalEndcap
Definition: EcalSubdetector.h:10
IsolatedTracksCone::t_v_hsimInfoConeCharHad
std::unique_ptr< std::vector< std::vector< double > > > t_v_hsimInfoConeCharHad
Definition: IsolatedTracksCone.cc:272
TFileService.h
IsolatedTracksCone::t_hltSingleIsoTau30_Trk5
std::unique_ptr< std::vector< int > > t_hltSingleIsoTau30_Trk5
Definition: IsolatedTracksCone.cc:307
IsolatedTracksCone::t_hltJet110
std::unique_ptr< std::vector< int > > t_hltJet110
Definition: IsolatedTracksCone.cc:299
IsolatedTracksCone::t_hltMinBiasEcal
std::unique_ptr< std::vector< int > > t_hltMinBiasEcal
Definition: IsolatedTracksCone.cc:305
IsolatedTracksCone::leadL1JetPhi
double leadL1JetPhi
Definition: IsolatedTracksCone.cc:194
IsolatedTracksCone::t_v_hnLayers_maxNearP
std::unique_ptr< std::vector< std::vector< int > > > t_v_hnLayers_maxNearP
Definition: IsolatedTracksCone.cc:197
IsolatedTracksCone::analyze
void analyze(const edm::Event &, const edm::EventSetup &) override
Definition: IsolatedTracksCone.cc:431
edm::ParameterSetDescription::addUntracked
ParameterDescriptionBase * addUntracked(U const &iLabel, T const &value)
Definition: ParameterSetDescription.h:100
CaloSubdetectorGeometry.h
L1JetParticleFwd.h
HLT_2018_cff.InputTag
InputTag
Definition: HLT_2018_cff.py:79016
edm::ParameterSet
Definition: ParameterSet.h:36
IsolatedTracksCone::deltaPhi
double deltaPhi(double v1, double v2)
Definition: IsolatedTracksCone.cc:1744
IsolatedTracksCone::t_hltHE
std::unique_ptr< std::vector< int > > t_hltHE
Definition: IsolatedTracksCone.cc:294
IsolatedTracksCone::t_h3x3
std::unique_ptr< std::vector< double > > t_h3x3
Definition: IsolatedTracksCone.cc:221
Event.h
IsolatedTracksCone::t_iphiFromHotCell_h5x5
std::unique_ptr< std::vector< int > > t_iphiFromHotCell_h5x5
Definition: IsolatedTracksCone.cc:263
IsolatedTracksCone::maxNearTrackP_
const double maxNearTrackP_
Definition: IsolatedTracksCone.cc:168
IsolatedTracksCone::IsolatedTracksCone
IsolatedTracksCone(const edm::ParameterSet &)
Definition: IsolatedTracksCone.cc:328
IsolatedTracksCone::nTRK
int nTRK
Definition: IsolatedTracksCone.cc:191
EcalChannelStatusRcd
Definition: EcalChannelStatusRcd.h:5
IsolatedTracksCone::t_v_hnNearTRKs
std::unique_ptr< std::vector< std::vector< int > > > t_v_hnNearTRKs
Definition: IsolatedTracksCone.cc:196
IsolatedTracksCone::t_v_RH_r44_ieta
std::unique_ptr< std::vector< std::vector< int > > > t_v_RH_r44_ieta
Definition: IsolatedTracksCone.cc:319
IsolatedTracksCone::t_hsim3x3NTotal
std::unique_ptr< std::vector< int > > t_hsim3x3NTotal
Definition: IsolatedTracksCone.cc:249
IsolatedTracksCone::t_v_iphiFromHotCell
std::unique_ptr< std::vector< std::vector< int > > > t_v_iphiFromHotCell
Definition: IsolatedTracksCone.cc:290
HcalDetId.h
IsolatedTracksCone::beginJob
void beginJob() override
Definition: IsolatedTracksCone.cc:1265
IsolatedTracksCone::nRawTRK
int nRawTRK
Definition: IsolatedTracksCone.cc:183
IsolatedTracksCone::t_v_hlTriggers
std::unique_ptr< std::vector< std::vector< int > > > t_v_hlTriggers
Definition: IsolatedTracksCone.cc:292
IsolatedTracksCone::t_hltHB
std::unique_ptr< std::vector< int > > t_hltHB
Definition: IsolatedTracksCone.cc:293
TrackDetectorAssociator
Definition: TrackDetectorAssociator.h:49
IsolatedTracksCone::printTrack
void printTrack(const reco::Track *pTrack)
Definition: IsolatedTracksCone.cc:1721
reco::TrackBase::eta
double eta() const
pseudorapidity of momentum vector
Definition: TrackBase.h:623
IsolatedTracksCone::fillDescriptions
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
Definition: IsolatedTracksCone.cc:379
IsolatedTracksCone::t_hsim5x5NRest
std::unique_ptr< std::vector< int > > t_hsim5x5NRest
Definition: IsolatedTracksCone.cc:252
IsolatedTracksCone::t_trkPhi
std::unique_ptr< std::vector< double > > t_trkPhi
Definition: IsolatedTracksCone.cc:215
CaloTopologyRecord.h
MatchingSimTrack.h
IsolatedTracksCone::t_trkNOuterHits
std::unique_ptr< std::vector< double > > t_trkNOuterHits
Definition: IsolatedTracksCone.cc:208
IsolatedTracksCone::h_RawPhi
TH1F * h_RawPhi
Definition: IsolatedTracksCone.cc:181
IsolatedTracksCone::debugTrks_
const int debugTrks_
Definition: IsolatedTracksCone.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
TriggerNames.h
iEvent
int iEvent
Definition: GenABIO.cc:224
IsolatedTracksCone::applyEcalIsolation_
const bool applyEcalIsolation_
Definition: IsolatedTracksCone.cc:170
IsolatedTracksCone::t_hltJet180
std::unique_ptr< std::vector< int > > t_hltJet180
Definition: IsolatedTracksCone.cc:301
IsolatedTracksCone::t_hsim3x3Matched
std::unique_ptr< std::vector< double > > t_hsim3x3Matched
Definition: IsolatedTracksCone.cc:229
IsolatedTracksCone::t_hltZeroBias
std::unique_ptr< std::vector< int > > t_hltZeroBias
Definition: IsolatedTracksCone.cc:303
IsolatedTracksCone::t_hltMinBiasPixel
std::unique_ptr< std::vector< int > > t_hltMinBiasPixel
Definition: IsolatedTracksCone.cc:306
reco::TrackBase::d0
double d0() const
dxy parameter in perigee convention (d0 = -dxy)
Definition: TrackBase.h:596
IsolatedTracksCone::nMissEcal
int nMissEcal
Definition: IsolatedTracksCone.cc:187
M_PI
#define M_PI
Definition: BXVectorInputProducer.cc:50
edm::LogVerbatim
Definition: MessageLogger.h:297
TrackDetMatchInfo::trkMomAtEcal
GlobalVector trkMomAtEcal
Definition: TrackDetMatchInfo.h:43
IsolatedTracksCone::t_v_hCone
std::unique_ptr< std::vector< std::vector< double > > > t_v_hCone
Definition: IsolatedTracksCone.cc:284
p1
double p1[4]
Definition: TauolaWrapper.h:89
IsolatedTracksCone::t_hsim5x5CharHad
std::unique_ptr< std::vector< double > > t_hsim5x5CharHad
Definition: IsolatedTracksCone.cc:238
IsolatedTracksCone::t_simP
std::unique_ptr< std::vector< double > > t_simP
Definition: IsolatedTracksCone.cc:212
edm::EventSetup
Definition: EventSetup.h:57
IsolatedTracksCone::t_v_hmaxNearP_goodTrk
std::unique_ptr< std::vector< std::vector< double > > > t_v_hmaxNearP_goodTrk
Definition: IsolatedTracksCone.cc:199
IsolatedTracksCone::t_distFromHotCell_h5x5
std::unique_ptr< std::vector< double > > t_distFromHotCell_h5x5
Definition: IsolatedTracksCone.cc:261
TrackAssociatorRecord.h
CaloSubdetectorGeometry::getClosestCell
virtual DetId getClosestCell(const GlobalPoint &r) const
Definition: CaloSubdetectorGeometry.cc:44
reco::TrackBase::normalizedChi2
double normalizedChi2() const
chi-squared divided by n.d.o.f. (or chi-squared * 1e6 if n.d.o.f. is zero)
Definition: TrackBase.h:578
DetId::Ecal
Definition: DetId.h:27
itr
std::vector< std::pair< float, float > >::iterator itr
Definition: HGCDigitizer.cc:28
IsolatedTracksCone::t_hsim3x3NMatched
std::unique_ptr< std::vector< int > > t_hsim3x3NMatched
Definition: IsolatedTracksCone.cc:244
IsolatedTracksCone::t_hsim5x5Total
std::unique_ptr< std::vector< double > > t_hsim5x5Total
Definition: IsolatedTracksCone.cc:242
get
#define get
HitPattern.h
IsolatedTracksCone::tok_hbhe_
const edm::EDGetTokenT< HBHERecHitCollection > tok_hbhe_
Definition: IsolatedTracksCone.cc:157
TriggerObject.h
IsolatedTracksCone::maxTrackEta_
const double maxTrackEta_
Definition: IsolatedTracksCone.cc:168
TrackDetMatchInfo::trkGlobPosAtEcal
math::XYZPoint trkGlobPosAtEcal
Track position at different parts of the calorimeter.
Definition: TrackDetMatchInfo.h:39
IsolatedTracksCone::buildTree
void buildTree()
Definition: IsolatedTracksCone.cc:1560
reco::HitPattern::TRACK_HITS
Definition: HitPattern.h:155
IsolatedTracksCone::t_h5x5
std::unique_ptr< std::vector< double > > t_h5x5
Definition: IsolatedTracksCone.cc:222
CaloTopology.h
photonIsolationHIProducer_cfi.hbhe
hbhe
Definition: photonIsolationHIProducer_cfi.py:8
IsolatedTracksCone::t_v_nRecHitsCone
std::unique_ptr< std::vector< std::vector< int > > > t_v_nRecHitsCone
Definition: IsolatedTracksCone.cc:285
reco::TrackBase::qualityByName
static TrackQuality qualityByName(const std::string &name)
Definition: TrackBase.cc:126
VertexFwd.h
IsolatedTracksCone::trackerHitAssociatorConfig_
const TrackerHitAssociator::Config trackerHitAssociatorConfig_
Definition: IsolatedTracksCone.cc:149
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
IsolatedTracksCone::minTrackP_
const double minTrackP_
Definition: IsolatedTracksCone.cc:168
CaloSubdetectorTopology.h
reco::TrackBase::hitPattern
const HitPattern & hitPattern() const
Access the hit pattern, indicating in which Tracker layers the track has hits.
Definition: TrackBase.h:489
TrackerHitAssociator
Definition: TrackerHitAssociator.h:55
TrackDetMatchInfo
Definition: TrackDetMatchInfo.h:14
HcalTopology.h
IsolatedTracksCone::t_v_ietaFromHotCell
std::unique_ptr< std::vector< std::vector< int > > > t_v_ietaFromHotCell
Definition: IsolatedTracksCone.cc:289
CaloSimInfo.h
IsolatedTracksCone::genPartEtaBins
std::array< double, nEtaBins_+1 > genPartEtaBins
Definition: IsolatedTracksCone.cc:140
DetId::rawId
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
IsolatedTracksCone::t_hsim5x5Photon
std::unique_ptr< std::vector< double > > t_hsim5x5Photon
Definition: IsolatedTracksCone.cc:234
IsolatedTracksCone::t_hsim5x5NeutHad
std::unique_ptr< std::vector< double > > t_hsim5x5NeutHad
Definition: IsolatedTracksCone.cc:236
Ref.h
IsolatedTracksCone::nEVT
int nEVT
Definition: IsolatedTracksCone.cc:189
IsolatedTracksCone::t_trkEta
std::unique_ptr< std::vector< double > > t_trkEta
Definition: IsolatedTracksCone.cc:214
IsolatedTracksCone
Definition: IsolatedTracksCone.cc:116
IsolatedTracksCone::t_hsim3x3NRest
std::unique_ptr< std::vector< int > > t_hsim3x3NRest
Definition: IsolatedTracksCone.cc:245
FreeTrajectoryState
Definition: FreeTrajectoryState.h:27
IsolatedTracksCone::t_v_hsimInfoConeNTotal
std::unique_ptr< std::vector< std::vector< int > > > t_v_hsimInfoConeNTotal
Definition: IsolatedTracksCone.cc:281
edm::SimTrackContainer
std::vector< SimTrack > SimTrackContainer
Definition: SimTrackContainer.h:12
HcalEndcap
Definition: HcalAssistant.h:34
DetId.h
Frameworkfwd.h
IsolatedTracksCone::t_hltJet50
std::unique_ptr< std::vector< int > > t_hltJet50
Definition: IsolatedTracksCone.cc:297
IsolatedTracksCone::t_v_RH_r44_ene
std::unique_ptr< std::vector< std::vector< double > > > t_v_RH_r44_ene
Definition: IsolatedTracksCone.cc:321
IsolatedTracksCone::t_hltJet140
std::unique_ptr< std::vector< int > > t_hltJet140
Definition: IsolatedTracksCone.cc:300
IsolatedTracksCone::leadL1JetPT
double leadL1JetPT
Definition: IsolatedTracksCone.cc:192
IsolatedTracksCone::t_hsim5x5PdgMatched
std::unique_ptr< std::vector< double > > t_hsim5x5PdgMatched
Definition: IsolatedTracksCone.cc:240
spr::matchedSimTrack
edm::SimTrackContainer::const_iterator matchedSimTrack(const edm::Event &iEvent, edm::Handle< edm::SimTrackContainer > &SimTk, edm::Handle< edm::SimVertexContainer > &SimVtx, const reco::Track *pTrack, TrackerHitAssociator &associate, bool debug=false)
Definition: MatchingSimTrack.cc:12
IsolatedTracksCone::t_v_hsimInfoConePdgMatched
std::unique_ptr< std::vector< std::vector< double > > > t_v_hsimInfoConePdgMatched
Definition: IsolatedTracksCone.cc:273
CaloGeometry.h
IsolatedTracksCone::t_trkHcalEne
std::unique_ptr< std::vector< double > > t_trkHcalEne
Definition: IsolatedTracksCone.cc:265
edm::TriggerNames
Definition: TriggerNames.h:55
IsolatedTracksCone::tok_L1extTauJet_
const edm::EDGetTokenT< l1extra::L1JetParticleCollection > tok_L1extTauJet_
Definition: IsolatedTracksCone.cc:151
TrackDetMatchInfo::trkMomAtHcal
GlobalVector trkMomAtHcal
Definition: TrackDetMatchInfo.h:44
IsolatedTracksCone::t_hsim5x5NCharHad
std::unique_ptr< std::vector< int > > t_hsim5x5NCharHad
Definition: IsolatedTracksCone.cc:255
IsolatedTracksCone::h_RawEta
TH1F * h_RawEta
Definition: IsolatedTracksCone.cc:180
IsolatedTracksCone::t_v_RH_r44_iphi
std::unique_ptr< std::vector< std::vector< int > > > t_v_RH_r44_iphi
Definition: IsolatedTracksCone.cc:320
edm::PCaloHitContainer
std::vector< PCaloHit > PCaloHitContainer
Definition: PCaloHitContainer.h:8
EventSetup.h
CaloSubdetectorGeometry
Definition: CaloSubdetectorGeometry.h:22
HcalRecHitCollections.h
IsolatedTracksCone::t_hsim3x3PdgMatched
std::unique_ptr< std::vector< double > > t_hsim3x3PdgMatched
Definition: IsolatedTracksCone.cc:239
PCaloHitContainer.h
spr::eHCALmatrix
double eHCALmatrix(const HcalTopology *topology, const DetId &det, edm::Handle< T > &hits, int ieta, int iphi, bool includeHO=false, bool algoNew=true, double hbThr=-100, double heThr=-100, double hfThr=-100, double hoThr=-100, double tMin=-500, double tMax=500, int useRaw=0, bool debug=false)
IsolatedTracksCone::nFailHighPurityQaul
int nFailHighPurityQaul
Definition: IsolatedTracksCone.cc:184
IsolatedTracksCone::nMissHcal
int nMissHcal
Definition: IsolatedTracksCone.cc:188
IsolatedTracksCone::t_v_cone_hnNearTRKs
std::unique_ptr< std::vector< std::vector< int > > > t_v_cone_hnNearTRKs
Definition: IsolatedTracksCone.cc:202
Candidate.h
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
SimTrack.h
ParameterSet.h
IsolatedTracksCone::tok_EE_
const edm::EDGetTokenT< EcalRecHitCollection > tok_EE_
Definition: IsolatedTracksCone.cc:156
IsolatedTracksCone::myverbose_
const int myverbose_
Definition: IsolatedTracksCone.cc:143
IsolatedTracksCone::t_hsim3x3NCharHad
std::unique_ptr< std::vector< int > > t_hsim3x3NCharHad
Definition: IsolatedTracksCone.cc:248
reco::TrackBase::momentum
const Vector & momentum() const
track momentum vector
Definition: TrackBase.h:635
l1extra
Definition: L1EmParticle.h:26
HLTObjectsMonitor_cfi.TriggerResults
TriggerResults
Definition: HLTObjectsMonitor_cfi.py:9
IsolatedTracksCone::~IsolatedTracksCone
~IsolatedTracksCone() override
Definition: IsolatedTracksCone.cc:377
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)
IsolatedTracksCone::nFailPt
int nFailPt
Definition: IsolatedTracksCone.cc:185
spr::eCaloSimInfo
void eCaloSimInfo(std::vector< DetId > vdets, const CaloGeometry *geo, edm::Handle< T > &hitsEB, edm::Handle< T > &hitsEE, edm::Handle< edm::SimTrackContainer > &SimTk, edm::Handle< edm::SimVertexContainer > &SimVtx, edm::SimTrackContainer::const_iterator trkInfo, caloSimInfo &info, double timeCut=150, bool debug=false)
IsolatedTracksCone::t_v_hsimInfoConeNMatched
std::unique_ptr< std::vector< std::vector< int > > > t_v_hsimInfoConeNMatched
Definition: IsolatedTracksCone.cc:276
L1JetParticle.h
IsolatedTracksCone::t_hltMinBiasHcal
std::unique_ptr< std::vector< int > > t_hltMinBiasHcal
Definition: IsolatedTracksCone.cc:304
IsolatedTracksCone::t_hltJet80
std::unique_ptr< std::vector< int > > t_hltJet80
Definition: IsolatedTracksCone.cc:298
IsolatedTracksCone::tok_simTk_
const edm::EDGetTokenT< edm::SimTrackContainer > tok_simTk_
Definition: IsolatedTracksCone.cc:160
SimTrackContainer.h
reco::TrackBase::quality
bool quality(const TrackQuality) const
Track quality.
Definition: TrackBase.h:537
IsolatedTracksCone::t_hsim3x3
std::unique_ptr< std::vector< double > > t_hsim3x3
Definition: IsolatedTracksCone.cc:223
edm::SimVertexContainer
std::vector< SimVertex > SimVertexContainer
Definition: SimVertexContainer.h:12
IsolatedTracksCone::t_trkPt
std::unique_ptr< std::vector< double > > t_trkPt
Definition: IsolatedTracksCone.cc:213
edm::InputTag
Definition: InputTag.h:15
IsolatedTracksCone::t_distFromHotCell_h3x3
std::unique_ptr< std::vector< double > > t_distFromHotCell_h3x3
Definition: IsolatedTracksCone.cc:258
IsolatedTracksCone::tok_EB_
const edm::EDGetTokenT< EcalRecHitCollection > tok_EB_
Definition: IsolatedTracksCone.cc:155
reco::TrackCollection
std::vector< Track > TrackCollection
collection of Tracks
Definition: TrackFwd.h:14
edm::ConsumesCollector
Definition: ConsumesCollector.h:39
SimVertexContainer.h
IsolatedTracksCone::t_v_hsimInfoConeNeutHad
std::unique_ptr< std::vector< std::vector< double > > > t_v_hsimInfoConeNeutHad
Definition: IsolatedTracksCone.cc:271
IsolatedTracksCone::deltaR
double deltaR(double eta1, double phi1, double eta2, double phi2)
Definition: IsolatedTracksCone.cc:1752
IsolatedTracksCone::t_v_nSimHitsCone
std::unique_ptr< std::vector< std::vector< int > > > t_v_nSimHitsCone
Definition: IsolatedTracksCone.cc:286
EcalChannelStatusRcd.h
IsolatedTracksCone::tok_simVtx_
const edm::EDGetTokenT< edm::SimVertexContainer > tok_simVtx_
Definition: IsolatedTracksCone.cc:161
IsolatedTracksCone::t_ilum
std::unique_ptr< std::vector< unsigned int > > t_ilum
Definition: IsolatedTracksCone.cc:325
TFileService::make
T * make(const Args &... args) const
make new ROOT object
Definition: TFileService.h:64
reco::TrackBase::qoverp
double qoverp() const
q / p
Definition: TrackBase.h:584
IsolatedTracksCone::t_v_htrkQual_maxNearP
std::unique_ptr< std::vector< std::vector< int > > > t_v_htrkQual_maxNearP
Definition: IsolatedTracksCone.cc:198
IsolatedTracksCone::t_hsim3x3Photon
std::unique_ptr< std::vector< double > > t_hsim3x3Photon
Definition: IsolatedTracksCone.cc:233
IsolatedTracksCone::t_ietaFromHotCell_h3x3
std::unique_ptr< std::vector< int > > t_ietaFromHotCell_h3x3
Definition: IsolatedTracksCone.cc:259
IsolatedTracksCone::parameters_
TrackAssociatorParameters parameters_
Definition: IsolatedTracksCone.cc:173
TrackAssociatorParameters
Definition: TrackAssociatorParameters.h:34
IsolatedTracksCone::t_ievt
std::unique_ptr< std::vector< unsigned int > > t_ievt
Definition: IsolatedTracksCone.cc:324
IsolatedTracksCone::t_v_RH_h3x3_ieta
std::unique_ptr< std::vector< std::vector< int > > > t_v_RH_h3x3_ieta
Definition: IsolatedTracksCone.cc:310
IsolatedTracksCone::t_v_hsimInfoConeTotal
std::unique_ptr< std::vector< std::vector< double > > > t_v_hsimInfoConeTotal
Definition: IsolatedTracksCone.cc:274