CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
HLTJets.cc
Go to the documentation of this file.
1 #include <iostream>
2 #include <sstream>
3 #include <istream>
4 #include <fstream>
5 #include <iomanip>
6 #include <string>
7 #include <cmath>
8 #include <functional>
9 #include <stdlib.h>
10 #include <string.h>
11 #include <set>
12 
16 
18  evtCounter=0;
19 
20  //set parameter defaults
21  _Monte=false;
22  _Debug=false;
23  _CalJetMin=0.;
24  _GenJetMin=0.;
25 }
26 
27 /* Setup the analysis to put the branch-variables into the tree. */
28 void HLTJets::setup(const edm::ParameterSet& pSet, TTree* HltTree, edm::ConsumesCollector&& iC) {
29 
30  edm::ParameterSet myJetParams = pSet.getParameter<edm::ParameterSet>("RunParameters") ;
31  std::vector<std::string> parameterNames = myJetParams.getParameterNames() ;
32 
33  for ( std::vector<std::string>::iterator iParam = parameterNames.begin();
34  iParam != parameterNames.end(); iParam++ ){
35  if ( (*iParam) == "Monte" ) _Monte = myJetParams.getParameter<bool>( *iParam );
36  else if ( (*iParam) == "Debug" ) _Debug = myJetParams.getParameter<bool>( *iParam );
37  else if ( (*iParam) == "CalJetMin" ) _CalJetMin = myJetParams.getParameter<double>( *iParam );
38  else if ( (*iParam) == "GenJetMin" ) _GenJetMin = myJetParams.getParameter<double>( *iParam );
39  }
40 
41  jetID = new reco::helper::JetIDHelper(pSet.getParameter<edm::ParameterSet>("JetIDParams"), std::move(iC));
42 
43  const int kMaxRecoPFJet = 10000;
44  jpfrecopt=new float[kMaxRecoPFJet];
45  jpfrecoe=new float[kMaxRecoPFJet];
46  jpfrecophi=new float[kMaxRecoPFJet];
47  jpfrecoeta=new float[kMaxRecoPFJet];
48  jpfreconeutralHadronFraction=new float[kMaxRecoPFJet];
49  jpfreconeutralEMFraction=new float[kMaxRecoPFJet];
50  jpfrecochargedHadronFraction=new float[kMaxRecoPFJet];
51  jpfrecochargedEMFraction=new float[kMaxRecoPFJet];
52  jpfreconeutralMultiplicity=new int[kMaxRecoPFJet];
53  jpfrecochargedMultiplicity=new int[kMaxRecoPFJet];
54 
55  const int kMaxJetCal = 10000;
56  jhcalpt = new float[kMaxJetCal];
57  jhcalphi = new float[kMaxJetCal];
58  jhcaleta = new float[kMaxJetCal];
59  jhcale = new float[kMaxJetCal];
60  jhcalemf = new float[kMaxJetCal];
61  jhcaln90 = new float[kMaxJetCal];
62  jhcaln90hits = new float[kMaxJetCal];
63 
64  jhcorcalpt = new float[kMaxJetCal];
65  jhcorcalphi = new float[kMaxJetCal];
66  jhcorcaleta = new float[kMaxJetCal];
67  jhcorcale = new float[kMaxJetCal];
68  jhcorcalemf = new float[kMaxJetCal];
69  jhcorcaln90 = new float[kMaxJetCal];
70  jhcorcaln90hits = new float[kMaxJetCal];
71 
72  jhcorL1L2L3calpt = new float[kMaxJetCal];
73  jhcorL1L2L3calphi = new float[kMaxJetCal];
74  jhcorL1L2L3caleta = new float[kMaxJetCal];
75  jhcorL1L2L3cale = new float[kMaxJetCal];
76  jhcorL1L2L3calemf = new float[kMaxJetCal];
77  jhcorL1L2L3caln90 = new float[kMaxJetCal];
78  jhcorL1L2L3caln90hits = new float[kMaxJetCal];
79 
80  jrcalpt = new float[kMaxJetCal];
81  jrcalphi = new float[kMaxJetCal];
82  jrcaleta = new float[kMaxJetCal];
83  jrcale = new float[kMaxJetCal];
84  jrcalemf = new float[kMaxJetCal];
85  jrcaln90 = new float[kMaxJetCal];
86  jrcaln90hits = new float[kMaxJetCal];
87 
88  jrcorcalpt = new float[kMaxJetCal];
89  jrcorcalphi = new float[kMaxJetCal];
90  jrcorcaleta = new float[kMaxJetCal];
91  jrcorcale = new float[kMaxJetCal];
92  jrcorcalemf = new float[kMaxJetCal];
93  jrcorcaln90 = new float[kMaxJetCal];
94  jrcorcaln90hits = new float[kMaxJetCal];
95 
96  const int kMaxJetgen = 10000;
97  jgenpt = new float[kMaxJetgen];
98  jgenphi = new float[kMaxJetgen];
99  jgeneta = new float[kMaxJetgen];
100  jgene = new float[kMaxJetgen];
101  const int kMaxTower = 10000;
102  towet = new float[kMaxTower];
103  toweta = new float[kMaxTower];
104  towphi = new float[kMaxTower];
105  towen = new float[kMaxTower];
106  towem = new float[kMaxTower];
107  towhd = new float[kMaxTower];
108  towoe = new float[kMaxTower];
109  towR45upper = new int[kMaxTower];
110  towR45lower = new int[kMaxTower];
111  towR45none = new int[kMaxTower];
112  const int kMaxTau = 500;
113  l2tauPt = new float[kMaxTau];
114  l2tauEta = new float[kMaxTau];
115  l2tauPhi = new float[kMaxTau];
116  l2tauemiso = new float[kMaxTau];
117  l25tauPt = new float[kMaxTau];
118  l3tautckiso = new int[kMaxTau];
119  tauEta = new float[kMaxTau];
120  tauPt = new float[kMaxTau];
121  tauPhi = new float[kMaxTau];
122 
123  const int kMaxPFTau = 500;
124  ohpfTauEta = new float[kMaxPFTau];
125  ohpfTauProngs = new int[kMaxPFTau];
126  ohpfTauPhi = new float[kMaxPFTau];
127  ohpfTauPt = new float[kMaxPFTau];
128  ohpfTauJetPt = new float[kMaxPFTau];
129  ohpfTauLeadTrackPt = new float[kMaxPFTau];
130  ohpfTauLeadTrackVtxZ = new float[kMaxPFTau];
131  ohpfTauLeadPionPt = new float[kMaxPFTau];
132  ohpfTauTrkIso = new float[kMaxPFTau];
133  ohpfTauGammaIso = new float[kMaxPFTau];
134 
135  ohpfTauTightConeProngs = new int[kMaxPFTau];
136  ohpfTauTightConeEta = new float[kMaxPFTau];
137  ohpfTauTightConePhi = new float[kMaxPFTau];
138  ohpfTauTightConePt = new float[kMaxPFTau];
139  ohpfTauTightConeJetPt = new float[kMaxPFTau];
140  ohpfTauTightConeLeadTrackPt = new float[kMaxPFTau];
141  ohpfTauTightConeLeadPionPt = new float[kMaxPFTau];
142  ohpfTauTightConeTrkIso = new float[kMaxPFTau];
143  ohpfTauTightConeGammaIso = new float[kMaxPFTau];
144 
145  recopfTauEta = new float[kMaxPFTau];
146  recopfTauPhi = new float[kMaxPFTau];
147  recopfTauPt = new float[kMaxPFTau];
148  recopfTauJetPt = new float[kMaxPFTau];
149  recopfTauLeadTrackPt = new float[kMaxPFTau];
150  recopfTauLeadPionPt = new float[kMaxPFTau];
151  recopfTauTrkIso = new int[kMaxPFTau];
152  recopfTauGammaIso = new int[kMaxPFTau];
153  recopfTauDiscrByTancOnePercent = new float[kMaxPFTau];
154  recopfTauDiscrByTancHalfPercent = new float[kMaxPFTau];
155  recopfTauDiscrByTancQuarterPercent = new float[kMaxPFTau];
156  recopfTauDiscrByTancTenthPercent = new float[kMaxPFTau];
157  recopfTauDiscrByIso = new float[kMaxPFTau];
158  recopfTauDiscrAgainstMuon = new float[kMaxPFTau];
159  recopfTauDiscrAgainstElec = new float[kMaxPFTau];
160 
161  pfHT = -100.;
162  pfMHT = -100.;
163  const int kMaxPFJet = 500;
164  pfJetEta = new float[kMaxPFJet];
165  pfJetPhi = new float[kMaxPFJet];
166  pfJetPt = new float[kMaxPFJet];
167  pfJetE = new float[kMaxPFJet];
168  pfJetneutralHadronEnergyFraction = new float[kMaxPFJet];
169  pfJetchargedHadronFraction = new float[kMaxPFJet];
170  pfJetneutralMultiplicity = new float[kMaxPFJet];
171  pfJetchargedMultiplicity = new float[kMaxPFJet];
172  pfJetneutralEMFraction = new float[kMaxPFJet];
173  pfJetchargedEMFraction = new float[kMaxPFJet];
174 
175 
176  const int kMaxTauIso = 5000;
177 
178  // for offlineHPStau
179  signalTrToPFTauMatch = new int[kMaxTauIso];// index of reconstructed tau in tau collection
180  recoPFTauSignalTrDz = new float[kMaxTauIso];
181  recoPFTauSignalTrPt = new float[kMaxTauIso];
182 
183  isoTrToPFTauMatch = new int[kMaxTauIso]; // index of reconstructed tau in tau collection
184  recoPFTauIsoTrDz = new float[kMaxTauIso];
185  recoPFTauIsoTrPt = new float[kMaxTauIso];
186 
187  // HLT pf taus
188  hltpftauSignalTrToPFTauMatch = new int[kMaxTauIso]; // index of HLTPF tau in tau collection
189  HLTPFTauSignalTrDz = new float[kMaxTauIso];
190  HLTPFTauSignalTrPt = new float[kMaxTauIso];
191 
192  hltpftauIsoTrToPFTauMatch = new int[kMaxTauIso]; // index of HLTPF tau in tau collection
193  HLTPFTauIsoTrDz = new float[kMaxTauIso];
194  HLTPFTauIsoTrPt = new float[kMaxTauIso];
195 
196  // offline pftau isolation and signal cands
197  HltTree->Branch("NoRecoPFTausSignal",&noRecoPFTausSignal,"NoRecoPFTausSignal/I");
198  HltTree->Branch("signalTrToPFTauMatch", signalTrToPFTauMatch,"signalTrToPFTauMatch[NoRecoPFTausSignal]/I");
199  HltTree->Branch("recoPFTauSignalTrDz", recoPFTauSignalTrDz,"recoPFTauSignalTrDz[NoRecoPFTausSignal]/F");
200  HltTree->Branch("recoPFTauSignalTrPt", recoPFTauSignalTrPt,"recoPFTauSignalTrPt[NoRecoPFTausSignal]/F");
201 
202  HltTree->Branch("NoRecoPFTausIso",&noRecoPFTausIso,"NoRecoPFTausIso/I");
203  HltTree->Branch("isoTrToPFTauMatch", isoTrToPFTauMatch,"isoTrToPFTauMatch[NoRecoPFTausIso]/I");
204  HltTree->Branch("recoPFTauIsoTrDz", recoPFTauIsoTrDz,"recoPFTauIsoTrDz[NoRecoPFTausIso]/F");
205  HltTree->Branch("recoPFTauIsoTrPt", recoPFTauIsoTrPt,"recoPFTauIsoTrPt[NoRecoPFTausIso]/F");
206 
207  // HLT pftau isolation and signal cands
208  HltTree->Branch("NoHLTPFTausSignal",&noHLTPFTausSignal,"NoHLTPFTausSignal/I");
209  HltTree->Branch("hltpftauSignalTrToPFTauMatch",
210  hltpftauSignalTrToPFTauMatch,"hltpftauSignalTrToPFTauMatch[NoHLTPFTausSignal]/I");
211  HltTree->Branch("HLTPFTauSignalTrDz", HLTPFTauSignalTrDz,"HLTPFTauSignalTrDz[NoHLTPFTausSignal]/F");
212  HltTree->Branch("HLTPFTauSignalTrPt", HLTPFTauSignalTrPt,"HLTPFTauSignalTrPt[NoHLTPFTausSignal]/F");
213 
214  HltTree->Branch("NoHLTPFTausIso",&noHLTPFTausIso,"NoHLTPFTausIso/I");
215  HltTree->Branch("hltpftauIsoTrToPFTauMatch",
216  hltpftauIsoTrToPFTauMatch,"hltpftauIsoTrToPFTauMatch[NoHLTPFTausIso]/I");
217  HltTree->Branch("HLTPFTauIsoTrDz", HLTPFTauIsoTrDz,"HLTPFTauIsoTrDz[NoHLTPFTausIso]/F");
218  HltTree->Branch("HLTPFTauIsoTrPt", HLTPFTauIsoTrPt,"HLTPFTauIsoTrPt[NoHLTPFTausIso]/F");
219 
220  // Jet- MEt-specific branches of the tree
221 
222  HltTree->Branch("NrecoJetGen",&njetgen,"NrecoJetGen/I");
223  HltTree->Branch("NrecoTowCal",&ntowcal,"NrecoTowCal/I");
224 
225  //ccla RECO JETs
226  HltTree->Branch("NrecoJetCal",&nrjetcal,"NrecoJetCal/I");
227  HltTree->Branch("recoJetCalPt",jrcalpt,"recoJetCalPt[NrecoJetCal]/F");
228  HltTree->Branch("recoJetCalPhi",jrcalphi,"recoJetCalPhi[NrecoJetCal]/F");
229  HltTree->Branch("recoJetCalEta",jrcaleta,"recoJetCalEta[NrecoJetCal]/F");
230  HltTree->Branch("recoJetCalE",jrcale,"recoJetCalE[NrecoJetCal]/F");
231  HltTree->Branch("recoJetCalEMF",jrcalemf,"recoJetCalEMF[NrecoJetCal]/F");
232  HltTree->Branch("recoJetCalN90",jrcaln90,"recoJetCalN90[NrecoJetCal]/F");
233  HltTree->Branch("recoJetCalN90hits",jrcaln90hits,"recoJetCalN90hits[NrecoJetCal]/F");
234 
235  HltTree->Branch("NrecoJetCorCal",&nrcorjetcal,"NrecoJetCorCal/I");
236  HltTree->Branch("recoJetCorCalPt",jrcorcalpt,"recoJetCorCalPt[NrecoJetCorCal]/F");
237  HltTree->Branch("recoJetCorCalPhi",jrcorcalphi,"recoJetCorCalPhi[NrecoJetCorCal]/F");
238  HltTree->Branch("recoJetCorCalEta",jrcorcaleta,"recoJetCorCalEta[NrecoJetCorCal]/F");
239  HltTree->Branch("recoJetCorCalE",jrcorcale,"recoJetCorCalE[NrecoJetCorCal]/F");
240  HltTree->Branch("recoJetCorCalEMF",jrcorcalemf,"recoJetCorCalEMF[NrecoJetCorCal]/F");
241  HltTree->Branch("recoJetCorCalN90",jrcorcaln90,"recoJetCorCalN90[NrecoJetCorCal]/F");
242  HltTree->Branch("recoJetCorCalN90hits",jrcorcaln90hits,"recoJetCorCalN90hits[NrecoJetCorCal]/F");
243 
244  //ccla HLTJETS
245  HltTree->Branch("NohJetCal",&nhjetcal,"NohJetCal/I");
246  HltTree->Branch("ohJetCalPt",jhcalpt,"ohJetCalPt[NohJetCal]/F");
247  HltTree->Branch("ohJetCalPhi",jhcalphi,"ohJetCalPhi[NohJetCal]/F");
248  HltTree->Branch("ohJetCalEta",jhcaleta,"ohJetCalEta[NohJetCal]/F");
249  HltTree->Branch("ohJetCalE",jhcale,"ohJetCalE[NohJetCal]/F");
250  HltTree->Branch("ohJetCalEMF",jhcalemf,"ohJetCalEMF[NohJetCal]/F");
251  HltTree->Branch("ohJetCalN90",jhcaln90,"ohJetCalN90[NohJetCal]/F");
252  HltTree->Branch("ohJetCalN90hits",jhcaln90hits,"ohJetCalN90hits[NohJetCal]/F");
253 
254  HltTree->Branch("NohJetCorCal",&nhcorjetcal,"NohJetCorCal/I");
255  HltTree->Branch("ohJetCorCalPt",jhcorcalpt,"ohJetCorCalPt[NohJetCorCal]/F");
256  HltTree->Branch("ohJetCorCalPhi",jhcorcalphi,"ohJetCorCalPhi[NohJetCorCal]/F");
257  HltTree->Branch("ohJetCorCalEta",jhcorcaleta,"ohJetCorCalEta[NohJetCorCal]/F");
258  HltTree->Branch("ohJetCorCalE",jhcorcale,"ohJetCorCalE[NohJetCorCal]/F");
259  HltTree->Branch("ohJetCorCalEMF",jhcorcalemf,"ohJetCorCalEMF[NohJetCorCal]/F");
260  HltTree->Branch("ohJetCorCalN90",jhcorcaln90,"ohJetCorCalN90[NohJetCorCal]/F");
261  HltTree->Branch("ohJetCorCalN90hits",jhcorcaln90hits,"ohJetCorCalN90hits[NohJetCorCal]/F");
262 
263  HltTree->Branch("NohJetCorL1L2L3Cal",&nhcorL1L2L3jetcal,"NohJetCorL1L2L3Cal/I");
264  HltTree->Branch("ohJetCorL1L2L3CalPt",jhcorL1L2L3calpt,"ohJetCorL1L2L3CalPt[NohJetCorL1L2L3Cal]/F");
265  HltTree->Branch("ohJetCorL1L2L3CalPhi",jhcorL1L2L3calphi,"ohJetCorL1L2L3CalPhi[NohJetCorL1L2L3Cal]/F");
266  HltTree->Branch("ohJetCorL1L2L3CalEta",jhcorL1L2L3caleta,"ohJetCorL1L2L3CalEta[NohJetCorL1L2L3Cal]/F");
267  HltTree->Branch("ohJetCorL1L2L3CalE",jhcorL1L2L3cale,"ohJetCorL1L2L3CalE[NohJetCorL1L2L3Cal]/F");
268  HltTree->Branch("ohJetCorL1L2L3CalEMF",jhcorL1L2L3calemf,"ohJetCorL1L2L3CalEMF[NohJetCorL1L2L3Cal]/F");
269  HltTree->Branch("ohJetCorL1L2L3CalN90",jhcorL1L2L3caln90,"ohJetCorL1L2L3CalN90[NohJetCorL1L2L3Cal]/F");
270  HltTree->Branch("ohJetCorL1L2L3CalN90hits",jhcorL1L2L3caln90hits,"ohJetCorL1L2L3CalN90hits[NohJetCorL1L2L3Cal]/F");
271  HltTree->Branch("rho",&jrho,"rho/D");
272 
273  //ccla GenJets
274  HltTree->Branch("recoJetGenPt",jgenpt,"recoJetGenPt[NrecoJetGen]/F");
275  HltTree->Branch("recoJetGenPhi",jgenphi,"recoJetGenPhi[NrecoJetGen]/F");
276  HltTree->Branch("recoJetGenEta",jgeneta,"recoJetGenEta[NrecoJetGen]/F");
277  HltTree->Branch("recoJetGenE",jgene,"recoJetGenE[NrecoJetGen]/F");
278 
279  HltTree->Branch("recoTowEt",towet,"recoTowEt[NrecoTowCal]/F");
280  HltTree->Branch("recoTowEta",toweta,"recoTowEta[NrecoTowCal]/F");
281  HltTree->Branch("recoTowPhi",towphi,"recoTowPhi[NrecoTowCal]/F");
282  HltTree->Branch("recoTowE",towen,"recoTowE[NrecoTowCal]/F");
283  HltTree->Branch("recoTowEm",towem,"recoTowEm[NrecoTowCal]/F");
284  HltTree->Branch("recoTowHad",towhd,"recoTowHad[NrecoTowCal]/F");
285  HltTree->Branch("recoTowOE",towoe,"recoTowOE[NrecoTowCal]/F");
286  HltTree->Branch("recoTowHCalNoiseR45Upper",towR45upper,"recoTowHCalNoiseR45Upper[NrecoTowCal]/I");
287  HltTree->Branch("recoTowHCalNoiseR45Lower",towR45lower,"recoTowHCalNoiseR45Lower[NrecoTowCal]/I");
288  HltTree->Branch("recoTowHCalNoiseR45None",towR45none,"recoTowHCalNoiseR45None[NrecoTowCal]/I");
289 
290  HltTree->Branch("recoMetCal",&mcalmet,"recoMetCal/F");
291  HltTree->Branch("recoMetCalPhi",&mcalphi,"recoMetCalPhi/F");
292  HltTree->Branch("recoMetCalSum",&mcalsum,"recoMetCalSum/F");
293  HltTree->Branch("recoMetGen",&mgenmet,"recoMetGen/F");
294  HltTree->Branch("recoMetGenPhi",&mgenphi,"recoMetGenPhi/F");
295  HltTree->Branch("recoMetGenSum",&mgensum,"recoMetGenSum/F");
296  HltTree->Branch("recoHTCal",&htcalet,"recoHTCal/F");
297  HltTree->Branch("recoHTCalPhi",&htcalphi,"recoHTCalPhi/F");
298  HltTree->Branch("recoHTCalSum",&htcalsum,"recoHTCalSum/F");
299  HltTree->Branch("recoMetPF", &pfmet, "recoMetPF/F");
300  HltTree->Branch("recoMetPFSum", &pfsumet, "recoMetPFSum/F");
301  HltTree->Branch("recoMetPFPhi", &pfmetphi, "recoMetPFPhi/F");
302 
303  //for(int ieta=0;ieta<NETA;ieta++){std::cout << " ieta " << ieta << " eta min " << CaloTowerEtaBoundries[ieta] <<std::endl;}
304 
305 
306  // Taus
307  nohl2tau = 0;
308  HltTree->Branch("NohTauL2",&nohl2tau,"NohTauL2/I");
309  HltTree->Branch("ohTauL2Pt",l2tauPt,"ohTauL2Pt[NohTauL2]/F");
310  HltTree->Branch("ohTauL2Eta",l2tauEta,"ohTauL2Eta[NohTauL2]/F");
311  HltTree->Branch("ohTauL2Phi",l2tauPhi,"ohTauL2Phi[NohTauL2]/F");
312 
313  nohtau = 0;
314  HltTree->Branch("NohTau",&nohtau,"NohTau/I");
315  HltTree->Branch("ohTauEta",tauEta,"ohTauEta[NohTau]/F");
316  HltTree->Branch("ohTauPhi",tauPhi,"ohTauPhi[NohTau]/F");
317  HltTree->Branch("ohTauPt",tauPt,"ohTauPt[NohTau]/F");
318  HltTree->Branch("ohTauEiso",l2tauemiso,"ohTauEiso[NohTau]/F");
319  HltTree->Branch("ohTauL25Tpt",l25tauPt,"ohTauL25Tpt[NohTau]/F");
320  HltTree->Branch("ohTauL3Tiso",l3tautckiso,"ohTauL3Tiso[NohTau]/I");
321 
322  //ohpfTaus
323  nohPFTau = 0;
324  HltTree->Branch("NohpfTau",&nohPFTau,"NohpfTau/I");
325  HltTree->Branch("ohpfTauPt",ohpfTauPt,"ohpfTauPt[NohpfTau]/F");
326  HltTree->Branch("ohpfTauProngs",ohpfTauProngs,"ohpfTauProngs[NohpfTau]/I");
327  HltTree->Branch("ohpfTauEta",ohpfTauEta,"ohpfTauEta[NohpfTau]/F");
328  HltTree->Branch("ohpfTauPhi",ohpfTauPhi,"ohpfTauPhi[NohpfTau]/F");
329  HltTree->Branch("ohpfTauLeadTrackPt",ohpfTauLeadTrackPt,"ohpfTauLeadTrackPt[NohpfTau]/F");
330  HltTree->Branch("ohpfTauLeadTrackVtxZ",ohpfTauLeadTrackVtxZ,"ohpfTauLeadTrackVtxZ[NohpfTau]/F");
331  HltTree->Branch("ohpfTauLeadPionPt",ohpfTauLeadPionPt,"ohpfTauLeadPionPt[NohpfTau]/F");
332  HltTree->Branch("ohpfTauTrkIso",ohpfTauTrkIso,"ohpfTauTrkIso[NohpfTau]/F");
333  HltTree->Branch("ohpfTauGammaIso",ohpfTauGammaIso,"ohpfTauGammaIso[NohpfTau]/F");
334  HltTree->Branch("ohpfTauJetPt",ohpfTauJetPt,"ohpfTauJetPt[NohpfTau]/F");
335 
336  //ohpfTaus tight cone
337  nohPFTauTightCone = 0;
338  HltTree->Branch("NohpfTauTightCone",&nohPFTauTightCone,"NohpfTauTightCone/I");
339  HltTree->Branch("ohpfTauTightConePt",ohpfTauTightConePt,"ohpfTauTightConePt[NohpfTauTightCone]/F");
340  HltTree->Branch("ohpfTauTightConeProngs",ohpfTauTightConeProngs,"ohpfTauProngs[NohpfTauTightCone]/I");
341  HltTree->Branch("ohpfTauTightConeEta",ohpfTauTightConeEta,"ohpfTauEta[NohpfTauTightCone]/F");
342  HltTree->Branch("ohpfTauTightConePhi",ohpfTauTightConePhi,"ohpfTauPhi[NohpfTauTightCone]/F");
343  HltTree->Branch("ohpfTauTightConeLeadTrackPt",ohpfTauTightConeLeadTrackPt,"ohpfTauTightConeLeadTrackPt[NohpfTauTightCone]/F");
344  HltTree->Branch("ohpfTauTightConeLeadPionPt",ohpfTauTightConeLeadPionPt,"ohpfTauTightConeLeadPionPt[NohpfTauTightCone]/F");
345  HltTree->Branch("ohpfTauTightConeTrkIso",ohpfTauTightConeTrkIso,"ohpfTauTightConeTrkIso[NohpfTauTightCone]/F");
346  HltTree->Branch("ohpfTauTightConeGammaIso",ohpfTauTightConeGammaIso,"ohpfTauTightConeGammaIso[NohpfTauTightCone]/F");
347  HltTree->Branch("ohpfTauTightConeJetPt",ohpfTauTightConeJetPt,"ohpfTauTightConeJetPt[NohpfTauTightCone]/F");
348 
349  //Reco PFTaus
350  nRecoPFTau = 0;
351  HltTree->Branch("NRecoPFTau",&nRecoPFTau,"NRecoPFTau/I");
352  HltTree->Branch("recopfTauPt",recopfTauPt,"recopfTauPt[NRecoPFTau]/F");
353  HltTree->Branch("recopfTauEta",recopfTauEta,"recopfTauEta[NRecoPFTau]/F");
354  HltTree->Branch("recopfTauPhi",recopfTauPhi,"recopfTauPhi[NRecoPFTau]/F");
355  HltTree->Branch("recopfTauLeadTrackPt",recopfTauLeadTrackPt,"recopfTauLeadTrackPt[NRecoPFTau]/F");
356  HltTree->Branch("recopfTauLeadPionPt",recopfTauLeadPionPt,"recopfTauLeadPionPt[NRecoPFTau]/F");
357  HltTree->Branch("recopfTauTrkIso",recopfTauTrkIso,"recopfTauTrkIso[NRecoPFTau]/I");
358  HltTree->Branch("recopfTauGammaIso",recopfTauGammaIso,"recopfTauGammaIso[NRecoPFTau]/I");
359  HltTree->Branch("recopfTauJetPt",recopfTauJetPt,"recopfTauJetPt[NRecoPFTau]/F");
360  HltTree->Branch("recopfTauDiscrByTancOnePercent",recopfTauDiscrByTancOnePercent,"recopfTauDiscrByTancOnePercent[NRecoPFTau]/F");
361  HltTree->Branch("recopfTauDiscrByTancHalfPercent",recopfTauDiscrByTancHalfPercent,"recopfTauDiscrByTancHalfPercent[NRecoPFTau]/F");
362  HltTree->Branch("recopfTauDiscrByTancQuarterPercent",recopfTauDiscrByTancQuarterPercent,"recopfTauDiscrByTancQuarterPercent[NRecoPFTau]/F");
363  HltTree->Branch("recopfTauDiscrByTancTenthPercent",recopfTauDiscrByTancTenthPercent,"recopfTauDiscrByTancTenthPercent[NRecoPFTau]/F");
364  HltTree->Branch("recopfTauDiscrByIso",recopfTauDiscrByIso,"recopfTauDiscrByIso[NRecoPFTau]/F");
365  HltTree->Branch("recopfTauDiscrAgainstMuon",recopfTauDiscrAgainstMuon,"recopfTauDiscrAgainstMuon[NRecoPFTau]/F");
366  HltTree->Branch("recopfTauDiscrAgainstElec",recopfTauDiscrAgainstElec,"recopfTauDiscrAgainstElec[NRecoPFTau]/F");
367 
368  //PFJets
369  nohPFJet = 0;
370  HltTree->Branch("pfHT",&pfHT,"pfHT/F");
371  HltTree->Branch("pfMHT",&pfMHT,"pfMHT/F");
372  HltTree->Branch("NohPFJet",&nohPFJet,"NohPFJet/I");
373  HltTree->Branch("pfJetPt",pfJetPt,"pfJetPt[NohPFJet]/F");
374  HltTree->Branch("pfJetE",pfJetE,"pfJetE[NohPFJet]/F");
375  HltTree->Branch("pfJetEta",pfJetEta,"pfJetEta[NohPFJet]/F");
376  HltTree->Branch("pfJetPhi",pfJetPhi,"pfJetPhi[NohPFJet]/F");
377  HltTree->Branch("pfJetneutralHadronEnergyFraction",pfJetneutralHadronEnergyFraction,"pfJetneutralHadronEnergyFraction[NohPFJet]/F");
378  HltTree->Branch("pfJetchargedHadronFraction",pfJetchargedHadronFraction,"pfJetchargedHadronFraction[NohPFJet]/F");
379  HltTree->Branch("pfJetneutralMultiplicity",pfJetneutralMultiplicity,"pfJetneutralMultiplicity[NohPFJet]/F");
380  HltTree->Branch("pfJetchargedMultiplicity",pfJetchargedMultiplicity,"pfJetchargedMultiplicity[NohPFJet]/F");
381  HltTree->Branch("pfJetneutralEMFraction",pfJetneutralEMFraction,"pfJetneutralEMFraction[NohPFJet]/F");
382  HltTree->Branch("pfJetchargedEMFraction",pfJetchargedEMFraction,"pfJetchargedEMFraction[NohPFJet]/F");
383 
384  //RECO PFJets
385  HltTree->Branch("nrpj",&nrpj,"nrpj/I");
386  HltTree->Branch("recopfJetpt", jpfrecopt, "recopfJetpt[nrpj]/F");
387  HltTree->Branch("recopfJete", jpfrecoe, "recopfJete[nrpj]/F");
388  HltTree->Branch("recopfJetphi", jpfrecophi, "recopfJetphi[nrpj]/F");
389  HltTree->Branch("recopfJeteta", jpfrecoeta, "recopfJeteta[nrpj]/F");
390  HltTree->Branch("recopfJetneutralHadronFraction", jpfreconeutralHadronFraction, "recopfJetneutralHadronFraction[nrpj]/F");
391  HltTree->Branch("recopfJetneutralEMFraction", jpfreconeutralEMFraction, "recopfJetneutralEMFraction[nrpj]/F");
392  HltTree->Branch("recopfJetchargedHadronFraction", jpfrecochargedHadronFraction, "recopfJetchargedHadronFraction[nrpj]/F");
393  HltTree->Branch("recopfJetchargedEMFraction", jpfrecochargedEMFraction, "recopfJetchargedEMFraction[nrpj]/F");
394  HltTree->Branch("recopfJetneutralMultiplicity", jpfreconeutralMultiplicity, "recopfJetneutralMultiplicity[nrpj]/I");
395  HltTree->Branch("recopfJetchargedMultiplicity", jpfrecochargedMultiplicity, "recopfJetchargedMultiplicity[nrpj]/I");
396 
397 }
398 
399 /* **Analyze the event** */
401  const edm::Handle<reco::CaloJetCollection> & ohcalojets,
402  const edm::Handle<reco::CaloJetCollection> & ohcalocorjets,
403  const edm::Handle<reco::CaloJetCollection> & ohcalocorL1L2L3jets,
404  const edm::Handle< double > & rho,
405  const edm::Handle<reco::CaloJetCollection> & rcalojets,
406  const edm::Handle<reco::CaloJetCollection> & rcalocorjets,
407  const edm::Handle<reco::GenJetCollection> & genjets,
408  const edm::Handle<reco::CaloMETCollection> & recmets,
409  const edm::Handle<reco::GenMETCollection> & genmets,
411  const edm::Handle<reco::CaloJetCollection> & l2taujets,
412  const edm::Handle<reco::HLTTauCollection> & taujets,
414  const edm::Handle<reco::PFTauCollection> & pfTausTightCone,
416  const edm::Handle<reco::PFTauCollection> & recoPfTaus,
417  const edm::Handle<reco::PFTauDiscriminator> & theRecoPFTauDiscrByTanCOnePercent,
418  const edm::Handle<reco::PFTauDiscriminator> & theRecoPFTauDiscrByTanCHalfPercent,
419  const edm::Handle<reco::PFTauDiscriminator> & theRecoPFTauDiscrByTanCQuarterPercent,
420  const edm::Handle<reco::PFTauDiscriminator> & theRecoPFTauDiscrByTanCTenthPercent,
421  const edm::Handle<reco::PFTauDiscriminator> & theRecoPFTauDiscrByIsolation,
422  const edm::Handle<reco::PFTauDiscriminator> & theRecoPFTauDiscrAgainstElec,
423  const edm::Handle<reco::PFTauDiscriminator> & theRecoPFTauDiscrAgainstMuon,
426  const edm::Handle<CaloTowerCollection> & caloTowersCleanerUpperR45,
427  const edm::Handle<CaloTowerCollection> & caloTowersCleanerLowerR45,
428  const edm::Handle<CaloTowerCollection> & caloTowersCleanerNoR45,
429  const CaloTowerTopology * cttopo,
430  const edm::Handle<reco::PFMETCollection> & pfmets,
431  double thresholdForSavingTowers,
432  double minPtCH,
433  double minPtGamma,
434  TTree * HltTree) {
435 
436  if (_Debug) std::cout << " Beginning HLTJets " << std::endl;
437 
438  //initialize branch variables
440  jrho = 0;
441  mcalmet=0.; mcalphi=0.;
442  mgenmet=0.; mgenphi=0.;
443  htcalet=0.,htcalphi=0.,htcalsum=0.;
444 
447 
448 
449 
450  if (rcalojets.isValid()) {
451  reco::CaloJetCollection mycalojets;
452  mycalojets=*rcalojets;
453  std::sort(mycalojets.begin(),mycalojets.end(),PtGreater());
454  typedef reco::CaloJetCollection::const_iterator cjiter;
455  int jrcal=0;
456  for ( cjiter i=mycalojets.begin(); i!=mycalojets.end(); i++) {
457 
458  if (i->pt()>_CalJetMin && i->energy()>0.){
459  jrcalpt[jrcal] = i->pt();
460  jrcalphi[jrcal] = i->phi();
461  jrcaleta[jrcal] = i->eta();
462  jrcale[jrcal] = i->energy();
463  jrcalemf[jrcal] = i->emEnergyFraction();
464  jrcaln90[jrcal] = i->n90();
465  jetID->calculate( iEvent, *i );
466  jrcaln90hits[jrcal] = jetID->n90Hits();
467  jrcal++;
468  }
469  }
470  nrjetcal = jrcal;
471  }
472  else {nrjetcal = 0;}
473 
474  if (rcalocorjets.isValid()) {
475  reco::CaloJetCollection mycalojets;
476  mycalojets=*rcalocorjets;
477  std::sort(mycalojets.begin(),mycalojets.end(),PtGreater());
478  typedef reco::CaloJetCollection::const_iterator cjiter;
479  int jrcal=0;
480  for ( cjiter i=mycalojets.begin(); i!=mycalojets.end(); i++) {
481 
482  if (i->pt()>_CalJetMin && i->energy()>0.){
483  jrcorcalpt[jrcal] = i->pt();
484  jrcorcalphi[jrcal] = i->phi();
485  jrcorcaleta[jrcal] = i->eta();
486  jrcorcale[jrcal] = i->energy();
487  jrcorcalemf[jrcal] = i->emEnergyFraction();
488  jrcorcaln90[jrcal] = i->n90();
489  jetID->calculate( iEvent, *i );
490  jrcorcaln90hits[jrcal] = jetID->n90Hits();
491  jrcal++;
492  }
493  }
494  nrcorjetcal = jrcal;
495  }
496  else {nrcorjetcal = 0;}
497 
498  if (ohcalojets.isValid()) {
499  reco::CaloJetCollection mycalojets;
500  mycalojets=*ohcalojets;
501  std::sort(mycalojets.begin(),mycalojets.end(),PtGreater());
502  typedef reco::CaloJetCollection::const_iterator cjiter;
503  int jhcal=0;
504  for ( cjiter i=mycalojets.begin(); i!=mycalojets.end(); i++) {
505 
506  if (i->pt()>_CalJetMin && i->energy()>0.){
507  jhcalpt[jhcal] = i->pt();
508  jhcalphi[jhcal] = i->phi();
509  jhcaleta[jhcal] = i->eta();
510  jhcale[jhcal] = i->energy();
511  jhcalemf[jhcal] = i->emEnergyFraction();
512  jhcaln90[jhcal] = i->n90();
513  jetID->calculate( iEvent, *i );
514  jhcaln90hits[jhcal] = jetID->n90Hits();
515  jhcal++;
516  }
517 
518  }
519  nhjetcal = jhcal;
520  }
521  else {nhjetcal = 0;}
522 
523  if (ohcalocorjets.isValid()) {
524  reco::CaloJetCollection mycalocorjets;
525  mycalocorjets=*ohcalocorjets;
526  std::sort(mycalocorjets.begin(),mycalocorjets.end(),PtGreater());
527  typedef reco::CaloJetCollection::const_iterator ccorjiter;
528  int jhcorcal=0;
529  for ( ccorjiter i=mycalocorjets.begin(); i!=mycalocorjets.end(); i++) {
530 
531  if (i->pt()>_CalJetMin && i->energy()>0.){
532  jhcorcalpt[jhcorcal] = i->pt();
533  jhcorcalphi[jhcorcal] = i->phi();
534  jhcorcaleta[jhcorcal] = i->eta();
535  jhcorcale[jhcorcal] = i->energy();
536  jhcorcalemf[jhcorcal] = i->emEnergyFraction();
537  jhcorcaln90[jhcorcal] = i->n90();
538  jetID->calculate( iEvent, *i );
539  jhcorcaln90hits[jhcorcal] = jetID->n90Hits();
540  jhcorcal++;
541  }
542 
543  }
544  nhcorjetcal = jhcorcal;
545  }
546  else {nhcorjetcal = 0;}
547 
548  if (ohcalocorL1L2L3jets.isValid()) {
549  reco::CaloJetCollection mycalocorL1L2L3jets;
550  mycalocorL1L2L3jets=*ohcalocorL1L2L3jets;
551  std::sort(mycalocorL1L2L3jets.begin(),mycalocorL1L2L3jets.end(),PtGreater());
552  typedef reco::CaloJetCollection::const_iterator ccorL1L2L3jiter;
553  int jhcorL1L2L3cal=0;
554  for ( ccorL1L2L3jiter i=mycalocorL1L2L3jets.begin(); i!=mycalocorL1L2L3jets.end(); i++) {
555 
556  if (i->pt()>_CalJetMin && i->energy()>0.){
557  jhcorL1L2L3calpt[jhcorL1L2L3cal] = i->pt();
558  jhcorL1L2L3calphi[jhcorL1L2L3cal] = i->phi();
559  jhcorL1L2L3caleta[jhcorL1L2L3cal] = i->eta();
560  jhcorL1L2L3cale[jhcorL1L2L3cal] = i->energy();
561  jhcorL1L2L3calemf[jhcorL1L2L3cal] = i->emEnergyFraction();
562  jhcorL1L2L3caln90[jhcorL1L2L3cal] = i->n90();
563  jetID->calculate( iEvent, *i );
564  jhcorL1L2L3caln90hits[jhcorL1L2L3cal] = jetID->n90Hits();
565  jhcorL1L2L3cal++;
566  }
567 
568  }
569  nhcorL1L2L3jetcal = jhcorL1L2L3cal;
570  }
571  else {nhcorL1L2L3jetcal = 0;}
572 
573  if (rho.isValid()){
574  jrho = *rho;
575  }
576  else {
577 
578  if (_Debug) std::cout << "rho not found" << std::endl;
579  }
580 
581  std::set<unsigned int> towersUpper;
582  std::set<unsigned int> towersLower;
583  std::set<unsigned int> towersNone;
584 
585  bool towersUpperValid=false;
586  bool towersLowerValid=false;
587  bool towersNoneValid=false;
588  if( caloTowersCleanerUpperR45.isValid() ){
589  towersUpperValid = true;
590  for( CaloTowerCollection::const_iterator tow = caloTowersCleanerUpperR45->begin(); tow != caloTowersCleanerUpperR45->end(); tow++){
591  towersUpper.insert(cttopo->denseIndex(tow->id()));
592  }
593  }
594  if( caloTowersCleanerLowerR45.isValid() ){
595  towersLowerValid = true;
596  for( CaloTowerCollection::const_iterator tow = caloTowersCleanerLowerR45->begin(); tow != caloTowersCleanerLowerR45->end(); tow++){
597  towersLower.insert(cttopo->denseIndex(tow->id()));
598  }
599  }
600  if( caloTowersCleanerNoR45.isValid() ){
601  towersNoneValid = true;
602  for( CaloTowerCollection::const_iterator tow = caloTowersCleanerNoR45->begin(); tow != caloTowersCleanerNoR45->end(); tow++){
603  towersNone.insert(cttopo->denseIndex(tow->id()));
604  }
605  }
606  if (caloTowers.isValid()) {
607  // ntowcal = caloTowers->size();
608  int jtow = 0;
609  for ( CaloTowerCollection::const_iterator tower=caloTowers->begin(); tower!=caloTowers->end(); tower++) {
610  if(tower->energy() > thresholdForSavingTowers)
611  {
612  towet[jtow] = tower->et();
613  toweta[jtow] = tower->eta();
614  towphi[jtow] = tower->phi();
615  towen[jtow] = tower->energy();
616  towem[jtow] = tower->emEnergy();
617  towhd[jtow] = tower->hadEnergy();
618  towoe[jtow] = tower->outerEnergy();
619  // noise filters: true = no noise, false = noise
620  if(towersUpperValid) {if(towersUpper.find(cttopo->denseIndex(tower->id())) == towersUpper.end()) towR45upper[jtow]=true; else towR45upper[jtow]=false;}
621  if(towersLowerValid) {if(towersLower.find(cttopo->denseIndex(tower->id())) == towersLower.end()) towR45lower[jtow]=true; else towR45lower[jtow]=false;}
622  if(towersNoneValid) {if(towersNone.find(cttopo->denseIndex(tower->id())) == towersNone.end()) towR45none[jtow]=true; else towR45none[jtow]=false;}
623  jtow++;
624  }
625  }
626  ntowcal = jtow;
627  }
628  else {ntowcal = 0;}
629 
630  if (recmets.isValid()) {
631  typedef reco::CaloMETCollection::const_iterator cmiter;
632  for ( cmiter i=recmets->begin(); i!=recmets->end(); i++) {
633  mcalmet = i->pt();
634  mcalphi = i->phi();
635  mcalsum = i->sumEt();
636  }
637  }
638 
639  if (pfmets.isValid()) {
640  typedef reco::PFMETCollection::const_iterator pfmetiter;
641  for( pfmetiter i=pfmets->begin(); i!=pfmets->end(); i++) {
642  pfmet = i->pt();
643  pfsumet = i->sumEt();
644  pfmetphi = i->phi();
645  }
646  }
647 
648  if (ht.isValid()) {
649  typedef reco::METCollection::const_iterator iter;
650  for ( iter i=ht->begin(); i!=ht->end(); i++) {
651  htcalet = i->pt();
652  htcalphi = i->phi();
653  htcalsum = i->sumEt();
654  }
655  }
656 
657  if (_Monte){
658 
659  if (genjets.isValid()) {
660  reco::GenJetCollection mygenjets;
661  mygenjets=*genjets;
662  std::sort(mygenjets.begin(),mygenjets.end(),PtGreater());
663  typedef reco::GenJetCollection::const_iterator gjiter;
664  int jgen=0;
665  for ( gjiter i=mygenjets.begin(); i!=mygenjets.end(); i++) {
666 
667  if (i->pt()>_GenJetMin){
668  jgenpt[jgen] = i->pt();
669  jgenphi[jgen] = i->phi();
670  jgeneta[jgen] = i->eta();
671  jgene[jgen] = i->energy();
672  jgen++;
673  }
674 
675  }
676  njetgen = jgen;
677  }
678  else {njetgen = 0;}
679 
680  if (genmets.isValid()) {
681  typedef reco::GenMETCollection::const_iterator gmiter;
682  for ( gmiter i=genmets->begin(); i!=genmets->end(); i++) {
683  mgenmet = i->pt();
684  mgenphi = i->phi();
685  mgensum = i->sumEt();
686  }
687  }
688 
689  }
690 
691 
693  if (l2taujets.isValid()) {
694  nohl2tau = l2taujets->size();
695  reco::CaloJetCollection l2taus = *l2taujets;
696  std::sort(l2taus.begin(),l2taus.end(),GetPFPtGreater());
697  int itau=0;
698  for(reco::CaloJetCollection::const_iterator i = l2taus.begin();
699  i!= l2taus.end(); ++i){
700  l2tauPt[itau] = i->pt();
701  l2tauEta[itau] = i->eta();
702  l2tauPhi[itau] = i->phi();
703  itau++;
704  }
705  }else{
706  nohl2tau = 0;
707  }
708  if (taujets.isValid()) {
709  nohtau = taujets->size();
710  reco::HLTTauCollection mytaujets;
711  mytaujets=*taujets;
712  std::sort(mytaujets.begin(),mytaujets.end(),GetPtGreater());
713  typedef reco::HLTTauCollection::const_iterator tauit;
714  int itau=0;
715  for(tauit i=mytaujets.begin(); i!=mytaujets.end(); i++){
716  //Ask for Eta,Phi and Et of the tau:
717  tauEta[itau] = i->getEta();
718  tauPhi[itau] = i->getPhi();
719  tauPt[itau] = i->getPt();
720  //Ask for L2 EMIsolation cut: Nominal cut : < 5
721  l2tauemiso[itau] = i->getEMIsolationValue();
722  //Get L25 LeadTrackPt : Nominal cut : > 20 GeV
723  l25tauPt[itau] = i->getL25LeadTrackPtValue();
724  //Get TrackIsolation response (returns 0 = failed or 1= passed)
725  l3tautckiso[itau] = i->getL3TrackIsolationResponse();
726  //MET : > 65
727  itau++;
728  }
729  }
730  else {nohtau = 0;}
731 
732 
734  if(pfTaus.isValid()) {
735  //float minTrkPt = minPtCH;
736  //float minGammaPt = minPtGamma;
737  nohPFTau = pfTaus->size();
739  std::sort(taus.begin(),taus.end(),GetPFPtGreater());
740  typedef reco::PFTauCollection::const_iterator pftauit;
741  int ipftau=0;
742  for(pftauit i=taus.begin(); i!=taus.end(); i++){
743  //Ask for Eta,Phi and Et of the tau:
744  ohpfTauProngs[ipftau] = i->signalPFChargedHadrCands().size();
745  ohpfTauEta[ipftau] = i->eta();
746  ohpfTauPhi[ipftau] = i->phi();
747  ohpfTauPt[ipftau] = i->pt();
748  ohpfTauJetPt[ipftau] = i->pfTauTagInfoRef()->pfjetRef()->pt();
749 
750 
751  /*
752  if( (i->leadPFCand()).isNonnull())
753  pfTauLeadPionPt[ipftau] = i->leadPFCand()->pt();
754 */
755  if( (i->leadPFNeutralCand()).isNonnull())
756  ohpfTauLeadPionPt[ipftau] = i->leadPFNeutralCand()->pt();
757  else
758  ohpfTauLeadPionPt[ipftau] = -999.0;
759 
760  if((i->leadPFChargedHadrCand()).isNonnull()){
761  ohpfTauLeadTrackPt[ipftau] = i->leadPFChargedHadrCand()->pt();
762  ohpfTauLeadTrackVtxZ[ipftau] = i->leadPFChargedHadrCand()->vertex().z();
763  }else{
764  ohpfTauLeadTrackPt[ipftau] = -999.0;
765  ohpfTauLeadTrackVtxZ[ipftau] = -999.0;
766  }
767 
768  float maxPtTrkIso = 0;
769  for (unsigned int iTrk = 0; iTrk < i->isolationPFChargedHadrCands().size(); iTrk++)
770  {
771  if(i->isolationPFChargedHadrCands()[iTrk]->pt() > maxPtTrkIso) maxPtTrkIso = i->isolationPFChargedHadrCands()[iTrk]->pt();
772 
773  if (i->isolationPFChargedHadrCands()[iTrk]->trackRef().isNonnull()){
775  HLTPFTauIsoTrDz[noHLTPFTausIso]=i->isolationPFChargedHadrCands()[iTrk]->trackRef()->dz(); // dz wrt (0,0,0), to compare offline with HLT
776  HLTPFTauIsoTrPt[noHLTPFTausIso]=i->isolationPFChargedHadrCands()[iTrk]->pt();
777  /*
778  std::cout << "Adding isocand for hltpftau " << ipftau
779  << " pt " << HLTPFTauIsoTrPt[noHLTPFTausIso]
780  << " dz " << HLTPFTauIsoTrDz[noHLTPFTausIso]
781  << std::endl; // */
782  ++noHLTPFTausIso;
783  }
784 
785  }
786 
787  ohpfTauTrkIso[ipftau] = maxPtTrkIso;
788  float maxPtGammaIso = 0;
789  for (unsigned int iGamma = 0; iGamma < i->isolationPFGammaCands().size(); iGamma++)
790  {
791  if(i->isolationPFGammaCands()[iGamma]->pt() > maxPtGammaIso) maxPtGammaIso = i->isolationPFGammaCands()[iGamma]->pt();
792  }
793 
794 
795 
796  for (unsigned int iTrk = 0; iTrk < i->signalPFChargedHadrCands().size(); iTrk++)
797  {
798  if (i->signalPFChargedHadrCands ()[iTrk]->trackRef().isNonnull()){
800  HLTPFTauSignalTrDz[noHLTPFTausSignal]=i->signalPFChargedHadrCands()[iTrk]->trackRef()->dz(); // dz wrt (0,0,0), to compare offline with HLT
801  HLTPFTauSignalTrPt[noHLTPFTausSignal]=i->signalPFChargedHadrCands()[iTrk]->pt();
802  /*
803  std::cout << "Adding sigcand for hltpftau " << ipftau
804  << " pt " << HLTPFTauSignalTrPt[noHLTPFTausSignal]
805  << " dz " << HLTPFTauSignalTrDz[noHLTPFTausSignal]
806  << std::endl; // */
808  }
809  }
810 
811 
812 
813 
814 
815  ohpfTauGammaIso[ipftau] = maxPtGammaIso;
816  ipftau++;
817  }
818 
819  }
820 
821  if(pfTausTightCone.isValid()) {
822  //float minTrkPt = minPtCH;
823  //float minGammaPt = minPtGamma;
824  nohPFTauTightCone = pfTaus->size();
825  reco::PFTauCollection taus = *pfTausTightCone;
826  std::sort(taus.begin(),taus.end(),GetPFPtGreater());
827  typedef reco::PFTauCollection::const_iterator pftauit;
828  int ipftau=0;
829  for(pftauit i=taus.begin(); i!=taus.end(); i++){
830  //Ask for Eta,Phi and Et of the tau:
831  ohpfTauTightConeProngs[ipftau] = i->signalPFChargedHadrCands().size();
832  ohpfTauTightConeEta[ipftau] = i->eta();
833  ohpfTauTightConePhi[ipftau] = i->phi();
834  ohpfTauTightConePt[ipftau] = i->pt();
835  ohpfTauTightConeJetPt[ipftau] = i->pfTauTagInfoRef()->pfjetRef()->pt();
836 
837 
838  if( (i->leadPFNeutralCand()).isNonnull())
839  ohpfTauTightConeLeadPionPt[ipftau] = i->leadPFNeutralCand()->pt();
840  else
841  ohpfTauTightConeLeadPionPt[ipftau] = -999.0;
842 
843 
844  if((i->leadPFChargedHadrCand()).isNonnull())
845  ohpfTauTightConeLeadTrackPt[ipftau] = i->leadPFChargedHadrCand()->pt();
846  else
847  ohpfTauTightConeLeadTrackPt[ipftau] = -999.0;
848 
849  float maxPtTrkIso = 0;
850  for (unsigned int iTrk = 0; iTrk < i->isolationPFChargedHadrCands().size(); iTrk++)
851  {
852  if(i->isolationPFChargedHadrCands()[iTrk]->pt() > maxPtTrkIso) maxPtTrkIso = i->isolationPFChargedHadrCands()[iTrk]->pt();
853  }
854 
855  ohpfTauTightConeTrkIso[ipftau] = maxPtTrkIso;
856  float maxPtGammaIso = 0;
857  for (unsigned int iGamma = 0; iGamma < i->isolationPFGammaCands().size(); iGamma++)
858  {
859  if(i->isolationPFGammaCands()[iGamma]->pt() > maxPtGammaIso) maxPtGammaIso = i->isolationPFGammaCands()[iGamma]->pt();
860  }
861  ohpfTauTightConeGammaIso[ipftau] = maxPtGammaIso;
862  ipftau++;
863  }
864 
865  }
866 
868 
869  if(recoPfTaus.isValid()) {
870  float minTrkPt = minPtCH;
871  float minGammaPt = minPtGamma;
872  nRecoPFTau = recoPfTaus->size();
873  reco::PFTauCollection taus = *recoPfTaus;
874 
875  // disable sorting for proper access to discriminators
876  //std::sort(taus.begin(),taus.end(),GetPFPtGreater());
877  typedef reco::PFTauCollection::const_iterator pftauit;
878  int ipftau=0;
879 
880  for(pftauit i=taus.begin(); i!=taus.end(); i++){
881  //Ask for Eta,Phi and Et of the tau:
882  recopfTauEta[ipftau] = i->eta();
883  recopfTauPhi[ipftau] = i->phi();
884  recopfTauPt[ipftau] = i->pt();
885 
886  if( (i->leadPFNeutralCand()).isNonnull())
887  recopfTauLeadPionPt[ipftau] = i->leadPFNeutralCand()->pt();
888  else
889  recopfTauLeadPionPt[ipftau] = -999.0;
890 
891 
892  if((i->leadPFChargedHadrCand()).isNonnull())
893  recopfTauLeadTrackPt[ipftau] = i->leadPFChargedHadrCand()->pt();
894  else
895  recopfTauLeadTrackPt[ipftau] = -999.0;
896 
897  int myTrks=0;
898  for (unsigned int iTrk = 0; iTrk < i->isolationPFChargedHadrCands().size(); iTrk++)
899  {
900  if(i->isolationPFChargedHadrCands()[iTrk]->pt() > minTrkPt) myTrks++;
901  if (i->isolationPFChargedHadrCands()[iTrk]->trackRef().isNonnull()){
903  recoPFTauIsoTrDz[noRecoPFTausIso]=i->isolationPFChargedHadrCands()[iTrk]->trackRef()->dz(); // dz wrt (0,0,0), to compare offline with HLT
904  recoPFTauIsoTrPt[noRecoPFTausIso]=i->isolationPFChargedHadrCands()[iTrk]->pt();
905  /*
906  std::cout << "Adding isocand for tau " << ipftau
907  << " pt " << recoPFTauIsoTrPt[noRecoPFTausIso]
908  << " dz " << recoPFTauIsoTrDz[noRecoPFTausIso]
909  << std::endl;// */
910  ++noRecoPFTausIso;
911  }
912 
913  }
914 
915  recopfTauTrkIso[ipftau] = myTrks;
916  int myGammas=0;
917  for (unsigned int iGamma = 0; iGamma < i->isolationPFGammaCands().size(); iGamma++)
918  {
919  if(i->isolationPFGammaCands()[iGamma]->pt() > minGammaPt) myGammas++;
920  }
921  recopfTauGammaIso[ipftau] = myGammas;
922 
923 
924  for (unsigned int iTrk = 0; iTrk < i->signalPFChargedHadrCands().size(); iTrk++)
925  {
926  if (i->signalPFChargedHadrCands ()[iTrk]->trackRef().isNonnull()){
928  recoPFTauSignalTrDz[noRecoPFTausSignal]=i->signalPFChargedHadrCands()[iTrk]->trackRef()->dz(); // dz wrt (0,0,0), to compare offline with HLT
929  recoPFTauSignalTrPt[noRecoPFTausSignal]=i->signalPFChargedHadrCands()[iTrk]->pt();
930  /*
931  std::cout << "Adding sigcand for tau " << ipftau
932  << " pt " << recoPFTauSignalTrPt[noRecoPFTausSignal]
933  << " dz " << recoPFTauSignalTrDz[noRecoPFTausSignal]
934  << std::endl;// */
936  }
937  }
938 
939  const reco::PFTauRef thisTauRef(recoPfTaus,ipftau);
940 
941  if(theRecoPFTauDiscrByTanCOnePercent.isValid()){
942  recopfTauDiscrByTancOnePercent[ipftau] = (*theRecoPFTauDiscrByTanCOnePercent)[thisTauRef];}
943  if(theRecoPFTauDiscrByIsolation.isValid()){
944  recopfTauDiscrByIso[ipftau] = (*theRecoPFTauDiscrByIsolation)[thisTauRef];}
945  if(theRecoPFTauDiscrAgainstMuon.isValid()){
946  recopfTauDiscrAgainstMuon[ipftau] = (*theRecoPFTauDiscrAgainstMuon)[thisTauRef];}
947  if(theRecoPFTauDiscrAgainstElec.isValid()){
948  recopfTauDiscrAgainstElec[ipftau] = (*theRecoPFTauDiscrAgainstElec)[thisTauRef];}
949  if(theRecoPFTauDiscrByTanCHalfPercent.isValid()){
950  recopfTauDiscrByTancHalfPercent[ipftau] = (*theRecoPFTauDiscrByTanCHalfPercent)[thisTauRef];}
951  if(theRecoPFTauDiscrByTanCQuarterPercent.isValid()){
952  recopfTauDiscrByTancQuarterPercent[ipftau] = (*theRecoPFTauDiscrByTanCQuarterPercent)[thisTauRef];}
953  if(theRecoPFTauDiscrByTanCTenthPercent.isValid()){
954  recopfTauDiscrByTancTenthPercent[ipftau] = (*theRecoPFTauDiscrByTanCTenthPercent)[thisTauRef];}
955 
956  ipftau++;
957  }
958  }
959 
961  if(pfJets.isValid()) {
962  nohPFJet = pfJets->size();
964  std::sort(Jets.begin(),Jets.end(),GetPFPtGreater());
965  typedef reco::PFJetCollection::const_iterator pfJetit;
966  int ipfJet=0;
967  float pfMHTx = 0.;
968  float pfMHTy = 0.;
969  pfHT = 0.;
970 
971  for(pfJetit i=Jets.begin(); i!=Jets.end(); i++){
972  //Ask for Eta,Phi and Et of the Jet:
973  pfJetEta[ipfJet] = i->eta();
974  pfJetPhi[ipfJet] = i->phi();
975  pfJetPt[ipfJet] = i->pt();
976  pfJetE[ipfJet] = i->energy();
977  pfJetneutralHadronEnergyFraction[ipfJet]=i->neutralHadronEnergyFraction();
978  pfJetchargedHadronFraction[ipfJet] = i->chargedHadronEnergyFraction ();
979  pfJetneutralMultiplicity[ipfJet] = i->neutralMultiplicity ();
980  pfJetchargedMultiplicity[ipfJet] = i->chargedMultiplicity ();
981  pfJetneutralEMFraction[ipfJet] = i->neutralEmEnergyFraction ();
982  pfJetchargedEMFraction[ipfJet] = i->chargedEmEnergyFraction ();
983  //std::cout << "jet pT = " << i->pt() << " ; neutralHadronEnergyFraction = " << i->neutralHadronEnergyFraction() << std::endl;
984 
985  if (i->pt() > 40. && abs(i->eta())<3.0)
986  pfHT += i -> pt();
987  if (i->pt() > 30.){
988  pfMHTx = pfMHTx + i->px();
989  pfMHTy = pfMHTy + i->py();
990  }
991  ipfJet++;
992  }
993  pfMHT = sqrt(pfMHTx*pfMHTx + pfMHTy*pfMHTy);
994 
995  }
997  nrpj = 0;
998  if(recoPFJets.isValid()){
999  nrpj = recoPFJets->size();
1001  std::sort(Jets.begin(),Jets.end(),GetPFPtGreater());
1002  typedef reco::PFJetCollection::const_iterator pfJetit;
1003  int ipfJet=0;
1004  for(pfJetit i=Jets.begin(); i!=Jets.end(); i++){
1005  //Ask for Eta,Phi and Et of the Jet:
1006  jpfrecoeta[ipfJet] = i->eta();
1007  jpfrecophi[ipfJet] = i->phi();
1008  jpfrecopt[ipfJet] = i->pt();
1009  jpfrecoe[ipfJet] = i->energy();
1010  jpfreconeutralHadronFraction[ipfJet] = i->neutralHadronEnergyFraction ();
1011  jpfrecochargedHadronFraction[ipfJet] = i->chargedHadronEnergyFraction ();
1012  jpfreconeutralMultiplicity[ipfJet] = i->neutralMultiplicity ();
1013  jpfrecochargedMultiplicity[ipfJet] = i->chargedMultiplicity ();
1014  jpfreconeutralEMFraction[ipfJet] = i->neutralEmEnergyFraction ();
1015  jpfrecochargedEMFraction[ipfJet] = i->chargedEmEnergyFraction ();
1016 
1017  ipfJet++;
1018  }
1019 
1020  }
1021 
1022 }
float * jhcalpt
Definition: HLTJets.h:115
T getParameter(std::string const &) const
float * l2tauPhi
Definition: HLTJets.h:137
float * tauPhi
Definition: HLTJets.h:140
int i
Definition: DBlmapReader.cc:9
float * ohpfTauJetPt
Definition: HLTJets.h:144
int noRecoPFTausSignal
Definition: HLTJets.h:168
float _CalJetMin
Definition: HLTJets.h:193
float * recopfTauDiscrAgainstElec
Definition: HLTJets.h:160
std::vector< PFTau > PFTauCollection
collection of PFTau objects
Definition: PFTauFwd.h:9
float * jrcorcalemf
Definition: HLTJets.h:121
float * jrcorcaleta
Definition: HLTJets.h:121
float * pfJetPhi
Definition: HLTJets.h:155
tuple pfTaus
Definition: pfTaus_cff.py:136
int * hltpftauIsoTrToPFTauMatch
Definition: HLTJets.h:184
float * HLTPFTauIsoTrPt
Definition: HLTJets.h:186
float * towem
Definition: HLTJets.h:124
float * l2tauEta
Definition: HLTJets.h:137
float * jrcorcaln90hits
Definition: HLTJets.h:121
bool _Debug
Definition: HLTJets.h:192
float * jhcorL1L2L3cale
Definition: HLTJets.h:117
float * jrcaln90
Definition: HLTJets.h:120
float * ohpfTauEta
Definition: HLTJets.h:144
float * ohpfTauTightConeLeadTrackPt
Definition: HLTJets.h:149
float * HLTPFTauSignalTrDz
Definition: HLTJets.h:180
float * ohpfTauTightConeTrkIso
Definition: HLTJets.h:150
float * ohpfTauTightConePt
Definition: HLTJets.h:149
int * jpfrecochargedMultiplicity
Definition: HLTJets.h:163
float * ohpfTauLeadTrackPt
Definition: HLTJets.h:144
float htcalet
Definition: HLTJets.h:127
bool _Monte
Definition: HLTJets.h:192
float * recopfTauDiscrByTancQuarterPercent
Definition: HLTJets.h:160
std::vector< GenJet > GenJetCollection
collection of GenJet objects
float * pfJetchargedHadronFraction
Definition: HLTJets.h:155
int * recopfTauGammaIso
Definition: HLTJets.h:159
float * recopfTauEta
Definition: HLTJets.h:158
float * jpfrecochargedHadronFraction
Definition: HLTJets.h:162
std::vector< CaloTower >::const_iterator const_iterator
float * ohpfTauPhi
Definition: HLTJets.h:144
float mgensum
Definition: HLTJets.h:128
float mgenphi
Definition: HLTJets.h:128
int noHLTPFTausIso
Definition: HLTJets.h:183
float * recopfTauDiscrByIso
Definition: HLTJets.h:160
float pfmetphi
Definition: HLTJets.h:130
float * recopfTauLeadTrackPt
Definition: HLTJets.h:158
float * jhcalemf
Definition: HLTJets.h:115
float * recopfTauDiscrByTancHalfPercent
Definition: HLTJets.h:160
int noHLTPFTausSignal
Definition: HLTJets.h:178
int * towR45upper
Definition: HLTJets.h:125
void analyze(edm::Event const &iEvent, const edm::Handle< reco::CaloJetCollection > &ohjets, const edm::Handle< reco::CaloJetCollection > &ohcorjets, const edm::Handle< reco::CaloJetCollection > &ohcorL1L2L3jets, const edm::Handle< double > &rho, const edm::Handle< reco::CaloJetCollection > &recojets, const edm::Handle< reco::CaloJetCollection > &recocorjets, const edm::Handle< reco::GenJetCollection > &gjets, const edm::Handle< reco::CaloMETCollection > &rmets, const edm::Handle< reco::GenMETCollection > &gmets, const edm::Handle< reco::METCollection > &ht, const edm::Handle< reco::CaloJetCollection > &myHLTL2Tau, const edm::Handle< reco::HLTTauCollection > &myHLTTau, const edm::Handle< reco::PFTauCollection > &myHLTPFTau, const edm::Handle< reco::PFTauCollection > &myHLTPFTauTightCone, const edm::Handle< reco::PFJetCollection > &myHLTPFJets, const edm::Handle< reco::PFTauCollection > &myRecoPFTau, const edm::Handle< reco::PFTauDiscriminator > &theRecoPFTauDiscrByTanCOnePercent, const edm::Handle< reco::PFTauDiscriminator > &theRecoPFTauDiscrByTanCHalfPercent, const edm::Handle< reco::PFTauDiscriminator > &theRecoPFTauDiscrByTanCQuarterPercent, const edm::Handle< reco::PFTauDiscriminator > &theRecoPFTauDiscrByTanCTenthPercent, const edm::Handle< reco::PFTauDiscriminator > &theRecoPFTauDiscrByIsolation, const edm::Handle< reco::PFTauDiscriminator > &theRecoPFTauDiscrAgainstElec, const edm::Handle< reco::PFTauDiscriminator > &theRecoPFTauDiscrAgainstMuon, const edm::Handle< reco::PFJetCollection > &recoPFJets, const edm::Handle< CaloTowerCollection > &caloTowers, const edm::Handle< CaloTowerCollection > &caloTowersCleanerUpperR45, const edm::Handle< CaloTowerCollection > &caloTowersCleanerLowerR45, const edm::Handle< CaloTowerCollection > &caloTowersCleanerNoR45, const CaloTowerTopology *cttopo, const edm::Handle< reco::PFMETCollection > &pfmets, double thresholdForSavingTowers, double minPtCH, double minPtGamma, TTree *tree)
Definition: HLTJets.cc:400
float mgenmet
Definition: HLTJets.h:128
float * jpfrecoe
Definition: HLTJets.h:162
float htcalphi
Definition: HLTJets.h:127
float * recoPFTauSignalTrPt
Definition: HLTJets.h:171
int nhjetcal
Definition: HLTJets.h:133
float * jhcorcalpt
Definition: HLTJets.h:116
float * jhcorcaleta
Definition: HLTJets.h:116
int nrjetcal
Definition: HLTJets.h:134
float * jhcorL1L2L3caleta
Definition: HLTJets.h:117
float * jhcale
Definition: HLTJets.h:115
int * hltpftauSignalTrToPFTauMatch
Definition: HLTJets.h:179
float * jrcaln90hits
Definition: HLTJets.h:120
float * ohpfTauTightConeLeadPionPt
Definition: HLTJets.h:149
float * jrcale
Definition: HLTJets.h:120
float * ohpfTauTightConeJetPt
Definition: HLTJets.h:149
float * pfJetE
Definition: HLTJets.h:155
float * jpfrecoeta
Definition: HLTJets.h:162
float * toweta
Definition: HLTJets.h:124
float * l2tauPt
Definition: HLTJets.h:137
float * jrcaleta
Definition: HLTJets.h:120
float * HLTPFTauIsoTrDz
Definition: HLTJets.h:185
float * recoPFTauIsoTrPt
Definition: HLTJets.h:176
float * tauPt
Definition: HLTJets.h:140
float * recopfTauPhi
Definition: HLTJets.h:158
int iEvent
Definition: GenABIO.cc:230
float * ohpfTauTightConeEta
Definition: HLTJets.h:149
float * recopfTauJetPt
Definition: HLTJets.h:158
float * ohpfTauGammaIso
Definition: HLTJets.h:145
float pfsumet
Definition: HLTJets.h:130
float * pfJetPt
Definition: HLTJets.h:155
T sqrt(T t)
Definition: SSEVec.h:48
float * jhcaln90hits
Definition: HLTJets.h:115
float * towet
Definition: HLTJets.h:124
float * jrcorcaln90
Definition: HLTJets.h:121
float * ohpfTauTrkIso
Definition: HLTJets.h:145
float * jhcaln90
Definition: HLTJets.h:115
float * jpfreconeutralHadronFraction
Definition: HLTJets.h:162
tuple Jets
Definition: METSkim_cff.py:17
float * recopfTauLeadPionPt
Definition: HLTJets.h:158
float * recopfTauPt
Definition: HLTJets.h:158
reco::helper::JetIDHelper * jetID
Definition: HLTJets.h:188
float * towphi
Definition: HLTJets.h:124
float * jhcorcalemf
Definition: HLTJets.h:116
float * recoPFTauIsoTrDz
Definition: HLTJets.h:175
float mcalphi
Definition: HLTJets.h:126
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
float * jgenphi
Definition: HLTJets.h:123
int * towR45lower
Definition: HLTJets.h:125
int * signalTrToPFTauMatch
Definition: HLTJets.h:169
float * ohpfTauTightConeGammaIso
Definition: HLTJets.h:150
float * recopfTauDiscrAgainstMuon
Definition: HLTJets.h:160
void setup(const edm::ParameterSet &pSet, TTree *tree, edm::ConsumesCollector &&iC)
Definition: HLTJets.cc:28
std::vector< HLTTau > HLTTauCollection
collection of HLTTau objects
Definition: HLTTauFwd.h:9
std::vector< std::string > getParameterNames() const
float * recopfTauDiscrByTancOnePercent
Definition: HLTJets.h:160
bool isValid() const
Definition: HandleBase.h:75
float * tauEta
Definition: HLTJets.h:140
HLTJets()
Definition: HLTJets.cc:17
float * towoe
Definition: HLTJets.h:124
double jrho
Definition: HLTJets.h:118
float * pfJetneutralMultiplicity
Definition: HLTJets.h:155
float mcalsum
Definition: HLTJets.h:126
float * pfJetneutralHadronEnergyFraction
Definition: HLTJets.h:155
float pfmet
Definition: HLTJets.h:130
float * ohpfTauLeadPionPt
Definition: HLTJets.h:144
int njetgen
Definition: HLTJets.h:132
uint32_t denseIndex(const DetId &id) const
float * jhcorcale
Definition: HLTJets.h:116
float * l25tauPt
Definition: HLTJets.h:137
float * HLTPFTauSignalTrPt
Definition: HLTJets.h:181
float * jhcaleta
Definition: HLTJets.h:115
float * jgeneta
Definition: HLTJets.h:123
float * jpfreconeutralEMFraction
Definition: HLTJets.h:162
float * jhcorL1L2L3caln90hits
Definition: HLTJets.h:117
float * l2tauemiso
Definition: HLTJets.h:137
float * jrcorcalphi
Definition: HLTJets.h:121
float * jrcalpt
Definition: HLTJets.h:120
int * towR45none
Definition: HLTJets.h:125
float * pfJetEta
Definition: HLTJets.h:155
int ntowcal
Definition: HLTJets.h:132
int * jpfreconeutralMultiplicity
Definition: HLTJets.h:163
int * recopfTauTrkIso
Definition: HLTJets.h:159
int * ohpfTauTightConeProngs
Definition: HLTJets.h:148
int nohPFTauTightCone
Definition: HLTJets.h:147
float * recoPFTauSignalTrDz
Definition: HLTJets.h:170
float * jrcalphi
Definition: HLTJets.h:120
int nrpj
Definition: HLTJets.h:164
int noRecoPFTausIso
Definition: HLTJets.h:173
std::vector< PFJet > PFJetCollection
collection of PFJet objects
float * jhcorL1L2L3calemf
Definition: HLTJets.h:117
float * jhcorL1L2L3caln90
Definition: HLTJets.h:117
float _GenJetMin
Definition: HLTJets.h:193
float * jpfrecophi
Definition: HLTJets.h:162
int * l3tautckiso
Definition: HLTJets.h:138
int nohPFJet
Definition: HLTJets.h:154
float * jpfrecochargedEMFraction
Definition: HLTJets.h:162
float * towen
Definition: HLTJets.h:124
float * jhcorcalphi
Definition: HLTJets.h:116
float * jhcorcaln90
Definition: HLTJets.h:116
float mcalmet
Definition: HLTJets.h:126
float * pfJetneutralEMFraction
Definition: HLTJets.h:155
float * jpfrecopt
Definition: HLTJets.h:162
float * jhcalphi
Definition: HLTJets.h:115
int nRecoPFTau
Definition: HLTJets.h:157
float * ohpfTauTightConePhi
Definition: HLTJets.h:149
int * ohpfTauProngs
Definition: HLTJets.h:143
float * recopfTauDiscrByTancTenthPercent
Definition: HLTJets.h:160
tuple cout
Definition: gather_cfg.py:121
float * jhcorL1L2L3calphi
Definition: HLTJets.h:117
int * isoTrToPFTauMatch
Definition: HLTJets.h:174
int nohtau
Definition: HLTJets.h:139
float * pfJetchargedMultiplicity
Definition: HLTJets.h:155
float pfMHT
Definition: HLTJets.h:153
int nohPFTau
Definition: HLTJets.h:142
float * pfJetchargedEMFraction
Definition: HLTJets.h:155
float * jrcorcale
Definition: HLTJets.h:121
float * jrcorcalpt
Definition: HLTJets.h:121
float * jgene
Definition: HLTJets.h:123
tuple pfJets
Definition: pfJets_cff.py:8
float * towhd
Definition: HLTJets.h:124
float * jhcorcaln90hits
Definition: HLTJets.h:116
float * jhcorL1L2L3calpt
Definition: HLTJets.h:117
int evtCounter
Definition: HLTJets.h:195
int nhcorjetcal
Definition: HLTJets.h:133
int nohl2tau
Definition: HLTJets.h:139
int nrcorjetcal
Definition: HLTJets.h:134
float * jrcalemf
Definition: HLTJets.h:120
float * ohpfTauLeadTrackVtxZ
Definition: HLTJets.h:144
float * jgenpt
Definition: HLTJets.h:123
float htcalsum
Definition: HLTJets.h:127
float pfHT
Definition: HLTJets.h:152
float * ohpfTauPt
Definition: HLTJets.h:144
void calculate(const edm::Event &event, const reco::CaloJet &jet, const int iDbg=0)
Definition: JetIDHelper.cc:98
int nhcorL1L2L3jetcal
Definition: HLTJets.h:133
std::vector< CaloJet > CaloJetCollection
collection of CaloJet objects