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 edm::Handle<reco::PFMETCollection> & pfmets,
430  double thresholdForSavingTowers,
431  double minPtCH,
432  double minPtGamma,
433  TTree * HltTree) {
434 
435  if (_Debug) std::cout << " Beginning HLTJets " << std::endl;
436 
437  //initialize branch variables
439  jrho = 0;
440  mcalmet=0.; mcalphi=0.;
441  mgenmet=0.; mgenphi=0.;
442  htcalet=0.,htcalphi=0.,htcalsum=0.;
443 
446 
447 
448 
449  if (rcalojets.isValid()) {
450  reco::CaloJetCollection mycalojets;
451  mycalojets=*rcalojets;
452  std::sort(mycalojets.begin(),mycalojets.end(),PtGreater());
453  typedef reco::CaloJetCollection::const_iterator cjiter;
454  int jrcal=0;
455  for ( cjiter i=mycalojets.begin(); i!=mycalojets.end(); i++) {
456 
457  if (i->pt()>_CalJetMin && i->energy()>0.){
458  jrcalpt[jrcal] = i->pt();
459  jrcalphi[jrcal] = i->phi();
460  jrcaleta[jrcal] = i->eta();
461  jrcale[jrcal] = i->energy();
462  jrcalemf[jrcal] = i->emEnergyFraction();
463  jrcaln90[jrcal] = i->n90();
464  jetID->calculate( iEvent, *i );
465  jrcaln90hits[jrcal] = jetID->n90Hits();
466  jrcal++;
467  }
468  }
469  nrjetcal = jrcal;
470  }
471  else {nrjetcal = 0;}
472 
473  if (rcalocorjets.isValid()) {
474  reco::CaloJetCollection mycalojets;
475  mycalojets=*rcalocorjets;
476  std::sort(mycalojets.begin(),mycalojets.end(),PtGreater());
477  typedef reco::CaloJetCollection::const_iterator cjiter;
478  int jrcal=0;
479  for ( cjiter i=mycalojets.begin(); i!=mycalojets.end(); i++) {
480 
481  if (i->pt()>_CalJetMin && i->energy()>0.){
482  jrcorcalpt[jrcal] = i->pt();
483  jrcorcalphi[jrcal] = i->phi();
484  jrcorcaleta[jrcal] = i->eta();
485  jrcorcale[jrcal] = i->energy();
486  jrcorcalemf[jrcal] = i->emEnergyFraction();
487  jrcorcaln90[jrcal] = i->n90();
488  jetID->calculate( iEvent, *i );
489  jrcorcaln90hits[jrcal] = jetID->n90Hits();
490  jrcal++;
491  }
492  }
493  nrcorjetcal = jrcal;
494  }
495  else {nrcorjetcal = 0;}
496 
497  if (ohcalojets.isValid()) {
498  reco::CaloJetCollection mycalojets;
499  mycalojets=*ohcalojets;
500  std::sort(mycalojets.begin(),mycalojets.end(),PtGreater());
501  typedef reco::CaloJetCollection::const_iterator cjiter;
502  int jhcal=0;
503  for ( cjiter i=mycalojets.begin(); i!=mycalojets.end(); i++) {
504 
505  if (i->pt()>_CalJetMin && i->energy()>0.){
506  jhcalpt[jhcal] = i->pt();
507  jhcalphi[jhcal] = i->phi();
508  jhcaleta[jhcal] = i->eta();
509  jhcale[jhcal] = i->energy();
510  jhcalemf[jhcal] = i->emEnergyFraction();
511  jhcaln90[jhcal] = i->n90();
512  jetID->calculate( iEvent, *i );
513  jhcaln90hits[jhcal] = jetID->n90Hits();
514  jhcal++;
515  }
516 
517  }
518  nhjetcal = jhcal;
519  }
520  else {nhjetcal = 0;}
521 
522  if (ohcalocorjets.isValid()) {
523  reco::CaloJetCollection mycalocorjets;
524  mycalocorjets=*ohcalocorjets;
525  std::sort(mycalocorjets.begin(),mycalocorjets.end(),PtGreater());
526  typedef reco::CaloJetCollection::const_iterator ccorjiter;
527  int jhcorcal=0;
528  for ( ccorjiter i=mycalocorjets.begin(); i!=mycalocorjets.end(); i++) {
529 
530  if (i->pt()>_CalJetMin && i->energy()>0.){
531  jhcorcalpt[jhcorcal] = i->pt();
532  jhcorcalphi[jhcorcal] = i->phi();
533  jhcorcaleta[jhcorcal] = i->eta();
534  jhcorcale[jhcorcal] = i->energy();
535  jhcorcalemf[jhcorcal] = i->emEnergyFraction();
536  jhcorcaln90[jhcorcal] = i->n90();
537  jetID->calculate( iEvent, *i );
538  jhcorcaln90hits[jhcorcal] = jetID->n90Hits();
539  jhcorcal++;
540  }
541 
542  }
543  nhcorjetcal = jhcorcal;
544  }
545  else {nhcorjetcal = 0;}
546 
547  if (ohcalocorL1L2L3jets.isValid()) {
548  reco::CaloJetCollection mycalocorL1L2L3jets;
549  mycalocorL1L2L3jets=*ohcalocorL1L2L3jets;
550  std::sort(mycalocorL1L2L3jets.begin(),mycalocorL1L2L3jets.end(),PtGreater());
551  typedef reco::CaloJetCollection::const_iterator ccorL1L2L3jiter;
552  int jhcorL1L2L3cal=0;
553  for ( ccorL1L2L3jiter i=mycalocorL1L2L3jets.begin(); i!=mycalocorL1L2L3jets.end(); i++) {
554 
555  if (i->pt()>_CalJetMin && i->energy()>0.){
556  jhcorL1L2L3calpt[jhcorL1L2L3cal] = i->pt();
557  jhcorL1L2L3calphi[jhcorL1L2L3cal] = i->phi();
558  jhcorL1L2L3caleta[jhcorL1L2L3cal] = i->eta();
559  jhcorL1L2L3cale[jhcorL1L2L3cal] = i->energy();
560  jhcorL1L2L3calemf[jhcorL1L2L3cal] = i->emEnergyFraction();
561  jhcorL1L2L3caln90[jhcorL1L2L3cal] = i->n90();
562  jetID->calculate( iEvent, *i );
563  jhcorL1L2L3caln90hits[jhcorL1L2L3cal] = jetID->n90Hits();
564  jhcorL1L2L3cal++;
565  }
566 
567  }
568  nhcorL1L2L3jetcal = jhcorL1L2L3cal;
569  }
570  else {nhcorL1L2L3jetcal = 0;}
571 
572  if (rho.isValid()){
573  jrho = *rho;
574  }
575  else {
576 
577  if (_Debug) std::cout << "rho not found" << std::endl;
578  }
579 
580  std::set<unsigned int> towersUpper;
581  std::set<unsigned int> towersLower;
582  std::set<unsigned int> towersNone;
583 
584  bool towersUpperValid=false;
585  bool towersLowerValid=false;
586  bool towersNoneValid=false;
587  if( caloTowersCleanerUpperR45.isValid() ){
588  towersUpperValid = true;
589  for( CaloTowerCollection::const_iterator tow = caloTowersCleanerUpperR45->begin(); tow != caloTowersCleanerUpperR45->end(); tow++){
590  towersUpper.insert(tow->id().denseIndex());
591  }
592  }
593  if( caloTowersCleanerLowerR45.isValid() ){
594  towersLowerValid = true;
595  for( CaloTowerCollection::const_iterator tow = caloTowersCleanerLowerR45->begin(); tow != caloTowersCleanerLowerR45->end(); tow++){
596  towersLower.insert(tow->id().denseIndex());
597  }
598  }
599  if( caloTowersCleanerNoR45.isValid() ){
600  towersNoneValid = true;
601  for( CaloTowerCollection::const_iterator tow = caloTowersCleanerNoR45->begin(); tow != caloTowersCleanerNoR45->end(); tow++){
602  towersNone.insert(tow->id().denseIndex());
603  }
604  }
605  if (caloTowers.isValid()) {
606  // ntowcal = caloTowers->size();
607  int jtow = 0;
608  for ( CaloTowerCollection::const_iterator tower=caloTowers->begin(); tower!=caloTowers->end(); tower++) {
609  if(tower->energy() > thresholdForSavingTowers)
610  {
611  towet[jtow] = tower->et();
612  toweta[jtow] = tower->eta();
613  towphi[jtow] = tower->phi();
614  towen[jtow] = tower->energy();
615  towem[jtow] = tower->emEnergy();
616  towhd[jtow] = tower->hadEnergy();
617  towoe[jtow] = tower->outerEnergy();
618  // noise filters: true = no noise, false = noise
619  if(towersUpperValid) {if(towersUpper.find(tower->id().denseIndex()) == towersUpper.end()) towR45upper[jtow]=true; else towR45upper[jtow]=false;}
620  if(towersLowerValid) {if(towersLower.find(tower->id().denseIndex()) == towersLower.end()) towR45lower[jtow]=true; else towR45lower[jtow]=false;}
621  if(towersNoneValid) {if(towersNone.find(tower->id().denseIndex()) == towersNone.end()) towR45none[jtow]=true; else towR45none[jtow]=false;}
622  jtow++;
623  }
624  }
625  ntowcal = jtow;
626  }
627  else {ntowcal = 0;}
628 
629  if (recmets.isValid()) {
630  typedef reco::CaloMETCollection::const_iterator cmiter;
631  for ( cmiter i=recmets->begin(); i!=recmets->end(); i++) {
632  mcalmet = i->pt();
633  mcalphi = i->phi();
634  mcalsum = i->sumEt();
635  }
636  }
637 
638  if (pfmets.isValid()) {
639  typedef reco::PFMETCollection::const_iterator pfmetiter;
640  for( pfmetiter i=pfmets->begin(); i!=pfmets->end(); i++) {
641  pfmet = i->pt();
642  pfsumet = i->sumEt();
643  pfmetphi = i->phi();
644  }
645  }
646 
647  if (ht.isValid()) {
648  typedef reco::METCollection::const_iterator iter;
649  for ( iter i=ht->begin(); i!=ht->end(); i++) {
650  htcalet = i->pt();
651  htcalphi = i->phi();
652  htcalsum = i->sumEt();
653  }
654  }
655 
656  if (_Monte){
657 
658  if (genjets.isValid()) {
659  reco::GenJetCollection mygenjets;
660  mygenjets=*genjets;
661  std::sort(mygenjets.begin(),mygenjets.end(),PtGreater());
662  typedef reco::GenJetCollection::const_iterator gjiter;
663  int jgen=0;
664  for ( gjiter i=mygenjets.begin(); i!=mygenjets.end(); i++) {
665 
666  if (i->pt()>_GenJetMin){
667  jgenpt[jgen] = i->pt();
668  jgenphi[jgen] = i->phi();
669  jgeneta[jgen] = i->eta();
670  jgene[jgen] = i->energy();
671  jgen++;
672  }
673 
674  }
675  njetgen = jgen;
676  }
677  else {njetgen = 0;}
678 
679  if (genmets.isValid()) {
680  typedef reco::GenMETCollection::const_iterator gmiter;
681  for ( gmiter i=genmets->begin(); i!=genmets->end(); i++) {
682  mgenmet = i->pt();
683  mgenphi = i->phi();
684  mgensum = i->sumEt();
685  }
686  }
687 
688  }
689 
690 
692  if (l2taujets.isValid()) {
693  nohl2tau = l2taujets->size();
694  reco::CaloJetCollection l2taus = *l2taujets;
695  std::sort(l2taus.begin(),l2taus.end(),GetPFPtGreater());
696  int itau=0;
697  for(reco::CaloJetCollection::const_iterator i = l2taus.begin();
698  i!= l2taus.end(); ++i){
699  l2tauPt[itau] = i->pt();
700  l2tauEta[itau] = i->eta();
701  l2tauPhi[itau] = i->phi();
702  itau++;
703  }
704  }else{
705  nohl2tau = 0;
706  }
707  if (taujets.isValid()) {
708  nohtau = taujets->size();
709  reco::HLTTauCollection mytaujets;
710  mytaujets=*taujets;
711  std::sort(mytaujets.begin(),mytaujets.end(),GetPtGreater());
712  typedef reco::HLTTauCollection::const_iterator tauit;
713  int itau=0;
714  for(tauit i=mytaujets.begin(); i!=mytaujets.end(); i++){
715  //Ask for Eta,Phi and Et of the tau:
716  tauEta[itau] = i->getEta();
717  tauPhi[itau] = i->getPhi();
718  tauPt[itau] = i->getPt();
719  //Ask for L2 EMIsolation cut: Nominal cut : < 5
720  l2tauemiso[itau] = i->getEMIsolationValue();
721  //Get L25 LeadTrackPt : Nominal cut : > 20 GeV
722  l25tauPt[itau] = i->getL25LeadTrackPtValue();
723  //Get TrackIsolation response (returns 0 = failed or 1= passed)
724  l3tautckiso[itau] = i->getL3TrackIsolationResponse();
725  //MET : > 65
726  itau++;
727  }
728  }
729  else {nohtau = 0;}
730 
731 
733  if(pfTaus.isValid()) {
734  //float minTrkPt = minPtCH;
735  //float minGammaPt = minPtGamma;
736  nohPFTau = pfTaus->size();
738  std::sort(taus.begin(),taus.end(),GetPFPtGreater());
739  typedef reco::PFTauCollection::const_iterator pftauit;
740  int ipftau=0;
741  for(pftauit i=taus.begin(); i!=taus.end(); i++){
742  //Ask for Eta,Phi and Et of the tau:
743  ohpfTauProngs[ipftau] = i->signalPFChargedHadrCands().size();
744  ohpfTauEta[ipftau] = i->eta();
745  ohpfTauPhi[ipftau] = i->phi();
746  ohpfTauPt[ipftau] = i->pt();
747  ohpfTauJetPt[ipftau] = i->pfTauTagInfoRef()->pfjetRef()->pt();
748 
749 
750  /*
751  if( (i->leadPFCand()).isNonnull())
752  pfTauLeadPionPt[ipftau] = i->leadPFCand()->pt();
753 */
754  if( (i->leadPFNeutralCand()).isNonnull())
755  ohpfTauLeadPionPt[ipftau] = i->leadPFNeutralCand()->pt();
756  else
757  ohpfTauLeadPionPt[ipftau] = -999.0;
758 
759  if((i->leadPFChargedHadrCand()).isNonnull()){
760  ohpfTauLeadTrackPt[ipftau] = i->leadPFChargedHadrCand()->pt();
761  ohpfTauLeadTrackVtxZ[ipftau] = i->leadPFChargedHadrCand()->vertex().z();
762  }else{
763  ohpfTauLeadTrackPt[ipftau] = -999.0;
764  ohpfTauLeadTrackVtxZ[ipftau] = -999.0;
765  }
766 
767  float maxPtTrkIso = 0;
768  for (unsigned int iTrk = 0; iTrk < i->isolationPFChargedHadrCands().size(); iTrk++)
769  {
770  if(i->isolationPFChargedHadrCands()[iTrk]->pt() > maxPtTrkIso) maxPtTrkIso = i->isolationPFChargedHadrCands()[iTrk]->pt();
771 
772  if (i->isolationPFChargedHadrCands()[iTrk]->trackRef().isNonnull()){
774  HLTPFTauIsoTrDz[noHLTPFTausIso]=i->isolationPFChargedHadrCands()[iTrk]->trackRef()->dz(); // dz wrt (0,0,0), to compare offline with HLT
775  HLTPFTauIsoTrPt[noHLTPFTausIso]=i->isolationPFChargedHadrCands()[iTrk]->pt();
776  /*
777  std::cout << "Adding isocand for hltpftau " << ipftau
778  << " pt " << HLTPFTauIsoTrPt[noHLTPFTausIso]
779  << " dz " << HLTPFTauIsoTrDz[noHLTPFTausIso]
780  << std::endl; // */
781  ++noHLTPFTausIso;
782  }
783 
784  }
785 
786  ohpfTauTrkIso[ipftau] = maxPtTrkIso;
787  float maxPtGammaIso = 0;
788  for (unsigned int iGamma = 0; iGamma < i->isolationPFGammaCands().size(); iGamma++)
789  {
790  if(i->isolationPFGammaCands()[iGamma]->pt() > maxPtGammaIso) maxPtGammaIso = i->isolationPFGammaCands()[iGamma]->pt();
791  }
792 
793 
794 
795  for (unsigned int iTrk = 0; iTrk < i->signalPFChargedHadrCands().size(); iTrk++)
796  {
797  if (i->signalPFChargedHadrCands ()[iTrk]->trackRef().isNonnull()){
799  HLTPFTauSignalTrDz[noHLTPFTausSignal]=i->signalPFChargedHadrCands()[iTrk]->trackRef()->dz(); // dz wrt (0,0,0), to compare offline with HLT
800  HLTPFTauSignalTrPt[noHLTPFTausSignal]=i->signalPFChargedHadrCands()[iTrk]->pt();
801  /*
802  std::cout << "Adding sigcand for hltpftau " << ipftau
803  << " pt " << HLTPFTauSignalTrPt[noHLTPFTausSignal]
804  << " dz " << HLTPFTauSignalTrDz[noHLTPFTausSignal]
805  << std::endl; // */
807  }
808  }
809 
810 
811 
812 
813 
814  ohpfTauGammaIso[ipftau] = maxPtGammaIso;
815  ipftau++;
816  }
817 
818  }
819 
820  if(pfTausTightCone.isValid()) {
821  //float minTrkPt = minPtCH;
822  //float minGammaPt = minPtGamma;
823  nohPFTauTightCone = pfTaus->size();
824  reco::PFTauCollection taus = *pfTausTightCone;
825  std::sort(taus.begin(),taus.end(),GetPFPtGreater());
826  typedef reco::PFTauCollection::const_iterator pftauit;
827  int ipftau=0;
828  for(pftauit i=taus.begin(); i!=taus.end(); i++){
829  //Ask for Eta,Phi and Et of the tau:
830  ohpfTauTightConeProngs[ipftau] = i->signalPFChargedHadrCands().size();
831  ohpfTauTightConeEta[ipftau] = i->eta();
832  ohpfTauTightConePhi[ipftau] = i->phi();
833  ohpfTauTightConePt[ipftau] = i->pt();
834  ohpfTauTightConeJetPt[ipftau] = i->pfTauTagInfoRef()->pfjetRef()->pt();
835 
836 
837  if( (i->leadPFNeutralCand()).isNonnull())
838  ohpfTauTightConeLeadPionPt[ipftau] = i->leadPFNeutralCand()->pt();
839  else
840  ohpfTauTightConeLeadPionPt[ipftau] = -999.0;
841 
842 
843  if((i->leadPFChargedHadrCand()).isNonnull())
844  ohpfTauTightConeLeadTrackPt[ipftau] = i->leadPFChargedHadrCand()->pt();
845  else
846  ohpfTauTightConeLeadTrackPt[ipftau] = -999.0;
847 
848  float maxPtTrkIso = 0;
849  for (unsigned int iTrk = 0; iTrk < i->isolationPFChargedHadrCands().size(); iTrk++)
850  {
851  if(i->isolationPFChargedHadrCands()[iTrk]->pt() > maxPtTrkIso) maxPtTrkIso = i->isolationPFChargedHadrCands()[iTrk]->pt();
852  }
853 
854  ohpfTauTightConeTrkIso[ipftau] = maxPtTrkIso;
855  float maxPtGammaIso = 0;
856  for (unsigned int iGamma = 0; iGamma < i->isolationPFGammaCands().size(); iGamma++)
857  {
858  if(i->isolationPFGammaCands()[iGamma]->pt() > maxPtGammaIso) maxPtGammaIso = i->isolationPFGammaCands()[iGamma]->pt();
859  }
860  ohpfTauTightConeGammaIso[ipftau] = maxPtGammaIso;
861  ipftau++;
862  }
863 
864  }
865 
867 
868  if(recoPfTaus.isValid()) {
869  float minTrkPt = minPtCH;
870  float minGammaPt = minPtGamma;
871  nRecoPFTau = recoPfTaus->size();
872  reco::PFTauCollection taus = *recoPfTaus;
873 
874  // disable sorting for proper access to discriminators
875  //std::sort(taus.begin(),taus.end(),GetPFPtGreater());
876  typedef reco::PFTauCollection::const_iterator pftauit;
877  int ipftau=0;
878 
879  for(pftauit i=taus.begin(); i!=taus.end(); i++){
880  //Ask for Eta,Phi and Et of the tau:
881  recopfTauEta[ipftau] = i->eta();
882  recopfTauPhi[ipftau] = i->phi();
883  recopfTauPt[ipftau] = i->pt();
884 
885  if( (i->leadPFNeutralCand()).isNonnull())
886  recopfTauLeadPionPt[ipftau] = i->leadPFNeutralCand()->pt();
887  else
888  recopfTauLeadPionPt[ipftau] = -999.0;
889 
890 
891  if((i->leadPFChargedHadrCand()).isNonnull())
892  recopfTauLeadTrackPt[ipftau] = i->leadPFChargedHadrCand()->pt();
893  else
894  recopfTauLeadTrackPt[ipftau] = -999.0;
895 
896  int myTrks=0;
897  for (unsigned int iTrk = 0; iTrk < i->isolationPFChargedHadrCands().size(); iTrk++)
898  {
899  if(i->isolationPFChargedHadrCands()[iTrk]->pt() > minTrkPt) myTrks++;
900  if (i->isolationPFChargedHadrCands()[iTrk]->trackRef().isNonnull()){
902  recoPFTauIsoTrDz[noRecoPFTausIso]=i->isolationPFChargedHadrCands()[iTrk]->trackRef()->dz(); // dz wrt (0,0,0), to compare offline with HLT
903  recoPFTauIsoTrPt[noRecoPFTausIso]=i->isolationPFChargedHadrCands()[iTrk]->pt();
904  /*
905  std::cout << "Adding isocand for tau " << ipftau
906  << " pt " << recoPFTauIsoTrPt[noRecoPFTausIso]
907  << " dz " << recoPFTauIsoTrDz[noRecoPFTausIso]
908  << std::endl;// */
909  ++noRecoPFTausIso;
910  }
911 
912  }
913 
914  recopfTauTrkIso[ipftau] = myTrks;
915  int myGammas=0;
916  for (unsigned int iGamma = 0; iGamma < i->isolationPFGammaCands().size(); iGamma++)
917  {
918  if(i->isolationPFGammaCands()[iGamma]->pt() > minGammaPt) myGammas++;
919  }
920  recopfTauGammaIso[ipftau] = myGammas;
921 
922 
923  for (unsigned int iTrk = 0; iTrk < i->signalPFChargedHadrCands().size(); iTrk++)
924  {
925  if (i->signalPFChargedHadrCands ()[iTrk]->trackRef().isNonnull()){
927  recoPFTauSignalTrDz[noRecoPFTausSignal]=i->signalPFChargedHadrCands()[iTrk]->trackRef()->dz(); // dz wrt (0,0,0), to compare offline with HLT
928  recoPFTauSignalTrPt[noRecoPFTausSignal]=i->signalPFChargedHadrCands()[iTrk]->pt();
929  /*
930  std::cout << "Adding sigcand for tau " << ipftau
931  << " pt " << recoPFTauSignalTrPt[noRecoPFTausSignal]
932  << " dz " << recoPFTauSignalTrDz[noRecoPFTausSignal]
933  << std::endl;// */
935  }
936  }
937 
938  const reco::PFTauRef thisTauRef(recoPfTaus,ipftau);
939 
940  if(theRecoPFTauDiscrByTanCOnePercent.isValid()){
941  recopfTauDiscrByTancOnePercent[ipftau] = (*theRecoPFTauDiscrByTanCOnePercent)[thisTauRef];}
942  if(theRecoPFTauDiscrByIsolation.isValid()){
943  recopfTauDiscrByIso[ipftau] = (*theRecoPFTauDiscrByIsolation)[thisTauRef];}
944  if(theRecoPFTauDiscrAgainstMuon.isValid()){
945  recopfTauDiscrAgainstMuon[ipftau] = (*theRecoPFTauDiscrAgainstMuon)[thisTauRef];}
946  if(theRecoPFTauDiscrAgainstElec.isValid()){
947  recopfTauDiscrAgainstElec[ipftau] = (*theRecoPFTauDiscrAgainstElec)[thisTauRef];}
948  if(theRecoPFTauDiscrByTanCHalfPercent.isValid()){
949  recopfTauDiscrByTancHalfPercent[ipftau] = (*theRecoPFTauDiscrByTanCHalfPercent)[thisTauRef];}
950  if(theRecoPFTauDiscrByTanCQuarterPercent.isValid()){
951  recopfTauDiscrByTancQuarterPercent[ipftau] = (*theRecoPFTauDiscrByTanCQuarterPercent)[thisTauRef];}
952  if(theRecoPFTauDiscrByTanCTenthPercent.isValid()){
953  recopfTauDiscrByTancTenthPercent[ipftau] = (*theRecoPFTauDiscrByTanCTenthPercent)[thisTauRef];}
954 
955  ipftau++;
956  }
957  }
958 
960  if(pfJets.isValid()) {
961  nohPFJet = pfJets->size();
963  std::sort(Jets.begin(),Jets.end(),GetPFPtGreater());
964  typedef reco::PFJetCollection::const_iterator pfJetit;
965  int ipfJet=0;
966  float pfMHTx = 0.;
967  float pfMHTy = 0.;
968  pfHT = 0.;
969 
970  for(pfJetit i=Jets.begin(); i!=Jets.end(); i++){
971  //Ask for Eta,Phi and Et of the Jet:
972  pfJetEta[ipfJet] = i->eta();
973  pfJetPhi[ipfJet] = i->phi();
974  pfJetPt[ipfJet] = i->pt();
975  pfJetE[ipfJet] = i->energy();
976  pfJetneutralHadronEnergyFraction[ipfJet]=i->neutralHadronEnergyFraction();
977  pfJetchargedHadronFraction[ipfJet] = i->chargedHadronEnergyFraction ();
978  pfJetneutralMultiplicity[ipfJet] = i->neutralMultiplicity ();
979  pfJetchargedMultiplicity[ipfJet] = i->chargedMultiplicity ();
980  pfJetneutralEMFraction[ipfJet] = i->neutralEmEnergyFraction ();
981  pfJetchargedEMFraction[ipfJet] = i->chargedEmEnergyFraction ();
982  //std::cout << "jet pT = " << i->pt() << " ; neutralHadronEnergyFraction = " << i->neutralHadronEnergyFraction() << std::endl;
983 
984  if (i->pt() > 40. && abs(i->eta())<3.0)
985  pfHT += i -> pt();
986  if (i->pt() > 30.){
987  pfMHTx = pfMHTx + i->px();
988  pfMHTy = pfMHTy + i->py();
989  }
990  ipfJet++;
991  }
992  pfMHT = sqrt(pfMHTx*pfMHTx + pfMHTy*pfMHTy);
993 
994  }
996  nrpj = 0;
997  if(recoPFJets.isValid()){
998  nrpj = recoPFJets->size();
1000  std::sort(Jets.begin(),Jets.end(),GetPFPtGreater());
1001  typedef reco::PFJetCollection::const_iterator pfJetit;
1002  int ipfJet=0;
1003  for(pfJetit i=Jets.begin(); i!=Jets.end(); i++){
1004  //Ask for Eta,Phi and Et of the Jet:
1005  jpfrecoeta[ipfJet] = i->eta();
1006  jpfrecophi[ipfJet] = i->phi();
1007  jpfrecopt[ipfJet] = i->pt();
1008  jpfrecoe[ipfJet] = i->energy();
1009  jpfreconeutralHadronFraction[ipfJet] = i->neutralHadronEnergyFraction ();
1010  jpfrecochargedHadronFraction[ipfJet] = i->chargedHadronEnergyFraction ();
1011  jpfreconeutralMultiplicity[ipfJet] = i->neutralMultiplicity ();
1012  jpfrecochargedMultiplicity[ipfJet] = i->chargedMultiplicity ();
1013  jpfreconeutralEMFraction[ipfJet] = i->neutralEmEnergyFraction ();
1014  jpfrecochargedEMFraction[ipfJet] = i->chargedEmEnergyFraction ();
1015 
1016  ipfJet++;
1017  }
1018 
1019  }
1020 
1021 }
float * jhcalpt
Definition: HLTJets.h:113
T getParameter(std::string const &) const
float * l2tauPhi
Definition: HLTJets.h:135
float * tauPhi
Definition: HLTJets.h:138
int i
Definition: DBlmapReader.cc:9
float * ohpfTauJetPt
Definition: HLTJets.h:142
int noRecoPFTausSignal
Definition: HLTJets.h:166
float _CalJetMin
Definition: HLTJets.h:191
float * recopfTauDiscrAgainstElec
Definition: HLTJets.h:158
std::vector< PFTau > PFTauCollection
collection of PFTau objects
Definition: PFTauFwd.h:9
float * jrcorcalemf
Definition: HLTJets.h:119
float * jrcorcaleta
Definition: HLTJets.h:119
float * pfJetPhi
Definition: HLTJets.h:153
tuple pfTaus
Definition: pfTaus_cff.py:139
int * hltpftauIsoTrToPFTauMatch
Definition: HLTJets.h:182
float * HLTPFTauIsoTrPt
Definition: HLTJets.h:184
float * towem
Definition: HLTJets.h:122
float * l2tauEta
Definition: HLTJets.h:135
float * jrcorcaln90hits
Definition: HLTJets.h:119
bool _Debug
Definition: HLTJets.h:190
float * jhcorL1L2L3cale
Definition: HLTJets.h:115
float * jrcaln90
Definition: HLTJets.h:118
float * ohpfTauEta
Definition: HLTJets.h:142
float * ohpfTauTightConeLeadTrackPt
Definition: HLTJets.h:147
float * HLTPFTauSignalTrDz
Definition: HLTJets.h:178
float * ohpfTauTightConeTrkIso
Definition: HLTJets.h:148
float * ohpfTauTightConePt
Definition: HLTJets.h:147
int * jpfrecochargedMultiplicity
Definition: HLTJets.h:161
float * ohpfTauLeadTrackPt
Definition: HLTJets.h:142
Definition: DDAxes.h:10
float htcalet
Definition: HLTJets.h:125
bool _Monte
Definition: HLTJets.h:190
float * recopfTauDiscrByTancQuarterPercent
Definition: HLTJets.h:158
std::vector< GenJet > GenJetCollection
collection of GenJet objects
float * pfJetchargedHadronFraction
Definition: HLTJets.h:153
int * recopfTauGammaIso
Definition: HLTJets.h:157
float * recopfTauEta
Definition: HLTJets.h:156
float * jpfrecochargedHadronFraction
Definition: HLTJets.h:160
std::vector< CaloTower >::const_iterator const_iterator
float * ohpfTauPhi
Definition: HLTJets.h:142
float mgensum
Definition: HLTJets.h:126
float mgenphi
Definition: HLTJets.h:126
int noHLTPFTausIso
Definition: HLTJets.h:181
float * recopfTauDiscrByIso
Definition: HLTJets.h:158
float pfmetphi
Definition: HLTJets.h:128
float * recopfTauLeadTrackPt
Definition: HLTJets.h:156
float * jhcalemf
Definition: HLTJets.h:113
float * recopfTauDiscrByTancHalfPercent
Definition: HLTJets.h:158
int noHLTPFTausSignal
Definition: HLTJets.h:176
int * towR45upper
Definition: HLTJets.h:123
float mgenmet
Definition: HLTJets.h:126
float * jpfrecoe
Definition: HLTJets.h:160
float htcalphi
Definition: HLTJets.h:125
float * recoPFTauSignalTrPt
Definition: HLTJets.h:169
int nhjetcal
Definition: HLTJets.h:131
float * jhcorcalpt
Definition: HLTJets.h:114
float * jhcorcaleta
Definition: HLTJets.h:114
int nrjetcal
Definition: HLTJets.h:132
float * jhcorL1L2L3caleta
Definition: HLTJets.h:115
float * jhcale
Definition: HLTJets.h:113
int * hltpftauSignalTrToPFTauMatch
Definition: HLTJets.h:177
float * jrcaln90hits
Definition: HLTJets.h:118
float * ohpfTauTightConeLeadPionPt
Definition: HLTJets.h:147
float * jrcale
Definition: HLTJets.h:118
float * ohpfTauTightConeJetPt
Definition: HLTJets.h:147
float * pfJetE
Definition: HLTJets.h:153
float * jpfrecoeta
Definition: HLTJets.h:160
float * toweta
Definition: HLTJets.h:122
float * l2tauPt
Definition: HLTJets.h:135
float * jrcaleta
Definition: HLTJets.h:118
float * HLTPFTauIsoTrDz
Definition: HLTJets.h:183
float * recoPFTauIsoTrPt
Definition: HLTJets.h:174
float * tauPt
Definition: HLTJets.h:138
float * recopfTauPhi
Definition: HLTJets.h:156
int iEvent
Definition: GenABIO.cc:230
float * ohpfTauTightConeEta
Definition: HLTJets.h:147
float * recopfTauJetPt
Definition: HLTJets.h:156
float * ohpfTauGammaIso
Definition: HLTJets.h:143
float pfsumet
Definition: HLTJets.h:128
float * pfJetPt
Definition: HLTJets.h:153
T sqrt(T t)
Definition: SSEVec.h:48
float * jhcaln90hits
Definition: HLTJets.h:113
float * towet
Definition: HLTJets.h:122
float * jrcorcaln90
Definition: HLTJets.h:119
float * ohpfTauTrkIso
Definition: HLTJets.h:143
float * jhcaln90
Definition: HLTJets.h:113
float * jpfreconeutralHadronFraction
Definition: HLTJets.h:160
tuple Jets
Definition: METSkim_cff.py:17
float * recopfTauLeadPionPt
Definition: HLTJets.h:156
float * recopfTauPt
Definition: HLTJets.h:156
reco::helper::JetIDHelper * jetID
Definition: HLTJets.h:186
float * towphi
Definition: HLTJets.h:122
float * jhcorcalemf
Definition: HLTJets.h:114
float * recoPFTauIsoTrDz
Definition: HLTJets.h:173
float mcalphi
Definition: HLTJets.h:124
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
float * jgenphi
Definition: HLTJets.h:121
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 edm::Handle< reco::PFMETCollection > &pfmets, double thresholdForSavingTowers, double minPtCH, double minPtGamma, TTree *tree)
Definition: HLTJets.cc:400
int * towR45lower
Definition: HLTJets.h:123
int * signalTrToPFTauMatch
Definition: HLTJets.h:167
float * ohpfTauTightConeGammaIso
Definition: HLTJets.h:148
float * recopfTauDiscrAgainstMuon
Definition: HLTJets.h:158
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:158
bool isValid() const
Definition: HandleBase.h:76
float * tauEta
Definition: HLTJets.h:138
HLTJets()
Definition: HLTJets.cc:17
float * towoe
Definition: HLTJets.h:122
double jrho
Definition: HLTJets.h:116
float * pfJetneutralMultiplicity
Definition: HLTJets.h:153
float mcalsum
Definition: HLTJets.h:124
float * pfJetneutralHadronEnergyFraction
Definition: HLTJets.h:153
float pfmet
Definition: HLTJets.h:128
float * ohpfTauLeadPionPt
Definition: HLTJets.h:142
int njetgen
Definition: HLTJets.h:130
float * jhcorcale
Definition: HLTJets.h:114
float * l25tauPt
Definition: HLTJets.h:135
float * HLTPFTauSignalTrPt
Definition: HLTJets.h:179
float * jhcaleta
Definition: HLTJets.h:113
float * jgeneta
Definition: HLTJets.h:121
float * jpfreconeutralEMFraction
Definition: HLTJets.h:160
float * jhcorL1L2L3caln90hits
Definition: HLTJets.h:115
float * l2tauemiso
Definition: HLTJets.h:135
float * jrcorcalphi
Definition: HLTJets.h:119
float * jrcalpt
Definition: HLTJets.h:118
int * towR45none
Definition: HLTJets.h:123
float * pfJetEta
Definition: HLTJets.h:153
int ntowcal
Definition: HLTJets.h:130
int * jpfreconeutralMultiplicity
Definition: HLTJets.h:161
int * recopfTauTrkIso
Definition: HLTJets.h:157
int * ohpfTauTightConeProngs
Definition: HLTJets.h:146
int nohPFTauTightCone
Definition: HLTJets.h:145
float * recoPFTauSignalTrDz
Definition: HLTJets.h:168
float * jrcalphi
Definition: HLTJets.h:118
int nrpj
Definition: HLTJets.h:162
int noRecoPFTausIso
Definition: HLTJets.h:171
std::vector< PFJet > PFJetCollection
collection of PFJet objects
float * jhcorL1L2L3calemf
Definition: HLTJets.h:115
float * jhcorL1L2L3caln90
Definition: HLTJets.h:115
float _GenJetMin
Definition: HLTJets.h:191
float * jpfrecophi
Definition: HLTJets.h:160
int * l3tautckiso
Definition: HLTJets.h:136
int nohPFJet
Definition: HLTJets.h:152
float * jpfrecochargedEMFraction
Definition: HLTJets.h:160
float * towen
Definition: HLTJets.h:122
float * jhcorcalphi
Definition: HLTJets.h:114
float * jhcorcaln90
Definition: HLTJets.h:114
float mcalmet
Definition: HLTJets.h:124
float * pfJetneutralEMFraction
Definition: HLTJets.h:153
float * jpfrecopt
Definition: HLTJets.h:160
float * jhcalphi
Definition: HLTJets.h:113
int nRecoPFTau
Definition: HLTJets.h:155
float * ohpfTauTightConePhi
Definition: HLTJets.h:147
int * ohpfTauProngs
Definition: HLTJets.h:141
float * recopfTauDiscrByTancTenthPercent
Definition: HLTJets.h:158
tuple cout
Definition: gather_cfg.py:121
float * jhcorL1L2L3calphi
Definition: HLTJets.h:115
int * isoTrToPFTauMatch
Definition: HLTJets.h:172
int nohtau
Definition: HLTJets.h:137
float * pfJetchargedMultiplicity
Definition: HLTJets.h:153
float pfMHT
Definition: HLTJets.h:151
int nohPFTau
Definition: HLTJets.h:140
float * pfJetchargedEMFraction
Definition: HLTJets.h:153
float * jrcorcale
Definition: HLTJets.h:119
float * jrcorcalpt
Definition: HLTJets.h:119
float * jgene
Definition: HLTJets.h:121
tuple pfJets
Definition: pfJets_cff.py:8
float * towhd
Definition: HLTJets.h:122
float * jhcorcaln90hits
Definition: HLTJets.h:114
float * jhcorL1L2L3calpt
Definition: HLTJets.h:115
int evtCounter
Definition: HLTJets.h:193
int nhcorjetcal
Definition: HLTJets.h:131
int nohl2tau
Definition: HLTJets.h:137
int nrcorjetcal
Definition: HLTJets.h:132
float * jrcalemf
Definition: HLTJets.h:118
float * ohpfTauLeadTrackVtxZ
Definition: HLTJets.h:142
float * jgenpt
Definition: HLTJets.h:121
float htcalsum
Definition: HLTJets.h:125
float pfHT
Definition: HLTJets.h:150
float * ohpfTauPt
Definition: HLTJets.h:142
void calculate(const edm::Event &event, const reco::CaloJet &jet, const int iDbg=0)
Definition: JetIDHelper.cc:98
int nhcorL1L2L3jetcal
Definition: HLTJets.h:131
std::vector< CaloJet > CaloJetCollection
collection of CaloJet objects