CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
PlotMakerL1.cc
Go to the documentation of this file.
1 /* \class PlotMakerL1
2 *
3 * Class to produce some plots of Off-line variables in the TriggerValidation Code
4 *
5 * Author: Massimiliano Chiorboli Date: September 2007
6 // Maurizio Pierini
7 // Maria Spiropulu
8 *
9 */
12 
13 
15 #include "TDirectory.h"
16 
18 
19 
20 using namespace edm;
21 using namespace reco;
22 using namespace std;
23 using namespace l1extra;
24 
26 {
27  m_l1extra = PlotMakerL1Input.getParameter<string>("l1extramc");
28 
29  dirname_ = PlotMakerL1Input.getParameter<std::string>("dirname");
30 
31 }
32 
34 {
35  this->handleObjects(iEvent);
36 
37 
38 
39  //**********************
40  // Fill the L1 Object Histos
41  //**********************
42 
43  //**********************
44  // Fill the Jet Histos
45  //**********************
46 
47 
48 
49  hL1CentralJetMult->Fill(theL1CentralJetCollection.size());
50  if(theL1CentralJetCollection.size()>0) {
51  hL1CentralJet1Pt->Fill(theL1CentralJetCollection[0].pt());
52  hL1CentralJet1Eta->Fill(theL1CentralJetCollection[0].eta());
53  hL1CentralJet1Phi->Fill(theL1CentralJetCollection[0].phi());
54  }
55  if(theL1CentralJetCollection.size()>1) {
56  hL1CentralJet2Pt->Fill(theL1CentralJetCollection[1].pt());
57  hL1CentralJet2Eta->Fill(theL1CentralJetCollection[1].eta());
58  hL1CentralJet2Phi->Fill(theL1CentralJetCollection[1].phi());
59  }
60  for(unsigned int i=0; i<l1bits_->size(); i++) {
61  if(l1bits_->at(i)) {
62  hL1CentralJetMultAfterL1[i]->Fill(theL1CentralJetCollection.size());
63  if(theL1CentralJetCollection.size()>0) {
64  hL1CentralJet1PtAfterL1[i]->Fill(theL1CentralJetCollection[0].pt());
65  hL1CentralJet1EtaAfterL1[i]->Fill(theL1CentralJetCollection[0].eta());
66  hL1CentralJet1PhiAfterL1[i]->Fill(theL1CentralJetCollection[0].phi());
67  }
68  if(theL1CentralJetCollection.size()>1) {
69  hL1CentralJet2PtAfterL1[i]->Fill(theL1CentralJetCollection[1].pt());
70  hL1CentralJet2EtaAfterL1[i]->Fill(theL1CentralJetCollection[1].eta());
71  hL1CentralJet2PhiAfterL1[i]->Fill(theL1CentralJetCollection[1].phi());
72  }
73  }
74  }
75  for(unsigned int i=0; i<hltbits_->size(); i++) {
76  if(hltbits_->at(i)) {
77  hL1CentralJetMultAfterHLT[i]->Fill(theL1CentralJetCollection.size());
78  if(theL1CentralJetCollection.size()>0) {
79  hL1CentralJet1PtAfterHLT[i]->Fill(theL1CentralJetCollection[0].pt());
80  hL1CentralJet1EtaAfterHLT[i]->Fill(theL1CentralJetCollection[0].eta());
81  hL1CentralJet1PhiAfterHLT[i]->Fill(theL1CentralJetCollection[0].phi());
82  }
83  if(theL1CentralJetCollection.size()>1) {
84  hL1CentralJet2PtAfterHLT[i]->Fill(theL1CentralJetCollection[1].pt());
85  hL1CentralJet2EtaAfterHLT[i]->Fill(theL1CentralJetCollection[1].eta());
86  hL1CentralJet2PhiAfterHLT[i]->Fill(theL1CentralJetCollection[1].phi());
87  }
88  }
89  }
90 
91 
92 
93 
94 
95  hL1ForwardJetMult->Fill(theL1ForwardJetCollection.size());
96  if(theL1ForwardJetCollection.size()>0) {
97  hL1ForwardJet1Pt->Fill(theL1ForwardJetCollection[0].pt());
98  hL1ForwardJet1Eta->Fill(theL1ForwardJetCollection[0].eta());
99  hL1ForwardJet1Phi->Fill(theL1ForwardJetCollection[0].phi());
100  }
101  if(theL1ForwardJetCollection.size()>1) {
102  hL1ForwardJet2Pt->Fill(theL1ForwardJetCollection[1].pt());
103  hL1ForwardJet2Eta->Fill(theL1ForwardJetCollection[1].eta());
104  hL1ForwardJet2Phi->Fill(theL1ForwardJetCollection[1].phi());
105  }
106  for(unsigned int i=0; i<l1bits_->size(); i++) {
107  if(l1bits_->at(i)) {
108  hL1ForwardJetMultAfterL1[i]->Fill(theL1ForwardJetCollection.size());
109  if(theL1ForwardJetCollection.size()>0) {
110  hL1ForwardJet1PtAfterL1[i]->Fill(theL1ForwardJetCollection[0].pt());
111  hL1ForwardJet1EtaAfterL1[i]->Fill(theL1ForwardJetCollection[0].eta());
112  hL1ForwardJet1PhiAfterL1[i]->Fill(theL1ForwardJetCollection[0].phi());
113  }
114  if(theL1ForwardJetCollection.size()>1) {
115  hL1ForwardJet2PtAfterL1[i]->Fill(theL1ForwardJetCollection[1].pt());
116  hL1ForwardJet2EtaAfterL1[i]->Fill(theL1ForwardJetCollection[1].eta());
117  hL1ForwardJet2PhiAfterL1[i]->Fill(theL1ForwardJetCollection[1].phi());
118  }
119  }
120  }
121  for(unsigned int i=0; i<hltbits_->size(); i++) {
122  if(hltbits_->at(i)) {
123  hL1ForwardJetMultAfterHLT[i]->Fill(theL1ForwardJetCollection.size());
124  if(theL1ForwardJetCollection.size()>0) {
125  hL1ForwardJet1PtAfterHLT[i]->Fill(theL1ForwardJetCollection[0].pt());
126  hL1ForwardJet1EtaAfterHLT[i]->Fill(theL1ForwardJetCollection[0].eta());
127  hL1ForwardJet1PhiAfterHLT[i]->Fill(theL1ForwardJetCollection[0].phi());
128  }
129  if(theL1ForwardJetCollection.size()>1) {
130  hL1ForwardJet2PtAfterHLT[i]->Fill(theL1ForwardJetCollection[1].pt());
131  hL1ForwardJet2EtaAfterHLT[i]->Fill(theL1ForwardJetCollection[1].eta());
132  hL1ForwardJet2PhiAfterHLT[i]->Fill(theL1ForwardJetCollection[1].phi());
133  }
134  }
135  }
136 
137 
138 
139 
140 
141  hL1TauJetMult->Fill(theL1TauJetCollection.size());
142  if(theL1TauJetCollection.size()>0) {
143  hL1TauJet1Pt->Fill(theL1TauJetCollection[0].pt());
144  hL1TauJet1Eta->Fill(theL1TauJetCollection[0].eta());
145  hL1TauJet1Phi->Fill(theL1TauJetCollection[0].phi());
146  }
147  if(theL1TauJetCollection.size()>1) {
148  hL1TauJet2Pt->Fill(theL1TauJetCollection[1].pt());
149  hL1TauJet2Eta->Fill(theL1TauJetCollection[1].eta());
150  hL1TauJet2Phi->Fill(theL1TauJetCollection[1].phi());
151  }
152 
153  for(unsigned int i=0; i<l1bits_->size(); i++) {
154  if(l1bits_->at(i)) {
155  hL1TauJetMultAfterL1[i]->Fill(theL1TauJetCollection.size());
156  if(theL1TauJetCollection.size()>0) {
157  hL1TauJet1PtAfterL1[i]->Fill(theL1TauJetCollection[0].pt());
158  hL1TauJet1EtaAfterL1[i]->Fill(theL1TauJetCollection[0].eta());
159  hL1TauJet1PhiAfterL1[i]->Fill(theL1TauJetCollection[0].phi());
160  }
161  if(theL1TauJetCollection.size()>1) {
162  hL1TauJet2PtAfterL1[i]->Fill(theL1TauJetCollection[1].pt());
163  hL1TauJet2EtaAfterL1[i]->Fill(theL1TauJetCollection[1].eta());
164  hL1TauJet2PhiAfterL1[i]->Fill(theL1TauJetCollection[1].phi());
165  }
166  }
167  }
168  for(unsigned int i=0; i<hltbits_->size(); i++) {
169  if(hltbits_->at(i)) {
170  hL1TauJetMultAfterHLT[i]->Fill(theL1TauJetCollection.size());
171  if(theL1TauJetCollection.size()>0) {
172  hL1TauJet1PtAfterHLT[i]->Fill(theL1TauJetCollection[0].pt());
173  hL1TauJet1EtaAfterHLT[i]->Fill(theL1TauJetCollection[0].eta());
174  hL1TauJet1PhiAfterHLT[i]->Fill(theL1TauJetCollection[0].phi());
175  }
176  if(theL1TauJetCollection.size()>1) {
177  hL1TauJet2PtAfterHLT[i]->Fill(theL1TauJetCollection[1].pt());
178  hL1TauJet2EtaAfterHLT[i]->Fill(theL1TauJetCollection[1].eta());
179  hL1TauJet2PhiAfterHLT[i]->Fill(theL1TauJetCollection[1].phi());
180  }
181  }
182  }
183 
184 
185 
186 
187  hL1EmIsoMult->Fill(theL1EmIsoCollection.size());
188  if(theL1EmIsoCollection.size()>0) {
189  hL1EmIso1Pt->Fill(theL1EmIsoCollection[0].pt());
190  hL1EmIso1Eta->Fill(theL1EmIsoCollection[0].eta());
191  hL1EmIso1Phi->Fill(theL1EmIsoCollection[0].phi());
192  }
193  if(theL1EmIsoCollection.size()>1) {
194  hL1EmIso2Pt->Fill(theL1EmIsoCollection[1].pt());
195  hL1EmIso2Eta->Fill(theL1EmIsoCollection[1].eta());
196  hL1EmIso2Phi->Fill(theL1EmIsoCollection[1].phi());
197  }
198  for(unsigned int i=0; i<l1bits_->size(); i++) {
199  if(l1bits_->at(i)) {
200  hL1EmIsoMultAfterL1[i]->Fill(theL1EmIsoCollection.size());
201  if(theL1EmIsoCollection.size()>0) {
202  hL1EmIso1PtAfterL1[i]->Fill(theL1EmIsoCollection[0].pt());
203  hL1EmIso1EtaAfterL1[i]->Fill(theL1EmIsoCollection[0].eta());
204  hL1EmIso1PhiAfterL1[i]->Fill(theL1EmIsoCollection[0].phi());
205  }
206  if(theL1EmIsoCollection.size()>1) {
207  hL1EmIso2PtAfterL1[i]->Fill(theL1EmIsoCollection[1].pt());
208  hL1EmIso2EtaAfterL1[i]->Fill(theL1EmIsoCollection[1].eta());
209  hL1EmIso2PhiAfterL1[i]->Fill(theL1EmIsoCollection[1].phi());
210  }
211  }
212  }
213  for(unsigned int i=0; i<hltbits_->size(); i++) {
214  if(hltbits_->at(i)) {
215  hL1EmIsoMultAfterHLT[i]->Fill(theL1EmIsoCollection.size());
216  if(theL1EmIsoCollection.size()>0) {
217  hL1EmIso1PtAfterHLT[i]->Fill(theL1EmIsoCollection[0].pt());
218  hL1EmIso1EtaAfterHLT[i]->Fill(theL1EmIsoCollection[0].eta());
219  hL1EmIso1PhiAfterHLT[i]->Fill(theL1EmIsoCollection[0].phi());
220  }
221  if(theL1EmIsoCollection.size()>1) {
222  hL1EmIso2PtAfterHLT[i]->Fill(theL1EmIsoCollection[1].pt());
223  hL1EmIso2EtaAfterHLT[i]->Fill(theL1EmIsoCollection[1].eta());
224  hL1EmIso2PhiAfterHLT[i]->Fill(theL1EmIsoCollection[1].phi());
225  }
226  }
227  }
228 
229 
230 
231  hL1EmNotIsoMult->Fill(theL1EmNotIsoCollection.size());
232  if(theL1EmNotIsoCollection.size()>0) {
233  hL1EmNotIso1Pt->Fill(theL1EmNotIsoCollection[0].pt());
234  hL1EmNotIso1Eta->Fill(theL1EmNotIsoCollection[0].eta());
235  hL1EmNotIso1Phi->Fill(theL1EmNotIsoCollection[0].phi());
236  }
237  if(theL1EmNotIsoCollection.size()>1) {
238  hL1EmNotIso2Pt->Fill(theL1EmNotIsoCollection[1].pt());
239  hL1EmNotIso2Eta->Fill(theL1EmNotIsoCollection[1].eta());
240  hL1EmNotIso2Phi->Fill(theL1EmNotIsoCollection[1].phi());
241  }
242  for(unsigned int i=0; i<l1bits_->size(); i++) {
243  if(l1bits_->at(i)) {
244  hL1EmNotIsoMultAfterL1[i]->Fill(theL1EmNotIsoCollection.size());
245  if(theL1EmNotIsoCollection.size()>0) {
246  hL1EmNotIso1PtAfterL1[i]->Fill(theL1EmNotIsoCollection[0].pt());
247  hL1EmNotIso1EtaAfterL1[i]->Fill(theL1EmNotIsoCollection[0].eta());
248  hL1EmNotIso1PhiAfterL1[i]->Fill(theL1EmNotIsoCollection[0].phi());
249  }
250  if(theL1EmNotIsoCollection.size()>1) {
251  hL1EmNotIso2PtAfterL1[i]->Fill(theL1EmNotIsoCollection[1].pt());
252  hL1EmNotIso2EtaAfterL1[i]->Fill(theL1EmNotIsoCollection[1].eta());
253  hL1EmNotIso2PhiAfterL1[i]->Fill(theL1EmNotIsoCollection[1].phi());
254  }
255  }
256  }
257  for(unsigned int i=0; i<hltbits_->size(); i++) {
258  if(hltbits_->at(i)) {
259  hL1EmNotIsoMultAfterHLT[i]->Fill(theL1EmNotIsoCollection.size());
260  if(theL1EmNotIsoCollection.size()>0) {
261  hL1EmNotIso1PtAfterHLT[i]->Fill(theL1EmNotIsoCollection[0].pt());
262  hL1EmNotIso1EtaAfterHLT[i]->Fill(theL1EmNotIsoCollection[0].eta());
263  hL1EmNotIso1PhiAfterHLT[i]->Fill(theL1EmNotIsoCollection[0].phi());
264  }
265  if(theL1EmNotIsoCollection.size()>1) {
266  hL1EmNotIso2PtAfterHLT[i]->Fill(theL1EmNotIsoCollection[1].pt());
267  hL1EmNotIso2EtaAfterHLT[i]->Fill(theL1EmNotIsoCollection[1].eta());
268  hL1EmNotIso2PhiAfterHLT[i]->Fill(theL1EmNotIsoCollection[1].phi());
269  }
270  }
271  }
272 
273 
274 
275 
276  //**********************
277  // Fill the Muon Histos
278  //**********************
279 
280  hL1MuonMult->Fill(theL1MuonCollection.size());
281  if(theL1MuonCollection.size()>0) {
282  hL1Muon1Pt->Fill(theL1MuonCollection[0].pt());
283  hL1Muon1Eta->Fill(theL1MuonCollection[0].eta());
284  hL1Muon1Phi->Fill(theL1MuonCollection[0].phi());
285  }
286  if(theL1MuonCollection.size()>1) {
287  hL1Muon2Pt->Fill(theL1MuonCollection[1].pt());
288  hL1Muon2Eta->Fill(theL1MuonCollection[1].eta());
289  hL1Muon2Phi->Fill(theL1MuonCollection[1].phi());
290  }
291  for(unsigned int i=0; i<l1bits_->size(); i++) {
292  if(l1bits_->at(i)) {
293  hL1MuonMultAfterL1[i]->Fill(theL1MuonCollection.size());
294  if(theL1MuonCollection.size()>0) {
295  hL1Muon1PtAfterL1[i]->Fill(theL1MuonCollection[0].pt());
296  hL1Muon1EtaAfterL1[i]->Fill(theL1MuonCollection[0].eta());
297  hL1Muon1PhiAfterL1[i]->Fill(theL1MuonCollection[0].phi());
298  }
299  if(theL1MuonCollection.size()>1) {
300  hL1Muon2PtAfterL1[i]->Fill(theL1MuonCollection[1].pt());
301  hL1Muon2EtaAfterL1[i]->Fill(theL1MuonCollection[1].eta());
302  hL1Muon2PhiAfterL1[i]->Fill(theL1MuonCollection[1].phi());
303  }
304  }
305  }
306  for(unsigned int i=0; i<hltbits_->size(); i++) {
307  if(hltbits_->at(i)) {
308  hL1MuonMultAfterHLT[i]->Fill(theL1MuonCollection.size());
309  if(theL1MuonCollection.size()>0) {
310  hL1Muon1PtAfterHLT[i]->Fill(theL1MuonCollection[0].pt());
311  hL1Muon1EtaAfterHLT[i]->Fill(theL1MuonCollection[0].eta());
312  hL1Muon1PhiAfterHLT[i]->Fill(theL1MuonCollection[0].phi());
313  }
314  if(theL1MuonCollection.size()>1) {
315  hL1Muon2PtAfterHLT[i]->Fill(theL1MuonCollection[1].pt());
316  hL1Muon2EtaAfterHLT[i]->Fill(theL1MuonCollection[1].eta());
317  hL1Muon2PhiAfterHLT[i]->Fill(theL1MuonCollection[1].phi());
318  }
319  }
320  }
321 
322  //**********************
323  // Fill the MET Histos
324  //**********************
325 
326  hL1MET->Fill(theL1METCollection[0].etMiss());
327  hL1METx->Fill(theL1METCollection[0].px());
328  hL1METy->Fill(theL1METCollection[0].py());
329  hL1METphi->Fill(theL1METCollection[0].phi());
330  hL1SumEt->Fill(theL1METCollection[0].etTotal());
331  double L1MetSig = theL1METCollection[0].etMiss() / sqrt(theL1METCollection[0].etTotal());
332  hL1METSignificance->Fill(L1MetSig);
333  for(unsigned int i=0; i<l1bits_->size(); i++) {
334  if(l1bits_->at(i)) {
335  hL1METAfterL1[i]->Fill(theL1METCollection[0].etMiss());
336  hL1METxAfterL1[i]->Fill(theL1METCollection[0].px());
337  hL1METyAfterL1[i]->Fill(theL1METCollection[0].py());
338  hL1METphiAfterL1[i]->Fill(theL1METCollection[0].phi());
339  hL1SumEtAfterL1[i]->Fill(theL1METCollection[0].etTotal());
340  hL1METSignificanceAfterL1[i]->Fill(L1MetSig);
341  }
342  }
343  for(unsigned int i=0; i<hltbits_->size(); i++) {
344  if(hltbits_->at(i)) {
345  hL1METAfterHLT[i]->Fill(theL1METCollection[0].etMiss());
346  hL1METxAfterHLT[i]->Fill(theL1METCollection[0].px());
347  hL1METyAfterHLT[i]->Fill(theL1METCollection[0].py());
348  hL1METphiAfterHLT[i]->Fill(theL1METCollection[0].phi());
349  hL1SumEtAfterHLT[i]->Fill(theL1METCollection[0].etTotal());
350  hL1METSignificanceAfterHLT[i]->Fill(L1MetSig);
351  }
352  }
353 
354 }
355 
356 
357 
358 
359 void PlotMakerL1::bookHistos(DQMStore * dbe_, std::vector<int>* l1bits, std::vector<int>* hltbits,
360  std::vector<std::string>* l1Names_, std::vector<std::string>* hlNames_)
361 {
362 
363  this->setBits(l1bits, hltbits);
364 
365  //******************
366  //Book histos for L1 Objects
367  //******************
368 
369 
370  //******************
371  //Book Jets
372  //******************
373  // std::string dirname_="HLTOffline/TriggerValidator/";
374 
375  dbe_->setCurrentFolder(dirname_+"/L1Jets/Central/General");
376  hL1CentralJetMult = dbe_->book1D("JetMult", "Jet Multiplicity", 10, 0, 10);
377  hL1CentralJet1Pt = dbe_->book1D("Jet1Pt", "Jet 1 Pt ", 100, 0, 1000);
378  hL1CentralJet2Pt = dbe_->book1D("Jet2Pt", "Jet 2 Pt ", 100, 0, 1000);
379  hL1CentralJet1Eta = dbe_->book1D("Jet1Eta", "Jet 1 Eta ", 100, -3, 3);
380  hL1CentralJet2Eta = dbe_->book1D("Jet2Eta", "Jet 2 Eta ", 100, -3, 3);
381  hL1CentralJet1Phi = dbe_->book1D("Jet1Phi", "Jet 1 Phi ", 100, -3.2, 3.2);
382  hL1CentralJet2Phi = dbe_->book1D("Jet2Phi", "Jet 2 Phi ", 100, -3.2, 3.2);
383 
384  dbe_->setCurrentFolder(dirname_+"/L1Jets/Central/L1");
385  for(unsigned int i=0; i<l1bits_->size(); i++){
386  myHistoName = "JetMult_" + (*l1Names_)[i];
387  myHistoTitle = "Jet Multiplicity for L1 path " + (*l1Names_)[i];
388  hL1CentralJetMultAfterL1.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 10, 0, 10));
389  myHistoName = "Jet1Pt_" + (*l1Names_)[i];
390  myHistoTitle = "Jet 1 Pt for L1 path " + (*l1Names_)[i];
391  hL1CentralJet1PtAfterL1.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 100, 0, 1000));
392  myHistoName = "Jet2Pt_" + (*l1Names_)[i];
393  myHistoTitle = "Jet 2 Pt for L1 path " + (*l1Names_)[i];
394  hL1CentralJet2PtAfterL1.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 100, 0, 1000));
395  myHistoName = "Jet1Eta_" + (*l1Names_)[i];
396  myHistoTitle = "Jet 1 Eta for L1 path " + (*l1Names_)[i];
397  hL1CentralJet1EtaAfterL1.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 100, -3, 3));
398  myHistoName = "Jet2Eta_" + (*l1Names_)[i];
399  myHistoTitle = "Jet 2 Eta for L1 path " + (*l1Names_)[i];
400  hL1CentralJet2EtaAfterL1.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 100, -3, 3));
401  myHistoName = "Jet1Phi_" + (*l1Names_)[i];
402  myHistoTitle = "Jet 1 Phi for L1 path " + (*l1Names_)[i];
403  hL1CentralJet1PhiAfterL1.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 100, -3.2, 3.2));
404  myHistoName = "Jet2Phi_" + (*l1Names_)[i];
405  myHistoTitle = "Jet 2 Phi for L1 path " + (*l1Names_)[i];
406  hL1CentralJet2PhiAfterL1.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 100, -3.2, 3.2));
407  }
408 
409  dbe_->setCurrentFolder(dirname_+"/L1Jets/Central/HLT");
410  for(unsigned int i=0; i<hltbits_->size(); i++){
411  myHistoName = "JetMult_" + (*hlNames_)[i];
412  myHistoTitle = "Jet Multiplicity for HLT path " + (*hlNames_)[i];
413  hL1CentralJetMultAfterHLT.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 10, 0, 10));
414  myHistoName = "Jet1Pt_" + (*hlNames_)[i];
415  myHistoTitle = "Jet 1 Pt for HLT path " + (*hlNames_)[i];
416  hL1CentralJet1PtAfterHLT.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 100, 0, 1000));
417  myHistoName = "Jet2Pt_" + (*hlNames_)[i];
418  myHistoTitle = "Jet 2 Pt for HLT path " + (*hlNames_)[i];
419  hL1CentralJet2PtAfterHLT.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 100, 0, 1000));
420  myHistoName = "Jet1Eta_" + (*hlNames_)[i];
421  myHistoTitle = "Jet 1 Eta for HLT path " + (*hlNames_)[i];
422  hL1CentralJet1EtaAfterHLT.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 100, -3, 3));
423  myHistoName = "Jet2Eta_" + (*hlNames_)[i];
424  myHistoTitle = "Jet 2 Eta for HLT path " + (*hlNames_)[i];
425  hL1CentralJet2EtaAfterHLT.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 100, -3, 3));
426  myHistoName = "Jet1Phi_" + (*hlNames_)[i];
427  myHistoTitle = "Jet 1 Phi for HLT path " + (*hlNames_)[i];
428  hL1CentralJet1PhiAfterHLT.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 100, -3.2, 3.2));
429  myHistoName = "Jet2Phi_" + (*hlNames_)[i];
430  myHistoTitle = "Jet 2 Phi for HLT path " + (*hlNames_)[i];
431  hL1CentralJet2PhiAfterHLT.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 100, -3.2, 3.2));
432  }
433 
434  dbe_->setCurrentFolder(dirname_+"/L1Jets/Forward/General");
435  hL1ForwardJetMult = dbe_->book1D("JetMult", "Jet Multiplicity", 10, 0, 10);
436  hL1ForwardJet1Pt = dbe_->book1D("Jet1Pt", "Jet 1 Pt ", 100, 0, 1000);
437  hL1ForwardJet2Pt = dbe_->book1D("Jet2Pt", "Jet 2 Pt ", 100, 0, 1000);
438  hL1ForwardJet1Eta = dbe_->book1D("Jet1Eta", "Jet 1 Eta ", 100, -3, 3);
439  hL1ForwardJet2Eta = dbe_->book1D("Jet2Eta", "Jet 2 Eta ", 100, -3, 3);
440  hL1ForwardJet1Phi = dbe_->book1D("Jet1Phi", "Jet 1 Phi ", 100, -3.2, 3.2);
441  hL1ForwardJet2Phi = dbe_->book1D("Jet2Phi", "Jet 2 Phi ", 100, -3.2, 3.2);
442 
443 
444  dbe_->setCurrentFolder(dirname_+"/L1Jets/Forward/L1");
445  for(unsigned int i=0; i<l1bits_->size(); i++){
446  myHistoName = "JetMult_" + (*l1Names_)[i];
447  myHistoTitle = "Jet Multiplicity for L1 path " + (*l1Names_)[i];
448  hL1ForwardJetMultAfterL1.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 10, 0, 10));
449  myHistoName = "Jet1Pt_" + (*l1Names_)[i];
450  myHistoTitle = "Jet 1 Pt for L1 path " + (*l1Names_)[i];
451  hL1ForwardJet1PtAfterL1.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 100, 0, 1000));
452  myHistoName = "Jet2Pt_" + (*l1Names_)[i];
453  myHistoTitle = "Jet 2 Pt for L1 path " + (*l1Names_)[i];
454  hL1ForwardJet2PtAfterL1.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 100, 0, 1000));
455  myHistoName = "Jet1Eta_" + (*l1Names_)[i];
456  myHistoTitle = "Jet 1 Eta for L1 path " + (*l1Names_)[i];
457  hL1ForwardJet1EtaAfterL1.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 100, -3, 3));
458  myHistoName = "Jet2Eta_" + (*l1Names_)[i];
459  myHistoTitle = "Jet 2 Eta for L1 path " + (*l1Names_)[i];
460  hL1ForwardJet2EtaAfterL1.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 100, -3, 3));
461  myHistoName = "Jet1Phi_" + (*l1Names_)[i];
462  myHistoTitle = "Jet 1 Phi for L1 path " + (*l1Names_)[i];
463  hL1ForwardJet1PhiAfterL1.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 100, -3.2, 3.2));
464  myHistoName = "Jet2Phi_" + (*l1Names_)[i];
465  myHistoTitle = "Jet 2 Phi for L1 path " + (*l1Names_)[i];
466  hL1ForwardJet2PhiAfterL1.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 100, -3.2, 3.2));
467  }
468 
469  dbe_->setCurrentFolder(dirname_+"/L1Jets/Forward/HLT");
470  for(unsigned int i=0; i<hltbits_->size(); i++){
471  myHistoName = "JetMult_" + (*hlNames_)[i];
472  myHistoTitle = "Jet Multiplicity for HLT path " + (*hlNames_)[i];
473  hL1ForwardJetMultAfterHLT.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 10, 0, 10));
474  myHistoName = "Jet1Pt_" + (*hlNames_)[i];
475  myHistoTitle = "Jet 1 Pt for HLT path " + (*hlNames_)[i];
476  hL1ForwardJet1PtAfterHLT.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 100, 0, 1000));
477  myHistoName = "Jet2Pt_" + (*hlNames_)[i];
478  myHistoTitle = "Jet 2 Pt for HLT path " + (*hlNames_)[i];
479  hL1ForwardJet2PtAfterHLT.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 100, 0, 1000));
480  myHistoName = "Jet1Eta_" + (*hlNames_)[i];
481  myHistoTitle = "Jet 1 Eta for HLT path " + (*hlNames_)[i];
482  hL1ForwardJet1EtaAfterHLT.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 100, -3, 3));
483  myHistoName = "Jet2Eta_" + (*hlNames_)[i];
484  myHistoTitle = "Jet 2 Eta for HLT path " + (*hlNames_)[i];
485  hL1ForwardJet2EtaAfterHLT.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 100, -3, 3));
486  myHistoName = "Jet1Phi_" + (*hlNames_)[i];
487  myHistoTitle = "Jet 1 Phi for HLT path " + (*hlNames_)[i];
488  hL1ForwardJet1PhiAfterHLT.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 100, -3.2, 3.2));
489  myHistoName = "Jet2Phi_" + (*hlNames_)[i];
490  myHistoTitle = "Jet 2 Phi for HLT path " + (*hlNames_)[i];
491  hL1ForwardJet2PhiAfterHLT.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 100, -3.2, 3.2));
492  }
493 
494 
495  dbe_->setCurrentFolder(dirname_+"/L1Jets/Tau/General");
496  hL1TauJetMult = dbe_->book1D("JetMult", "Jet Multiplicity", 10, 0, 10);
497  hL1TauJet1Pt = dbe_->book1D("Jet1Pt", "Jet 1 Pt ", 100, 0, 1000);
498  hL1TauJet2Pt = dbe_->book1D("Jet2Pt", "Jet 2 Pt ", 100, 0, 1000);
499  hL1TauJet1Eta = dbe_->book1D("Jet1Eta", "Jet 1 Eta ", 100, -3, 3);
500  hL1TauJet2Eta = dbe_->book1D("Jet2Eta", "Jet 2 Eta ", 100, -3, 3);
501  hL1TauJet1Phi = dbe_->book1D("Jet1Phi", "Jet 1 Phi ", 100, -3.2, 3.2);
502  hL1TauJet2Phi = dbe_->book1D("Jet2Phi", "Jet 2 Phi ", 100, -3.2, 3.2);
503 
504  dbe_->setCurrentFolder(dirname_+"/L1Jets/Tau/L1");
505  for(unsigned int i=0; i<l1bits_->size(); i++){
506  myHistoName = "JetMult_" + (*l1Names_)[i];
507  myHistoTitle = "Jet Multiplicity for L1 path " + (*l1Names_)[i];
508  hL1TauJetMultAfterL1.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 10, 0, 10));
509  myHistoName = "Jet1Pt_" + (*l1Names_)[i];
510  myHistoTitle = "Jet 1 Pt for L1 path " + (*l1Names_)[i];
511  hL1TauJet1PtAfterL1.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 100, 0, 1000));
512  myHistoName = "Jet2Pt_" + (*l1Names_)[i];
513  myHistoTitle = "Jet 2 Pt for L1 path " + (*l1Names_)[i];
514  hL1TauJet2PtAfterL1.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 100, 0, 1000));
515  myHistoName = "Jet1Eta_" + (*l1Names_)[i];
516  myHistoTitle = "Jet 1 Eta for L1 path " + (*l1Names_)[i];
517  hL1TauJet1EtaAfterL1.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 100, -3, 3));
518  myHistoName = "Jet2Eta_" + (*l1Names_)[i];
519  myHistoTitle = "Jet 2 Eta for L1 path " + (*l1Names_)[i];
520  hL1TauJet2EtaAfterL1.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 100, -3, 3));
521  myHistoName = "Jet1Phi_" + (*l1Names_)[i];
522  myHistoTitle = "Jet 1 Phi for L1 path " + (*l1Names_)[i];
523  hL1TauJet1PhiAfterL1.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 100, -3.2, 3.2));
524  myHistoName = "Jet2Phi_" + (*l1Names_)[i];
525  myHistoTitle = "Jet 2 Phi for L1 path " + (*l1Names_)[i];
526  hL1TauJet2PhiAfterL1.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 100, -3.2, 3.2));
527  }
528 
529  dbe_->setCurrentFolder(dirname_+"/L1Jets/Tau/HLT");
530  for(unsigned int i=0; i<hltbits_->size(); i++){
531  myHistoName = "JetMult_" + (*hlNames_)[i];
532  myHistoTitle = "Jet Multiplicity for HLT path " + (*hlNames_)[i];
533  hL1TauJetMultAfterHLT.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 10, 0, 10));
534  myHistoName = "Jet1Pt_" + (*hlNames_)[i];
535  myHistoTitle = "Jet 1 Pt for HLT path " + (*hlNames_)[i];
536  hL1TauJet1PtAfterHLT.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 100, 0, 1000));
537  myHistoName = "Jet2Pt_" + (*hlNames_)[i];
538  myHistoTitle = "Jet 2 Pt for HLT path " + (*hlNames_)[i];
539  hL1TauJet2PtAfterHLT.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 100, 0, 1000));
540  myHistoName = "Jet1Eta_" + (*hlNames_)[i];
541  myHistoTitle = "Jet 1 Eta for HLT path " + (*hlNames_)[i];
542  hL1TauJet1EtaAfterHLT.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 100, -3, 3));
543  myHistoName = "Jet2Eta_" + (*hlNames_)[i];
544  myHistoTitle = "Jet 2 Eta for HLT path " + (*hlNames_)[i];
545  hL1TauJet2EtaAfterHLT.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 100, -3, 3));
546  myHistoName = "Jet1Phi_" + (*hlNames_)[i];
547  myHistoTitle = "Jet 1 Phi for HLT path " + (*hlNames_)[i];
548  hL1TauJet1PhiAfterHLT.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 100, -3.2, 3.2));
549  myHistoName = "Jet2Phi_" + (*hlNames_)[i];
550  myHistoTitle = "Jet 2 Phi for HLT path " + (*hlNames_)[i];
551  hL1TauJet2PhiAfterHLT.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 100, -3.2, 3.2));
552  }
553 
554 
555 
556  dbe_->setCurrentFolder(dirname_+"/L1Em/Isolated/General");
557  hL1EmIsoMult = dbe_->book1D("ElecMult", "Elec Multiplicity", 10, 0, 10);
558  hL1EmIso1Pt = dbe_->book1D("Elec1Pt", "Elec 1 Pt ", 100, 0, 100);
559  hL1EmIso2Pt = dbe_->book1D("Elec2Pt", "Elec 2 Pt ", 100, 0, 100);
560  hL1EmIso1Eta = dbe_->book1D("Elec1Eta", "Elec 1 Eta ", 100, -3, 3);
561  hL1EmIso2Eta = dbe_->book1D("Elec2Eta", "Elec 2 Eta ", 100, -3, 3);
562  hL1EmIso1Phi = dbe_->book1D("Elec1Phi", "Elec 1 Phi ", 100, -3.2, 3.2);
563  hL1EmIso2Phi = dbe_->book1D("Elec2Phi", "Elec 2 Phi ", 100, -3.2, 3.2);
564 
565  dbe_->setCurrentFolder(dirname_+"/L1Em/Isolated/L1");
566  for(unsigned int i=0; i<l1bits_->size(); i++){
567  myHistoName = "ElecMult_" + (*l1Names_)[i];
568  myHistoTitle = "Elec Multiplicity for L1 path " + (*l1Names_)[i];
569  hL1EmIsoMultAfterL1.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 10, 0, 10));
570  myHistoName = "Elec1Pt_" + (*l1Names_)[i];
571  myHistoTitle = "Elec 1 Pt for L1 path " + (*l1Names_)[i];
572  hL1EmIso1PtAfterL1.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 100, 0, 100));
573  myHistoName = "Elec2Pt_" + (*l1Names_)[i];
574  myHistoTitle = "Elec 2 Pt for L1 path " + (*l1Names_)[i];
575  hL1EmIso2PtAfterL1.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 100, 0, 100));
576  myHistoName = "Elec1Eta_" + (*l1Names_)[i];
577  myHistoTitle = "Elec 1 Eta for L1 path " + (*l1Names_)[i];
578  hL1EmIso1EtaAfterL1.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 100, -3, 3));
579  myHistoName = "Elec2Eta_" + (*l1Names_)[i];
580  myHistoTitle = "Elec 2 Eta for L1 path " + (*l1Names_)[i];
581  hL1EmIso2EtaAfterL1.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 100, -3, 3));
582  myHistoName = "Elec1Phi_" + (*l1Names_)[i];
583  myHistoTitle = "Elec 1 Phi for L1 path " + (*l1Names_)[i];
584  hL1EmIso1PhiAfterL1.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 100, -3.2, 3.2));
585  myHistoName = "Elec2Phi_" + (*l1Names_)[i];
586  myHistoTitle = "Elec 2 Phi for L1 path " + (*l1Names_)[i];
587  hL1EmIso2PhiAfterL1.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 100, -3.2, 3.2));
588  }
589 
590  dbe_->setCurrentFolder(dirname_+"/L1Em/Isolated/HLT");
591  for(unsigned int i=0; i<hltbits_->size(); i++){
592  myHistoName = "ElecMult_" + (*hlNames_)[i];
593  myHistoTitle = "Elec Multiplicity for HLT path " + (*hlNames_)[i];
594  hL1EmIsoMultAfterHLT.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 10, 0, 10));
595  myHistoName = "Elec1Pt_" + (*hlNames_)[i];
596  myHistoTitle = "Elec 1 Pt for HLT path " + (*hlNames_)[i];
597  hL1EmIso1PtAfterHLT.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 100, 0, 100));
598  myHistoName = "Elec2Pt_" + (*hlNames_)[i];
599  myHistoTitle = "Elec 2 Pt for HLT path " + (*hlNames_)[i];
600  hL1EmIso2PtAfterHLT.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 100, 0, 100));
601  myHistoName = "Elec1Eta_" + (*hlNames_)[i];
602  myHistoTitle = "Elec 1 Eta for HLT path " + (*hlNames_)[i];
603  hL1EmIso1EtaAfterHLT.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 100, -3, 3));
604  myHistoName = "Elec2Eta_" + (*hlNames_)[i];
605  myHistoTitle = "Elec 2 Eta for HLT path " + (*hlNames_)[i];
606  hL1EmIso2EtaAfterHLT.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 100, -3, 3));
607  myHistoName = "Elec1Phi_" + (*hlNames_)[i];
608  myHistoTitle = "Elec 1 Phi for HLT path " + (*hlNames_)[i];
609  hL1EmIso1PhiAfterHLT.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 100, -3.2, 3.2));
610  myHistoName = "Elec2Phi_" + (*hlNames_)[i];
611  myHistoTitle = "Elec 2 Phi for HLT path " + (*hlNames_)[i];
612  hL1EmIso2PhiAfterHLT.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 100, -3.2, 3.2));
613  }
614  dbe_->setCurrentFolder(dirname_);
615 
616 
617 
618  dbe_->setCurrentFolder(dirname_+"/L1Em/NotIsolated/General");
619  hL1EmNotIsoMult = dbe_->book1D("ElecMult", "Elec Multiplicity", 10, 0, 10);
620  hL1EmNotIso1Pt = dbe_->book1D("Elec1Pt", "Elec 1 Pt ", 100, 0, 100);
621  hL1EmNotIso2Pt = dbe_->book1D("Elec2Pt", "Elec 2 Pt ", 100, 0, 100);
622  hL1EmNotIso1Eta = dbe_->book1D("Elec1Eta", "Elec 1 Eta ", 100, -3, 3);
623  hL1EmNotIso2Eta = dbe_->book1D("Elec2Eta", "Elec 2 Eta ", 100, -3, 3);
624  hL1EmNotIso1Phi = dbe_->book1D("Elec1Phi", "Elec 1 Phi ", 100, -3.2, 3.2);
625  hL1EmNotIso2Phi = dbe_->book1D("Elec2Phi", "Elec 2 Phi ", 100, -3.2, 3.2);
626 
627  dbe_->setCurrentFolder(dirname_+"/L1Em/NotIsolated/L1");
628  for(unsigned int i=0; i<l1bits_->size(); i++){
629  myHistoName = "ElecMult_" + (*l1Names_)[i];
630  myHistoTitle = "Elec Multiplicity for L1 path " + (*l1Names_)[i];
631  hL1EmNotIsoMultAfterL1.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 10, 0, 10));
632  myHistoName = "Elec1Pt_" + (*l1Names_)[i];
633  myHistoTitle = "Elec 1 Pt for L1 path " + (*l1Names_)[i];
634  hL1EmNotIso1PtAfterL1.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 100, 0, 100));
635  myHistoName = "Elec2Pt_" + (*l1Names_)[i];
636  myHistoTitle = "Elec 2 Pt for L1 path " + (*l1Names_)[i];
637  hL1EmNotIso2PtAfterL1.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 100, 0, 100));
638  myHistoName = "Elec1Eta_" + (*l1Names_)[i];
639  myHistoTitle = "Elec 1 Eta for L1 path " + (*l1Names_)[i];
640  hL1EmNotIso1EtaAfterL1.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 100, -3, 3));
641  myHistoName = "Elec2Eta_" + (*l1Names_)[i];
642  myHistoTitle = "Elec 2 Eta for L1 path " + (*l1Names_)[i];
643  hL1EmNotIso2EtaAfterL1.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 100, -3, 3));
644  myHistoName = "Elec1Phi_" + (*l1Names_)[i];
645  myHistoTitle = "Elec 1 Phi for L1 path " + (*l1Names_)[i];
646  hL1EmNotIso1PhiAfterL1.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 100, -3.2, 3.2));
647  myHistoName = "Elec2Phi_" + (*l1Names_)[i];
648  myHistoTitle = "Elec 2 Phi for L1 path " + (*l1Names_)[i];
649  hL1EmNotIso2PhiAfterL1.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 100, -3.2, 3.2));
650  }
651 
652  dbe_->setCurrentFolder(dirname_+"/L1Em/NotIsolated/HLT");
653  for(unsigned int i=0; i<hltbits_->size(); i++){
654  myHistoName = "ElecMult_" + (*hlNames_)[i];
655  myHistoTitle = "Elec Multiplicity for HLT path " + (*hlNames_)[i];
656  hL1EmNotIsoMultAfterHLT.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 10, 0, 10));
657  myHistoName = "Elec1Pt_" + (*hlNames_)[i];
658  myHistoTitle = "Elec 1 Pt for HLT path " + (*hlNames_)[i];
659  hL1EmNotIso1PtAfterHLT.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 100, 0, 100));
660  myHistoName = "Elec2Pt_" + (*hlNames_)[i];
661  myHistoTitle = "Elec 2 Pt for HLT path " + (*hlNames_)[i];
662  hL1EmNotIso2PtAfterHLT.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 100, 0, 100));
663  myHistoName = "Elec1Eta_" + (*hlNames_)[i];
664  myHistoTitle = "Elec 1 Eta for HLT path " + (*hlNames_)[i];
665  hL1EmNotIso1EtaAfterHLT.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 100, -3, 3));
666  myHistoName = "Elec2Eta_" + (*hlNames_)[i];
667  myHistoTitle = "Elec 2 Eta for HLT path " + (*hlNames_)[i];
668  hL1EmNotIso2EtaAfterHLT.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 100, -3, 3));
669  myHistoName = "Elec1Phi_" + (*hlNames_)[i];
670  myHistoTitle = "Elec 1 Phi for HLT path " + (*hlNames_)[i];
671  hL1EmNotIso1PhiAfterHLT.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 100, -3.2, 3.2));
672  myHistoName = "Elec2Phi_" + (*hlNames_)[i];
673  myHistoTitle = "Elec 2 Phi for HLT path " + (*hlNames_)[i];
674  hL1EmNotIso2PhiAfterHLT.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 100, -3.2, 3.2));
675  }
676  dbe_->setCurrentFolder(dirname_);
677 
678  //******************
679  //Book Muons
680  //******************
681 
682  dbe_->setCurrentFolder(dirname_+"/L1Muons/General");
683  hL1MuonMult = dbe_->book1D("MuonMult", "Muon Multiplicity", 10, 0, 10);
684  hL1Muon1Pt = dbe_->book1D("Muon1Pt", "Muon 1 Pt ", 100, 0, 100);
685  hL1Muon2Pt = dbe_->book1D("Muon2Pt", "Muon 2 Pt ", 100, 0, 100);
686  hL1Muon1Eta = dbe_->book1D("Muon1Eta", "Muon 1 Eta ", 100, -3, 3);
687  hL1Muon2Eta = dbe_->book1D("Muon2Eta", "Muon 2 Eta ", 100, -3, 3);
688  hL1Muon1Phi = dbe_->book1D("Muon1Phi", "Muon 1 Phi ", 100, -3.2, 3.2);
689  hL1Muon2Phi = dbe_->book1D("Muon2Phi", "Muon 2 Phi ", 100, -3.2, 3.2);
690 
691  dbe_->setCurrentFolder(dirname_+"/L1Muons/L1");
692  for(unsigned int i=0; i<l1bits_->size(); i++){
693  myHistoName = "MuonMult_" + (*l1Names_)[i];
694  myHistoTitle = "Muon Multiplicity for L1 path " + (*l1Names_)[i];
695  hL1MuonMultAfterL1.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 10, 0, 10));
696  myHistoName = "Muon1Pt_" + (*l1Names_)[i];
697  myHistoTitle = "Muon 1 Pt for L1 path " + (*l1Names_)[i];
698  hL1Muon1PtAfterL1.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 100, 0, 100));
699  myHistoName = "Muon2Pt_" + (*l1Names_)[i];
700  myHistoTitle = "Muon 2 Pt for L1 path " + (*l1Names_)[i];
701  hL1Muon2PtAfterL1.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 100, 0, 100));
702  myHistoName = "Muon1Eta_" + (*l1Names_)[i];
703  myHistoTitle = "Muon 1 Eta for L1 path " + (*l1Names_)[i];
704  hL1Muon1EtaAfterL1.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 100, -3, 3));
705  myHistoName = "Muon2Eta_" + (*l1Names_)[i];
706  myHistoTitle = "Muon 2 Eta for L1 path " + (*l1Names_)[i];
707  hL1Muon2EtaAfterL1.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 100, -3, 3));
708  myHistoName = "Muon1Phi_" + (*l1Names_)[i];
709  myHistoTitle = "Muon 1 Phi for L1 path " + (*l1Names_)[i];
710  hL1Muon1PhiAfterL1.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 100, -3.2, 3.2));
711  myHistoName = "Muon2Phi_" + (*l1Names_)[i];
712  myHistoTitle = "Muon 2 Phi for L1 path " + (*l1Names_)[i];
713  hL1Muon2PhiAfterL1.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 100, -3.2, 3.2));
714  }
715 
716  dbe_->setCurrentFolder(dirname_+"/L1Muons/HLT");
717  for(unsigned int i=0; i<hltbits_->size(); i++){
718  myHistoName = "MuonMult_" + (*hlNames_)[i];
719  myHistoTitle = "Muon Multiplicity for HLT path " + (*hlNames_)[i];
720  hL1MuonMultAfterHLT.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 10, 0, 10));
721  myHistoName = "Muon1Pt_" + (*hlNames_)[i];
722  myHistoTitle = "Muon 1 Pt for HLT path " + (*hlNames_)[i];
723  hL1Muon1PtAfterHLT.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 100, 0, 100));
724  myHistoName = "Muon2Pt_" + (*hlNames_)[i];
725  myHistoTitle = "Muon 2 Pt for HLT path " + (*hlNames_)[i];
726  hL1Muon2PtAfterHLT.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 100, 0, 100));
727  myHistoName = "Muon1Eta_" + (*hlNames_)[i];
728  myHistoTitle = "Muon 1 Eta for HLT path " + (*hlNames_)[i];
729  hL1Muon1EtaAfterHLT.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 100, -3, 3));
730  myHistoName = "Muon2Eta_" + (*hlNames_)[i];
731  myHistoTitle = "Muon 2 Eta for HLT path " + (*hlNames_)[i];
732  hL1Muon2EtaAfterHLT.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 100, -3, 3));
733  myHistoName = "Muon1Phi_" + (*hlNames_)[i];
734  myHistoTitle = "Muon 1 Phi for HLT path " + (*hlNames_)[i];
735  hL1Muon1PhiAfterHLT.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 100, -3.2, 3.2));
736  myHistoName = "Muon2Phi_" + (*hlNames_)[i];
737  myHistoTitle = "Muon 2 Phi for HLT path " + (*hlNames_)[i];
738  hL1Muon2PhiAfterHLT.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 100, -3.2, 3.2));
739  }
740  dbe_->setCurrentFolder(dirname_);
741 
742 
743 
744  //******************
745  //Book MET
746  //******************
747 
748  dbe_->setCurrentFolder(dirname_+"/L1MET/General");
749  hL1MET = dbe_->book1D("MET", "MET", 35, 0, 1050);
750  hL1METx = dbe_->book1D("METx", "METx", 35, 0, 1050);
751  hL1METy = dbe_->book1D("METy", "METy", 35, 0, 1050);
752  hL1METphi = dbe_->book1D("METphi", "METphi", 100, -3.2, 3.2);
753  hL1SumEt = dbe_->book1D("SumEt", "SumEt", 35, 0, 1050);
754  hL1METSignificance = dbe_->book1D("METSignificance", "METSignificance", 100, 0, 100);
755 
756 
757  dbe_->setCurrentFolder(dirname_+"/L1MET/L1");
758  for(unsigned int i=0; i<l1bits_->size(); i++){
759  myHistoName = "MET_" + (*l1Names_)[i];
760  myHistoTitle = "MET for L1 path " + (*l1Names_)[i];
761  hL1METAfterL1.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 35, 0, 1050));
762  myHistoName = "METx_" + (*l1Names_)[i];
763  myHistoTitle = "METx for L1 path " + (*l1Names_)[i];
764  hL1METxAfterL1.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 35, 0, 1050));
765  myHistoName = "METy_" + (*l1Names_)[i];
766  myHistoTitle = "METy for L1 path " + (*l1Names_)[i];
767  hL1METyAfterL1.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 35, 0, 1050));
768  myHistoName = "METphi_" + (*l1Names_)[i];
769  myHistoTitle = "METphi for L1 path " + (*l1Names_)[i];
770  hL1METphiAfterL1.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 100, -3.2, 3.2));
771  myHistoName = "SumEt_" + (*l1Names_)[i];
772  myHistoTitle = "SumEt for L1 path " + (*l1Names_)[i];
773  hL1SumEtAfterL1.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 35, 0, 1050));
774  myHistoName = "METSignificance_" + (*l1Names_)[i];
775  myHistoTitle = "METSignificance for L1 path " + (*l1Names_)[i];
776  hL1METSignificanceAfterL1.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 100, 0, 100));
777  }
778 
779  dbe_->setCurrentFolder(dirname_+"/L1MET/HLT");
780  for(unsigned int i=0; i<hltbits_->size(); i++){
781  myHistoName = "MET_" + (*hlNames_)[i];
782  myHistoTitle = "MET for HLT path " + (*hlNames_)[i];
783  hL1METAfterHLT.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 35, 0, 1050));
784  myHistoName = "METx_" + (*hlNames_)[i];
785  myHistoTitle = "METx for HLT path " + (*hlNames_)[i];
786  hL1METxAfterHLT.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 35, 0, 1050));
787  myHistoName = "METy_" + (*hlNames_)[i];
788  myHistoTitle = "METy for HLT path " + (*hlNames_)[i];
789  hL1METyAfterHLT.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 35, 0, 1050));
790  myHistoName = "METphi_" + (*hlNames_)[i];
791  myHistoTitle = "METphi for HLT path " + (*hlNames_)[i];
792  hL1METphiAfterHLT.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 100, -3.2, 3.2));
793  myHistoName = "SumEt_" + (*hlNames_)[i];
794  myHistoTitle = "SumEt for HLT path " + (*hlNames_)[i];
795  hL1SumEtAfterHLT.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 35, 0, 1050));
796  myHistoName = "METSignificance_" + (*hlNames_)[i];
797  myHistoTitle = "METSignificance for HLT path " + (*hlNames_)[i];
798  hL1METSignificanceAfterHLT.push_back(dbe_->book1D(myHistoName.c_str(), myHistoTitle.c_str() , 100, 0, 100));
799  }
800  dbe_->setCurrentFolder(dirname_);
801 
802 
803 
804 }
805 
806 
807 
808 
809 
811 {
812 
813 
814  //**************************************************
815  // Get the L1 Objects through the l1extra Collection
816  //**************************************************
817 
818  //Get the EM objects
819 
820  Handle<l1extra::L1EmParticleCollection> theL1EmIsoHandle, theL1EmNotIsoHandle;
821  iEvent.getByLabel(m_l1extra,"Isolated",theL1EmIsoHandle);
822  iEvent.getByLabel(m_l1extra,"NonIsolated",theL1EmNotIsoHandle);
823  theL1EmIsoCollection = *theL1EmIsoHandle;
824  std::sort(theL1EmIsoCollection.begin(), theL1EmIsoCollection.end(), PtSorter());
825  theL1EmNotIsoCollection = *theL1EmNotIsoHandle;
826  std::sort(theL1EmNotIsoCollection.begin(), theL1EmNotIsoCollection.end(), PtSorter());
827 
828  //Get the Muons
830  iEvent.getByLabel(m_l1extra,theL1MuonHandle);
831  theL1MuonCollection = *theL1MuonHandle;
832  std::sort(theL1MuonCollection.begin(), theL1MuonCollection.end(),PtSorter());
833 
834  //Get the Jets
835  Handle<l1extra::L1JetParticleCollection> theL1CentralJetHandle,theL1ForwardJetHandle,theL1TauJetHandle;
836  iEvent.getByLabel(m_l1extra,"Central",theL1CentralJetHandle);
837  iEvent.getByLabel(m_l1extra,"Forward",theL1ForwardJetHandle);
838  iEvent.getByLabel(m_l1extra,"Tau",theL1TauJetHandle);
839  theL1CentralJetCollection = *theL1CentralJetHandle;
840  std::sort(theL1CentralJetCollection.begin(), theL1CentralJetCollection.end(), PtSorter());
841  theL1ForwardJetCollection = *theL1ForwardJetHandle;
842  std::sort(theL1ForwardJetCollection.begin(), theL1ForwardJetCollection.end(), PtSorter());
843  theL1TauJetCollection = *theL1TauJetHandle;
844  std::sort(theL1TauJetCollection.begin(), theL1TauJetCollection.end(), PtSorter());
845 
846 
847  //Get the MET
849  iEvent.getByLabel(m_l1extra,"MET",theL1METHandle);
850  //iEvent.getByLabel(m_l1extra,theL1METHandle);
851  theL1METCollection = *theL1METHandle;
852  std::sort(theL1METCollection.begin(), theL1METCollection.end(),PtSorter());
853 
854 }
855 
857  double mass = sqrt( (p1->energy() + p2->energy())*(p1->energy() + p2->energy()) -
858  (p1->px() + p2->px())*(p1->px() + p2->px()) -
859  (p1->py() + p2->py())*(p1->py() + p2->py()) -
860  (p1->pz() + p2->pz())*(p1->pz() + p2->pz()) );
861 
862 
863 // cout << "p1->energy() = " << p1->energy() << " p2->energy() = " << p2->energy() << endl;
864 // cout << "p1->px() = " << p1->px() << " p2->px() = " << p2->px() << endl;
865 // cout << "p1->py() = " << p1->py() << " p2->py() = " << p2->py() << endl;
866 // cout << "p1->pz() = " << p1->pz() << " p2->pz() = " << p2->pz() << endl;
867 // cout << "invmass = " << mass << endl;
868 
869 
870  return mass;
871 }
872 
T getParameter(std::string const &) const
int i
Definition: DBlmapReader.cc:9
virtual double energy() const =0
energy
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
Definition: DQMStore.cc:722
virtual double pz() const =0
z coordinate of momentum vector
void handleObjects(const edm::Event &)
Definition: PlotMakerL1.cc:810
void fillPlots(const edm::Event &)
Definition: PlotMakerL1.cc:33
T eta() const
int iEvent
Definition: GenABIO.cc:243
T sqrt(T t)
Definition: SSEVec.h:48
void bookHistos(DQMStore *, std::vector< int > *, std::vector< int > *, std::vector< std::string > *, std::vector< std::string > *)
Definition: PlotMakerL1.cc:359
PlotMakerL1(edm::ParameterSet objectList)
Definition: PlotMakerL1.cc:25
virtual double py() const =0
y coordinate of momentum vector
double invariantMass(reco::Candidate *, reco::Candidate *)
Definition: PlotMakerL1.cc:856
double p2[4]
Definition: TauolaWrapper.h:90
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:361
DQMStore * dbe_
virtual double px() const =0
x coordinate of momentum vector
double p1[4]
Definition: TauolaWrapper.h:89
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:434
Definition: DDAxes.h:10