CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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 
21 
27 
30 
33 #include <iostream>
34 #include <iomanip>
35 #include<list>
36 #include<vector>
37 #include<cmath>
38 
41 
43 
45 
46  genSrc_ = iConfig.getUntrackedParameter("GenSrc",std::string("generator"));
47  useHepMC = iConfig.getUntrackedParameter<bool>("UseHepMC", false );
48  pSeed = iConfig.getUntrackedParameter<double>("ChargedHadronSeedP", 1.0);
49  ptMin = iConfig.getUntrackedParameter<double>("PTMin", 1.0);
50  etaMax = iConfig.getUntrackedParameter<double>("MaxChargedHadronEta", 2.5);
51  a_coneR = iConfig.getUntrackedParameter<double>("ConeRadius",34.98);
52  a_charIsoR = a_coneR + 28.9;
53  a_neutIsoR = a_charIsoR*0.726;
54  a_mipR = iConfig.getUntrackedParameter<double>("ConeRadiusMIP",14.0);
55  a_Isolation= iConfig.getUntrackedParameter<bool>("UseConeIsolation",false);
56  pCutIsolate= iConfig.getUntrackedParameter<double>("PMaxIsolation",20.0);
57  verbosity = iConfig.getUntrackedParameter<int>("Verbosity", 0);
58 
59  debugL1Info_ = iConfig.getUntrackedParameter<bool>( "DebugL1Info", false );
60  L1extraTauJetSource_ = iConfig.getParameter<edm::InputTag>("L1extraTauJetSource");
61  L1extraCenJetSource_ = iConfig.getParameter<edm::InputTag>("L1extraCenJetSource");
62  L1extraFwdJetSource_ = iConfig.getParameter<edm::InputTag>("L1extraFwdJetSource");
63  L1extraMuonSource_ = iConfig.getParameter<edm::InputTag>("L1extraMuonSource");
64  L1extraIsoEmSource_ = iConfig.getParameter<edm::InputTag>("L1extraIsoEmSource");
65  L1extraNonIsoEmSource_ = iConfig.getParameter<edm::InputTag>("L1extraNonIsoEmSource");
66  L1GTReadoutRcdSource_ = iConfig.getParameter<edm::InputTag>("L1GTReadoutRcdSource");
67  L1GTObjectMapRcdSource_= iConfig.getParameter<edm::InputTag>("L1GTObjectMapRcdSource");
68 
69  if (!strcmp("Dummy", genSrc_.c_str())) {
70  if (useHepMC) genSrc_ = "generator";
71  else genSrc_ = "genParticles";
72  }
73  std::cout << "Generator Source " << genSrc_ << " Use HepMC " << useHepMC
74  << " pSeed " << pSeed << " ptMin " << ptMin << " etaMax " << etaMax
75  << "\n a_coneR " << a_coneR << " a_charIsoR " << a_charIsoR
76  << " a_neutIsoR " << a_neutIsoR << " a_mipR " << a_mipR
77  << " debug " << verbosity << " debugL1Info " << debugL1Info_ << "\n"
78  << " Isolation Flag " << a_Isolation << " with cut "
79  << pCutIsolate << " GeV\n"
80  << " L1extraTauJetSource_ " << L1extraTauJetSource_
81  << " L1extraCenJetSource_ " << L1extraCenJetSource_
82  << " L1extraFwdJetSource_ " << L1extraFwdJetSource_
83  << " L1extraMuonSource_ " << L1extraMuonSource_
84  << " L1extraIsoEmSource_ " << L1extraIsoEmSource_
85  << " L1extraNonIsoEmSource_ " << L1extraNonIsoEmSource_
86  << " L1GTReadoutRcdSource_ " << L1GTReadoutRcdSource_
87  << " L1GTObjectMapRcdSource_" << L1GTObjectMapRcdSource_
88  << std::endl;
89 }
90 
92 
93 }
94 
96 
98 
99  nEventProc++;
100 
102  iSetup.get<IdealMagneticFieldRecord>().get(bFieldH);
103  bField = bFieldH.product();
104 
105  // get particle data table
107  iSetup.getData(pdt);
108 
109  // get handle to HEPMCProduct
112  if (useHepMC) iEvent.getByLabel(genSrc_, hepmc);
113  else iEvent.getByLabel(genSrc_, genParticles);
114 
116  iSetup.get<CaloGeometryRecord>().get(pG);
117  const CaloGeometry* geo = pG.product();
118 
119  edm::ESHandle<CaloTopology> theCaloTopology;
120  iSetup.get<CaloTopologyRecord>().get(theCaloTopology);
121  const CaloTopology *caloTopology = theCaloTopology.product();
122 
124  iSetup.get<IdealGeometryRecord>().get(htopo);
125  const HcalTopology* theHBHETopology = htopo.product();
126 
127  //===================== save L1 Trigger information =======================
128  // get L1TriggerReadout records
130  iEvent.getByLabel(L1GTReadoutRcdSource_, gtRecord);
131 
133  iEvent.getByLabel(L1GTObjectMapRcdSource_, gtOMRec);
134 
135  // sanity check on L1 Trigger Records
136  if (!gtRecord.isValid()) {
137  std::cout << "\nL1GlobalTriggerReadoutRecord with \n \nnot found"
138  "\n --> returning false by default!\n" << std::endl;
139  }
140  if (!gtOMRec.isValid()) {
141  std::cout << "\nL1GlobalTriggerObjectMapRecord with \n \nnot found"
142  "\n --> returning false by default!\n" << std::endl;
143  }
144 
145  // L1 decision word
146  const DecisionWord dWord = gtRecord->decisionWord();
147  unsigned int numberTriggerBits= dWord.size();
148 
149  // just print the L1Bit number and AlgoName in first event
150  if ( !initL1){
151  initL1=true;
152  std::cout << "\n Number of Trigger bits " << numberTriggerBits << "\n\n";
153  std::cout << "\tBit \t L1 Algorithm " << std::endl;
154 
155  // get ObjectMaps from ObjectMapRecord
156  const std::vector<L1GlobalTriggerObjectMap>& objMapVec = gtOMRec->gtObjectMap();
157  for (std::vector<L1GlobalTriggerObjectMap>::const_iterator itMap = objMapVec.begin();
158  itMap != objMapVec.end(); ++itMap) {
159 
160  // Get trigger bits
161  int itrig = (*itMap).algoBitNumber();
162 
163  // Get trigger names
164  algoBitToName[itrig] = (*itMap).algoName();
165 
166  std::cout << "\t" << itrig << "\t" << algoBitToName[itrig] << std::endl;
167 
168  // store the algoNames as bin labels of a histogram
169  h_L1AlgoNames->GetXaxis()->SetBinLabel(itrig+1, algoBitToName[itrig].c_str());
170 
171  } // end of for loop
172  } // end of initL1
173 
174  // save L1 decision for each event
175  for (unsigned int iBit = 0; iBit < numberTriggerBits; ++iBit) {
176  bool accept = dWord[iBit];
177  t_L1Decision->push_back(accept);
178  // fill the trigger map
179  if(debugL1Info_) std::cout << "Bit " << iBit << " " << algoBitToName[iBit] << " " << accept << std::endl;
180 
181  if(accept) h_L1AlgoNames->Fill(iBit);
182  }
183 
184  //===================
185  // L1Taus
187  iEvent.getByLabel(L1extraTauJetSource_,l1TauHandle);
188  l1extra::L1JetParticleCollection::const_iterator itr;
189  for(itr = l1TauHandle->begin(); itr != l1TauHandle->end(); ++itr ) {
190  t_L1TauJetPt ->push_back( itr->pt() );
191  t_L1TauJetEta ->push_back( itr->eta() );
192  t_L1TauJetPhi ->push_back( itr->phi() );
193  if(debugL1Info_) {
194  std::cout << "tauJ p/pt " << itr->momentum() << " " << itr->pt()
195  << " eta/phi " << itr->eta() << " " << itr->phi()
196  << std::endl;
197  }
198  }
199 
200  // L1 Central Jets
202  iEvent.getByLabel(L1extraCenJetSource_,l1CenJetHandle);
203  for( itr = l1CenJetHandle->begin(); itr != l1CenJetHandle->end(); ++itr ) {
204  t_L1CenJetPt ->push_back( itr->pt() );
205  t_L1CenJetEta ->push_back( itr->eta() );
206  t_L1CenJetPhi ->push_back( itr->phi() );
207  if(debugL1Info_) {
208  std::cout << "cenJ p/pt " << itr->momentum() << " " << itr->pt()
209  << " eta/phi " << itr->eta() << " " << itr->phi()
210  << std::endl;
211  }
212  }
213  // L1 Forward Jets
215  iEvent.getByLabel(L1extraFwdJetSource_,l1FwdJetHandle);
216  for( itr = l1FwdJetHandle->begin(); itr != l1FwdJetHandle->end(); ++itr ) {
217  t_L1FwdJetPt ->push_back( itr->pt() );
218  t_L1FwdJetEta ->push_back( itr->eta() );
219  t_L1FwdJetPhi ->push_back( itr->phi() );
220  if(debugL1Info_) {
221  std::cout << "fwdJ p/pt " << itr->momentum() << " " << itr->pt()
222  << " eta/phi " << itr->eta() << " " << itr->phi()
223  << std::endl;
224  }
225  }
226  // L1 Isolated EM onjects
227  l1extra::L1EmParticleCollection::const_iterator itrEm;
229  iEvent.getByLabel(L1extraIsoEmSource_, l1IsoEmHandle);
230  for( itrEm = l1IsoEmHandle->begin(); itrEm != l1IsoEmHandle->end(); ++itrEm ) {
231  t_L1IsoEMPt ->push_back( itrEm->pt() );
232  t_L1IsoEMEta ->push_back( itrEm->eta() );
233  t_L1IsoEMPhi ->push_back( itrEm->phi() );
234  if(debugL1Info_) {
235  std::cout << "isoEm p/pt " << itrEm->momentum() << " " << itrEm->pt()
236  << " eta/phi " << itrEm->eta() << " " << itrEm->phi()
237  << std::endl;
238  }
239  }
240  // L1 Non-Isolated EM onjects
242  iEvent.getByLabel(L1extraNonIsoEmSource_, l1NonIsoEmHandle);
243  for( itrEm = l1NonIsoEmHandle->begin(); itrEm != l1NonIsoEmHandle->end(); ++itrEm ) {
244  t_L1NonIsoEMPt ->push_back( itrEm->pt() );
245  t_L1NonIsoEMEta ->push_back( itrEm->eta() );
246  t_L1NonIsoEMPhi ->push_back( itrEm->phi() );
247  if(debugL1Info_) {
248  std::cout << "nonIsoEm p/pt " << itrEm->momentum() << " " << itrEm->pt()
249  << " eta/phi " << itrEm->eta() << " " << itrEm->phi()
250  << std::endl;
251  }
252  }
253 
254  // L1 Muons
255  l1extra::L1MuonParticleCollection::const_iterator itrMu;
257  iEvent.getByLabel(L1extraMuonSource_, l1MuHandle);
258  for( itrMu = l1MuHandle->begin(); itrMu != l1MuHandle->end(); ++itrMu ) {
259  t_L1MuonPt ->push_back( itrMu->pt() );
260  t_L1MuonEta ->push_back( itrMu->eta() );
261  t_L1MuonPhi ->push_back( itrMu->phi() );
262  if(debugL1Info_) {
263  std::cout << "l1muon p/pt " << itrMu->momentum() << " " << itrMu->pt()
264  << " eta/phi " << itrMu->eta() << " " << itrMu->phi()
265  << std::endl;
266  }
267  }
268  //=====================================================================
269 
270  GlobalPoint posVec, posECAL;
272  if (verbosity>0) std::cout << "event number " << iEvent.id().event() <<std::endl;
273  if (useHepMC) {
274  const HepMC::GenEvent *myGenEvent = hepmc->GetEvent();
275  std::vector<spr::propagatedGenTrackID> trackIDs = spr::propagateCALO(myGenEvent, pdt, geo, bField, etaMax, false);
276 
277  for (unsigned int indx=0; indx<trackIDs.size(); ++indx) {
278  int charge = trackIDs[indx].charge;
279  HepMC::GenEvent::particle_const_iterator p = trackIDs[indx].trkItr;
280  momVec = math::XYZTLorentzVector((*p)->momentum().px(), (*p)->momentum().py(), (*p)->momentum().pz(), (*p)->momentum().e());
281  if (verbosity>1) std::cout << "trkIndx " << indx << " pdgid " << trackIDs[indx].pdgId << " charge " << charge << " momVec " << momVec << std::endl;
282  // only stable particles avoiding electrons and muons
283  if (trackIDs[indx].ok && (std::abs(trackIDs[indx].pdgId)<11 ||
284  std::abs(trackIDs[indx].pdgId)>=21)) {
285  // consider particles within a phased space
286  if (momVec.Pt() > ptMin && std::abs(momVec.eta()) < etaMax) {
287  posVec = GlobalPoint(0.1*(*p)->production_vertex()->position().x(),
288  0.1*(*p)->production_vertex()->position().y(),
289  0.1*(*p)->production_vertex()->position().z());
290  posECAL = trackIDs[indx].pointECAL;
291  fillTrack (posVec, momVec, posECAL, trackIDs[indx].pdgId, trackIDs[indx].okECAL, true);
292  if (verbosity>1) std::cout << "posECAL " << posECAL << " okECAL " << trackIDs[indx].okECAL << "okHCAL " << trackIDs[indx].okHCAL << std::endl;
293  if (trackIDs[indx].okECAL) {
294  if ( std::abs(charge)>0 ) {
295  spr::eGenSimInfo(trackIDs[indx].detIdECAL, p, trackIDs, geo, caloTopology, 0, 0, isoinfo1x1, false);
296  spr::eGenSimInfo(trackIDs[indx].detIdECAL, p, trackIDs, geo, caloTopology, 1, 1, isoinfo3x3, false);
297  spr::eGenSimInfo(trackIDs[indx].detIdECAL, p, trackIDs, geo, caloTopology, 3, 3, isoinfo7x7, false);
298  spr::eGenSimInfo(trackIDs[indx].detIdECAL, p, trackIDs, geo, caloTopology, 4, 4, isoinfo9x9, false);
299  spr::eGenSimInfo(trackIDs[indx].detIdECAL, p, trackIDs, geo, caloTopology, 5, 5, isoinfo11x11, false);
300  spr::eGenSimInfo(trackIDs[indx].detIdECAL, p, trackIDs, geo, caloTopology, 7, 7, isoinfo15x15, false);
301  spr::eGenSimInfo(trackIDs[indx].detIdECAL, p, trackIDs, geo, caloTopology,10,10, isoinfo21x21, false);
302  spr::eGenSimInfo(trackIDs[indx].detIdECAL, p, trackIDs, geo, caloTopology,12,12, isoinfo25x25, false);
303  spr::eGenSimInfo(trackIDs[indx].detIdECAL, p, trackIDs, geo, caloTopology,15,15, isoinfo31x31, false);
304  spr::eGenSimInfo(trackIDs[indx].detIdECAL, p, trackIDs, geo, caloTopology, a_mipR, trackIDs[indx].directionECAL, isoinfoR, false);
305  spr::eGenSimInfo(trackIDs[indx].detIdECAL, p, trackIDs, geo, caloTopology, a_neutIsoR, trackIDs[indx].directionECAL, isoinfoIsoR, false);
306  if (trackIDs[indx].okHCAL) {
307  spr::hGenSimInfo(trackIDs[indx].detIdHCAL, p, trackIDs, theHBHETopology, 0, 0, isoinfoHC1x1, false);
308  spr::hGenSimInfo(trackIDs[indx].detIdHCAL, p, trackIDs, theHBHETopology, 1, 1, isoinfoHC3x3, false);
309  spr::hGenSimInfo(trackIDs[indx].detIdHCAL, p, trackIDs, theHBHETopology, 2, 2, isoinfoHC5x5, false);
310  spr::hGenSimInfo(trackIDs[indx].detIdHCAL, p, trackIDs, theHBHETopology, 3, 3, isoinfoHC7x7, false);
311  spr::hGenSimInfo(trackIDs[indx].detIdHCAL, p, trackIDs, geo, theHBHETopology, a_coneR, trackIDs[indx].directionHCAL, isoinfoHCR, false);
312  spr::hGenSimInfo(trackIDs[indx].detIdHCAL, p, trackIDs, geo, theHBHETopology, a_charIsoR, trackIDs[indx].directionHCAL, isoinfoIsoHCR, false);
313  }
314 
315  bool saveTrack = true;
316  if (a_Isolation) saveTrack = (isoinfoR.maxNearP < pCutIsolate);
317  else saveTrack = (isoinfo7x7.maxNearP < pCutIsolate);
318  if (saveTrack) fillIsolatedTrack(momVec, posECAL, trackIDs[indx].pdgId);
319  }
320  }
321  } else { // stabale particles within |eta|=2.5
322  fillTrack (posVec, momVec, posECAL, 0, false, false);
323  }
324  }
325  }
326 
327  unsigned int indx;
328  HepMC::GenEvent::particle_const_iterator p;
329  for (p=myGenEvent->particles_begin(),indx=0; p!=myGenEvent->particles_end();
330  ++p,++indx) {
331  int pdgId = ((*p)->pdg_id());
332  int ix = particleCode(pdgId);
333  if (ix >= 0) {
334  double pp = (*p)->momentum().rho();
335  double eta = (*p)->momentum().eta();
336  h_pEta[ix]->Fill(pp,eta);
337  }
338  }
339  } else { // loop over gen particles
340  std::vector<spr::propagatedGenParticleID> trackIDs = spr::propagateCALO(genParticles, pdt, geo, bField, etaMax, (verbosity>0));
341 
342  for (unsigned int indx=0; indx<trackIDs.size(); ++indx) {
343  int charge = trackIDs[indx].charge;
344  reco::GenParticleCollection::const_iterator p = trackIDs[indx].trkItr;
345 
346  momVec = math::XYZTLorentzVector(p->momentum().x(), p->momentum().y(), p->momentum().z(), p->energy());
347  if (verbosity>1) std::cout << "trkIndx " << indx << " pdgid " << trackIDs[indx].pdgId << " charge " << charge << " momVec " << momVec << std::endl;
348  // only stable particles avoiding electrons and muons
349  if (trackIDs[indx].ok && std::abs(trackIDs[indx].pdgId)>21) {
350  // consider particles within a phased space
351  if (verbosity>1) std::cout << " pt " << momVec.Pt() << " eta " << momVec.eta() << std::endl;
352  if (momVec.Pt() > ptMin && std::abs(momVec.eta()) < etaMax) {
353  posVec = GlobalPoint(p->vertex().x(), p->vertex().y(), p->vertex().z());
354  posECAL = trackIDs[indx].pointECAL;
355  if (verbosity>0) std::cout << "posECAL " << posECAL << " okECAL " << trackIDs[indx].okECAL << "okHCAL " << trackIDs[indx].okHCAL << std::endl;
356  fillTrack (posVec, momVec, posECAL, trackIDs[indx].pdgId, trackIDs[indx].okECAL, true);
357  if (trackIDs[indx].okECAL) {
358  if ( std::abs(charge)>0 ) {
359  spr::eGenSimInfo(trackIDs[indx].detIdECAL, p, trackIDs, geo, caloTopology, 0, 0, isoinfo1x1, verbosity>1);
360  spr::eGenSimInfo(trackIDs[indx].detIdECAL, p, trackIDs, geo, caloTopology, 1, 1, isoinfo3x3, verbosity>0);
361  spr::eGenSimInfo(trackIDs[indx].detIdECAL, p, trackIDs, geo, caloTopology, 3, 3, isoinfo7x7, verbosity>1);
362  spr::eGenSimInfo(trackIDs[indx].detIdECAL, p, trackIDs, geo, caloTopology, 4, 4, isoinfo9x9, verbosity>1);
363  spr::eGenSimInfo(trackIDs[indx].detIdECAL, p, trackIDs, geo, caloTopology, 5, 5, isoinfo11x11, verbosity>1);
364  spr::eGenSimInfo(trackIDs[indx].detIdECAL, p, trackIDs, geo, caloTopology, 7, 7, isoinfo15x15, verbosity>1);
365  spr::eGenSimInfo(trackIDs[indx].detIdECAL, p, trackIDs, geo, caloTopology,10,10, isoinfo21x21, verbosity>1);
366  spr::eGenSimInfo(trackIDs[indx].detIdECAL, p, trackIDs, geo, caloTopology,12,12, isoinfo25x25, verbosity>1);
367  spr::eGenSimInfo(trackIDs[indx].detIdECAL, p, trackIDs, geo, caloTopology,15,15, isoinfo31x31, verbosity>1);
368  spr::eGenSimInfo(trackIDs[indx].detIdECAL, p, trackIDs, geo, caloTopology, a_mipR, trackIDs[indx].directionECAL, isoinfoR, verbosity>1);
369  spr::eGenSimInfo(trackIDs[indx].detIdECAL, p, trackIDs, geo, caloTopology, a_neutIsoR, trackIDs[indx].directionECAL, isoinfoIsoR, verbosity>1);
370  if (trackIDs[indx].okHCAL) {
371  spr::hGenSimInfo(trackIDs[indx].detIdHCAL, p, trackIDs, theHBHETopology, 0, 0, isoinfoHC1x1, verbosity>1);
372  spr::hGenSimInfo(trackIDs[indx].detIdHCAL, p, trackIDs, theHBHETopology, 1, 1, isoinfoHC3x3, verbosity>1);
373  spr::hGenSimInfo(trackIDs[indx].detIdHCAL, p, trackIDs, theHBHETopology, 2, 2, isoinfoHC5x5, verbosity>1);
374  spr::hGenSimInfo(trackIDs[indx].detIdHCAL, p, trackIDs, theHBHETopology, 3, 3, isoinfoHC7x7, verbosity>1);
375  spr::hGenSimInfo(trackIDs[indx].detIdHCAL, p, trackIDs, geo, theHBHETopology, a_coneR, trackIDs[indx].directionHCAL, isoinfoHCR, verbosity>1);
376  spr::hGenSimInfo(trackIDs[indx].detIdHCAL, p, trackIDs, geo, theHBHETopology, a_charIsoR, trackIDs[indx].directionHCAL, isoinfoIsoHCR, verbosity>1);
377  }
378 
379  bool saveTrack = true;
380  if (a_Isolation) saveTrack = (isoinfoIsoR.maxNearP < pCutIsolate);
381  else saveTrack = (isoinfo7x7.maxNearP < pCutIsolate);
382  if (saveTrack) fillIsolatedTrack(momVec, posECAL, trackIDs[indx].pdgId);
383  }
384  }
385  } else { // stabale particles within |eta|=2.5
386  fillTrack (posVec, momVec, posECAL, 0, false, false);
387  }
388  }
389  } // loop over gen particles
390 
391  unsigned int indx;
392  reco::GenParticleCollection::const_iterator p;
393  for (p=genParticles->begin(),indx=0; p!=genParticles->end(); ++p,++indx) {
394  int pdgId = (p->pdgId());
395  int ix = particleCode(pdgId);
396  if (ix >= 0) {
397  double pp = (p->momentum()).R();
398  double eta = (p->momentum()).Eta();
399  h_pEta[ix]->Fill(pp,eta);
400  }
401  }
402 
403  }
404 
405  //t_nEvtProc->push_back(nEventProc);
406  h_NEventProc->SetBinContent(1,nEventProc);
407  tree->Fill();
408 
409 }
410 
412 
413  nEventProc=0;
414 
415  initL1 = false;
416 
417  double tempgen_TH[NPBins+1] = { 0.0, 5.0, 12.0, 300.0};
418  for(int i=0; i<=NPBins; i++) genPartPBins[i] = tempgen_TH[i];
419 
420  double tempgen_Eta[NEtaBins+1] = {0.0, 0.5, 1.1, 1.7, 2.3};
421  for(int i=0; i<=NEtaBins; i++) genPartEtaBins[i] = tempgen_Eta[i];
422 
423  BookHistograms();
424 
425 }
426 
428 }
429 
430 double IsolatedGenParticles::DeltaPhi(double v1, double v2) {
431  // Computes the correctly normalized phi difference
432  // v1, v2 = phi of object 1 and 2
433 
434  double pi = 3.141592654;
435  double twopi = 6.283185307;
436 
437  double diff = std::abs(v2 - v1);
438  double corr = twopi - diff;
439  if (diff < pi){ return diff;} else { return corr;}
440 }
441 
442 double IsolatedGenParticles::DeltaR(double eta1, double phi1, double eta2, double phi2) {
443  double deta = eta1 - eta2;
444  double dphi = DeltaPhi(phi1, phi2);
445  return std::sqrt(deta*deta + dphi*dphi);
446 }
447 
448 double IsolatedGenParticles::DeltaR2(double eta1, double phi1, double eta2, double phi2) {
449  double deta = eta1 - eta2;
450  double dphi = DeltaPhi(phi1, phi2);
451  return deta*deta + dphi*dphi;
452 }
453 
454 void IsolatedGenParticles::fillTrack (GlobalPoint & posVec, math::XYZTLorentzVector & momVec, GlobalPoint & posECAL, int pdgId, bool okECAL, bool accept) {
455 
456  if (accept) {
457  t_isoTrkPAll ->push_back( momVec.P() );
458  t_isoTrkPtAll ->push_back( momVec.Pt() );
459  t_isoTrkPhiAll ->push_back( momVec.phi() );
460  t_isoTrkEtaAll ->push_back( momVec.eta() );
461  t_isoTrkPdgIdAll ->push_back( pdgId ) ;
462  if (okECAL) {
463  double phi1 = momVec.phi();
464  double phi2 = (posECAL - posVec).phi();
465  double dphi = DeltaPhi( phi1, phi2 );
466  double deta = momVec.eta() - (posECAL - posVec).eta();
467  t_isoTrkDPhiAll ->push_back( dphi );
468  t_isoTrkDEtaAll ->push_back( deta );
469  } else {
470  t_isoTrkDPhiAll ->push_back( 999.0 );
471  t_isoTrkDEtaAll ->push_back( 999.0 );
472  }
473  } else {
474  t_isoTrkDPhiAll ->push_back( -999.0 );
475  t_isoTrkDEtaAll ->push_back( -999.0 );
476  }
477 }
478 
480 
481  t_isoTrkP ->push_back(momVec.P());
482  t_isoTrkPt ->push_back(momVec.Pt());
483  t_isoTrkEne ->push_back(momVec.E());
484  t_isoTrkEta ->push_back(momVec.eta());
485  t_isoTrkPhi ->push_back(momVec.phi());
486  t_isoTrkEtaEC ->push_back(posECAL.eta());
487  t_isoTrkPhiEC ->push_back(posECAL.phi());
488  t_isoTrkPdgId ->push_back(pdgId);
489 
497  t_eleEne31x31 ->push_back(isoinfo31x31.eleEne);
498  t_muEne31x31 ->push_back(isoinfo31x31.muEne);
499 
507  t_eleEne25x25 ->push_back(isoinfo25x25.eleEne);
508  t_muEne25x25 ->push_back(isoinfo25x25.muEne);
509 
517  t_eleEne21x21 ->push_back(isoinfo21x21.eleEne);
518  t_muEne21x21 ->push_back(isoinfo21x21.muEne);
519 
527  t_eleEne15x15 ->push_back(isoinfo15x15.eleEne);
528  t_muEne15x15 ->push_back(isoinfo15x15.muEne);
529 
537  t_eleEne11x11 ->push_back(isoinfo11x11.eleEne);
538  t_muEne11x11 ->push_back(isoinfo11x11.muEne);
539 
540  t_maxNearP9x9 ->push_back(isoinfo9x9.maxNearP);
542  t_cHadronEne9x9_1 ->push_back(isoinfo9x9.cHadronEne_[0]);
543  t_cHadronEne9x9_2 ->push_back(isoinfo9x9.cHadronEne_[1]);
544  t_cHadronEne9x9_3 ->push_back(isoinfo9x9.cHadronEne_[2]);
546  t_photonEne9x9 ->push_back(isoinfo9x9.photonEne);
547  t_eleEne9x9 ->push_back(isoinfo9x9.eleEne);
548  t_muEne9x9 ->push_back(isoinfo9x9.muEne);
549 
550  t_maxNearP7x7 ->push_back(isoinfo7x7.maxNearP);
552  t_cHadronEne7x7_1 ->push_back(isoinfo7x7.cHadronEne_[0]);
553  t_cHadronEne7x7_2 ->push_back(isoinfo7x7.cHadronEne_[1]);
554  t_cHadronEne7x7_3 ->push_back(isoinfo7x7.cHadronEne_[2]);
556  t_photonEne7x7 ->push_back(isoinfo7x7.photonEne);
557  t_eleEne7x7 ->push_back(isoinfo7x7.eleEne);
558  t_muEne7x7 ->push_back(isoinfo7x7.muEne);
559 
560  t_maxNearP3x3 ->push_back(isoinfo3x3.maxNearP);
562  t_cHadronEne3x3_1 ->push_back(isoinfo3x3.cHadronEne_[0]);
563  t_cHadronEne3x3_2 ->push_back(isoinfo3x3.cHadronEne_[1]);
564  t_cHadronEne3x3_3 ->push_back(isoinfo3x3.cHadronEne_[2]);
566  t_photonEne3x3 ->push_back(isoinfo3x3.photonEne);
567  t_eleEne3x3 ->push_back(isoinfo3x3.eleEne);
568  t_muEne3x3 ->push_back(isoinfo3x3.muEne);
569 
570  t_maxNearP1x1 ->push_back(isoinfo1x1.maxNearP);
572  t_cHadronEne1x1_1 ->push_back(isoinfo1x1.cHadronEne_[0]);
573  t_cHadronEne1x1_2 ->push_back(isoinfo1x1.cHadronEne_[1]);
574  t_cHadronEne1x1_3 ->push_back(isoinfo1x1.cHadronEne_[2]);
576  t_photonEne1x1 ->push_back(isoinfo1x1.photonEne);
577  t_eleEne1x1 ->push_back(isoinfo1x1.eleEne);
578  t_muEne1x1 ->push_back(isoinfo1x1.muEne);
579 
587  t_eleEneHC1x1 ->push_back(isoinfoHC1x1.eleEne);
588  t_muEneHC1x1 ->push_back(isoinfoHC1x1.muEne);
589 
597  t_eleEneHC3x3 ->push_back(isoinfoHC3x3.eleEne);
598  t_muEneHC3x3 ->push_back(isoinfoHC3x3.muEne);
599 
607  t_eleEneHC5x5 ->push_back(isoinfoHC5x5.eleEne);
608  t_muEneHC5x5 ->push_back(isoinfoHC5x5.muEne);
609 
617  t_eleEneHC7x7 ->push_back(isoinfoHC7x7.eleEne);
618  t_muEneHC7x7 ->push_back(isoinfoHC7x7.muEne);
619 
620  t_maxNearPR ->push_back(isoinfoR.maxNearP);
621  t_cHadronEneR ->push_back(isoinfoR.cHadronEne);
622  t_cHadronEneR_1 ->push_back(isoinfoR.cHadronEne_[0]);
623  t_cHadronEneR_2 ->push_back(isoinfoR.cHadronEne_[1]);
624  t_cHadronEneR_3 ->push_back(isoinfoR.cHadronEne_[2]);
625  t_nHadronEneR ->push_back(isoinfoR.nHadronEne);
626  t_photonEneR ->push_back(isoinfoR.photonEne);
627  t_eleEneR ->push_back(isoinfoR.eleEne);
628  t_muEneR ->push_back(isoinfoR.muEne);
629 
630  t_maxNearPIsoR ->push_back(isoinfoIsoR.maxNearP);
637  t_eleEneIsoR ->push_back(isoinfoIsoR.eleEne);
638  t_muEneIsoR ->push_back(isoinfoIsoR.muEne);
639 
640  t_maxNearPHCR ->push_back(isoinfoHCR.maxNearP);
642  t_cHadronEneHCR_1 ->push_back(isoinfoHCR.cHadronEne_[0]);
643  t_cHadronEneHCR_2 ->push_back(isoinfoHCR.cHadronEne_[1]);
644  t_cHadronEneHCR_3 ->push_back(isoinfoHCR.cHadronEne_[2]);
646  t_photonEneHCR ->push_back(isoinfoHCR.photonEne);
647  t_eleEneHCR ->push_back(isoinfoHCR.eleEne);
648  t_muEneHCR ->push_back(isoinfoHCR.muEne);
649 
657  t_eleEneIsoHCR ->push_back(isoinfoIsoHCR.eleEne);
658  t_muEneIsoHCR ->push_back(isoinfoIsoHCR.muEne);
659 }
660 
662 
663  //char hname[100], htit[100];
664 
665  h_NEventProc = fs->make<TH1I>("h_NEventProc", "h_NEventProc", 2, -0.5, 0.5);
666  h_L1AlgoNames = fs->make<TH1I>("h_L1AlgoNames", "h_L1AlgoNames:Bin Labels", 128, -0.5, 127.5);
667 
668  double pBin[] = {0.0, 2.0, 4.0, 6.0, 8.0, 10.0, 20.0, 30.0, 40.0, 50.0,
669  60.0, 70.0, 80.0, 90.0, 100.0, 150.0, 200.0, 250.0,
670  300.0, 350.0, 400.0, 450.0, 500.0, 550.0, 600.0,
671  650.0, 700.0, 750.0, 800.0, 850.0, 900.0, 950.0,
672  1000.0};
673  constexpr double etaBin[] = {-3.0, -2.9, -2.8, -2.7, -2.6, -2.5, -2.4, -2.3,
674  -2.2, -2.1, -2.0, -1.9, -1.8, -1.7, -1.6, -1.5,
675  -1.4, -1.3, -1.2, -1.1, -1.0, -0.9, -0.8, -0.7,
676  -0.6, -0.5, -0.4, -0.3, -0.2, -0.1, 0.0, 0.1,
677  0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9,
678  1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7,
679  1.8, 1.9, 2.0, 2.1, 2.2, 2.3, 2.4, 2.5,
680  2.6, 2.7, 2.8, 2.9, 3.0};
681  constexpr char const* particle[] = {"electron", "positron", "#gamma", "#pi^+",
682  "#pi^-", "K^+", "K^-", "p", "n", "pbar",
683  "nbar", "K^0_L"};
684  TFileDirectory dir1 = fs->mkdir( "pEta" );
685  char name[20], title[50];
686  for (int i=0; i<Particles; ++i) {
687  sprintf (name, "pEta%d", i);
688  sprintf (title, "#eta vs momentum for %s", particle[i]);
689  h_pEta[i] = dir1.make<TH2D>(name, title, (sizeof(pBin)/sizeof(double))-1, pBin, (sizeof(etaBin)/sizeof(double))-1, etaBin);
690  }
691 
692  // build the tree
693  tree = fs->make<TTree>("tree", "tree");
694 
695  t_isoTrkPAll = new std::vector<double>();
696  t_isoTrkPtAll = new std::vector<double>();
697  t_isoTrkPhiAll = new std::vector<double>();
698  t_isoTrkEtaAll = new std::vector<double>();
699  t_isoTrkDPhiAll = new std::vector<double>();
700  t_isoTrkDEtaAll = new std::vector<double>();
701  t_isoTrkPdgIdAll = new std::vector<double>();
702 
703  t_isoTrkP = new std::vector<double>();
704  t_isoTrkPt = new std::vector<double>();
705  t_isoTrkEne = new std::vector<double>();
706  t_isoTrkEta = new std::vector<double>();
707  t_isoTrkPhi = new std::vector<double>();
708  t_isoTrkEtaEC = new std::vector<double>();
709  t_isoTrkPhiEC = new std::vector<double>();
710  t_isoTrkPdgId = new std::vector<double>();
711 
712  t_maxNearP31x31 = new std::vector<double>();
713  t_cHadronEne31x31 = new std::vector<double>();
714  t_cHadronEne31x31_1 = new std::vector<double>();
715  t_cHadronEne31x31_2 = new std::vector<double>();
716  t_cHadronEne31x31_3 = new std::vector<double>();
717  t_nHadronEne31x31 = new std::vector<double>();
718  t_photonEne31x31 = new std::vector<double>();
719  t_eleEne31x31 = new std::vector<double>();
720  t_muEne31x31 = new std::vector<double>();
721 
722  t_maxNearP25x25 = new std::vector<double>();
723  t_cHadronEne25x25 = new std::vector<double>();
724  t_cHadronEne25x25_1 = new std::vector<double>();
725  t_cHadronEne25x25_2 = new std::vector<double>();
726  t_cHadronEne25x25_3 = new std::vector<double>();
727  t_nHadronEne25x25 = new std::vector<double>();
728  t_photonEne25x25 = new std::vector<double>();
729  t_eleEne25x25 = new std::vector<double>();
730  t_muEne25x25 = new std::vector<double>();
731 
732  t_maxNearP21x21 = new std::vector<double>();
733  t_cHadronEne21x21 = new std::vector<double>();
734  t_cHadronEne21x21_1 = new std::vector<double>();
735  t_cHadronEne21x21_2 = new std::vector<double>();
736  t_cHadronEne21x21_3 = new std::vector<double>();
737  t_nHadronEne21x21 = new std::vector<double>();
738  t_photonEne21x21 = new std::vector<double>();
739  t_eleEne21x21 = new std::vector<double>();
740  t_muEne21x21 = new std::vector<double>();
741 
742  t_maxNearP15x15 = new std::vector<double>();
743  t_cHadronEne15x15 = new std::vector<double>();
744  t_cHadronEne15x15_1 = new std::vector<double>();
745  t_cHadronEne15x15_2 = new std::vector<double>();
746  t_cHadronEne15x15_3 = new std::vector<double>();
747  t_nHadronEne15x15 = new std::vector<double>();
748  t_photonEne15x15 = new std::vector<double>();
749  t_eleEne15x15 = new std::vector<double>();
750  t_muEne15x15 = new std::vector<double>();
751 
752  t_maxNearP11x11 = new std::vector<double>();
753  t_cHadronEne11x11 = new std::vector<double>();
754  t_cHadronEne11x11_1 = new std::vector<double>();
755  t_cHadronEne11x11_2 = new std::vector<double>();
756  t_cHadronEne11x11_3 = new std::vector<double>();
757  t_nHadronEne11x11 = new std::vector<double>();
758  t_photonEne11x11 = new std::vector<double>();
759  t_eleEne11x11 = new std::vector<double>();
760  t_muEne11x11 = new std::vector<double>();
761 
762  t_maxNearP9x9 = new std::vector<double>();
763  t_cHadronEne9x9 = new std::vector<double>();
764  t_cHadronEne9x9_1 = new std::vector<double>();
765  t_cHadronEne9x9_2 = new std::vector<double>();
766  t_cHadronEne9x9_3 = new std::vector<double>();
767  t_nHadronEne9x9 = new std::vector<double>();
768  t_photonEne9x9 = new std::vector<double>();
769  t_eleEne9x9 = new std::vector<double>();
770  t_muEne9x9 = new std::vector<double>();
771 
772  t_maxNearP7x7 = new std::vector<double>();
773  t_cHadronEne7x7 = new std::vector<double>();
774  t_cHadronEne7x7_1 = new std::vector<double>();
775  t_cHadronEne7x7_2 = new std::vector<double>();
776  t_cHadronEne7x7_3 = new std::vector<double>();
777  t_nHadronEne7x7 = new std::vector<double>();
778  t_photonEne7x7 = new std::vector<double>();
779  t_eleEne7x7 = new std::vector<double>();
780  t_muEne7x7 = new std::vector<double>();
781 
782  t_maxNearP3x3 = new std::vector<double>();
783  t_cHadronEne3x3 = new std::vector<double>();
784  t_cHadronEne3x3_1 = new std::vector<double>();
785  t_cHadronEne3x3_2 = new std::vector<double>();
786  t_cHadronEne3x3_3 = new std::vector<double>();
787  t_nHadronEne3x3 = new std::vector<double>();
788  t_photonEne3x3 = new std::vector<double>();
789  t_eleEne3x3 = new std::vector<double>();
790  t_muEne3x3 = new std::vector<double>();
791 
792  t_maxNearP1x1 = new std::vector<double>();
793  t_cHadronEne1x1 = new std::vector<double>();
794  t_cHadronEne1x1_1 = new std::vector<double>();
795  t_cHadronEne1x1_2 = new std::vector<double>();
796  t_cHadronEne1x1_3 = new std::vector<double>();
797  t_nHadronEne1x1 = new std::vector<double>();
798  t_photonEne1x1 = new std::vector<double>();
799  t_eleEne1x1 = new std::vector<double>();
800  t_muEne1x1 = new std::vector<double>();
801 
802  t_maxNearPHC1x1 = new std::vector<double>();
803  t_cHadronEneHC1x1 = new std::vector<double>();
804  t_cHadronEneHC1x1_1 = new std::vector<double>();
805  t_cHadronEneHC1x1_2 = new std::vector<double>();
806  t_cHadronEneHC1x1_3 = new std::vector<double>();
807  t_nHadronEneHC1x1 = new std::vector<double>();
808  t_photonEneHC1x1 = new std::vector<double>();
809  t_eleEneHC1x1 = new std::vector<double>();
810  t_muEneHC1x1 = new std::vector<double>();
811 
812  t_maxNearPHC3x3 = new std::vector<double>();
813  t_cHadronEneHC3x3 = new std::vector<double>();
814  t_cHadronEneHC3x3_1 = new std::vector<double>();
815  t_cHadronEneHC3x3_2 = new std::vector<double>();
816  t_cHadronEneHC3x3_3 = new std::vector<double>();
817  t_nHadronEneHC3x3 = new std::vector<double>();
818  t_photonEneHC3x3 = new std::vector<double>();
819  t_eleEneHC3x3 = new std::vector<double>();
820  t_muEneHC3x3 = new std::vector<double>();
821 
822  t_maxNearPHC5x5 = new std::vector<double>();
823  t_cHadronEneHC5x5 = new std::vector<double>();
824  t_cHadronEneHC5x5_1 = new std::vector<double>();
825  t_cHadronEneHC5x5_2 = new std::vector<double>();
826  t_cHadronEneHC5x5_3 = new std::vector<double>();
827  t_nHadronEneHC5x5 = new std::vector<double>();
828  t_photonEneHC5x5 = new std::vector<double>();
829  t_eleEneHC5x5 = new std::vector<double>();
830  t_muEneHC5x5 = new std::vector<double>();
831 
832  t_maxNearPHC7x7 = new std::vector<double>();
833  t_cHadronEneHC7x7 = new std::vector<double>();
834  t_cHadronEneHC7x7_1 = new std::vector<double>();
835  t_cHadronEneHC7x7_2 = new std::vector<double>();
836  t_cHadronEneHC7x7_3 = new std::vector<double>();
837  t_nHadronEneHC7x7 = new std::vector<double>();
838  t_photonEneHC7x7 = new std::vector<double>();
839  t_eleEneHC7x7 = new std::vector<double>();
840  t_muEneHC7x7 = new std::vector<double>();
841 
842  t_maxNearPR = new std::vector<double>();
843  t_cHadronEneR = new std::vector<double>();
844  t_cHadronEneR_1 = new std::vector<double>();
845  t_cHadronEneR_2 = new std::vector<double>();
846  t_cHadronEneR_3 = new std::vector<double>();
847  t_nHadronEneR = new std::vector<double>();
848  t_photonEneR = new std::vector<double>();
849  t_eleEneR = new std::vector<double>();
850  t_muEneR = new std::vector<double>();
851 
852  t_maxNearPIsoR = new std::vector<double>();
853  t_cHadronEneIsoR = new std::vector<double>();
854  t_cHadronEneIsoR_1 = new std::vector<double>();
855  t_cHadronEneIsoR_2 = new std::vector<double>();
856  t_cHadronEneIsoR_3 = new std::vector<double>();
857  t_nHadronEneIsoR = new std::vector<double>();
858  t_photonEneIsoR = new std::vector<double>();
859  t_eleEneIsoR = new std::vector<double>();
860  t_muEneIsoR = new std::vector<double>();
861 
862  t_maxNearPHCR = new std::vector<double>();
863  t_cHadronEneHCR = new std::vector<double>();
864  t_cHadronEneHCR_1 = new std::vector<double>();
865  t_cHadronEneHCR_2 = new std::vector<double>();
866  t_cHadronEneHCR_3 = new std::vector<double>();
867  t_nHadronEneHCR = new std::vector<double>();
868  t_photonEneHCR = new std::vector<double>();
869  t_eleEneHCR = new std::vector<double>();
870  t_muEneHCR = new std::vector<double>();
871 
872  t_maxNearPIsoHCR = new std::vector<double>();
873  t_cHadronEneIsoHCR = new std::vector<double>();
874  t_cHadronEneIsoHCR_1 = new std::vector<double>();
875  t_cHadronEneIsoHCR_2 = new std::vector<double>();
876  t_cHadronEneIsoHCR_3 = new std::vector<double>();
877  t_nHadronEneIsoHCR = new std::vector<double>();
878  t_photonEneIsoHCR = new std::vector<double>();
879  t_eleEneIsoHCR = new std::vector<double>();
880  t_muEneIsoHCR = new std::vector<double>();
881 
882  //----- L1Trigger
883  t_L1Decision = new std::vector<int>();
884  t_L1CenJetPt = new std::vector<double>();
885  t_L1CenJetEta = new std::vector<double>();
886  t_L1CenJetPhi = new std::vector<double>();
887  t_L1FwdJetPt = new std::vector<double>();
888  t_L1FwdJetEta = new std::vector<double>();
889  t_L1FwdJetPhi = new std::vector<double>();
890  t_L1TauJetPt = new std::vector<double>();
891  t_L1TauJetEta = new std::vector<double>();
892  t_L1TauJetPhi = new std::vector<double>();
893  t_L1MuonPt = new std::vector<double>();
894  t_L1MuonEta = new std::vector<double>();
895  t_L1MuonPhi = new std::vector<double>();
896  t_L1IsoEMPt = new std::vector<double>();
897  t_L1IsoEMEta = new std::vector<double>();
898  t_L1IsoEMPhi = new std::vector<double>();
899  t_L1NonIsoEMPt = new std::vector<double>();
900  t_L1NonIsoEMEta = new std::vector<double>();
901  t_L1NonIsoEMPhi = new std::vector<double>();
902  t_L1METPt = new std::vector<double>();
903  t_L1METEta = new std::vector<double>();
904  t_L1METPhi = new std::vector<double>();
905 
906  //tree->Branch("t_nEvtProc", "vector<int>", &t_nEvtProc);
907 
908  tree->Branch("t_isoTrkPAll", "vector<double>", &t_isoTrkPAll);
909  tree->Branch("t_isoTrkPtAll", "vector<double>", &t_isoTrkPtAll);
910  tree->Branch("t_isoTrkPhiAll", "vector<double>", &t_isoTrkPhiAll);
911  tree->Branch("t_isoTrkEtaAll", "vector<double>", &t_isoTrkEtaAll);
912  tree->Branch("t_isoTrkDPhiAll", "vector<double>", &t_isoTrkDPhiAll);
913  tree->Branch("t_isoTrkDEtaAll", "vector<double>", &t_isoTrkDEtaAll);
914  tree->Branch("t_isoTrkPdgIdAll", "vector<double>", &t_isoTrkPdgIdAll);
915 
916  tree->Branch("t_isoTrkP", "vector<double>", &t_isoTrkP);
917  tree->Branch("t_isoTrkPt", "vector<double>", &t_isoTrkPt);
918  tree->Branch("t_isoTrkEne", "vector<double>", &t_isoTrkEne);
919  tree->Branch("t_isoTrkEta", "vector<double>", &t_isoTrkEta);
920  tree->Branch("t_isoTrkPhi", "vector<double>", &t_isoTrkPhi);
921  tree->Branch("t_isoTrkEtaEC", "vector<double>", &t_isoTrkEtaEC);
922  tree->Branch("t_isoTrkPhiEC", "vector<double>", &t_isoTrkPhiEC);
923  tree->Branch("t_isoTrkPdgId", "vector<double>", &t_isoTrkPdgId);
924 
925  tree->Branch("t_maxNearP31x31", "vector<double>", &t_maxNearP31x31);
926  tree->Branch("t_cHadronEne31x31", "vector<double>", &t_cHadronEne31x31);
927  tree->Branch("t_cHadronEne31x31_1", "vector<double>", &t_cHadronEne31x31_1);
928  tree->Branch("t_cHadronEne31x31_2", "vector<double>", &t_cHadronEne31x31_2);
929  tree->Branch("t_cHadronEne31x31_3", "vector<double>", &t_cHadronEne31x31_3);
930  tree->Branch("t_nHadronEne31x31", "vector<double>", &t_nHadronEne31x31);
931  tree->Branch("t_photonEne31x31", "vector<double>", &t_photonEne31x31);
932  tree->Branch("t_eleEne31x31", "vector<double>", &t_eleEne31x31);
933  tree->Branch("t_muEne31x31", "vector<double>", &t_muEne31x31);
934 
935  tree->Branch("t_maxNearP25x25", "vector<double>", &t_maxNearP25x25);
936  tree->Branch("t_cHadronEne25x25", "vector<double>", &t_cHadronEne25x25);
937  tree->Branch("t_cHadronEne25x25_1", "vector<double>", &t_cHadronEne25x25_1);
938  tree->Branch("t_cHadronEne25x25_2", "vector<double>", &t_cHadronEne25x25_2);
939  tree->Branch("t_cHadronEne25x25_3", "vector<double>", &t_cHadronEne25x25_3);
940  tree->Branch("t_nHadronEne25x25", "vector<double>", &t_nHadronEne25x25);
941  tree->Branch("t_photonEne25x25", "vector<double>", &t_photonEne25x25);
942  tree->Branch("t_eleEne25x25", "vector<double>", &t_eleEne25x25);
943  tree->Branch("t_muEne25x25", "vector<double>", &t_muEne25x25);
944 
945  tree->Branch("t_maxNearP21x21", "vector<double>", &t_maxNearP21x21);
946  tree->Branch("t_cHadronEne21x21", "vector<double>", &t_cHadronEne21x21);
947  tree->Branch("t_cHadronEne21x21_1", "vector<double>", &t_cHadronEne21x21_1);
948  tree->Branch("t_cHadronEne21x21_2", "vector<double>", &t_cHadronEne21x21_2);
949  tree->Branch("t_cHadronEne21x21_3", "vector<double>", &t_cHadronEne21x21_3);
950  tree->Branch("t_nHadronEne21x21", "vector<double>", &t_nHadronEne21x21);
951  tree->Branch("t_photonEne21x21", "vector<double>", &t_photonEne21x21);
952  tree->Branch("t_eleEne21x21", "vector<double>", &t_eleEne21x21);
953  tree->Branch("t_muEne21x21", "vector<double>", &t_muEne21x21);
954 
955  tree->Branch("t_maxNearP15x15", "vector<double>", &t_maxNearP15x15);
956  tree->Branch("t_cHadronEne15x15", "vector<double>", &t_cHadronEne15x15);
957  tree->Branch("t_cHadronEne15x15_1", "vector<double>", &t_cHadronEne15x15_1);
958  tree->Branch("t_cHadronEne15x15_2", "vector<double>", &t_cHadronEne15x15_2);
959  tree->Branch("t_cHadronEne15x15_3", "vector<double>", &t_cHadronEne15x15_3);
960  tree->Branch("t_nHadronEne15x15", "vector<double>", &t_nHadronEne15x15);
961  tree->Branch("t_photonEne15x15", "vector<double>", &t_photonEne15x15);
962  tree->Branch("t_eleEne15x15", "vector<double>", &t_eleEne15x15);
963  tree->Branch("t_muEne15x15", "vector<double>", &t_muEne15x15);
964 
965  tree->Branch("t_maxNearP11x11", "vector<double>", &t_maxNearP11x11);
966  tree->Branch("t_cHadronEne11x11", "vector<double>", &t_cHadronEne11x11);
967  tree->Branch("t_cHadronEne11x11_1", "vector<double>", &t_cHadronEne11x11_1);
968  tree->Branch("t_cHadronEne11x11_2", "vector<double>", &t_cHadronEne11x11_2);
969  tree->Branch("t_cHadronEne11x11_3", "vector<double>", &t_cHadronEne11x11_3);
970  tree->Branch("t_nHadronEne11x11", "vector<double>", &t_nHadronEne11x11);
971  tree->Branch("t_photonEne11x11", "vector<double>", &t_photonEne11x11);
972  tree->Branch("t_eleEne11x11", "vector<double>", &t_eleEne11x11);
973  tree->Branch("t_muEne11x11", "vector<double>", &t_muEne11x11);
974 
975  tree->Branch("t_maxNearP9x9", "vector<double>", &t_maxNearP9x9);
976  tree->Branch("t_cHadronEne9x9", "vector<double>", &t_cHadronEne9x9);
977  tree->Branch("t_cHadronEne9x9_1", "vector<double>", &t_cHadronEne9x9_1);
978  tree->Branch("t_cHadronEne9x9_2", "vector<double>", &t_cHadronEne9x9_2);
979  tree->Branch("t_cHadronEne9x9_3", "vector<double>", &t_cHadronEne9x9_3);
980  tree->Branch("t_nHadronEne9x9", "vector<double>", &t_nHadronEne9x9);
981  tree->Branch("t_photonEne9x9", "vector<double>", &t_photonEne9x9);
982  tree->Branch("t_eleEne9x9", "vector<double>", &t_eleEne9x9);
983  tree->Branch("t_muEne9x9", "vector<double>", &t_muEne9x9);
984 
985  tree->Branch("t_maxNearP7x7", "vector<double>", &t_maxNearP7x7);
986  tree->Branch("t_cHadronEne7x7", "vector<double>", &t_cHadronEne7x7);
987  tree->Branch("t_cHadronEne7x7_1", "vector<double>", &t_cHadronEne7x7_1);
988  tree->Branch("t_cHadronEne7x7_2", "vector<double>", &t_cHadronEne7x7_2);
989  tree->Branch("t_cHadronEne7x7_3", "vector<double>", &t_cHadronEne7x7_3);
990  tree->Branch("t_nHadronEne7x7", "vector<double>", &t_nHadronEne7x7);
991  tree->Branch("t_photonEne7x7", "vector<double>", &t_photonEne7x7);
992  tree->Branch("t_eleEne7x7", "vector<double>", &t_eleEne7x7);
993  tree->Branch("t_muEne7x7", "vector<double>", &t_muEne7x7);
994 
995  tree->Branch("t_maxNearP3x3", "vector<double>", &t_maxNearP3x3);
996  tree->Branch("t_cHadronEne3x3", "vector<double>", &t_cHadronEne3x3);
997  tree->Branch("t_cHadronEne3x3_1", "vector<double>", &t_cHadronEne3x3_1);
998  tree->Branch("t_cHadronEne3x3_2", "vector<double>", &t_cHadronEne3x3_2);
999  tree->Branch("t_cHadronEne3x3_3", "vector<double>", &t_cHadronEne3x3_3);
1000  tree->Branch("t_nHadronEne3x3", "vector<double>", &t_nHadronEne3x3);
1001  tree->Branch("t_photonEne3x3", "vector<double>", &t_photonEne3x3);
1002  tree->Branch("t_eleEne3x3", "vector<double>", &t_eleEne3x3);
1003  tree->Branch("t_muEne3x3", "vector<double>", &t_muEne3x3);
1004 
1005  tree->Branch("t_maxNearP1x1", "vector<double>", &t_maxNearP1x1);
1006  tree->Branch("t_cHadronEne1x1", "vector<double>", &t_cHadronEne1x1);
1007  tree->Branch("t_cHadronEne1x1_1", "vector<double>", &t_cHadronEne1x1_1);
1008  tree->Branch("t_cHadronEne1x1_2", "vector<double>", &t_cHadronEne1x1_2);
1009  tree->Branch("t_cHadronEne1x1_3", "vector<double>", &t_cHadronEne1x1_3);
1010  tree->Branch("t_nHadronEne1x1", "vector<double>", &t_nHadronEne1x1);
1011  tree->Branch("t_photonEne1x1", "vector<double>", &t_photonEne1x1);
1012  tree->Branch("t_eleEne1x1", "vector<double>", &t_eleEne1x1);
1013  tree->Branch("t_muEne1x1", "vector<double>", &t_muEne1x1);
1014 
1015  tree->Branch("t_maxNearPHC1x1", "vector<double>", &t_maxNearPHC1x1);
1016  tree->Branch("t_cHadronEneHC1x1", "vector<double>", &t_cHadronEneHC1x1);
1017  tree->Branch("t_cHadronEneHC1x1_1", "vector<double>", &t_cHadronEneHC1x1_1);
1018  tree->Branch("t_cHadronEneHC1x1_2", "vector<double>", &t_cHadronEneHC1x1_2);
1019  tree->Branch("t_cHadronEneHC1x1_3", "vector<double>", &t_cHadronEneHC1x1_3);
1020  tree->Branch("t_nHadronEneHC1x1", "vector<double>", &t_nHadronEneHC1x1);
1021  tree->Branch("t_photonEneHC1x1", "vector<double>", &t_photonEneHC1x1);
1022  tree->Branch("t_eleEneHC1x1", "vector<double>", &t_eleEneHC1x1);
1023  tree->Branch("t_muEneHC1x1", "vector<double>", &t_muEneHC1x1);
1024 
1025  tree->Branch("t_maxNearPHC3x3", "vector<double>", &t_maxNearPHC3x3);
1026  tree->Branch("t_cHadronEneHC3x3", "vector<double>", &t_cHadronEneHC3x3);
1027  tree->Branch("t_cHadronEneHC3x3_1", "vector<double>", &t_cHadronEneHC3x3_1);
1028  tree->Branch("t_cHadronEneHC3x3_2", "vector<double>", &t_cHadronEneHC3x3_2);
1029  tree->Branch("t_cHadronEneHC3x3_3", "vector<double>", &t_cHadronEneHC3x3_3);
1030  tree->Branch("t_nHadronEneHC3x3", "vector<double>", &t_nHadronEneHC3x3);
1031  tree->Branch("t_photonEneHC3x3", "vector<double>", &t_photonEneHC3x3);
1032  tree->Branch("t_eleEneHC3x3", "vector<double>", &t_eleEneHC3x3);
1033  tree->Branch("t_muEneHC3x3", "vector<double>", &t_muEneHC3x3);
1034 
1035  tree->Branch("t_maxNearPHC5x5", "vector<double>", &t_maxNearPHC5x5);
1036  tree->Branch("t_cHadronEneHC5x5", "vector<double>", &t_cHadronEneHC5x5);
1037  tree->Branch("t_cHadronEneHC5x5_1", "vector<double>", &t_cHadronEneHC5x5_1);
1038  tree->Branch("t_cHadronEneHC5x5_2", "vector<double>", &t_cHadronEneHC5x5_2);
1039  tree->Branch("t_cHadronEneHC5x5_3", "vector<double>", &t_cHadronEneHC5x5_3);
1040  tree->Branch("t_nHadronEneHC5x5", "vector<double>", &t_nHadronEneHC5x5);
1041  tree->Branch("t_photonEneHC5x5", "vector<double>", &t_photonEneHC5x5);
1042  tree->Branch("t_eleEneHC5x5", "vector<double>", &t_eleEneHC5x5);
1043  tree->Branch("t_muEneHC5x5", "vector<double>", &t_muEneHC5x5);
1044 
1045  tree->Branch("t_maxNearPHC7x7", "vector<double>", &t_maxNearPHC7x7);
1046  tree->Branch("t_cHadronEneHC7x7", "vector<double>", &t_cHadronEneHC7x7);
1047  tree->Branch("t_cHadronEneHC7x7_1", "vector<double>", &t_cHadronEneHC7x7_1);
1048  tree->Branch("t_cHadronEneHC7x7_2", "vector<double>", &t_cHadronEneHC7x7_2);
1049  tree->Branch("t_cHadronEneHC7x7_3", "vector<double>", &t_cHadronEneHC7x7_3);
1050  tree->Branch("t_nHadronEneHC7x7", "vector<double>", &t_nHadronEneHC7x7);
1051  tree->Branch("t_photonEneHC7x7", "vector<double>", &t_photonEneHC7x7);
1052  tree->Branch("t_eleEneHC7x7", "vector<double>", &t_eleEneHC7x7);
1053  tree->Branch("t_muEneHC7x7", "vector<double>", &t_muEneHC7x7);
1054 
1055  tree->Branch("t_maxNearPR", "vector<double>", &t_maxNearPR);
1056  tree->Branch("t_cHadronEneR", "vector<double>", &t_cHadronEneR);
1057  tree->Branch("t_cHadronEneR_1", "vector<double>", &t_cHadronEneR_1);
1058  tree->Branch("t_cHadronEneR_2", "vector<double>", &t_cHadronEneR_2);
1059  tree->Branch("t_cHadronEneR_3", "vector<double>", &t_cHadronEneR_3);
1060  tree->Branch("t_nHadronEneR", "vector<double>", &t_nHadronEneR);
1061  tree->Branch("t_photonEneR", "vector<double>", &t_photonEneR);
1062  tree->Branch("t_eleEneR", "vector<double>", &t_eleEneR);
1063  tree->Branch("t_muEneR", "vector<double>", &t_muEneR);
1064 
1065  tree->Branch("t_maxNearPIsoR", "vector<double>", &t_maxNearPIsoR);
1066  tree->Branch("t_cHadronEneIsoR", "vector<double>", &t_cHadronEneIsoR);
1067  tree->Branch("t_cHadronEneIsoR_1", "vector<double>", &t_cHadronEneIsoR_1);
1068  tree->Branch("t_cHadronEneIsoR_2", "vector<double>", &t_cHadronEneIsoR_2);
1069  tree->Branch("t_cHadronEneIsoR_3", "vector<double>", &t_cHadronEneIsoR_3);
1070  tree->Branch("t_nHadronEneIsoR", "vector<double>", &t_nHadronEneIsoR);
1071  tree->Branch("t_photonEneIsoR", "vector<double>", &t_photonEneIsoR);
1072  tree->Branch("t_eleEneIsoR", "vector<double>", &t_eleEneIsoR);
1073  tree->Branch("t_muEneIsoR", "vector<double>", &t_muEneIsoR);
1074 
1075  tree->Branch("t_maxNearPHCR", "vector<double>", &t_maxNearPHCR);
1076  tree->Branch("t_cHadronEneHCR", "vector<double>", &t_cHadronEneHCR);
1077  tree->Branch("t_cHadronEneHCR_1", "vector<double>", &t_cHadronEneHCR_1);
1078  tree->Branch("t_cHadronEneHCR_2", "vector<double>", &t_cHadronEneHCR_2);
1079  tree->Branch("t_cHadronEneHCR_3", "vector<double>", &t_cHadronEneHCR_3);
1080  tree->Branch("t_nHadronEneHCR", "vector<double>", &t_nHadronEneHCR);
1081  tree->Branch("t_photonEneHCR", "vector<double>", &t_photonEneHCR);
1082  tree->Branch("t_eleEneHCR", "vector<double>", &t_eleEneHCR);
1083  tree->Branch("t_muEneHCR", "vector<double>", &t_muEneHCR);
1084 
1085  tree->Branch("t_maxNearPIsoHCR", "vector<double>", &t_maxNearPIsoHCR);
1086  tree->Branch("t_cHadronEneIsoHCR", "vector<double>", &t_cHadronEneIsoHCR);
1087  tree->Branch("t_cHadronEneIsoHCR_1", "vector<double>", &t_cHadronEneIsoHCR_1);
1088  tree->Branch("t_cHadronEneIsoHCR_2", "vector<double>", &t_cHadronEneIsoHCR_2);
1089  tree->Branch("t_cHadronEneIsoHCR_3", "vector<double>", &t_cHadronEneIsoHCR_3);
1090  tree->Branch("t_nHadronEneIsoHCR", "vector<double>", &t_nHadronEneIsoHCR);
1091  tree->Branch("t_photonEneIsoHCR", "vector<double>", &t_photonEneIsoHCR);
1092  tree->Branch("t_eleEneIsoHCR", "vector<double>", &t_eleEneIsoHCR);
1093  tree->Branch("t_muEneIsoHCR", "vector<double>", &t_muEneIsoHCR);
1094 
1095  tree->Branch("t_L1Decision", "vector<int>", &t_L1Decision);
1096  tree->Branch("t_L1CenJetPt", "vector<double>", &t_L1CenJetPt);
1097  tree->Branch("t_L1CenJetEta", "vector<double>", &t_L1CenJetEta);
1098  tree->Branch("t_L1CenJetPhi", "vector<double>", &t_L1CenJetPhi);
1099  tree->Branch("t_L1FwdJetPt", "vector<double>", &t_L1FwdJetPt);
1100  tree->Branch("t_L1FwdJetEta", "vector<double>", &t_L1FwdJetEta);
1101  tree->Branch("t_L1FwdJetPhi", "vector<double>", &t_L1FwdJetPhi);
1102  tree->Branch("t_L1TauJetPt", "vector<double>", &t_L1TauJetPt);
1103  tree->Branch("t_L1TauJetEta", "vector<double>", &t_L1TauJetEta);
1104  tree->Branch("t_L1TauJetPhi", "vector<double>", &t_L1TauJetPhi);
1105  tree->Branch("t_L1MuonPt", "vector<double>", &t_L1MuonPt);
1106  tree->Branch("t_L1MuonEta", "vector<double>", &t_L1MuonEta);
1107  tree->Branch("t_L1MuonPhi", "vector<double>", &t_L1MuonPhi);
1108  tree->Branch("t_L1IsoEMPt", "vector<double>", &t_L1IsoEMPt);
1109  tree->Branch("t_L1IsoEMEta", "vector<double>", &t_L1IsoEMEta);
1110  tree->Branch("t_L1IsoEMPhi", "vector<double>", &t_L1IsoEMPhi);
1111  tree->Branch("t_L1NonIsoEMPt", "vector<double>", &t_L1NonIsoEMPt);
1112  tree->Branch("t_L1NonIsoEMEta", "vector<double>", &t_L1NonIsoEMEta);
1113  tree->Branch("t_L1NonIsoEMPhi", "vector<double>", &t_L1NonIsoEMPhi);
1114  tree->Branch("t_L1METPt", "vector<double>", &t_L1METPt);
1115  tree->Branch("t_L1METEta", "vector<double>", &t_L1METEta);
1116  tree->Branch("t_L1METPhi", "vector<double>", &t_L1METPhi);
1117 }
1118 
1119 
1121  // t_maxNearP31x31->clear();
1122 
1123  //t_nEvtProc ->clear();
1124 
1125  t_isoTrkPAll ->clear();
1126  t_isoTrkPtAll ->clear();
1127  t_isoTrkPhiAll ->clear();
1128  t_isoTrkEtaAll ->clear();
1129  t_isoTrkDPhiAll ->clear();
1130  t_isoTrkDEtaAll ->clear();
1131  t_isoTrkPdgIdAll ->clear();
1132 
1133  t_isoTrkP ->clear();
1134  t_isoTrkPt ->clear();
1135  t_isoTrkEne ->clear();
1136  t_isoTrkEta ->clear();
1137  t_isoTrkPhi ->clear();
1138  t_isoTrkEtaEC ->clear();
1139  t_isoTrkPhiEC ->clear();
1140  t_isoTrkPdgId ->clear();
1141 
1142  t_maxNearP31x31 ->clear();
1143  t_cHadronEne31x31 ->clear();
1144  t_cHadronEne31x31_1 ->clear();
1145  t_cHadronEne31x31_2 ->clear();
1146  t_cHadronEne31x31_3 ->clear();
1147  t_nHadronEne31x31 ->clear();
1148  t_photonEne31x31 ->clear();
1149  t_eleEne31x31 ->clear();
1150  t_muEne31x31 ->clear();
1151 
1152  t_maxNearP25x25 ->clear();
1153  t_cHadronEne25x25 ->clear();
1154  t_cHadronEne25x25_1 ->clear();
1155  t_cHadronEne25x25_2 ->clear();
1156  t_cHadronEne25x25_3 ->clear();
1157  t_nHadronEne25x25 ->clear();
1158  t_photonEne25x25 ->clear();
1159  t_eleEne25x25 ->clear();
1160  t_muEne25x25 ->clear();
1161 
1162  t_maxNearP21x21 ->clear();
1163  t_cHadronEne21x21 ->clear();
1164  t_cHadronEne21x21_1 ->clear();
1165  t_cHadronEne21x21_2 ->clear();
1166  t_cHadronEne21x21_3 ->clear();
1167  t_nHadronEne21x21 ->clear();
1168  t_photonEne21x21 ->clear();
1169  t_eleEne21x21 ->clear();
1170  t_muEne21x21 ->clear();
1171 
1172  t_maxNearP15x15 ->clear();
1173  t_cHadronEne15x15 ->clear();
1174  t_cHadronEne15x15_1 ->clear();
1175  t_cHadronEne15x15_2 ->clear();
1176  t_cHadronEne15x15_3 ->clear();
1177  t_nHadronEne15x15 ->clear();
1178  t_photonEne15x15 ->clear();
1179  t_eleEne15x15 ->clear();
1180  t_muEne15x15 ->clear();
1181 
1182  t_maxNearP11x11 ->clear();
1183  t_cHadronEne11x11 ->clear();
1184  t_cHadronEne11x11_1 ->clear();
1185  t_cHadronEne11x11_2 ->clear();
1186  t_cHadronEne11x11_3 ->clear();
1187  t_nHadronEne11x11 ->clear();
1188  t_photonEne11x11 ->clear();
1189  t_eleEne11x11 ->clear();
1190  t_muEne11x11 ->clear();
1191 
1192  t_maxNearP9x9 ->clear();
1193  t_cHadronEne9x9 ->clear();
1194  t_cHadronEne9x9_1 ->clear();
1195  t_cHadronEne9x9_2 ->clear();
1196  t_cHadronEne9x9_3 ->clear();
1197  t_nHadronEne9x9 ->clear();
1198  t_photonEne9x9 ->clear();
1199  t_eleEne9x9 ->clear();
1200  t_muEne9x9 ->clear();
1201 
1202  t_maxNearP7x7 ->clear();
1203  t_cHadronEne7x7 ->clear();
1204  t_cHadronEne7x7_1 ->clear();
1205  t_cHadronEne7x7_2 ->clear();
1206  t_cHadronEne7x7_3 ->clear();
1207  t_nHadronEne7x7 ->clear();
1208  t_photonEne7x7 ->clear();
1209  t_eleEne7x7 ->clear();
1210  t_muEne7x7 ->clear();
1211 
1212  t_maxNearP3x3 ->clear();
1213  t_cHadronEne3x3 ->clear();
1214  t_cHadronEne3x3_1 ->clear();
1215  t_cHadronEne3x3_2 ->clear();
1216  t_cHadronEne3x3_3 ->clear();
1217  t_nHadronEne3x3 ->clear();
1218  t_photonEne3x3 ->clear();
1219  t_eleEne3x3 ->clear();
1220  t_muEne3x3 ->clear();
1221 
1222  t_maxNearP1x1 ->clear();
1223  t_cHadronEne1x1 ->clear();
1224  t_cHadronEne1x1_1 ->clear();
1225  t_cHadronEne1x1_2 ->clear();
1226  t_cHadronEne1x1_3 ->clear();
1227  t_nHadronEne1x1 ->clear();
1228  t_photonEne1x1 ->clear();
1229  t_eleEne1x1 ->clear();
1230  t_muEne1x1 ->clear();
1231 
1232  t_maxNearPHC1x1 ->clear();
1233  t_cHadronEneHC1x1 ->clear();
1234  t_cHadronEneHC1x1_1 ->clear();
1235  t_cHadronEneHC1x1_2 ->clear();
1236  t_cHadronEneHC1x1_3 ->clear();
1237  t_nHadronEneHC1x1 ->clear();
1238  t_photonEneHC1x1 ->clear();
1239  t_eleEneHC1x1 ->clear();
1240  t_muEneHC1x1 ->clear();
1241 
1242  t_maxNearPHC3x3 ->clear();
1243  t_cHadronEneHC3x3 ->clear();
1244  t_cHadronEneHC3x3_1 ->clear();
1245  t_cHadronEneHC3x3_2 ->clear();
1246  t_cHadronEneHC3x3_3 ->clear();
1247  t_nHadronEneHC3x3 ->clear();
1248  t_photonEneHC3x3 ->clear();
1249  t_eleEneHC3x3 ->clear();
1250  t_muEneHC3x3 ->clear();
1251 
1252  t_maxNearPHC5x5 ->clear();
1253  t_cHadronEneHC5x5 ->clear();
1254  t_cHadronEneHC5x5_1 ->clear();
1255  t_cHadronEneHC5x5_2 ->clear();
1256  t_cHadronEneHC5x5_3 ->clear();
1257  t_nHadronEneHC5x5 ->clear();
1258  t_photonEneHC5x5 ->clear();
1259  t_eleEneHC5x5 ->clear();
1260  t_muEneHC5x5 ->clear();
1261 
1262  t_maxNearPHC7x7 ->clear();
1263  t_cHadronEneHC7x7 ->clear();
1264  t_cHadronEneHC7x7_1 ->clear();
1265  t_cHadronEneHC7x7_2 ->clear();
1266  t_cHadronEneHC7x7_3 ->clear();
1267  t_nHadronEneHC7x7 ->clear();
1268  t_photonEneHC7x7 ->clear();
1269  t_eleEneHC7x7 ->clear();
1270  t_muEneHC7x7 ->clear();
1271 
1272  t_maxNearPR ->clear();
1273  t_cHadronEneR ->clear();
1274  t_cHadronEneR_1 ->clear();
1275  t_cHadronEneR_2 ->clear();
1276  t_cHadronEneR_3 ->clear();
1277  t_nHadronEneR ->clear();
1278  t_photonEneR ->clear();
1279  t_eleEneR ->clear();
1280  t_muEneR ->clear();
1281 
1282  t_maxNearPIsoR ->clear();
1283  t_cHadronEneIsoR ->clear();
1284  t_cHadronEneIsoR_1 ->clear();
1285  t_cHadronEneIsoR_2 ->clear();
1286  t_cHadronEneIsoR_3 ->clear();
1287  t_nHadronEneIsoR ->clear();
1288  t_photonEneIsoR ->clear();
1289  t_eleEneIsoR ->clear();
1290  t_muEneIsoR ->clear();
1291 
1292  t_maxNearPHCR ->clear();
1293  t_cHadronEneHCR ->clear();
1294  t_cHadronEneHCR_1 ->clear();
1295  t_cHadronEneHCR_2 ->clear();
1296  t_cHadronEneHCR_3 ->clear();
1297  t_nHadronEneHCR ->clear();
1298  t_photonEneHCR ->clear();
1299  t_eleEneHCR ->clear();
1300  t_muEneHCR ->clear();
1301 
1302  t_maxNearPIsoHCR ->clear();
1303  t_cHadronEneIsoHCR ->clear();
1304  t_cHadronEneIsoHCR_1 ->clear();
1305  t_cHadronEneIsoHCR_2 ->clear();
1306  t_cHadronEneIsoHCR_3 ->clear();
1307  t_nHadronEneIsoHCR ->clear();
1308  t_photonEneIsoHCR ->clear();
1309  t_eleEneIsoHCR ->clear();
1310  t_muEneIsoHCR ->clear();
1311 
1312  t_L1Decision ->clear();
1313  t_L1CenJetPt ->clear();
1314  t_L1CenJetEta ->clear();
1315  t_L1CenJetPhi ->clear();
1316  t_L1FwdJetPt ->clear();
1317  t_L1FwdJetEta ->clear();
1318  t_L1FwdJetPhi ->clear();
1319  t_L1TauJetPt ->clear();
1320  t_L1TauJetEta ->clear();
1321  t_L1TauJetPhi ->clear();
1322  t_L1MuonPt ->clear();
1323  t_L1MuonEta ->clear();
1324  t_L1MuonPhi ->clear();
1325  t_L1IsoEMPt ->clear();
1326  t_L1IsoEMEta ->clear();
1327  t_L1IsoEMPhi ->clear();
1328  t_L1NonIsoEMPt ->clear();
1329  t_L1NonIsoEMEta ->clear();
1330  t_L1NonIsoEMPhi ->clear();
1331  t_L1METPt ->clear();
1332  t_L1METEta ->clear();
1333  t_L1METPhi ->clear();
1334 }
1335 
1337 
1338  int partID[Particles]={11,-11,21,211,-211,321,-321,2212,2112,-2212,-2112,130};
1339  int ix = -1;
1340  for (int ik=0; ik<Particles; ++ik) {
1341  if (pdgId == partID[ik]) {
1342  ix = ik; break;
1343  }
1344  }
1345  return ix;
1346 }
1347 
1348 //define this as a plug-in
std::vector< double > * t_cHadronEneHC1x1_3
std::vector< double > * t_eleEne7x7
std::vector< double > * t_nHadronEne21x21
std::vector< double > * t_cHadronEneHC7x7_2
T getParameter(std::string const &) const
spr::genSimInfo isoinfo25x25
EventNumber_t event() const
Definition: EventID.h:44
std::vector< double > * t_isoTrkEtaAll
TH2D * h_pEta[Particles]
std::vector< double > * t_maxNearPHCR
T getUntrackedParameter(std::string const &, T const &) const
std::vector< double > * t_isoTrkPdgId
int i
Definition: DBlmapReader.cc:9
std::vector< double > * t_L1FwdJetPhi
std::vector< double > * t_eleEne31x31
std::vector< double > * t_eleEneHC7x7
std::string algoBitToName[nL1BitsMax]
std::vector< int > * t_L1Decision
spr::genSimInfo isoinfo31x31
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< spr::propagatedTrackID > propagateCALO(edm::Handle< reco::TrackCollection > &trkCollection, const CaloGeometry *geo, const MagneticField *bField, std::string &theTrackQuality, bool debug=false)
std::vector< double > * t_L1CenJetEta
std::vector< double > * t_photonEne7x7
spr::genSimInfo isoinfo21x21
std::vector< double > * t_L1MuonPt
std::vector< double > * t_isoTrkEta
std::vector< double > * t_cHadronEneHC7x7
std::vector< double > * t_cHadronEneHC7x7_3
std::vector< double > * t_cHadronEne7x7_2
double cHadronEne_[3]
Definition: GenSimInfo.h:47
std::vector< double > * t_cHadronEne15x15_3
tuple pp
Definition: createTree.py:15
std::vector< double > * t_maxNearP15x15
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
std::vector< double > * t_cHadronEneHC1x1_2
std::vector< double > * t_L1IsoEMEta
static const int Particles
#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
edm::InputTag L1GTReadoutRcdSource_
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
spr::genSimInfo isoinfoHC3x3
#define abs(x)
Definition: mlp_lapack.h:159
std::vector< double > * t_cHadronEneHC5x5_2
std::vector< double > * t_photonEneHCR
std::vector< double > * t_L1METEta
edm::InputTag L1extraNonIsoEmSource_
std::vector< double > * t_muEneIsoR
std::vector< double > * t_nHadronEne9x9
std::vector< double > * t_L1MuonEta
std::vector< double > * t_isoTrkPdgIdAll
edm::Service< TFileService > fs
std::vector< double > * t_muEneHC7x7
std::vector< double > * t_cHadronEne31x31
std::vector< double > * t_nHadronEneIsoHCR
edm::InputTag L1extraTauJetSource_
std::vector< double > * t_L1FwdJetPt
std::vector< double > * t_cHadronEne31x31_1
std::vector< double > * t_photonEneHC3x3
std::vector< double > * t_cHadronEneIsoHCR_1
T eta() const
bool accept(const edm::Event &event, const edm::TriggerResults &triggerTable, const std::string &triggerPath)
Definition: TopDQMHelpers.h:22
std::vector< double > * t_muEneR
std::vector< double > * t_muEne9x9
double charge(const std::vector< uint8_t > &Ampls)
std::vector< double > * t_muEne21x21
virtual void analyze(const edm::Event &, const edm::EventSetup &)
std::vector< double > * t_maxNearP7x7
void getData(T &iHolder) const
Definition: EventSetup.h:67
spr::genSimInfo isoinfoHC7x7
std::vector< double > * t_muEneHC1x1
std::vector< double > * t_photonEneHC7x7
std::vector< double > * t_maxNearPIsoHCR
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:30
std::vector< double > * t_isoTrkPAll
std::vector< double > * t_nHadronEneHC1x1
spr::genSimInfo isoinfo11x11
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:243
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
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
spr::genSimInfo isoinfoHC5x5
std::vector< double > * t_cHadronEneHC1x1
std::vector< bool > DecisionWord
typedefs
edm::InputTag L1GTObjectMapRcdSource_
std::vector< double > * t_cHadronEneR_3
edm::InputTag L1extraCenJetSource_
std::vector< double > * t_cHadronEne11x11_1
T sqrt(T t)
Definition: SSEVec.h:48
std::vector< double > * t_muEne1x1
std::vector< double > * t_cHadronEne15x15_1
std::vector< double > * t_cHadronEneIsoHCR_3
std::vector< double > * t_cHadronEneIsoR
spr::genSimInfo isoinfoHC1x1
std::vector< double > * t_eleEneHC3x3
std::vector< double > * t_isoTrkDEtaAll
std::vector< double > * t_muEne25x25
std::vector< double > * t_cHadronEne9x9_3
std::vector< double > * t_L1NonIsoEMPt
double DeltaR2(double eta1, double phi1, double eta2, double phi2)
std::vector< double > * t_photonEne25x25
std::vector< double > * t_maxNearP21x21
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:11
std::vector< double > * t_cHadronEneHC3x3
std::vector< double > * t_cHadronEne11x11
spr::genSimInfo isoinfoIsoHCR
std::vector< double > * t_cHadronEne25x25_3
std::vector< double > * t_cHadronEneHCR_3
std::vector< double > * t_L1CenJetPt
spr::genSimInfo isoinfo15x15
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:76
std::vector< double > * t_nHadronEne31x31
std::vector< double > * t_maxNearP3x3
std::vector< double > * t_cHadronEne1x1_1
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:361
std::vector< double > * t_cHadronEne21x21_1
std::vector< double > * t_isoTrkPhiEC
std::vector< double > * t_cHadronEne11x11_2
std::vector< double > * t_L1CenJetPhi
JetCorrectorParameters corr
Definition: classes.h:11
std::vector< double > * t_maxNearP1x1
std::vector< double > * t_maxNearPHC3x3
double DeltaPhi(double v1, double v2)
std::vector< double > * t_nHadronEneHCR
std::vector< double > * t_eleEneR
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)
std::vector< double > * t_photonEneHC1x1
std::vector< double > * t_L1FwdJetEta
std::vector< double > * t_maxNearPR
std::vector< double > * t_muEne31x31
void fillIsolatedTrack(math::XYZTLorentzVector &momVec, GlobalPoint &posECAL, int pdgId)
std::vector< double > * t_isoTrkPtAll
TFileDirectory mkdir(const std::string &dir, const std::string &descr="")
create a new subdirectory
double genPartEtaBins[NEtaBins+1]
edm::InputTag L1extraFwdJetSource_
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
const T & get() const
Definition: EventSetup.h:55
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
T const * product() const
Definition: ESHandle.h:62
std::vector< double > * t_L1NonIsoEMEta
std::vector< double > * t_isoTrkPhi
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
std::vector< double > * t_cHadronEne25x25_2
const MagneticField * bField
std::vector< double > * t_L1IsoEMPhi
std::vector< double > * t_cHadronEneHC5x5_3
T eta() const
Definition: PV3DBase.h:76
edm::EventID id() const
Definition: EventBase.h:56
std::vector< double > * t_photonEne9x9
std::vector< double > * t_L1METPhi
std::vector< double > * t_nHadronEne25x25
std::vector< double > * t_photonEne3x3
std::vector< double > * t_cHadronEneHC3x3_3
edm::InputTag L1extraMuonSource_
std::vector< double > * t_eleEneHC1x1
T * make() const
make new ROOT object
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:47
tuple cout
Definition: gather_cfg.py:121
std::vector< double > * t_muEne3x3
double genPartPBins[NPBins+1]
double pi
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
std::vector< double > * t_cHadronEne25x25_1
std::vector< double > * t_cHadronEne15x15
edm::InputTag L1extraIsoEmSource_
std::vector< double > * t_cHadronEne21x21
std::vector< double > * t_L1METPt
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
double DeltaR(double eta1, double phi1, double eta2, double phi2)
#define constexpr
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
Definition: DDAxes.h:10