CMS 3D CMS Logo

IsolatedGenParticles.cc
Go to the documentation of this file.
1 // -*- C++ -*-
2 //
3 // Package: IsolatedGenParticles
4 // Class: IsolatedGenParticles
5 //
13 //
14 // Original Author: Seema Sharma
15 // Created: Tue Oct 27 09:46:41 CDT 2009
16 //
17 //
18 
22 
25 
33 //L1 objects
46 
48 
56 //TFile Service
59 
66 
69 
71 
75 // track associator
77 
78 // root objects
79 #include "TROOT.h"
80 #include "TSystem.h"
81 #include "TFile.h"
82 #include "TH1I.h"
83 #include "TH2D.h"
84 #include "TProfile.h"
85 #include "TDirectory.h"
86 #include "TTree.h"
87 
88 #include <cmath>
89 #include <iostream>
90 #include <iomanip>
91 #include <list>
92 #include <vector>
93 
94 namespace{
95  class ParticlePtGreater{
96  public:
97  int operator()(const HepMC::GenParticle * p1,
98  const HepMC::GenParticle * p2) const{
99  return p1->momentum().perp() > p2->momentum().perp();
100  }
101  };
102 
103  class ParticlePGreater{
104  public:
105  int operator()(const HepMC::GenParticle * p1,
106  const HepMC::GenParticle * p2) const{
107  return p1->momentum().rho() > p2->momentum().rho();
108  }
109  };
110 }
111 
112 
113 class IsolatedGenParticles : public edm::one::EDAnalyzer<edm::one::SharedResources> {
114 
115 public:
116  explicit IsolatedGenParticles(const edm::ParameterSet&);
117  ~IsolatedGenParticles() override {}
118 
119  static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
120 
121 private:
122  void beginJob() override;
123  void analyze(const edm::Event&, const edm::EventSetup&) override;
124  void endJob() override { }
125 
126  double deltaPhi(double v1, double v2);
127  double deltaR(double eta1, double phi1, double eta2, double phi2);
128  double deltaR2(double eta1, double phi1, double eta2, double phi2);
129 
130  void fillTrack (GlobalPoint& posVec, math::XYZTLorentzVector& momVec,
131  GlobalPoint& posECAL, int pdgId, bool okECAL, bool accpet);
132  void fillIsolatedTrack(math::XYZTLorentzVector& momVec,
133  GlobalPoint& posECAL, int pdgId);
134  void bookHistograms();
135  void clearTreeVectors();
136  int particleCode(int);
137 
138  static constexpr int NPBins_ = 3;
139  static constexpr int NEtaBins_ = 4;
140  static constexpr int PBins_=32, EtaBins_=60, Particles=12;
142  double genPartPBins_[NPBins_+1], genPartEtaBins_[NEtaBins_+1];
143  double ptMin_, etaMax_, pCutIsolate_;
146 
149 
150  bool initL1, useHepMC_;
151  static const size_t nL1BitsMax_=128;
152  std::string algoBitToName_[nL1BitsMax_];
153  double a_coneR_, a_charIsoR_, a_neutIsoR_, a_mipR_;
156 
165 
168  TH2D *h_pEta[Particles];
169 
170  TTree *tree_;
171 
172  std::vector<double> *t_isoTrkPAll;
173  std::vector<double> *t_isoTrkPtAll;
174  std::vector<double> *t_isoTrkPhiAll;
175  std::vector<double> *t_isoTrkEtaAll;
176  std::vector<double> *t_isoTrkPdgIdAll;
177  std::vector<double> *t_isoTrkDEtaAll;
178  std::vector<double> *t_isoTrkDPhiAll;
179 
180  std::vector<double> *t_isoTrkP;
181  std::vector<double> *t_isoTrkPt;
182  std::vector<double> *t_isoTrkEne;
183  std::vector<double> *t_isoTrkEta;
184  std::vector<double> *t_isoTrkPhi;
185  std::vector<double> *t_isoTrkEtaEC;
186  std::vector<double> *t_isoTrkPhiEC;
187  std::vector<double> *t_isoTrkPdgId;
188 
189  std::vector<double> *t_maxNearP31x31;
190  std::vector<double> *t_cHadronEne31x31, *t_cHadronEne31x31_1, *t_cHadronEne31x31_2, *t_cHadronEne31x31_3;
191  std::vector<double> *t_nHadronEne31x31;
192  std::vector<double> *t_photonEne31x31;
193  std::vector<double> *t_eleEne31x31;
194  std::vector<double> *t_muEne31x31;
195 
196  std::vector<double> *t_maxNearP25x25;
197  std::vector<double> *t_cHadronEne25x25, *t_cHadronEne25x25_1, *t_cHadronEne25x25_2, *t_cHadronEne25x25_3;
198  std::vector<double> *t_nHadronEne25x25;
199  std::vector<double> *t_photonEne25x25;
200  std::vector<double> *t_eleEne25x25;
201  std::vector<double> *t_muEne25x25;
202 
203  std::vector<double> *t_maxNearP21x21;
204  std::vector<double> *t_cHadronEne21x21, *t_cHadronEne21x21_1, *t_cHadronEne21x21_2, *t_cHadronEne21x21_3;
205  std::vector<double> *t_nHadronEne21x21;
206  std::vector<double> *t_photonEne21x21;
207  std::vector<double> *t_eleEne21x21;
208  std::vector<double> *t_muEne21x21;
209 
210  std::vector<double> *t_maxNearP15x15;
211  std::vector<double> *t_cHadronEne15x15, *t_cHadronEne15x15_1, *t_cHadronEne15x15_2, *t_cHadronEne15x15_3;
212  std::vector<double> *t_nHadronEne15x15;
213  std::vector<double> *t_photonEne15x15;
214  std::vector<double> *t_eleEne15x15;
215  std::vector<double> *t_muEne15x15;
216 
217  std::vector<double> *t_maxNearP11x11;
218  std::vector<double> *t_cHadronEne11x11, *t_cHadronEne11x11_1, *t_cHadronEne11x11_2, *t_cHadronEne11x11_3;
219  std::vector<double> *t_nHadronEne11x11;
220  std::vector<double> *t_photonEne11x11;
221  std::vector<double> *t_eleEne11x11;
222  std::vector<double> *t_muEne11x11;
223 
224  std::vector<double> *t_maxNearP9x9;
225  std::vector<double> *t_cHadronEne9x9, *t_cHadronEne9x9_1, *t_cHadronEne9x9_2, *t_cHadronEne9x9_3;
226  std::vector<double> *t_nHadronEne9x9;
227  std::vector<double> *t_photonEne9x9;
228  std::vector<double> *t_eleEne9x9;
229  std::vector<double> *t_muEne9x9;
230 
231  std::vector<double> *t_maxNearP7x7;
232  std::vector<double> *t_cHadronEne7x7, *t_cHadronEne7x7_1, *t_cHadronEne7x7_2, *t_cHadronEne7x7_3;
233  std::vector<double> *t_nHadronEne7x7;
234  std::vector<double> *t_photonEne7x7;
235  std::vector<double> *t_eleEne7x7;
236  std::vector<double> *t_muEne7x7;
237 
238  std::vector<double> *t_maxNearP3x3;
239  std::vector<double> *t_cHadronEne3x3, *t_cHadronEne3x3_1, *t_cHadronEne3x3_2, *t_cHadronEne3x3_3;
240  std::vector<double> *t_nHadronEne3x3;
241  std::vector<double> *t_photonEne3x3;
242  std::vector<double> *t_eleEne3x3;
243  std::vector<double> *t_muEne3x3;
244 
245  std::vector<double> *t_maxNearP1x1;
246  std::vector<double> *t_cHadronEne1x1, *t_cHadronEne1x1_1, *t_cHadronEne1x1_2, *t_cHadronEne1x1_3;
247  std::vector<double> *t_nHadronEne1x1;
248  std::vector<double> *t_photonEne1x1;
249  std::vector<double> *t_eleEne1x1;
250  std::vector<double> *t_muEne1x1;
251 
252  std::vector<double> *t_maxNearPHC1x1;
253  std::vector<double> *t_cHadronEneHC1x1, *t_cHadronEneHC1x1_1, *t_cHadronEneHC1x1_2, *t_cHadronEneHC1x1_3;
254  std::vector<double> *t_nHadronEneHC1x1;
255  std::vector<double> *t_photonEneHC1x1;
256  std::vector<double> *t_eleEneHC1x1;
257  std::vector<double> *t_muEneHC1x1;
258 
259  std::vector<double> *t_maxNearPHC3x3;
260  std::vector<double> *t_cHadronEneHC3x3, *t_cHadronEneHC3x3_1, *t_cHadronEneHC3x3_2, *t_cHadronEneHC3x3_3;
261  std::vector<double> *t_nHadronEneHC3x3;
262  std::vector<double> *t_photonEneHC3x3;
263  std::vector<double> *t_eleEneHC3x3;
264  std::vector<double> *t_muEneHC3x3;
265 
266  std::vector<double> *t_maxNearPHC5x5;
267  std::vector<double> *t_cHadronEneHC5x5, *t_cHadronEneHC5x5_1, *t_cHadronEneHC5x5_2, *t_cHadronEneHC5x5_3;
268  std::vector<double> *t_nHadronEneHC5x5;
269  std::vector<double> *t_photonEneHC5x5;
270  std::vector<double> *t_eleEneHC5x5;
271  std::vector<double> *t_muEneHC5x5;
272 
273  std::vector<double> *t_maxNearPHC7x7;
274  std::vector<double> *t_cHadronEneHC7x7, *t_cHadronEneHC7x7_1, *t_cHadronEneHC7x7_2, *t_cHadronEneHC7x7_3;
275  std::vector<double> *t_nHadronEneHC7x7;
276  std::vector<double> *t_photonEneHC7x7;
277  std::vector<double> *t_eleEneHC7x7;
278  std::vector<double> *t_muEneHC7x7;
279 
280  std::vector<double> *t_maxNearPR;
281  std::vector<double> *t_cHadronEneR, *t_cHadronEneR_1, *t_cHadronEneR_2, *t_cHadronEneR_3;
282  std::vector<double> *t_nHadronEneR;
283  std::vector<double> *t_photonEneR;
284  std::vector<double> *t_eleEneR;
285  std::vector<double> *t_muEneR;
286 
287  std::vector<double> *t_maxNearPIsoR;
288  std::vector<double> *t_cHadronEneIsoR, *t_cHadronEneIsoR_1, *t_cHadronEneIsoR_2, *t_cHadronEneIsoR_3;
289  std::vector<double> *t_nHadronEneIsoR;
290  std::vector<double> *t_photonEneIsoR;
291  std::vector<double> *t_eleEneIsoR;
292  std::vector<double> *t_muEneIsoR;
293 
294  std::vector<double> *t_maxNearPHCR;
295  std::vector<double> *t_cHadronEneHCR, *t_cHadronEneHCR_1, *t_cHadronEneHCR_2, *t_cHadronEneHCR_3;
296  std::vector<double> *t_nHadronEneHCR;
297  std::vector<double> *t_photonEneHCR;
298  std::vector<double> *t_eleEneHCR;
299  std::vector<double> *t_muEneHCR;
300 
301  std::vector<double> *t_maxNearPIsoHCR;
302  std::vector<double> *t_cHadronEneIsoHCR, *t_cHadronEneIsoHCR_1, *t_cHadronEneIsoHCR_2, *t_cHadronEneIsoHCR_3;
303  std::vector<double> *t_nHadronEneIsoHCR;
304  std::vector<double> *t_photonEneIsoHCR;
305  std::vector<double> *t_eleEneIsoHCR;
306  std::vector<double> *t_muEneIsoHCR;
307 
308  std::vector<int> *t_L1Decision;
309  std::vector<double> *t_L1CenJetPt, *t_L1CenJetEta, *t_L1CenJetPhi;
310  std::vector<double> *t_L1FwdJetPt, *t_L1FwdJetEta, *t_L1FwdJetPhi;
311  std::vector<double> *t_L1TauJetPt, *t_L1TauJetEta, *t_L1TauJetPhi;
312  std::vector<double> *t_L1MuonPt, *t_L1MuonEta, *t_L1MuonPhi;
313  std::vector<double> *t_L1IsoEMPt, *t_L1IsoEMEta, *t_L1IsoEMPhi;
314  std::vector<double> *t_L1NonIsoEMPt, *t_L1NonIsoEMEta, *t_L1NonIsoEMPhi;
315  std::vector<double> *t_L1METPt, *t_L1METEta, *t_L1METPhi;
316 
317  spr::genSimInfo isoinfo1x1, isoinfo3x3, isoinfo7x7, isoinfo9x9, isoinfo11x11;
318  spr::genSimInfo isoinfo15x15, isoinfo21x21, isoinfo25x25, isoinfo31x31;
319  spr::genSimInfo isoinfoHC1x1, isoinfoHC3x3, isoinfoHC5x5, isoinfoHC7x7;
320  spr::genSimInfo isoinfoR, isoinfoIsoR, isoinfoHCR, isoinfoIsoHCR;
321 
322 };
323 
325  ptMin_(iConfig.getUntrackedParameter<double>("PTMin", 1.0)),
326  etaMax_(iConfig.getUntrackedParameter<double>("MaxChargedHadronEta", 2.5)),
327  pCutIsolate_(iConfig.getUntrackedParameter<double>("PMaxIsolation",20.0)),
328  a_Isolation_(iConfig.getUntrackedParameter<bool>("UseConeIsolation",false)),
329  genSrc_(iConfig.getUntrackedParameter("GenSrc",std::string("generatorSmeared"))),
330  useHepMC_(iConfig.getUntrackedParameter<bool>("UseHepMC", false)),
331  a_coneR_(iConfig.getUntrackedParameter<double>("ConeRadius",34.98)),
332  a_mipR_(iConfig.getUntrackedParameter<double>("ConeRadiusMIP",14.0)),
333  debugL1Info_(iConfig.getUntrackedParameter<bool>("DebugL1Info",false)),
334  verbosity_(iConfig.getUntrackedParameter<int>("Verbosity", 0)) {
335 
336  usesResource(TFileService::kSharedResource);
337 
338  a_charIsoR_ = a_coneR_ + 28.9;
339  a_neutIsoR_ = a_charIsoR_*0.726;
340 
341  tok_hepmc_ = consumes<edm::HepMCProduct>(edm::InputTag(genSrc_));
342  tok_genParticles_ = consumes<reco::GenParticleCollection>(edm::InputTag(genSrc_));
343 
344  edm::InputTag L1extraTauJetSource_ = iConfig.getParameter<edm::InputTag>("L1extraTauJetSource");
345  edm::InputTag L1extraCenJetSource_ = iConfig.getParameter<edm::InputTag>("L1extraCenJetSource");
346  edm::InputTag L1extraFwdJetSource_ = iConfig.getParameter<edm::InputTag>("L1extraFwdJetSource");
347  edm::InputTag L1extraMuonSource_ = iConfig.getParameter<edm::InputTag>("L1extraMuonSource");
348  edm::InputTag L1extraIsoEmSource_ = iConfig.getParameter<edm::InputTag>("L1extraIsoEmSource");
349  edm::InputTag L1extraNonIsoEmSource_ = iConfig.getParameter<edm::InputTag>("L1extraNonIsoEmSource");
350  edm::InputTag L1GTReadoutRcdSource_ = iConfig.getParameter<edm::InputTag>("L1GTReadoutRcdSource");
351  edm::InputTag L1GTObjectMapRcdSource_= iConfig.getParameter<edm::InputTag>("L1GTObjectMapRcdSource");
352  tok_L1GTrorsrc_ = consumes<L1GlobalTriggerReadoutRecord>(L1GTReadoutRcdSource_);
353  tok_L1GTobjmap_ = consumes<L1GlobalTriggerObjectMapRecord>(L1GTObjectMapRcdSource_);
354  tok_L1extMusrc_ = consumes<l1extra::L1MuonParticleCollection>(L1extraMuonSource_);
355  tok_L1Em_ = consumes<l1extra::L1EmParticleCollection>(L1extraIsoEmSource_);
356  tok_L1extNonIsoEm_= consumes<l1extra::L1EmParticleCollection>(L1extraNonIsoEmSource_);
357  tok_L1extTauJet_ = consumes<l1extra::L1JetParticleCollection>(L1extraTauJetSource_);
358  tok_L1extCenJet_ = consumes<l1extra::L1JetParticleCollection>(L1extraCenJetSource_);
359  tok_L1extFwdJet_ = consumes<l1extra::L1JetParticleCollection>(L1extraFwdJetSource_);
360 
361  if (!strcmp("Dummy", genSrc_.c_str())) {
362  if (useHepMC_) genSrc_ = "generatorSmeared";
363  else genSrc_ = "genParticles";
364  }
365  edm::LogVerbatim("IsoTrack")
366  << "Generator Source " << genSrc_ << " Use HepMC " << useHepMC_
367  << " ptMin " << ptMin_ << " etaMax " << etaMax_
368  << "\n a_coneR " << a_coneR_ << " a_charIsoR " << a_charIsoR_
369  << " a_neutIsoR " << a_neutIsoR_ << " a_mipR " << a_mipR_
370  << " debug " << verbosity_ << " debugL1Info " << debugL1Info_ << "\n"
371  << " Isolation Flag " << a_Isolation_ << " with cut "
372  << pCutIsolate_ << " GeV";
373 }
374 
376 
378  desc.addUntracked<std::string>("GenSrc", "genParticles");
379  desc.addUntracked<bool>("UseHepMC", false);
380  desc.addUntracked<double>("ChargedHadronSeedP", 1.0);
381  desc.addUntracked<double>("PTMin", 1.0);
382  desc.addUntracked<double>("MaxChargedHadronEta",2.5);
383  desc.addUntracked<double>("ConeRadius", 34.98);
384  desc.addUntracked<double>("ConeRadiusMIP", 14.0);
385  desc.addUntracked<bool>("UseConeIsolation", true);
386  desc.addUntracked<double>("PMaxIsolation", 5.0);
387  desc.addUntracked<int>("Verbosity", 0);
388  desc.addUntracked<bool>("DebugL1Info", false);
389  desc.addUntracked<edm::InputTag>("L1extraTauJetSource", edm::InputTag("l1extraParticles", "Tau"));
390  desc.addUntracked<edm::InputTag>("L1extraCenJetSource", edm::InputTag("l1extraParticles", "Central"));
391  desc.addUntracked<edm::InputTag>("L1extraFwdJetSource", edm::InputTag("l1extraParticles", "Forward"));
392  desc.addUntracked<edm::InputTag>("L1extraMuonSource", edm::InputTag("l1extraParticles"));
393  desc.addUntracked<edm::InputTag>("L1extraIsoEmSource", edm::InputTag("l1extraParticles","Isolated"));
394  desc.addUntracked<edm::InputTag>("L1extraNonIsoEmSource", edm::InputTag("l1extraParticles","NonIsolated"));
395  desc.addUntracked<edm::InputTag>("L1GTReadoutRcdSource", edm::InputTag("gtDigis"));
396  desc.addUntracked<edm::InputTag>("L1GTObjectMapRcdSource",edm::InputTag("hltL1GtObjectMap"));
397  descriptions.add("isolatedGenParticles",desc);
398 }
399 
401 
403 
404  nEventProc++;
405 
407  iSetup.get<IdealMagneticFieldRecord>().get(bFieldH);
408  const MagneticField *bField = bFieldH.product();
409 
410  // get particle data table
412  iSetup.getData(pdt);
413 
414  // get handle to HEPMCProduct
417  if (useHepMC_) iEvent.getByToken(tok_hepmc_, hepmc);
418  else iEvent.getByToken(tok_genParticles_, genParticles);
419 
421  iSetup.get<CaloGeometryRecord>().get(pG);
422  const CaloGeometry* geo = pG.product();
423 
424  edm::ESHandle<CaloTopology> theCaloTopology;
425  iSetup.get<CaloTopologyRecord>().get(theCaloTopology);
426  const CaloTopology *caloTopology = theCaloTopology.product();
427 
429  iSetup.get<HcalRecNumberingRecord>().get(htopo);
430  const HcalTopology* theHBHETopology = htopo.product();
431 
432  //===================== save L1 Trigger information =======================
433  // get L1TriggerReadout records
435  iEvent.getByToken(tok_L1GTrorsrc_, gtRecord);
436 
438  iEvent.getByToken(tok_L1GTobjmap_, gtOMRec);
439 
440  // sanity check on L1 Trigger Records
441  if (!gtRecord.isValid()) {
442  edm::LogVerbatim("IsoTrack") << "\nL1GlobalTriggerReadoutRecord with \n\n"
443  << "not found\n --> returning false by "
444  << "default!\n";
445  }
446  if (!gtOMRec.isValid()) {
447  edm::LogVerbatim("IsoTrack") << "\nL1GlobalTriggerObjectMapRecord with \n\n"
448  << "not found\n --> returning false by "
449  << "default!\n";
450  }
451 
452  // L1 decision word
453  const DecisionWord dWord = gtRecord->decisionWord();
454  unsigned int numberTriggerBits= dWord.size();
455 
456  // just print the L1Bit number and AlgoName in first event
457  if ( !initL1){
458  initL1=true;
459  edm::LogVerbatim("IsoTrack") << "\nNumber of Trigger bits "
460  << numberTriggerBits << "\n";
461  edm::LogVerbatim("IsoTrack") << "\tBit \t L1 Algorithm ";
462 
463  // get ObjectMaps from ObjectMapRecord
464  const std::vector<L1GlobalTriggerObjectMap>& objMapVec = gtOMRec->gtObjectMap();
465  for (std::vector<L1GlobalTriggerObjectMap>::const_iterator itMap = objMapVec.begin();
466  itMap != objMapVec.end(); ++itMap) {
467 
468  // Get trigger bits
469  int itrig = (*itMap).algoBitNumber();
470 
471  // Get trigger names
472  algoBitToName_[itrig] = (*itMap).algoName();
473 
474  edm::LogVerbatim("IsoTrack") << "\t" << itrig << "\t"
475  << algoBitToName_[itrig];
476 
477  // store the algoNames as bin labels of a histogram
478  h_L1AlgoNames->GetXaxis()->SetBinLabel(itrig+1, algoBitToName_[itrig].c_str());
479 
480  } // end of for loop
481  } // end of initL1
482 
483  // save L1 decision for each event
484  for (unsigned int iBit = 0; iBit < numberTriggerBits; ++iBit) {
485  bool accept = dWord[iBit];
486  t_L1Decision->push_back(accept);
487  // fill the trigger map
488  if(debugL1Info_) edm::LogVerbatim("IsoTrack") << "Bit " << iBit << " "
489  << algoBitToName_[iBit] << " "
490  << accept;
491 
492  if(accept) h_L1AlgoNames->Fill(iBit);
493  }
494 
495  //===================
496  // L1Taus
498  iEvent.getByToken(tok_L1extTauJet_,l1TauHandle);
499  l1extra::L1JetParticleCollection::const_iterator itr;
500  for(itr = l1TauHandle->begin(); itr != l1TauHandle->end(); ++itr ) {
501  t_L1TauJetPt ->push_back( itr->pt() );
502  t_L1TauJetEta ->push_back( itr->eta() );
503  t_L1TauJetPhi ->push_back( itr->phi() );
504  if(debugL1Info_) {
505  edm::LogVerbatim("IsoTrack") << "tauJ p/pt " << itr->momentum() << " "
506  << itr->pt() << " eta/phi " << itr->eta()
507  << " " << itr->phi();
508  }
509  }
510 
511  // L1 Central Jets
513  iEvent.getByToken(tok_L1extCenJet_,l1CenJetHandle);
514  for( itr = l1CenJetHandle->begin(); itr != l1CenJetHandle->end(); ++itr ) {
515  t_L1CenJetPt ->push_back( itr->pt() );
516  t_L1CenJetEta ->push_back( itr->eta() );
517  t_L1CenJetPhi ->push_back( itr->phi() );
518  if(debugL1Info_) {
519  edm::LogVerbatim("IsoTrack") << "cenJ p/pt " << itr->momentum()
520  << " " << itr->pt() << " eta/phi "
521  << itr->eta() << " " << itr->phi();
522  }
523  }
524  // L1 Forward Jets
526  iEvent.getByToken(tok_L1extFwdJet_,l1FwdJetHandle);
527  for( itr = l1FwdJetHandle->begin(); itr != l1FwdJetHandle->end(); ++itr ) {
528  t_L1FwdJetPt ->push_back( itr->pt() );
529  t_L1FwdJetEta ->push_back( itr->eta() );
530  t_L1FwdJetPhi ->push_back( itr->phi() );
531  if(debugL1Info_) {
532  edm::LogVerbatim("IsoTrack") << "fwdJ p/pt " << itr->momentum() << " "
533  << itr->pt() << " eta/phi " << itr->eta()
534  << " " << itr->phi();
535  }
536  }
537  // L1 Isolated EM onjects
538  l1extra::L1EmParticleCollection::const_iterator itrEm;
540  iEvent.getByToken(tok_L1Em_, l1IsoEmHandle);
541  for( itrEm = l1IsoEmHandle->begin(); itrEm != l1IsoEmHandle->end(); ++itrEm ) {
542  t_L1IsoEMPt ->push_back( itrEm->pt() );
543  t_L1IsoEMEta ->push_back( itrEm->eta() );
544  t_L1IsoEMPhi ->push_back( itrEm->phi() );
545  if(debugL1Info_) {
546  edm::LogVerbatim("IsoTrack") << "isoEm p/pt " << itrEm->momentum()
547  << " " << itrEm->pt() << " eta/phi "
548  << itrEm->eta() << " " << itrEm->phi();
549  }
550  }
551  // L1 Non-Isolated EM onjects
553  iEvent.getByToken(tok_L1extNonIsoEm_, l1NonIsoEmHandle);
554  for( itrEm = l1NonIsoEmHandle->begin(); itrEm != l1NonIsoEmHandle->end(); ++itrEm ) {
555  t_L1NonIsoEMPt ->push_back( itrEm->pt() );
556  t_L1NonIsoEMEta ->push_back( itrEm->eta() );
557  t_L1NonIsoEMPhi ->push_back( itrEm->phi() );
558  if(debugL1Info_) {
559  edm::LogVerbatim("IsoTrack") << "nonIsoEm p/pt " << itrEm->momentum()
560  << " " << itrEm->pt() << " eta/phi "
561  << itrEm->eta() << " " << itrEm->phi();
562  }
563  }
564 
565  // L1 Muons
566  l1extra::L1MuonParticleCollection::const_iterator itrMu;
568  iEvent.getByToken(tok_L1extMusrc_, l1MuHandle);
569  for( itrMu = l1MuHandle->begin(); itrMu != l1MuHandle->end(); ++itrMu ) {
570  t_L1MuonPt ->push_back( itrMu->pt() );
571  t_L1MuonEta ->push_back( itrMu->eta() );
572  t_L1MuonPhi ->push_back( itrMu->phi() );
573  if(debugL1Info_) {
574  edm::LogVerbatim("IsoTrack") << "l1muon p/pt " << itrMu->momentum()
575  << " " << itrMu->pt() << " eta/phi "
576  << itrMu->eta() << " " << itrMu->phi();
577  }
578  }
579  //=====================================================================
580 
581  GlobalPoint posVec, posECAL;
583  if (verbosity_>0) edm::LogVerbatim("IsoTrack") << "event number "
584  << iEvent.id().event();
585  if (useHepMC_) {
586  const HepMC::GenEvent *myGenEvent = hepmc->GetEvent();
587  std::vector<spr::propagatedGenTrackID> trackIDs = spr::propagateCALO(myGenEvent, pdt, geo, bField, etaMax_, false);
588 
589  for (unsigned int indx=0; indx<trackIDs.size(); ++indx) {
590  int charge = trackIDs[indx].charge;
591  HepMC::GenEvent::particle_const_iterator p = trackIDs[indx].trkItr;
592  momVec = math::XYZTLorentzVector((*p)->momentum().px(), (*p)->momentum().py(), (*p)->momentum().pz(), (*p)->momentum().e());
593  if (verbosity_>1)
594  edm::LogVerbatim("IsoTrack") << "trkIndx " << indx << " pdgid "
595  << trackIDs[indx].pdgId << " charge "
596  << charge << " momVec " << momVec;
597  // only stable particles avoiding electrons and muons
598  if (trackIDs[indx].ok && (std::abs(trackIDs[indx].pdgId)<11 ||
599  std::abs(trackIDs[indx].pdgId)>=21)) {
600  // consider particles within a phased space
601  if (momVec.Pt() > ptMin_ && std::abs(momVec.eta()) < etaMax_) {
602  posVec = GlobalPoint(0.1*(*p)->production_vertex()->position().x(),
603  0.1*(*p)->production_vertex()->position().y(),
604  0.1*(*p)->production_vertex()->position().z());
605  posECAL = trackIDs[indx].pointECAL;
606  fillTrack (posVec, momVec, posECAL, trackIDs[indx].pdgId, trackIDs[indx].okECAL, true);
607  if (verbosity_>1)
608  edm::LogVerbatim("IsoTrack") << "posECAL " << posECAL << " okECAL "
609  << trackIDs[indx].okECAL << "okHCAL "
610  << trackIDs[indx].okHCAL;
611  if (trackIDs[indx].okECAL) {
612  if ( std::abs(charge)>0 ) {
613  spr::eGenSimInfo(trackIDs[indx].detIdECAL, p, trackIDs, geo, caloTopology, 0, 0, isoinfo1x1, false);
614  spr::eGenSimInfo(trackIDs[indx].detIdECAL, p, trackIDs, geo, caloTopology, 1, 1, isoinfo3x3, false);
615  spr::eGenSimInfo(trackIDs[indx].detIdECAL, p, trackIDs, geo, caloTopology, 3, 3, isoinfo7x7, false);
616  spr::eGenSimInfo(trackIDs[indx].detIdECAL, p, trackIDs, geo, caloTopology, 4, 4, isoinfo9x9, false);
617  spr::eGenSimInfo(trackIDs[indx].detIdECAL, p, trackIDs, geo, caloTopology, 5, 5, isoinfo11x11, false);
618  spr::eGenSimInfo(trackIDs[indx].detIdECAL, p, trackIDs, geo, caloTopology, 7, 7, isoinfo15x15, false);
619  spr::eGenSimInfo(trackIDs[indx].detIdECAL, p, trackIDs, geo, caloTopology,10,10, isoinfo21x21, false);
620  spr::eGenSimInfo(trackIDs[indx].detIdECAL, p, trackIDs, geo, caloTopology,12,12, isoinfo25x25, false);
621  spr::eGenSimInfo(trackIDs[indx].detIdECAL, p, trackIDs, geo, caloTopology,15,15, isoinfo31x31, false);
622  spr::eGenSimInfo(trackIDs[indx].detIdECAL, p, trackIDs, geo, caloTopology, a_mipR_, trackIDs[indx].directionECAL, isoinfoR, false);
623  spr::eGenSimInfo(trackIDs[indx].detIdECAL, p, trackIDs, geo, caloTopology, a_neutIsoR_, trackIDs[indx].directionECAL, isoinfoIsoR, false);
624  if (trackIDs[indx].okHCAL) {
625  spr::hGenSimInfo(trackIDs[indx].detIdHCAL, p, trackIDs, theHBHETopology, 0, 0, isoinfoHC1x1, false);
626  spr::hGenSimInfo(trackIDs[indx].detIdHCAL, p, trackIDs, theHBHETopology, 1, 1, isoinfoHC3x3, false);
627  spr::hGenSimInfo(trackIDs[indx].detIdHCAL, p, trackIDs, theHBHETopology, 2, 2, isoinfoHC5x5, false);
628  spr::hGenSimInfo(trackIDs[indx].detIdHCAL, p, trackIDs, theHBHETopology, 3, 3, isoinfoHC7x7, false);
629  spr::hGenSimInfo(trackIDs[indx].detIdHCAL, p, trackIDs, geo, theHBHETopology, a_coneR_, trackIDs[indx].directionHCAL, isoinfoHCR, false);
630  spr::hGenSimInfo(trackIDs[indx].detIdHCAL, p, trackIDs, geo, theHBHETopology, a_charIsoR_, trackIDs[indx].directionHCAL, isoinfoIsoHCR, false);
631  }
632 
633  bool saveTrack = true;
634  if (a_Isolation_) saveTrack = (isoinfoR.maxNearP < pCutIsolate_);
635  else saveTrack = (isoinfo7x7.maxNearP < pCutIsolate_);
636  if (saveTrack) fillIsolatedTrack(momVec, posECAL, trackIDs[indx].pdgId);
637  }
638  }
639  } else { // stabale particles within |eta|=2.5
640  fillTrack (posVec, momVec, posECAL, 0, false, false);
641  }
642  }
643  }
644 
645  unsigned int indx;
646  HepMC::GenEvent::particle_const_iterator p;
647  for (p=myGenEvent->particles_begin(),indx=0; p!=myGenEvent->particles_end();
648  ++p,++indx) {
649  int pdgId = ((*p)->pdg_id());
650  int ix = particleCode(pdgId);
651  if (ix >= 0) {
652  double pp = (*p)->momentum().rho();
653  double eta = (*p)->momentum().eta();
654  h_pEta[ix]->Fill(pp,eta);
655  }
656  }
657  } else { // loop over gen particles
658  std::vector<spr::propagatedGenParticleID> trackIDs = spr::propagateCALO(genParticles, pdt, geo, bField, etaMax_, (verbosity_>0));
659 
660  for (unsigned int indx=0; indx<trackIDs.size(); ++indx) {
661  int charge = trackIDs[indx].charge;
662  reco::GenParticleCollection::const_iterator p = trackIDs[indx].trkItr;
663 
664  momVec = math::XYZTLorentzVector(p->momentum().x(), p->momentum().y(), p->momentum().z(), p->energy());
665  if (verbosity_>1)
666  edm::LogVerbatim("IsoTrack") << "trkIndx " << indx << " pdgid "
667  << trackIDs[indx].pdgId << " charge "
668  << charge << " momVec " << momVec;
669  // only stable particles avoiding electrons and muons
670  if (trackIDs[indx].ok && std::abs(trackIDs[indx].pdgId)>21) {
671  // consider particles within a phased space
672  if (verbosity_>1)
673  edm::LogVerbatim("IsoTrack") << " pt " << momVec.Pt() << " eta "
674  << momVec.eta();
675  if (momVec.Pt() > ptMin_ && std::abs(momVec.eta()) < etaMax_) {
676  posVec = GlobalPoint(p->vertex().x(), p->vertex().y(), p->vertex().z());
677  posECAL = trackIDs[indx].pointECAL;
678  if (verbosity_>0)
679  edm::LogVerbatim("IsoTrack") << "posECAL " << posECAL << " okECAL "
680  << trackIDs[indx].okECAL << "okHCAL "
681  << trackIDs[indx].okHCAL;
682  fillTrack (posVec, momVec, posECAL, trackIDs[indx].pdgId, trackIDs[indx].okECAL, true);
683  if (trackIDs[indx].okECAL) {
684  if ( std::abs(charge)>0 ) {
685  spr::eGenSimInfo(trackIDs[indx].detIdECAL, p, trackIDs, geo, caloTopology, 0, 0, isoinfo1x1, verbosity_>1);
686  spr::eGenSimInfo(trackIDs[indx].detIdECAL, p, trackIDs, geo, caloTopology, 1, 1, isoinfo3x3, verbosity_>0);
687  spr::eGenSimInfo(trackIDs[indx].detIdECAL, p, trackIDs, geo, caloTopology, 3, 3, isoinfo7x7, verbosity_>1);
688  spr::eGenSimInfo(trackIDs[indx].detIdECAL, p, trackIDs, geo, caloTopology, 4, 4, isoinfo9x9, verbosity_>1);
689  spr::eGenSimInfo(trackIDs[indx].detIdECAL, p, trackIDs, geo, caloTopology, 5, 5, isoinfo11x11, verbosity_>1);
690  spr::eGenSimInfo(trackIDs[indx].detIdECAL, p, trackIDs, geo, caloTopology, 7, 7, isoinfo15x15, verbosity_>1);
691  spr::eGenSimInfo(trackIDs[indx].detIdECAL, p, trackIDs, geo, caloTopology,10,10, isoinfo21x21, verbosity_>1);
692  spr::eGenSimInfo(trackIDs[indx].detIdECAL, p, trackIDs, geo, caloTopology,12,12, isoinfo25x25, verbosity_>1);
693  spr::eGenSimInfo(trackIDs[indx].detIdECAL, p, trackIDs, geo, caloTopology,15,15, isoinfo31x31, verbosity_>1);
694  spr::eGenSimInfo(trackIDs[indx].detIdECAL, p, trackIDs, geo, caloTopology, a_mipR_, trackIDs[indx].directionECAL, isoinfoR, verbosity_>1);
695  spr::eGenSimInfo(trackIDs[indx].detIdECAL, p, trackIDs, geo, caloTopology, a_neutIsoR_, trackIDs[indx].directionECAL, isoinfoIsoR, verbosity_>1);
696  if (trackIDs[indx].okHCAL) {
697  spr::hGenSimInfo(trackIDs[indx].detIdHCAL, p, trackIDs, theHBHETopology, 0, 0, isoinfoHC1x1, verbosity_>1);
698  spr::hGenSimInfo(trackIDs[indx].detIdHCAL, p, trackIDs, theHBHETopology, 1, 1, isoinfoHC3x3, verbosity_>1);
699  spr::hGenSimInfo(trackIDs[indx].detIdHCAL, p, trackIDs, theHBHETopology, 2, 2, isoinfoHC5x5, verbosity_>1);
700  spr::hGenSimInfo(trackIDs[indx].detIdHCAL, p, trackIDs, theHBHETopology, 3, 3, isoinfoHC7x7, verbosity_>1);
701  spr::hGenSimInfo(trackIDs[indx].detIdHCAL, p, trackIDs, geo, theHBHETopology, a_coneR_, trackIDs[indx].directionHCAL, isoinfoHCR, verbosity_>1);
702  spr::hGenSimInfo(trackIDs[indx].detIdHCAL, p, trackIDs, geo, theHBHETopology, a_charIsoR_, trackIDs[indx].directionHCAL, isoinfoIsoHCR, verbosity_>1);
703  }
704 
705  bool saveTrack = true;
706  if (a_Isolation_) saveTrack = (isoinfoIsoR.maxNearP < pCutIsolate_);
707  else saveTrack = (isoinfo7x7.maxNearP < pCutIsolate_);
708  if (saveTrack) fillIsolatedTrack(momVec, posECAL, trackIDs[indx].pdgId);
709  }
710  }
711  } else { // stabale particles within |eta|=2.5
712  fillTrack (posVec, momVec, posECAL, 0, false, false);
713  }
714  }
715  } // loop over gen particles
716 
717  unsigned int indx;
718  reco::GenParticleCollection::const_iterator p;
719  for (p=genParticles->begin(),indx=0; p!=genParticles->end(); ++p,++indx) {
720  int pdgId = (p->pdgId());
721  int ix = particleCode(pdgId);
722  if (ix >= 0) {
723  double pp = (p->momentum()).R();
724  double eta = (p->momentum()).Eta();
725  h_pEta[ix]->Fill(pp,eta);
726  }
727  }
728 
729  }
730 
731  //t_nEvtProc->push_back(nEventProc);
732  h_NEventProc->SetBinContent(1,nEventProc);
733  tree_->Fill();
734 
735 }
736 
738 
739  nEventProc=0;
740 
741  initL1 = false;
742 
743  double tempgen_TH[NPBins_+1] = { 0.0, 5.0, 12.0, 300.0};
744  for(int i=0; i<=NPBins_; i++) genPartPBins_[i] = tempgen_TH[i];
745 
746  double tempgen_Eta[NEtaBins_+1] = {0.0, 0.5, 1.1, 1.7, 2.3};
747  for(int i=0; i<=NEtaBins_; i++) genPartEtaBins_[i] = tempgen_Eta[i];
748 
749  bookHistograms();
750 
751 }
752 
753 double IsolatedGenParticles::deltaPhi(double v1, double v2) {
754  // Computes the correctly normalized phi difference
755  // v1, v2 = phi of object 1 and 2
756 
757  double diff = std::abs(v2 - v1);
758  double corr = 2*M_PI - diff;
759  return ((diff < M_PI) ? diff : corr);
760 }
761 
762 double IsolatedGenParticles::deltaR(double eta1, double phi1, double eta2, double phi2) {
763  double deta = eta1 - eta2;
764  double dphi = deltaPhi(phi1, phi2);
765  return std::sqrt(deta*deta + dphi*dphi);
766 }
767 
768 double IsolatedGenParticles::deltaR2(double eta1, double phi1, double eta2, double phi2) {
769  double deta = eta1 - eta2;
770  double dphi = deltaPhi(phi1, phi2);
771  return deta*deta + dphi*dphi;
772 }
773 
774 void IsolatedGenParticles::fillTrack (GlobalPoint & posVec, math::XYZTLorentzVector & momVec, GlobalPoint & posECAL, int pdgId, bool okECAL, bool accept) {
775 
776  if (accept) {
777  t_isoTrkPAll ->push_back( momVec.P() );
778  t_isoTrkPtAll ->push_back( momVec.Pt() );
779  t_isoTrkPhiAll ->push_back( momVec.phi() );
780  t_isoTrkEtaAll ->push_back( momVec.eta() );
781  t_isoTrkPdgIdAll ->push_back( pdgId ) ;
782  if (okECAL) {
783  double phi1 = momVec.phi();
784  double phi2 = (posECAL - posVec).phi();
785  double dphi = deltaPhi( phi1, phi2 );
786  double deta = momVec.eta() - (posECAL - posVec).eta();
787  t_isoTrkDPhiAll ->push_back( dphi );
788  t_isoTrkDEtaAll ->push_back( deta );
789  } else {
790  t_isoTrkDPhiAll ->push_back( 999.0 );
791  t_isoTrkDEtaAll ->push_back( 999.0 );
792  }
793  } else {
794  t_isoTrkDPhiAll ->push_back( -999.0 );
795  t_isoTrkDEtaAll ->push_back( -999.0 );
796  }
797 }
798 
800 
801  t_isoTrkP ->push_back(momVec.P());
802  t_isoTrkPt ->push_back(momVec.Pt());
803  t_isoTrkEne ->push_back(momVec.E());
804  t_isoTrkEta ->push_back(momVec.eta());
805  t_isoTrkPhi ->push_back(momVec.phi());
806  t_isoTrkEtaEC ->push_back(posECAL.eta());
807  t_isoTrkPhiEC ->push_back(posECAL.phi());
808  t_isoTrkPdgId ->push_back(pdgId);
809 
817  t_eleEne31x31 ->push_back(isoinfo31x31.eleEne);
818  t_muEne31x31 ->push_back(isoinfo31x31.muEne);
819 
827  t_eleEne25x25 ->push_back(isoinfo25x25.eleEne);
828  t_muEne25x25 ->push_back(isoinfo25x25.muEne);
829 
837  t_eleEne21x21 ->push_back(isoinfo21x21.eleEne);
838  t_muEne21x21 ->push_back(isoinfo21x21.muEne);
839 
847  t_eleEne15x15 ->push_back(isoinfo15x15.eleEne);
848  t_muEne15x15 ->push_back(isoinfo15x15.muEne);
849 
857  t_eleEne11x11 ->push_back(isoinfo11x11.eleEne);
858  t_muEne11x11 ->push_back(isoinfo11x11.muEne);
859 
860  t_maxNearP9x9 ->push_back(isoinfo9x9.maxNearP);
862  t_cHadronEne9x9_1 ->push_back(isoinfo9x9.cHadronEne_[0]);
863  t_cHadronEne9x9_2 ->push_back(isoinfo9x9.cHadronEne_[1]);
864  t_cHadronEne9x9_3 ->push_back(isoinfo9x9.cHadronEne_[2]);
866  t_photonEne9x9 ->push_back(isoinfo9x9.photonEne);
867  t_eleEne9x9 ->push_back(isoinfo9x9.eleEne);
868  t_muEne9x9 ->push_back(isoinfo9x9.muEne);
869 
870  t_maxNearP7x7 ->push_back(isoinfo7x7.maxNearP);
872  t_cHadronEne7x7_1 ->push_back(isoinfo7x7.cHadronEne_[0]);
873  t_cHadronEne7x7_2 ->push_back(isoinfo7x7.cHadronEne_[1]);
874  t_cHadronEne7x7_3 ->push_back(isoinfo7x7.cHadronEne_[2]);
876  t_photonEne7x7 ->push_back(isoinfo7x7.photonEne);
877  t_eleEne7x7 ->push_back(isoinfo7x7.eleEne);
878  t_muEne7x7 ->push_back(isoinfo7x7.muEne);
879 
880  t_maxNearP3x3 ->push_back(isoinfo3x3.maxNearP);
882  t_cHadronEne3x3_1 ->push_back(isoinfo3x3.cHadronEne_[0]);
883  t_cHadronEne3x3_2 ->push_back(isoinfo3x3.cHadronEne_[1]);
884  t_cHadronEne3x3_3 ->push_back(isoinfo3x3.cHadronEne_[2]);
886  t_photonEne3x3 ->push_back(isoinfo3x3.photonEne);
887  t_eleEne3x3 ->push_back(isoinfo3x3.eleEne);
888  t_muEne3x3 ->push_back(isoinfo3x3.muEne);
889 
890  t_maxNearP1x1 ->push_back(isoinfo1x1.maxNearP);
892  t_cHadronEne1x1_1 ->push_back(isoinfo1x1.cHadronEne_[0]);
893  t_cHadronEne1x1_2 ->push_back(isoinfo1x1.cHadronEne_[1]);
894  t_cHadronEne1x1_3 ->push_back(isoinfo1x1.cHadronEne_[2]);
896  t_photonEne1x1 ->push_back(isoinfo1x1.photonEne);
897  t_eleEne1x1 ->push_back(isoinfo1x1.eleEne);
898  t_muEne1x1 ->push_back(isoinfo1x1.muEne);
899 
907  t_eleEneHC1x1 ->push_back(isoinfoHC1x1.eleEne);
908  t_muEneHC1x1 ->push_back(isoinfoHC1x1.muEne);
909 
917  t_eleEneHC3x3 ->push_back(isoinfoHC3x3.eleEne);
918  t_muEneHC3x3 ->push_back(isoinfoHC3x3.muEne);
919 
927  t_eleEneHC5x5 ->push_back(isoinfoHC5x5.eleEne);
928  t_muEneHC5x5 ->push_back(isoinfoHC5x5.muEne);
929 
937  t_eleEneHC7x7 ->push_back(isoinfoHC7x7.eleEne);
938  t_muEneHC7x7 ->push_back(isoinfoHC7x7.muEne);
939 
940  t_maxNearPR ->push_back(isoinfoR.maxNearP);
941  t_cHadronEneR ->push_back(isoinfoR.cHadronEne);
942  t_cHadronEneR_1 ->push_back(isoinfoR.cHadronEne_[0]);
943  t_cHadronEneR_2 ->push_back(isoinfoR.cHadronEne_[1]);
944  t_cHadronEneR_3 ->push_back(isoinfoR.cHadronEne_[2]);
945  t_nHadronEneR ->push_back(isoinfoR.nHadronEne);
946  t_photonEneR ->push_back(isoinfoR.photonEne);
947  t_eleEneR ->push_back(isoinfoR.eleEne);
948  t_muEneR ->push_back(isoinfoR.muEne);
949 
950  t_maxNearPIsoR ->push_back(isoinfoIsoR.maxNearP);
957  t_eleEneIsoR ->push_back(isoinfoIsoR.eleEne);
958  t_muEneIsoR ->push_back(isoinfoIsoR.muEne);
959 
960  t_maxNearPHCR ->push_back(isoinfoHCR.maxNearP);
962  t_cHadronEneHCR_1 ->push_back(isoinfoHCR.cHadronEne_[0]);
963  t_cHadronEneHCR_2 ->push_back(isoinfoHCR.cHadronEne_[1]);
964  t_cHadronEneHCR_3 ->push_back(isoinfoHCR.cHadronEne_[2]);
966  t_photonEneHCR ->push_back(isoinfoHCR.photonEne);
967  t_eleEneHCR ->push_back(isoinfoHCR.eleEne);
968  t_muEneHCR ->push_back(isoinfoHCR.muEne);
969 
977  t_eleEneIsoHCR ->push_back(isoinfoIsoHCR.eleEne);
978  t_muEneIsoHCR ->push_back(isoinfoIsoHCR.muEne);
979 }
980 
982 
984  //char hname[100], htit[100];
985 
986  h_NEventProc = fs->make<TH1I>("h_NEventProc", "h_NEventProc", 2, -0.5, 0.5);
987  h_L1AlgoNames = fs->make<TH1I>("h_L1AlgoNames", "h_L1AlgoNames:Bin Labels", 128, -0.5, 127.5);
988 
989  double pBin[PBins_+1] = {0.0, 2.0, 4.0, 6.0, 8.0, 10.0, 20.0, 30.0, 40.0,50.0,
990  60.0, 70.0, 80.0, 90.0, 100.0, 150.0, 200.0, 250.0,
991  300.0, 350.0, 400.0, 450.0, 500.0, 550.0, 600.0,
992  650.0, 700.0, 750.0, 800.0, 850.0, 900.0, 950.0,
993  1000.0};
994  double etaBin[EtaBins_+1] = {-3.0, -2.9, -2.8, -2.7, -2.6, -2.5, -2.4, -2.3,
995  -2.2, -2.1, -2.0, -1.9, -1.8, -1.7, -1.6, -1.5,
996  -1.4, -1.3, -1.2, -1.1, -1.0, -0.9, -0.8, -0.7,
997  -0.6, -0.5, -0.4, -0.3, -0.2, -0.1, 0.0, 0.1,
998  0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9,
999  1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7,
1000  1.8, 1.9, 2.0, 2.1, 2.2, 2.3, 2.4, 2.5,
1001  2.6, 2.7, 2.8, 2.9, 3.0};
1002  std::string particle[Particles] = {"electron", "positron", "#gamma", "#pi^+",
1003  "#pi^-", "K^+", "K^-", "p", "n", "pbar",
1004  "nbar", "K^0_L"};
1005  TFileDirectory dir1 = fs->mkdir( "pEta" );
1006  char name[20], title[50];
1007  for (int i=0; i<Particles; ++i) {
1008  sprintf (name, "pEta%d", i);
1009  sprintf (title, "#eta vs momentum for %s", particle[i].c_str());
1010  h_pEta[i] = dir1.make<TH2D>(name, title, PBins_, pBin, EtaBins_, etaBin);
1011  }
1012 
1013  // build the tree
1014  tree_ = fs->make<TTree>("tree_", "tree");
1015 
1016  t_isoTrkPAll = new std::vector<double>();
1017  t_isoTrkPtAll = new std::vector<double>();
1018  t_isoTrkPhiAll = new std::vector<double>();
1019  t_isoTrkEtaAll = new std::vector<double>();
1020  t_isoTrkDPhiAll = new std::vector<double>();
1021  t_isoTrkDEtaAll = new std::vector<double>();
1022  t_isoTrkPdgIdAll = new std::vector<double>();
1023 
1024  t_isoTrkP = new std::vector<double>();
1025  t_isoTrkPt = new std::vector<double>();
1026  t_isoTrkEne = new std::vector<double>();
1027  t_isoTrkEta = new std::vector<double>();
1028  t_isoTrkPhi = new std::vector<double>();
1029  t_isoTrkEtaEC = new std::vector<double>();
1030  t_isoTrkPhiEC = new std::vector<double>();
1031  t_isoTrkPdgId = new std::vector<double>();
1032 
1033  t_maxNearP31x31 = new std::vector<double>();
1034  t_cHadronEne31x31 = new std::vector<double>();
1035  t_cHadronEne31x31_1 = new std::vector<double>();
1036  t_cHadronEne31x31_2 = new std::vector<double>();
1037  t_cHadronEne31x31_3 = new std::vector<double>();
1038  t_nHadronEne31x31 = new std::vector<double>();
1039  t_photonEne31x31 = new std::vector<double>();
1040  t_eleEne31x31 = new std::vector<double>();
1041  t_muEne31x31 = new std::vector<double>();
1042 
1043  t_maxNearP25x25 = new std::vector<double>();
1044  t_cHadronEne25x25 = new std::vector<double>();
1045  t_cHadronEne25x25_1 = new std::vector<double>();
1046  t_cHadronEne25x25_2 = new std::vector<double>();
1047  t_cHadronEne25x25_3 = new std::vector<double>();
1048  t_nHadronEne25x25 = new std::vector<double>();
1049  t_photonEne25x25 = new std::vector<double>();
1050  t_eleEne25x25 = new std::vector<double>();
1051  t_muEne25x25 = new std::vector<double>();
1052 
1053  t_maxNearP21x21 = new std::vector<double>();
1054  t_cHadronEne21x21 = new std::vector<double>();
1055  t_cHadronEne21x21_1 = new std::vector<double>();
1056  t_cHadronEne21x21_2 = new std::vector<double>();
1057  t_cHadronEne21x21_3 = new std::vector<double>();
1058  t_nHadronEne21x21 = new std::vector<double>();
1059  t_photonEne21x21 = new std::vector<double>();
1060  t_eleEne21x21 = new std::vector<double>();
1061  t_muEne21x21 = new std::vector<double>();
1062 
1063  t_maxNearP15x15 = new std::vector<double>();
1064  t_cHadronEne15x15 = new std::vector<double>();
1065  t_cHadronEne15x15_1 = new std::vector<double>();
1066  t_cHadronEne15x15_2 = new std::vector<double>();
1067  t_cHadronEne15x15_3 = new std::vector<double>();
1068  t_nHadronEne15x15 = new std::vector<double>();
1069  t_photonEne15x15 = new std::vector<double>();
1070  t_eleEne15x15 = new std::vector<double>();
1071  t_muEne15x15 = new std::vector<double>();
1072 
1073  t_maxNearP11x11 = new std::vector<double>();
1074  t_cHadronEne11x11 = new std::vector<double>();
1075  t_cHadronEne11x11_1 = new std::vector<double>();
1076  t_cHadronEne11x11_2 = new std::vector<double>();
1077  t_cHadronEne11x11_3 = new std::vector<double>();
1078  t_nHadronEne11x11 = new std::vector<double>();
1079  t_photonEne11x11 = new std::vector<double>();
1080  t_eleEne11x11 = new std::vector<double>();
1081  t_muEne11x11 = new std::vector<double>();
1082 
1083  t_maxNearP9x9 = new std::vector<double>();
1084  t_cHadronEne9x9 = new std::vector<double>();
1085  t_cHadronEne9x9_1 = new std::vector<double>();
1086  t_cHadronEne9x9_2 = new std::vector<double>();
1087  t_cHadronEne9x9_3 = new std::vector<double>();
1088  t_nHadronEne9x9 = new std::vector<double>();
1089  t_photonEne9x9 = new std::vector<double>();
1090  t_eleEne9x9 = new std::vector<double>();
1091  t_muEne9x9 = new std::vector<double>();
1092 
1093  t_maxNearP7x7 = new std::vector<double>();
1094  t_cHadronEne7x7 = new std::vector<double>();
1095  t_cHadronEne7x7_1 = new std::vector<double>();
1096  t_cHadronEne7x7_2 = new std::vector<double>();
1097  t_cHadronEne7x7_3 = new std::vector<double>();
1098  t_nHadronEne7x7 = new std::vector<double>();
1099  t_photonEne7x7 = new std::vector<double>();
1100  t_eleEne7x7 = new std::vector<double>();
1101  t_muEne7x7 = new std::vector<double>();
1102 
1103  t_maxNearP3x3 = new std::vector<double>();
1104  t_cHadronEne3x3 = new std::vector<double>();
1105  t_cHadronEne3x3_1 = new std::vector<double>();
1106  t_cHadronEne3x3_2 = new std::vector<double>();
1107  t_cHadronEne3x3_3 = new std::vector<double>();
1108  t_nHadronEne3x3 = new std::vector<double>();
1109  t_photonEne3x3 = new std::vector<double>();
1110  t_eleEne3x3 = new std::vector<double>();
1111  t_muEne3x3 = new std::vector<double>();
1112 
1113  t_maxNearP1x1 = new std::vector<double>();
1114  t_cHadronEne1x1 = new std::vector<double>();
1115  t_cHadronEne1x1_1 = new std::vector<double>();
1116  t_cHadronEne1x1_2 = new std::vector<double>();
1117  t_cHadronEne1x1_3 = new std::vector<double>();
1118  t_nHadronEne1x1 = new std::vector<double>();
1119  t_photonEne1x1 = new std::vector<double>();
1120  t_eleEne1x1 = new std::vector<double>();
1121  t_muEne1x1 = new std::vector<double>();
1122 
1123  t_maxNearPHC1x1 = new std::vector<double>();
1124  t_cHadronEneHC1x1 = new std::vector<double>();
1125  t_cHadronEneHC1x1_1 = new std::vector<double>();
1126  t_cHadronEneHC1x1_2 = new std::vector<double>();
1127  t_cHadronEneHC1x1_3 = new std::vector<double>();
1128  t_nHadronEneHC1x1 = new std::vector<double>();
1129  t_photonEneHC1x1 = new std::vector<double>();
1130  t_eleEneHC1x1 = new std::vector<double>();
1131  t_muEneHC1x1 = new std::vector<double>();
1132 
1133  t_maxNearPHC3x3 = new std::vector<double>();
1134  t_cHadronEneHC3x3 = new std::vector<double>();
1135  t_cHadronEneHC3x3_1 = new std::vector<double>();
1136  t_cHadronEneHC3x3_2 = new std::vector<double>();
1137  t_cHadronEneHC3x3_3 = new std::vector<double>();
1138  t_nHadronEneHC3x3 = new std::vector<double>();
1139  t_photonEneHC3x3 = new std::vector<double>();
1140  t_eleEneHC3x3 = new std::vector<double>();
1141  t_muEneHC3x3 = new std::vector<double>();
1142 
1143  t_maxNearPHC5x5 = new std::vector<double>();
1144  t_cHadronEneHC5x5 = new std::vector<double>();
1145  t_cHadronEneHC5x5_1 = new std::vector<double>();
1146  t_cHadronEneHC5x5_2 = new std::vector<double>();
1147  t_cHadronEneHC5x5_3 = new std::vector<double>();
1148  t_nHadronEneHC5x5 = new std::vector<double>();
1149  t_photonEneHC5x5 = new std::vector<double>();
1150  t_eleEneHC5x5 = new std::vector<double>();
1151  t_muEneHC5x5 = new std::vector<double>();
1152 
1153  t_maxNearPHC7x7 = new std::vector<double>();
1154  t_cHadronEneHC7x7 = new std::vector<double>();
1155  t_cHadronEneHC7x7_1 = new std::vector<double>();
1156  t_cHadronEneHC7x7_2 = new std::vector<double>();
1157  t_cHadronEneHC7x7_3 = new std::vector<double>();
1158  t_nHadronEneHC7x7 = new std::vector<double>();
1159  t_photonEneHC7x7 = new std::vector<double>();
1160  t_eleEneHC7x7 = new std::vector<double>();
1161  t_muEneHC7x7 = new std::vector<double>();
1162 
1163  t_maxNearPR = new std::vector<double>();
1164  t_cHadronEneR = new std::vector<double>();
1165  t_cHadronEneR_1 = new std::vector<double>();
1166  t_cHadronEneR_2 = new std::vector<double>();
1167  t_cHadronEneR_3 = new std::vector<double>();
1168  t_nHadronEneR = new std::vector<double>();
1169  t_photonEneR = new std::vector<double>();
1170  t_eleEneR = new std::vector<double>();
1171  t_muEneR = new std::vector<double>();
1172 
1173  t_maxNearPIsoR = new std::vector<double>();
1174  t_cHadronEneIsoR = new std::vector<double>();
1175  t_cHadronEneIsoR_1 = new std::vector<double>();
1176  t_cHadronEneIsoR_2 = new std::vector<double>();
1177  t_cHadronEneIsoR_3 = new std::vector<double>();
1178  t_nHadronEneIsoR = new std::vector<double>();
1179  t_photonEneIsoR = new std::vector<double>();
1180  t_eleEneIsoR = new std::vector<double>();
1181  t_muEneIsoR = new std::vector<double>();
1182 
1183  t_maxNearPHCR = new std::vector<double>();
1184  t_cHadronEneHCR = new std::vector<double>();
1185  t_cHadronEneHCR_1 = new std::vector<double>();
1186  t_cHadronEneHCR_2 = new std::vector<double>();
1187  t_cHadronEneHCR_3 = new std::vector<double>();
1188  t_nHadronEneHCR = new std::vector<double>();
1189  t_photonEneHCR = new std::vector<double>();
1190  t_eleEneHCR = new std::vector<double>();
1191  t_muEneHCR = new std::vector<double>();
1192 
1193  t_maxNearPIsoHCR = new std::vector<double>();
1194  t_cHadronEneIsoHCR = new std::vector<double>();
1195  t_cHadronEneIsoHCR_1 = new std::vector<double>();
1196  t_cHadronEneIsoHCR_2 = new std::vector<double>();
1197  t_cHadronEneIsoHCR_3 = new std::vector<double>();
1198  t_nHadronEneIsoHCR = new std::vector<double>();
1199  t_photonEneIsoHCR = new std::vector<double>();
1200  t_eleEneIsoHCR = new std::vector<double>();
1201  t_muEneIsoHCR = new std::vector<double>();
1202 
1203  //----- L1Trigger
1204  t_L1Decision = new std::vector<int>();
1205  t_L1CenJetPt = new std::vector<double>();
1206  t_L1CenJetEta = new std::vector<double>();
1207  t_L1CenJetPhi = new std::vector<double>();
1208  t_L1FwdJetPt = new std::vector<double>();
1209  t_L1FwdJetEta = new std::vector<double>();
1210  t_L1FwdJetPhi = new std::vector<double>();
1211  t_L1TauJetPt = new std::vector<double>();
1212  t_L1TauJetEta = new std::vector<double>();
1213  t_L1TauJetPhi = new std::vector<double>();
1214  t_L1MuonPt = new std::vector<double>();
1215  t_L1MuonEta = new std::vector<double>();
1216  t_L1MuonPhi = new std::vector<double>();
1217  t_L1IsoEMPt = new std::vector<double>();
1218  t_L1IsoEMEta = new std::vector<double>();
1219  t_L1IsoEMPhi = new std::vector<double>();
1220  t_L1NonIsoEMPt = new std::vector<double>();
1221  t_L1NonIsoEMEta = new std::vector<double>();
1222  t_L1NonIsoEMPhi = new std::vector<double>();
1223  t_L1METPt = new std::vector<double>();
1224  t_L1METEta = new std::vector<double>();
1225  t_L1METPhi = new std::vector<double>();
1226 
1227 //tree_->Branch("t_nEvtProc", "std::vector<int>", &t_nEvtProc);
1228 
1229  tree_->Branch("t_isoTrkPAll", "std::vector<double>", &t_isoTrkPAll);
1230  tree_->Branch("t_isoTrkPtAll", "std::vector<double>", &t_isoTrkPtAll);
1231  tree_->Branch("t_isoTrkPhiAll", "std::vector<double>", &t_isoTrkPhiAll);
1232  tree_->Branch("t_isoTrkEtaAll", "std::vector<double>", &t_isoTrkEtaAll);
1233  tree_->Branch("t_isoTrkDPhiAll", "std::vector<double>", &t_isoTrkDPhiAll);
1234  tree_->Branch("t_isoTrkDEtaAll", "std::vector<double>", &t_isoTrkDEtaAll);
1235  tree_->Branch("t_isoTrkPdgIdAll", "std::vector<double>", &t_isoTrkPdgIdAll);
1236 
1237  tree_->Branch("t_isoTrkP", "std::vector<double>", &t_isoTrkP);
1238  tree_->Branch("t_isoTrkPt", "std::vector<double>", &t_isoTrkPt);
1239  tree_->Branch("t_isoTrkEne", "std::vector<double>", &t_isoTrkEne);
1240  tree_->Branch("t_isoTrkEta", "std::vector<double>", &t_isoTrkEta);
1241  tree_->Branch("t_isoTrkPhi", "std::vector<double>", &t_isoTrkPhi);
1242  tree_->Branch("t_isoTrkEtaEC", "std::vector<double>", &t_isoTrkEtaEC);
1243  tree_->Branch("t_isoTrkPhiEC", "std::vector<double>", &t_isoTrkPhiEC);
1244  tree_->Branch("t_isoTrkPdgId", "std::vector<double>", &t_isoTrkPdgId);
1245 
1246  tree_->Branch("t_maxNearP31x31", "std::vector<double>", &t_maxNearP31x31);
1247  tree_->Branch("t_cHadronEne31x31", "std::vector<double>", &t_cHadronEne31x31);
1248  tree_->Branch("t_cHadronEne31x31_1", "std::vector<double>", &t_cHadronEne31x31_1);
1249  tree_->Branch("t_cHadronEne31x31_2", "std::vector<double>", &t_cHadronEne31x31_2);
1250  tree_->Branch("t_cHadronEne31x31_3", "std::vector<double>", &t_cHadronEne31x31_3);
1251  tree_->Branch("t_nHadronEne31x31", "std::vector<double>", &t_nHadronEne31x31);
1252  tree_->Branch("t_photonEne31x31", "std::vector<double>", &t_photonEne31x31);
1253  tree_->Branch("t_eleEne31x31", "std::vector<double>", &t_eleEne31x31);
1254  tree_->Branch("t_muEne31x31", "std::vector<double>", &t_muEne31x31);
1255 
1256  tree_->Branch("t_maxNearP25x25", "std::vector<double>", &t_maxNearP25x25);
1257  tree_->Branch("t_cHadronEne25x25", "std::vector<double>", &t_cHadronEne25x25);
1258  tree_->Branch("t_cHadronEne25x25_1", "std::vector<double>", &t_cHadronEne25x25_1);
1259  tree_->Branch("t_cHadronEne25x25_2", "std::vector<double>", &t_cHadronEne25x25_2);
1260  tree_->Branch("t_cHadronEne25x25_3", "std::vector<double>", &t_cHadronEne25x25_3);
1261  tree_->Branch("t_nHadronEne25x25", "std::vector<double>", &t_nHadronEne25x25);
1262  tree_->Branch("t_photonEne25x25", "std::vector<double>", &t_photonEne25x25);
1263  tree_->Branch("t_eleEne25x25", "std::vector<double>", &t_eleEne25x25);
1264  tree_->Branch("t_muEne25x25", "std::vector<double>", &t_muEne25x25);
1265 
1266  tree_->Branch("t_maxNearP21x21", "std::vector<double>", &t_maxNearP21x21);
1267  tree_->Branch("t_cHadronEne21x21", "std::vector<double>", &t_cHadronEne21x21);
1268  tree_->Branch("t_cHadronEne21x21_1", "std::vector<double>", &t_cHadronEne21x21_1);
1269  tree_->Branch("t_cHadronEne21x21_2", "std::vector<double>", &t_cHadronEne21x21_2);
1270  tree_->Branch("t_cHadronEne21x21_3", "std::vector<double>", &t_cHadronEne21x21_3);
1271  tree_->Branch("t_nHadronEne21x21", "std::vector<double>", &t_nHadronEne21x21);
1272  tree_->Branch("t_photonEne21x21", "std::vector<double>", &t_photonEne21x21);
1273  tree_->Branch("t_eleEne21x21", "std::vector<double>", &t_eleEne21x21);
1274  tree_->Branch("t_muEne21x21", "std::vector<double>", &t_muEne21x21);
1275 
1276  tree_->Branch("t_maxNearP15x15", "std::vector<double>", &t_maxNearP15x15);
1277  tree_->Branch("t_cHadronEne15x15", "std::vector<double>", &t_cHadronEne15x15);
1278  tree_->Branch("t_cHadronEne15x15_1", "std::vector<double>", &t_cHadronEne15x15_1);
1279  tree_->Branch("t_cHadronEne15x15_2", "std::vector<double>", &t_cHadronEne15x15_2);
1280  tree_->Branch("t_cHadronEne15x15_3", "std::vector<double>", &t_cHadronEne15x15_3);
1281  tree_->Branch("t_nHadronEne15x15", "std::vector<double>", &t_nHadronEne15x15);
1282  tree_->Branch("t_photonEne15x15", "std::vector<double>", &t_photonEne15x15);
1283  tree_->Branch("t_eleEne15x15", "std::vector<double>", &t_eleEne15x15);
1284  tree_->Branch("t_muEne15x15", "std::vector<double>", &t_muEne15x15);
1285 
1286  tree_->Branch("t_maxNearP11x11", "std::vector<double>", &t_maxNearP11x11);
1287  tree_->Branch("t_cHadronEne11x11", "std::vector<double>", &t_cHadronEne11x11);
1288  tree_->Branch("t_cHadronEne11x11_1", "std::vector<double>", &t_cHadronEne11x11_1);
1289  tree_->Branch("t_cHadronEne11x11_2", "std::vector<double>", &t_cHadronEne11x11_2);
1290  tree_->Branch("t_cHadronEne11x11_3", "std::vector<double>", &t_cHadronEne11x11_3);
1291  tree_->Branch("t_nHadronEne11x11", "std::vector<double>", &t_nHadronEne11x11);
1292  tree_->Branch("t_photonEne11x11", "std::vector<double>", &t_photonEne11x11);
1293  tree_->Branch("t_eleEne11x11", "std::vector<double>", &t_eleEne11x11);
1294  tree_->Branch("t_muEne11x11", "std::vector<double>", &t_muEne11x11);
1295 
1296  tree_->Branch("t_maxNearP9x9", "std::vector<double>", &t_maxNearP9x9);
1297  tree_->Branch("t_cHadronEne9x9", "std::vector<double>", &t_cHadronEne9x9);
1298  tree_->Branch("t_cHadronEne9x9_1", "std::vector<double>", &t_cHadronEne9x9_1);
1299  tree_->Branch("t_cHadronEne9x9_2", "std::vector<double>", &t_cHadronEne9x9_2);
1300  tree_->Branch("t_cHadronEne9x9_3", "std::vector<double>", &t_cHadronEne9x9_3);
1301  tree_->Branch("t_nHadronEne9x9", "std::vector<double>", &t_nHadronEne9x9);
1302  tree_->Branch("t_photonEne9x9", "std::vector<double>", &t_photonEne9x9);
1303  tree_->Branch("t_eleEne9x9", "std::vector<double>", &t_eleEne9x9);
1304  tree_->Branch("t_muEne9x9", "std::vector<double>", &t_muEne9x9);
1305 
1306  tree_->Branch("t_maxNearP7x7", "std::vector<double>", &t_maxNearP7x7);
1307  tree_->Branch("t_cHadronEne7x7", "std::vector<double>", &t_cHadronEne7x7);
1308  tree_->Branch("t_cHadronEne7x7_1", "std::vector<double>", &t_cHadronEne7x7_1);
1309  tree_->Branch("t_cHadronEne7x7_2", "std::vector<double>", &t_cHadronEne7x7_2);
1310  tree_->Branch("t_cHadronEne7x7_3", "std::vector<double>", &t_cHadronEne7x7_3);
1311  tree_->Branch("t_nHadronEne7x7", "std::vector<double>", &t_nHadronEne7x7);
1312  tree_->Branch("t_photonEne7x7", "std::vector<double>", &t_photonEne7x7);
1313  tree_->Branch("t_eleEne7x7", "std::vector<double>", &t_eleEne7x7);
1314  tree_->Branch("t_muEne7x7", "std::vector<double>", &t_muEne7x7);
1315 
1316  tree_->Branch("t_maxNearP3x3", "std::vector<double>", &t_maxNearP3x3);
1317  tree_->Branch("t_cHadronEne3x3", "std::vector<double>", &t_cHadronEne3x3);
1318  tree_->Branch("t_cHadronEne3x3_1", "std::vector<double>", &t_cHadronEne3x3_1);
1319  tree_->Branch("t_cHadronEne3x3_2", "std::vector<double>", &t_cHadronEne3x3_2);
1320  tree_->Branch("t_cHadronEne3x3_3", "std::vector<double>", &t_cHadronEne3x3_3);
1321  tree_->Branch("t_nHadronEne3x3", "std::vector<double>", &t_nHadronEne3x3);
1322  tree_->Branch("t_photonEne3x3", "std::vector<double>", &t_photonEne3x3);
1323  tree_->Branch("t_eleEne3x3", "std::vector<double>", &t_eleEne3x3);
1324  tree_->Branch("t_muEne3x3", "std::vector<double>", &t_muEne3x3);
1325 
1326  tree_->Branch("t_maxNearP1x1", "std::vector<double>", &t_maxNearP1x1);
1327  tree_->Branch("t_cHadronEne1x1", "std::vector<double>", &t_cHadronEne1x1);
1328  tree_->Branch("t_cHadronEne1x1_1", "std::vector<double>", &t_cHadronEne1x1_1);
1329  tree_->Branch("t_cHadronEne1x1_2", "std::vector<double>", &t_cHadronEne1x1_2);
1330  tree_->Branch("t_cHadronEne1x1_3", "std::vector<double>", &t_cHadronEne1x1_3);
1331  tree_->Branch("t_nHadronEne1x1", "std::vector<double>", &t_nHadronEne1x1);
1332  tree_->Branch("t_photonEne1x1", "std::vector<double>", &t_photonEne1x1);
1333  tree_->Branch("t_eleEne1x1", "std::vector<double>", &t_eleEne1x1);
1334  tree_->Branch("t_muEne1x1", "std::vector<double>", &t_muEne1x1);
1335 
1336  tree_->Branch("t_maxNearPHC1x1", "std::vector<double>", &t_maxNearPHC1x1);
1337  tree_->Branch("t_cHadronEneHC1x1", "std::vector<double>", &t_cHadronEneHC1x1);
1338  tree_->Branch("t_cHadronEneHC1x1_1", "std::vector<double>", &t_cHadronEneHC1x1_1);
1339  tree_->Branch("t_cHadronEneHC1x1_2", "std::vector<double>", &t_cHadronEneHC1x1_2);
1340  tree_->Branch("t_cHadronEneHC1x1_3", "std::vector<double>", &t_cHadronEneHC1x1_3);
1341  tree_->Branch("t_nHadronEneHC1x1", "std::vector<double>", &t_nHadronEneHC1x1);
1342  tree_->Branch("t_photonEneHC1x1", "std::vector<double>", &t_photonEneHC1x1);
1343  tree_->Branch("t_eleEneHC1x1", "std::vector<double>", &t_eleEneHC1x1);
1344  tree_->Branch("t_muEneHC1x1", "std::vector<double>", &t_muEneHC1x1);
1345 
1346  tree_->Branch("t_maxNearPHC3x3", "std::vector<double>", &t_maxNearPHC3x3);
1347  tree_->Branch("t_cHadronEneHC3x3", "std::vector<double>", &t_cHadronEneHC3x3);
1348  tree_->Branch("t_cHadronEneHC3x3_1", "std::vector<double>", &t_cHadronEneHC3x3_1);
1349  tree_->Branch("t_cHadronEneHC3x3_2", "std::vector<double>", &t_cHadronEneHC3x3_2);
1350  tree_->Branch("t_cHadronEneHC3x3_3", "std::vector<double>", &t_cHadronEneHC3x3_3);
1351  tree_->Branch("t_nHadronEneHC3x3", "std::vector<double>", &t_nHadronEneHC3x3);
1352  tree_->Branch("t_photonEneHC3x3", "std::vector<double>", &t_photonEneHC3x3);
1353  tree_->Branch("t_eleEneHC3x3", "std::vector<double>", &t_eleEneHC3x3);
1354  tree_->Branch("t_muEneHC3x3", "std::vector<double>", &t_muEneHC3x3);
1355 
1356  tree_->Branch("t_maxNearPHC5x5", "std::vector<double>", &t_maxNearPHC5x5);
1357  tree_->Branch("t_cHadronEneHC5x5", "std::vector<double>", &t_cHadronEneHC5x5);
1358  tree_->Branch("t_cHadronEneHC5x5_1", "std::vector<double>", &t_cHadronEneHC5x5_1);
1359  tree_->Branch("t_cHadronEneHC5x5_2", "std::vector<double>", &t_cHadronEneHC5x5_2);
1360  tree_->Branch("t_cHadronEneHC5x5_3", "std::vector<double>", &t_cHadronEneHC5x5_3);
1361  tree_->Branch("t_nHadronEneHC5x5", "std::vector<double>", &t_nHadronEneHC5x5);
1362  tree_->Branch("t_photonEneHC5x5", "std::vector<double>", &t_photonEneHC5x5);
1363  tree_->Branch("t_eleEneHC5x5", "std::vector<double>", &t_eleEneHC5x5);
1364  tree_->Branch("t_muEneHC5x5", "std::vector<double>", &t_muEneHC5x5);
1365 
1366  tree_->Branch("t_maxNearPHC7x7", "std::vector<double>", &t_maxNearPHC7x7);
1367  tree_->Branch("t_cHadronEneHC7x7", "std::vector<double>", &t_cHadronEneHC7x7);
1368  tree_->Branch("t_cHadronEneHC7x7_1", "std::vector<double>", &t_cHadronEneHC7x7_1);
1369  tree_->Branch("t_cHadronEneHC7x7_2", "std::vector<double>", &t_cHadronEneHC7x7_2);
1370  tree_->Branch("t_cHadronEneHC7x7_3", "std::vector<double>", &t_cHadronEneHC7x7_3);
1371  tree_->Branch("t_nHadronEneHC7x7", "std::vector<double>", &t_nHadronEneHC7x7);
1372  tree_->Branch("t_photonEneHC7x7", "std::vector<double>", &t_photonEneHC7x7);
1373  tree_->Branch("t_eleEneHC7x7", "std::vector<double>", &t_eleEneHC7x7);
1374  tree_->Branch("t_muEneHC7x7", "std::vector<double>", &t_muEneHC7x7);
1375 
1376  tree_->Branch("t_maxNearPR", "std::vector<double>", &t_maxNearPR);
1377  tree_->Branch("t_cHadronEneR", "std::vector<double>", &t_cHadronEneR);
1378  tree_->Branch("t_cHadronEneR_1", "std::vector<double>", &t_cHadronEneR_1);
1379  tree_->Branch("t_cHadronEneR_2", "std::vector<double>", &t_cHadronEneR_2);
1380  tree_->Branch("t_cHadronEneR_3", "std::vector<double>", &t_cHadronEneR_3);
1381  tree_->Branch("t_nHadronEneR", "std::vector<double>", &t_nHadronEneR);
1382  tree_->Branch("t_photonEneR", "std::vector<double>", &t_photonEneR);
1383  tree_->Branch("t_eleEneR", "std::vector<double>", &t_eleEneR);
1384  tree_->Branch("t_muEneR", "std::vector<double>", &t_muEneR);
1385 
1386  tree_->Branch("t_maxNearPIsoR", "std::vector<double>", &t_maxNearPIsoR);
1387  tree_->Branch("t_cHadronEneIsoR", "std::vector<double>", &t_cHadronEneIsoR);
1388  tree_->Branch("t_cHadronEneIsoR_1", "std::vector<double>", &t_cHadronEneIsoR_1);
1389  tree_->Branch("t_cHadronEneIsoR_2", "std::vector<double>", &t_cHadronEneIsoR_2);
1390  tree_->Branch("t_cHadronEneIsoR_3", "std::vector<double>", &t_cHadronEneIsoR_3);
1391  tree_->Branch("t_nHadronEneIsoR", "std::vector<double>", &t_nHadronEneIsoR);
1392  tree_->Branch("t_photonEneIsoR", "std::vector<double>", &t_photonEneIsoR);
1393  tree_->Branch("t_eleEneIsoR", "std::vector<double>", &t_eleEneIsoR);
1394  tree_->Branch("t_muEneIsoR", "std::vector<double>", &t_muEneIsoR);
1395 
1396  tree_->Branch("t_maxNearPHCR", "std::vector<double>", &t_maxNearPHCR);
1397  tree_->Branch("t_cHadronEneHCR", "std::vector<double>", &t_cHadronEneHCR);
1398  tree_->Branch("t_cHadronEneHCR_1", "std::vector<double>", &t_cHadronEneHCR_1);
1399  tree_->Branch("t_cHadronEneHCR_2", "std::vector<double>", &t_cHadronEneHCR_2);
1400  tree_->Branch("t_cHadronEneHCR_3", "std::vector<double>", &t_cHadronEneHCR_3);
1401  tree_->Branch("t_nHadronEneHCR", "std::vector<double>", &t_nHadronEneHCR);
1402  tree_->Branch("t_photonEneHCR", "std::vector<double>", &t_photonEneHCR);
1403  tree_->Branch("t_eleEneHCR", "std::vector<double>", &t_eleEneHCR);
1404  tree_->Branch("t_muEneHCR", "std::vector<double>", &t_muEneHCR);
1405 
1406  tree_->Branch("t_maxNearPIsoHCR", "std::vector<double>", &t_maxNearPIsoHCR);
1407  tree_->Branch("t_cHadronEneIsoHCR", "std::vector<double>", &t_cHadronEneIsoHCR);
1408  tree_->Branch("t_cHadronEneIsoHCR_1","std::vector<double>", &t_cHadronEneIsoHCR_1);
1409  tree_->Branch("t_cHadronEneIsoHCR_2","std::vector<double>", &t_cHadronEneIsoHCR_2);
1410  tree_->Branch("t_cHadronEneIsoHCR_3","std::vector<double>", &t_cHadronEneIsoHCR_3);
1411  tree_->Branch("t_nHadronEneIsoHCR", "std::vector<double>", &t_nHadronEneIsoHCR);
1412  tree_->Branch("t_photonEneIsoHCR", "std::vector<double>", &t_photonEneIsoHCR);
1413  tree_->Branch("t_eleEneIsoHCR", "std::vector<double>", &t_eleEneIsoHCR);
1414  tree_->Branch("t_muEneIsoHCR", "std::vector<double>", &t_muEneIsoHCR);
1415 
1416  tree_->Branch("t_L1Decision", "std::vector<int>", &t_L1Decision);
1417  tree_->Branch("t_L1CenJetPt", "std::vector<double>", &t_L1CenJetPt);
1418  tree_->Branch("t_L1CenJetEta", "std::vector<double>", &t_L1CenJetEta);
1419  tree_->Branch("t_L1CenJetPhi", "std::vector<double>", &t_L1CenJetPhi);
1420  tree_->Branch("t_L1FwdJetPt", "std::vector<double>", &t_L1FwdJetPt);
1421  tree_->Branch("t_L1FwdJetEta", "std::vector<double>", &t_L1FwdJetEta);
1422  tree_->Branch("t_L1FwdJetPhi", "std::vector<double>", &t_L1FwdJetPhi);
1423  tree_->Branch("t_L1TauJetPt", "std::vector<double>", &t_L1TauJetPt);
1424  tree_->Branch("t_L1TauJetEta", "std::vector<double>", &t_L1TauJetEta);
1425  tree_->Branch("t_L1TauJetPhi", "std::vector<double>", &t_L1TauJetPhi);
1426  tree_->Branch("t_L1MuonPt", "std::vector<double>", &t_L1MuonPt);
1427  tree_->Branch("t_L1MuonEta", "std::vector<double>", &t_L1MuonEta);
1428  tree_->Branch("t_L1MuonPhi", "std::vector<double>", &t_L1MuonPhi);
1429  tree_->Branch("t_L1IsoEMPt", "std::vector<double>", &t_L1IsoEMPt);
1430  tree_->Branch("t_L1IsoEMEta", "std::vector<double>", &t_L1IsoEMEta);
1431  tree_->Branch("t_L1IsoEMPhi", "std::vector<double>", &t_L1IsoEMPhi);
1432  tree_->Branch("t_L1NonIsoEMPt", "std::vector<double>", &t_L1NonIsoEMPt);
1433  tree_->Branch("t_L1NonIsoEMEta", "std::vector<double>", &t_L1NonIsoEMEta);
1434  tree_->Branch("t_L1NonIsoEMPhi", "std::vector<double>", &t_L1NonIsoEMPhi);
1435  tree_->Branch("t_L1METPt", "std::vector<double>", &t_L1METPt);
1436  tree_->Branch("t_L1METEta", "std::vector<double>", &t_L1METEta);
1437  tree_->Branch("t_L1METPhi", "std::vector<double>", &t_L1METPhi);
1438 }
1439 
1440 
1442 
1443 // t_maxNearP31x31 ->clear();
1444 // t_nEvtProc ->clear();
1445 
1446  t_isoTrkPAll ->clear();
1447  t_isoTrkPtAll ->clear();
1448  t_isoTrkPhiAll ->clear();
1449  t_isoTrkEtaAll ->clear();
1450  t_isoTrkDPhiAll ->clear();
1451  t_isoTrkDEtaAll ->clear();
1452  t_isoTrkPdgIdAll ->clear();
1453 
1454  t_isoTrkP ->clear();
1455  t_isoTrkPt ->clear();
1456  t_isoTrkEne ->clear();
1457  t_isoTrkEta ->clear();
1458  t_isoTrkPhi ->clear();
1459  t_isoTrkEtaEC ->clear();
1460  t_isoTrkPhiEC ->clear();
1461  t_isoTrkPdgId ->clear();
1462 
1463  t_maxNearP31x31 ->clear();
1464  t_cHadronEne31x31 ->clear();
1465  t_cHadronEne31x31_1 ->clear();
1466  t_cHadronEne31x31_2 ->clear();
1467  t_cHadronEne31x31_3 ->clear();
1468  t_nHadronEne31x31 ->clear();
1469  t_photonEne31x31 ->clear();
1470  t_eleEne31x31 ->clear();
1471  t_muEne31x31 ->clear();
1472 
1473  t_maxNearP25x25 ->clear();
1474  t_cHadronEne25x25 ->clear();
1475  t_cHadronEne25x25_1 ->clear();
1476  t_cHadronEne25x25_2 ->clear();
1477  t_cHadronEne25x25_3 ->clear();
1478  t_nHadronEne25x25 ->clear();
1479  t_photonEne25x25 ->clear();
1480  t_eleEne25x25 ->clear();
1481  t_muEne25x25 ->clear();
1482 
1483  t_maxNearP21x21 ->clear();
1484  t_cHadronEne21x21 ->clear();
1485  t_cHadronEne21x21_1 ->clear();
1486  t_cHadronEne21x21_2 ->clear();
1487  t_cHadronEne21x21_3 ->clear();
1488  t_nHadronEne21x21 ->clear();
1489  t_photonEne21x21 ->clear();
1490  t_eleEne21x21 ->clear();
1491  t_muEne21x21 ->clear();
1492 
1493  t_maxNearP15x15 ->clear();
1494  t_cHadronEne15x15 ->clear();
1495  t_cHadronEne15x15_1 ->clear();
1496  t_cHadronEne15x15_2 ->clear();
1497  t_cHadronEne15x15_3 ->clear();
1498  t_nHadronEne15x15 ->clear();
1499  t_photonEne15x15 ->clear();
1500  t_eleEne15x15 ->clear();
1501  t_muEne15x15 ->clear();
1502 
1503  t_maxNearP11x11 ->clear();
1504  t_cHadronEne11x11 ->clear();
1505  t_cHadronEne11x11_1 ->clear();
1506  t_cHadronEne11x11_2 ->clear();
1507  t_cHadronEne11x11_3 ->clear();
1508  t_nHadronEne11x11 ->clear();
1509  t_photonEne11x11 ->clear();
1510  t_eleEne11x11 ->clear();
1511  t_muEne11x11 ->clear();
1512 
1513  t_maxNearP9x9 ->clear();
1514  t_cHadronEne9x9 ->clear();
1515  t_cHadronEne9x9_1 ->clear();
1516  t_cHadronEne9x9_2 ->clear();
1517  t_cHadronEne9x9_3 ->clear();
1518  t_nHadronEne9x9 ->clear();
1519  t_photonEne9x9 ->clear();
1520  t_eleEne9x9 ->clear();
1521  t_muEne9x9 ->clear();
1522 
1523  t_maxNearP7x7 ->clear();
1524  t_cHadronEne7x7 ->clear();
1525  t_cHadronEne7x7_1 ->clear();
1526  t_cHadronEne7x7_2 ->clear();
1527  t_cHadronEne7x7_3 ->clear();
1528  t_nHadronEne7x7 ->clear();
1529  t_photonEne7x7 ->clear();
1530  t_eleEne7x7 ->clear();
1531  t_muEne7x7 ->clear();
1532 
1533  t_maxNearP3x3 ->clear();
1534  t_cHadronEne3x3 ->clear();
1535  t_cHadronEne3x3_1 ->clear();
1536  t_cHadronEne3x3_2 ->clear();
1537  t_cHadronEne3x3_3 ->clear();
1538  t_nHadronEne3x3 ->clear();
1539  t_photonEne3x3 ->clear();
1540  t_eleEne3x3 ->clear();
1541  t_muEne3x3 ->clear();
1542 
1543  t_maxNearP1x1 ->clear();
1544  t_cHadronEne1x1 ->clear();
1545  t_cHadronEne1x1_1 ->clear();
1546  t_cHadronEne1x1_2 ->clear();
1547  t_cHadronEne1x1_3 ->clear();
1548  t_nHadronEne1x1 ->clear();
1549  t_photonEne1x1 ->clear();
1550  t_eleEne1x1 ->clear();
1551  t_muEne1x1 ->clear();
1552 
1553  t_maxNearPHC1x1 ->clear();
1554  t_cHadronEneHC1x1 ->clear();
1555  t_cHadronEneHC1x1_1 ->clear();
1556  t_cHadronEneHC1x1_2 ->clear();
1557  t_cHadronEneHC1x1_3 ->clear();
1558  t_nHadronEneHC1x1 ->clear();
1559  t_photonEneHC1x1 ->clear();
1560  t_eleEneHC1x1 ->clear();
1561  t_muEneHC1x1 ->clear();
1562 
1563  t_maxNearPHC3x3 ->clear();
1564  t_cHadronEneHC3x3 ->clear();
1565  t_cHadronEneHC3x3_1 ->clear();
1566  t_cHadronEneHC3x3_2 ->clear();
1567  t_cHadronEneHC3x3_3 ->clear();
1568  t_nHadronEneHC3x3 ->clear();
1569  t_photonEneHC3x3 ->clear();
1570  t_eleEneHC3x3 ->clear();
1571  t_muEneHC3x3 ->clear();
1572 
1573  t_maxNearPHC5x5 ->clear();
1574  t_cHadronEneHC5x5 ->clear();
1575  t_cHadronEneHC5x5_1 ->clear();
1576  t_cHadronEneHC5x5_2 ->clear();
1577  t_cHadronEneHC5x5_3 ->clear();
1578  t_nHadronEneHC5x5 ->clear();
1579  t_photonEneHC5x5 ->clear();
1580  t_eleEneHC5x5 ->clear();
1581  t_muEneHC5x5 ->clear();
1582 
1583  t_maxNearPHC7x7 ->clear();
1584  t_cHadronEneHC7x7 ->clear();
1585  t_cHadronEneHC7x7_1 ->clear();
1586  t_cHadronEneHC7x7_2 ->clear();
1587  t_cHadronEneHC7x7_3 ->clear();
1588  t_nHadronEneHC7x7 ->clear();
1589  t_photonEneHC7x7 ->clear();
1590  t_eleEneHC7x7 ->clear();
1591  t_muEneHC7x7 ->clear();
1592 
1593  t_maxNearPR ->clear();
1594  t_cHadronEneR ->clear();
1595  t_cHadronEneR_1 ->clear();
1596  t_cHadronEneR_2 ->clear();
1597  t_cHadronEneR_3 ->clear();
1598  t_nHadronEneR ->clear();
1599  t_photonEneR ->clear();
1600  t_eleEneR ->clear();
1601  t_muEneR ->clear();
1602 
1603  t_maxNearPIsoR ->clear();
1604  t_cHadronEneIsoR ->clear();
1605  t_cHadronEneIsoR_1 ->clear();
1606  t_cHadronEneIsoR_2 ->clear();
1607  t_cHadronEneIsoR_3 ->clear();
1608  t_nHadronEneIsoR ->clear();
1609  t_photonEneIsoR ->clear();
1610  t_eleEneIsoR ->clear();
1611  t_muEneIsoR ->clear();
1612 
1613  t_maxNearPHCR ->clear();
1614  t_cHadronEneHCR ->clear();
1615  t_cHadronEneHCR_1 ->clear();
1616  t_cHadronEneHCR_2 ->clear();
1617  t_cHadronEneHCR_3 ->clear();
1618  t_nHadronEneHCR ->clear();
1619  t_photonEneHCR ->clear();
1620  t_eleEneHCR ->clear();
1621  t_muEneHCR ->clear();
1622 
1623  t_maxNearPIsoHCR ->clear();
1624  t_cHadronEneIsoHCR ->clear();
1625  t_cHadronEneIsoHCR_1 ->clear();
1626  t_cHadronEneIsoHCR_2 ->clear();
1627  t_cHadronEneIsoHCR_3 ->clear();
1628  t_nHadronEneIsoHCR ->clear();
1629  t_photonEneIsoHCR ->clear();
1630  t_eleEneIsoHCR ->clear();
1631  t_muEneIsoHCR ->clear();
1632 
1633  t_L1Decision ->clear();
1634  t_L1CenJetPt ->clear();
1635  t_L1CenJetEta ->clear();
1636  t_L1CenJetPhi ->clear();
1637  t_L1FwdJetPt ->clear();
1638  t_L1FwdJetEta ->clear();
1639  t_L1FwdJetPhi ->clear();
1640  t_L1TauJetPt ->clear();
1641  t_L1TauJetEta ->clear();
1642  t_L1TauJetPhi ->clear();
1643  t_L1MuonPt ->clear();
1644  t_L1MuonEta ->clear();
1645  t_L1MuonPhi ->clear();
1646  t_L1IsoEMPt ->clear();
1647  t_L1IsoEMEta ->clear();
1648  t_L1IsoEMPhi ->clear();
1649  t_L1NonIsoEMPt ->clear();
1650  t_L1NonIsoEMEta ->clear();
1651  t_L1NonIsoEMPhi ->clear();
1652  t_L1METPt ->clear();
1653  t_L1METEta ->clear();
1654  t_L1METPhi ->clear();
1655 }
1656 
1658 
1659  int partID[Particles]={11,-11,21,211,-211,321,-321,2212,2112,-2212,-2112,130};
1660  int ix = -1;
1661  for (int ik=0; ik<Particles; ++ik) {
1662  if (pdgId == partID[ik]) {
1663  ix = ik; break;
1664  }
1665  }
1666  return ix;
1667 }
1668 
1669 //define this as a plug-in
std::vector< double > * t_cHadronEneHC1x1_3
static const std::string kSharedResource
Definition: TFileService.h:76
std::vector< double > * t_eleEne7x7
std::vector< double > * t_nHadronEne21x21
std::vector< double > * t_cHadronEneHC7x7_2
T getParameter(std::string const &) const
EventNumber_t event() const
Definition: EventID.h:41
std::vector< double > * t_isoTrkEtaAll
std::vector< double > * t_maxNearPHCR
std::vector< double > * t_isoTrkPdgId
double genPartPBins_[NPBins_+1]
std::vector< double > * t_L1FwdJetPhi
std::vector< double > * t_eleEne31x31
std::vector< double > * t_eleEneHC7x7
std::vector< spr::propagatedTrackID > propagateCALO(edm::Handle< reco::TrackCollection > &trkCollection, const CaloGeometry *geo, const MagneticField *bField, const std::string &theTrackQuality, bool debug=false)
std::vector< int > * t_L1Decision
double deltaR2(double eta1, double phi1, double eta2, double phi2)
std::vector< double > * t_cHadronEneIsoR_1
std::vector< double > * t_nHadronEne7x7
std::vector< double > * t_isoTrkPt
std::vector< double > * t_L1TauJetPhi
std::vector< double > * t_L1TauJetPt
std::vector< double > * t_cHadronEneHCR_1
std::vector< double > * t_L1CenJetEta
std::vector< double > * t_photonEne7x7
std::vector< double > * t_L1MuonPt
std::vector< double > * t_isoTrkEta
std::vector< double > * t_cHadronEneHC7x7
std::vector< double > * t_cHadronEneHC7x7_3
ParameterDescriptionBase * addUntracked(U const &iLabel, T const &value)
std::vector< double > * t_cHadronEne7x7_2
double cHadronEne_[3]
Definition: GenSimInfo.h:47
std::vector< double > * t_cHadronEne15x15_3
std::vector< double > * t_maxNearP15x15
virtual example_stream void analyze(const edm::Event &, const edm::EventSetup &) override
double photonEne
Definition: GenSimInfo.h:45
std::vector< double > * t_nHadronEneHC7x7
std::vector< double > * t_photonEne21x21
std::vector< double > * t_cHadronEneIsoHCR_2
std::vector< double > * t_cHadronEne25x25
std::vector< double > * t_photonEneHC5x5
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:579
std::vector< double > * t_cHadronEneHC1x1_2
edm::EDGetTokenT< l1extra::L1JetParticleCollection > tok_L1extCenJet_
std::vector< double > * t_L1IsoEMEta
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:17
std::vector< double > * t_muEneIsoHCR
std::vector< double > * t_eleEne11x11
IsolatedGenParticles(const edm::ParameterSet &)
std::vector< double > * t_cHadronEneR
std::vector< double > * t_eleEne3x3
std::vector< double > * t_L1IsoEMPt
std::vector< double > * t_cHadronEne3x3_2
Geom::Phi< T > phi() const
Definition: PV3DBase.h:69
Global3DPoint GlobalPoint
Definition: GlobalPoint.h:10
std::vector< double > * t_cHadronEneHC3x3_2
std::vector< double > * t_photonEne1x1
std::vector< double > * t_cHadronEne1x1_2
std::vector< double > * t_nHadronEneR
std::vector< double > * t_cHadronEneIsoR_3
std::vector< double > * t_maxNearP11x11
std::vector< double > * t_maxNearPHC7x7
edm::EDGetTokenT< l1extra::L1JetParticleCollection > tok_L1extTauJet_
std::vector< double > * t_cHadronEneHC5x5_2
std::vector< double > * t_photonEneHCR
std::vector< double > * t_L1METEta
std::vector< double > * t_muEneIsoR
std::vector< double > * t_nHadronEne9x9
T * make(const Args &...args) const
make new ROOT object
Definition: TFileService.h:64
std::vector< double > * t_L1MuonEta
std::vector< double > * t_isoTrkPdgIdAll
std::vector< double > * t_muEneHC7x7
std::vector< double > * t_cHadronEne31x31
std::vector< double > * t_nHadronEneIsoHCR
std::vector< double > * t_L1FwdJetPt
std::vector< double > * t_cHadronEne31x31_1
std::vector< double > * t_photonEneHC3x3
std::vector< double > * t_cHadronEneIsoHCR_1
bool accept(const edm::Event &event, const edm::TriggerResults &triggerTable, const std::string &triggerPath)
Definition: TopDQMHelpers.h:30
double deltaR(double eta1, double phi1, double eta2, double phi2)
std::vector< double > * t_muEneR
std::vector< double > * t_muEne9x9
double deltaPhi(double v1, double v2)
std::vector< double > * t_muEne21x21
#define constexpr
edm::EDGetTokenT< L1GlobalTriggerReadoutRecord > tok_L1GTrorsrc_
std::vector< double > * t_maxNearP7x7
void getData(T &iHolder) const
Definition: EventSetup.h:98
edm::EDGetTokenT< l1extra::L1MuonParticleCollection > tok_L1extMusrc_
std::vector< double > * t_muEneHC1x1
void beginJob()
Definition: Breakpoints.cc:15
std::vector< double > * t_photonEneHC7x7
const std::vector< L1GlobalTriggerObjectMap > & gtObjectMap() const
get / set the vector of object maps
std::vector< double > * t_maxNearPIsoHCR
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
double cHadronEne
Definition: GenSimInfo.h:45
std::vector< double > * t_L1TauJetEta
std::vector< double > * t_cHadronEneHC5x5
double nHadronEne
Definition: GenSimInfo.h:45
std::vector< double > * t_cHadronEne31x31_2
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:29
std::vector< double > * t_isoTrkPAll
std::vector< double > * t_nHadronEneHC1x1
std::vector< double > * t_eleEneIsoHCR
std::vector< double > * t_eleEneHC5x5
std::vector< double > * t_cHadronEneIsoHCR
std::vector< double > * t_muEneHCR
int iEvent
Definition: GenABIO.cc:230
std::vector< double > * t_cHadronEne7x7_1
std::vector< double > * t_maxNearP25x25
std::vector< double > * t_cHadronEne3x3_3
std::vector< double > * t_cHadronEneHC7x7_1
std::vector< double > * t_cHadronEneHC5x5_1
double genPartEtaBins_[NEtaBins_+1]
edm::EDGetTokenT< l1extra::L1EmParticleCollection > tok_L1Em_
std::vector< double > * t_eleEne25x25
std::vector< double > * t_eleEne9x9
std::vector< double > * t_eleEne1x1
std::vector< double > * t_muEne11x11
std::vector< double > * t_eleEneHCR
std::vector< double > * t_muEne7x7
std::vector< double > * t_cHadronEneHC1x1
std::vector< bool > DecisionWord
typedefs
std::vector< double > * t_cHadronEneR_3
std::vector< double > * t_cHadronEne11x11_1
T sqrt(T t)
Definition: SSEVec.h:18
std::vector< double > * t_muEne1x1
std::vector< double > * t_cHadronEne15x15_1
std::vector< double > * t_cHadronEneIsoHCR_3
std::vector< double > * t_cHadronEneIsoR
std::vector< double > * t_eleEneHC3x3
std::vector< double > * t_isoTrkDEtaAll
std::vector< double > * t_muEne25x25
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
std::vector< double > * t_cHadronEne9x9_3
std::vector< double > * t_L1NonIsoEMPt
std::vector< double > * t_photonEne25x25
std::vector< double > * t_maxNearP21x21
virtual example_stream void bookHistograms(DQMStore::IBooker &,@example_stream edm::Run const &,@example_stream edm::EventSetup const &) override
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
std::vector< double > * t_maxNearP31x31
std::vector< double > * t_muEneHC3x3
void eGenSimInfo(const DetId &coreDet, HepMC::GenEvent::particle_const_iterator trkItr, std::vector< spr::propagatedGenTrackID > &trackIds, const CaloGeometry *geo, const CaloTopology *caloTopology, int ieta, int iphi, spr::genSimInfo &info, bool debug=false)
Definition: GenSimInfo.cc:13
std::vector< double > * t_cHadronEneHC3x3
std::vector< double > * t_cHadronEne11x11
std::vector< double > * t_cHadronEne25x25_3
std::vector< double > * t_cHadronEneHCR_3
T * make(const Args &...args) const
make new ROOT object
std::vector< double > * t_L1CenJetPt
std::vector< double > * t_maxNearPHC5x5
std::vector< double > * t_cHadronEneHCR_2
std::vector< double > * t_cHadronEne11x11_3
std::vector< double > * t_cHadronEneHCR
std::vector< double > * t_cHadronEne1x1
std::vector< double > * t_isoTrkDPhiAll
std::vector< double > * t_photonEneIsoHCR
bool isValid() const
Definition: HandleBase.h:74
std::vector< double > * t_nHadronEne31x31
std::vector< double > * t_maxNearP3x3
double p2[4]
Definition: TauolaWrapper.h:90
std::vector< double > * t_cHadronEne1x1_1
std::vector< double > * t_cHadronEne21x21_1
const DecisionWord & decisionWord(int bxInEventValue) const
std::vector< double > * t_isoTrkPhiEC
std::vector< double > * t_cHadronEne11x11_2
std::vector< double > * t_L1CenJetPhi
JetCorrectorParameters corr
Definition: classes.h:5
std::vector< double > * t_maxNearP1x1
#define M_PI
edm::EDGetTokenT< L1GlobalTriggerObjectMapRecord > tok_L1GTobjmap_
std::vector< double > * t_maxNearPHC3x3
std::vector< double > * t_nHadronEneHCR
std::vector< double > * t_eleEneR
double deltaR(double eta1, double eta2, double phi1, double phi2)
Definition: TreeUtility.cc:17
std::vector< double > * t_cHadronEneIsoR_2
std::vector< double > * t_cHadronEne9x9_1
std::vector< double > * t_eleEneIsoR
std::vector< double > * t_cHadronEneR_2
std::vector< double > * t_isoTrkPhiAll
void fillTrack(GlobalPoint &posVec, math::XYZTLorentzVector &momVec, GlobalPoint &posECAL, int pdgId, bool okECAL, bool accpet)
bool operator()(const HepMC::GenParticle *a, const HepMC::GenParticle *b) const
std::vector< double > * t_photonEneHC1x1
constexpr auto deltaR2(const T1 &t1, const T2 &t2) -> decltype(t1.eta())
Definition: deltaR.h:16
std::vector< double > * t_L1FwdJetEta
TFileDirectory mkdir(const std::string &dir, const std::string &descr="")
create a new subdirectory
Definition: TFileService.h:69
const HepMC::GenEvent * GetEvent() const
Definition: HepMCProduct.h:38
std::vector< double > * t_maxNearPR
edm::EDGetTokenT< l1extra::L1EmParticleCollection > tok_L1extNonIsoEm_
std::vector< double > * t_muEne31x31
void fillIsolatedTrack(math::XYZTLorentzVector &momVec, GlobalPoint &posECAL, int pdgId)
std::vector< double > * t_isoTrkPtAll
std::vector< double > * t_isoTrkP
std::vector< double > * t_nHadronEne11x11
std::vector< double > * t_nHadronEneIsoR
std::vector< double > * t_L1NonIsoEMPhi
std::vector< double > * t_eleEne21x21
std::vector< double > * t_maxNearPHC1x1
std::vector< double > * t_cHadronEne9x9_2
std::vector< double > * t_cHadronEne31x31_3
std::vector< double > * t_maxNearP9x9
std::vector< double > * t_photonEne31x31
std::vector< double > * t_nHadronEneHC3x3
std::vector< double > * t_cHadronEne15x15_2
std::vector< double > * t_photonEne15x15
std::vector< double > * t_L1NonIsoEMEta
std::vector< double > * t_isoTrkPhi
void add(std::string const &label, ParameterSetDescription const &psetDescription)
std::vector< double > * t_nHadronEne15x15
std::vector< double > * t_cHadronEneHC1x1_1
std::vector< double > * t_photonEneR
std::vector< double > * t_isoTrkEtaEC
std::vector< double > * t_nHadronEne1x1
std::vector< double > * t_cHadronEne3x3
edm::EDGetTokenT< edm::HepMCProduct > tok_hepmc_
void analyze(const edm::Event &, const edm::EventSetup &) override
std::vector< double > * t_cHadronEne25x25_2
std::vector< double > * t_L1IsoEMPhi
T eta() const
Definition: PV3DBase.h:76
std::vector< double > * t_cHadronEneHC5x5_3
std::string algoBitToName_[nL1BitsMax_]
edm::EDGetTokenT< reco::GenParticleCollection > tok_genParticles_
edm::EventID id() const
Definition: EventBase.h:60
std::vector< double > * t_photonEne9x9
std::vector< double > * t_L1METPhi
double p1[4]
Definition: TauolaWrapper.h:89
std::vector< double > * t_nHadronEne25x25
std::vector< double > * t_photonEne3x3
std::vector< double > * t_cHadronEneHC3x3_3
T get() const
Definition: EventSetup.h:63
std::vector< double > * t_eleEneHC1x1
std::vector< double > * t_photonEne11x11
void hGenSimInfo(const DetId &coreDet, HepMC::GenEvent::particle_const_iterator trkItr, std::vector< spr::propagatedGenTrackID > &trackIds, const HcalTopology *topology, int ieta, int iphi, spr::genSimInfo &info, bool includeHO=false, bool debug=false)
Definition: GenSimInfo.cc:61
std::vector< double > * t_muEne3x3
std::vector< double > * t_cHadronEne9x9
std::vector< double > * t_muEne15x15
std::vector< double > * t_cHadronEne21x21_2
std::vector< double > * t_cHadronEne3x3_1
std::vector< double > * t_cHadronEneHC3x3_1
edm::EDGetTokenT< l1extra::L1JetParticleCollection > tok_L1extFwdJet_
std::vector< double > * t_cHadronEne25x25_1
std::vector< double > * t_cHadronEne15x15
std::vector< double > * t_cHadronEne21x21
std::vector< double > * t_L1METPt
T const * product() const
Definition: ESHandle.h:86
std::vector< double > * t_muEneHC5x5
std::vector< double > * t_cHadronEneR_1
std::vector< double > * t_cHadronEne21x21_3
std::vector< double > * t_L1MuonPhi
double maxNearP
Definition: GenSimInfo.h:44
std::vector< double > * t_cHadronEne7x7_3
std::vector< double > * t_photonEneIsoR
std::vector< double > * t_cHadronEne7x7
std::vector< double > * t_eleEne15x15
std::vector< double > * t_maxNearPIsoR
std::vector< double > * t_nHadronEne3x3
std::vector< double > * t_nHadronEneHC5x5
std::vector< double > * t_isoTrkEne
std::vector< double > * t_cHadronEne1x1_3