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