CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
HLTMuonDQMSource.cc
Go to the documentation of this file.
1 // -*- C++ -*-
2 //
3 // Package: HLTMuonDQMSource
4 // Class: HLTMuonDQMSource
5 //
13 //
14 // Original Author: Muriel VANDER DONCKT *:0
15 // Created: Wed Dec 12 09:55:42 CET 2007
16 // $Id: HLTMuonDQMSource.cc,v 1.42 2011/03/20 11:13:49 hdyoo Exp $
17 // Modification: Sanghyeon Song (Chonnam National University)
18 // contact: sanghyeon.song@cern.ch
19 //
20 //
21 
22 
23 
26 
35 
37 
49 
56 
64 
68 
70 
71 #include "TMath.h"
72 
73 
74 //using namespace std;
75 //using namespace edm;
76 //using namespace reco;
77 //using namespace l1extra;
78 //
79 // constructors and destructor
80 //
81 HLTMuonDQMSource::HLTMuonDQMSource( const edm::ParameterSet& ps ) :counterEvt_(0), nTrig_(0)
82 {
83  parameters_ = ps;
84  verbose_ = parameters_.getUntrackedParameter < bool > ("verbose", false);
85  monitorName_ = parameters_.getUntrackedParameter<std::string>("monitorName","HLT/HLTMonMuon");
86  prescaleEvt_ = parameters_.getUntrackedParameter<int>("prescaleEvt", -1);
87  coneSize_ = parameters_.getUntrackedParameter<double>("coneSize", 0.24);
89  l3seedscollectionTag_ = parameters_.getUntrackedParameter<edm::InputTag>("l3MuonSeedTag",edm::InputTag("hltL3TrajectorySeed"));
90  l2collectionTag_ = parameters_.getUntrackedParameter<edm::InputTag>("l2MuonTag",edm::InputTag("hltL2MuonCandidates"));
91  l3collectionTag_ = parameters_.getUntrackedParameter<edm::InputTag>("l3MuonTag",edm::InputTag("hltL3MuonCandidates"));
92  l2isolationTag_ = parameters_.getUntrackedParameter<edm::InputTag>("l2IsolationTag",edm::InputTag("hltL2MuonIsolations"));
93  l3isolationTag_ = parameters_.getUntrackedParameter<edm::InputTag>("l3IsolationTag",edm::InputTag("hltL3MuonIsolations"));
94 
95  TrigResultInput = parameters_.getUntrackedParameter<edm::InputTag>("TrigResultInputTag", edm::InputTag("TriggerResults"));
96 
97 
98  l3seedscollectionTagOIState_ = parameters_.getUntrackedParameter<edm::InputTag>("l3MuonSeedTagOIState",edm::InputTag("hltL3TrajSeedOIState"));
99  l3seedscollectionTagOIHit_ = parameters_.getUntrackedParameter<edm::InputTag>("l3MuonSeedTagOIHit",edm::InputTag("hltL3TrajSeedOIHit"));
100  l3seedscollectionTagIOHit_ = parameters_.getUntrackedParameter<edm::InputTag>("l3MuonSeedTagIOHit",edm::InputTag("hltL3TrajSeedIOHit"));
101 
102  l3trkfindingOIState_ = parameters_.getUntrackedParameter<edm::InputTag>("l3MuonTrkFindingOIState",edm::InputTag("hltL3TrackCandidateFromL2OIState"));
103  l3trkfindingOIHit_ = parameters_.getUntrackedParameter<edm::InputTag>("l3MuonTrkFindingOIHit",edm::InputTag("hltL3TrackCandidateFromL2OIHit"));
104  l3trkfindingIOHit_ = parameters_.getUntrackedParameter<edm::InputTag>("l3MuonTrkFindingIOHit",edm::InputTag("hltL3TrackCandidateFromL2IOHit"));
105 
106  l3trkOIState_ = parameters_.getUntrackedParameter<edm::InputTag>("l3MuonTrkOIState",edm::InputTag("hltL3TkTracksFromL2OIState"));
107  l3trkOIHit_ = parameters_.getUntrackedParameter<edm::InputTag>("l3MuonTrkOIHit",edm::InputTag("hltL3TkTracksFromL2OIHit"));
108  l3trkIOHit_ = parameters_.getUntrackedParameter<edm::InputTag>("l3MuonTrkIOHit",edm::InputTag("hltL3TkTracksFromL2IOHit"));
109  l3tktrk_ = parameters_.getUntrackedParameter<edm::InputTag>("l3MuonTrk",edm::InputTag("hltL3TkTracksFromL2"));
110 
112  l3muonsOIState_ = parameters_.getUntrackedParameter<edm::InputTag>("l3muonsOIState",edm::InputTag("hltL3MuonsOIState"));
113  l3muonsOIHit_ = parameters_.getUntrackedParameter<edm::InputTag>("l3muonsOIHit",edm::InputTag("hltL3MuonsOIHit"));
114  l3muonsIOHit_ = parameters_.getUntrackedParameter<edm::InputTag>("l3muonsIOHit",edm::InputTag("hltL3MuonsIOHit"));
115 
116  dbe_ = 0 ;
117  dbe_ = edm::Service < DQMStore > ().operator->();
118  dbe_->setVerbose(0);
119 
120  outputFile_ =
121  parameters_.getUntrackedParameter < std::string > ("outputFile", "");
122  if (outputFile_.size() != 0) {
123  edm::LogWarning("HLTMuonDQMSource") << "Muon HLT Monitoring histograms will be saved to "
124  << outputFile_ << std::endl;
125  }
126  else {
127  outputFile_ = "HLTMuonDQM.root";
128  }
129 
130  bool disable =
131  parameters_.getUntrackedParameter < bool > ("disableROOToutput", false);
132  if (disable) {
133  outputFile_ = "";
134  }
135 
136  if (dbe_ != NULL) {
137  dbe_->setCurrentFolder(monitorName_);
138  }
139 
140  std::vector<edm::ParameterSet> filters = parameters_.getParameter<std::vector<edm::ParameterSet> >("filters");
141 
142  for(std::vector<edm::ParameterSet>::iterator filterconf = filters.begin() ; filterconf != filters.end() ; filterconf++){
143  theDirectoryName.push_back(filterconf->getParameter<std::string>("directoryName"));
144  //theHLTCollectionLevel.push_back(filterconf->getParameter<std::string>("level"));
145  //theTriggerBits.push_back(filterconf->getParameter<std::vector<std::string> >("triggerBits"));
146  std::string _tmp_level = filterconf->getParameter<std::string>("directoryName");
147  std::vector<std::string> _tmp_bits = filterconf->getParameter<std::vector<std::string> >("triggerBits");
148  for( size_t i = 0; i < _tmp_bits.size(); ++i ) {
149  theTriggerBits.push_back(_tmp_bits[i]);
150  theHLTCollectionLevel.push_back(_tmp_level);
151  }
152  }
153 
154  // L1PassThrough, L2PassThrough, L3PassThrough
155  nTrigs = theDirectoryName.size();
156 
157  for( int trig = 0; trig < nTrigs; trig++ ) striggers_[trig] = "";
158 }
159 
160 
162 {
163 
164  // do anything here that needs to be done at desctruction time
165  // (e.g. close files, deallocate resources etc.)
166 
167 }
168 
169 
170 //--------------------------------------------------------
172 {
173  if (dbe_) {
174  //dbe_->setCurrentFolder("monitorName_");
175  if (monitorName_ != "" ) monitorName_ = monitorName_+"/" ;
176  edm::LogInfo("HLTMuonDQMSource") << "===>DQM event prescale = " << prescaleEvt_ << " events "<< std::endl;
177 
178 
180  int NBINS = 50; XMIN = 0; XMAX = 50;
181 
182  // create and cd into new folder
183  char name[512], title[512];
184  double pt_max;
185  std::string dirname;
186 
187  for( int trig = 0; trig < nTrigs; trig++ ) {
188  dirname = theDirectoryName[trig]+"/";
189 
190  for(unsigned int i = 0; i < theHLTCollectionLevel.size(); ++i){
192  if(!strcmp(striggers_[trig].c_str(), "")) striggers_[trig] = theTriggerBits[i];
193  else striggers_[trig] += ", " + theTriggerBits[i];
194  }
195  }
196  dbe_->setCurrentFolder(monitorName_ + dirname);
197  sprintf(name,"%s triggers",theDirectoryName[trig].c_str());
198  dbe_->bookString(name,striggers_[trig]);
199 
200  for ( int level = 1; level < 7; ++level ) {
201  if( level < 4 ) sprintf(name,"Level%i",level);
202  else if (level == 4 ) sprintf(name,"Level%iSeed", level-2);
203  else if (level == 5 ) sprintf(name,"Level%iSeed", level-2);
204  else if (level == 6 ) sprintf(name,"Isolation");
205 
206  if( level == 1 ) pt_max = 145;
207  else pt_max = 200;
208  dbe_->setCurrentFolder(monitorName_+dirname+name);
209  if( level == 1 ) hl1quality[trig] = dbe_->book1D("h1L1Quality","GMT quality Flag", 8, 0., 8.);
210  if( level == 2 ) {
211  hnHits[trig][level-1] = dbe_->book1D(name,title, NBINS, 0., 100.);
212  hnValidHits[trig] = dbe_->book1D("HLTMuonL2_nValidHits", "L2 Number of Valid Hits", NBINS, 0., 100.);
213  hnValidHits[trig]->setAxisTitle("Number of Valid Hits", 1);
214  }
215  if( level == 3 ) {
216 
217  hnTkValidHits[trig] = dbe_->book1D("HLTMuonL3_nTkValidHits", "L3 Number of Valid Tracker Hits", 30, 0., 30.);
218  hnTkValidHits[trig]->setAxisTitle("Number of Valid Tracker Hits", 1);
219  hnPixelValidHits[trig] = dbe_->book1D("HLTMuonL3_nPixelValidHits", "L3 Number of Valid Pixel Hits", 10, 0., 10.);
220  hnPixelValidHits[trig]->setAxisTitle("Number of Valid Pixel Hits", 1);
221  hnStripValidHits[trig] = dbe_->book1D("HLTMuonL3_nStripValidHits", "L3 Number of Valid Strip Hits", 20, 0., 20.);
222  hnStripValidHits[trig]->setAxisTitle("Number of Valid Strip Hits", 1);
223  hnMuValidHits[trig] = dbe_->book1D("HLTMuonL3_nMuValidHits", "L3 Number of Valid Muon Hits", 100, 0., 100.);
224  hnMuValidHits[trig]->setAxisTitle("Number of Valid Muon Hits", 1);
225  }
226  if( level == 1 ) {
227  int eta_nbin = 62;
228  float eta_bins[63] = {
229  -2.40, -2.35, -2.30, -2.25, -2.20, -2.15, -2.10, -2.05,
230  -2.00, -1.95, -1.90, -1.85, -1.80, -1.75, -1.70, -1.60,
231  -1.50, -1.40, -1.30, -1.20, -1.10, -1.00, -0.90, -0.80,
232  -0.70, -0.60, -0.50, -0.40, -0.30, -0.20, -0.10, -0.00,
233  0.10, 0.20, 0.30, 0.40, 0.50, 0.60, 0.70, 0.80,
234  0.90, 1.00, 1.10, 1.20, 1.30, 1.40, 1.50, 1.60,
235  1.70, 1.75, 1.80, 1.85, 1.90, 1.95, 2.00, 2.05,
236  2.10, 2.15, 2.20, 2.25, 2.30, 2.35, 2.40
237  };
238  int phi_nbin = 144;
239  float phi_bins[145];
240  for( int ibin = 0; ibin < 145; ibin++ ) {
241  phi_bins[ibin] = -3.15 + (ibin)*(6.30/144);
242  }
243  float pt_bins[51];
244  for( int ibin = 0; ibin < 51; ibin++ ) {
245  pt_bins[ibin] = ibin*(145./50.);
246  }
247  sprintf(name,"HLTMuonL%i_NMu",level);
248  sprintf(title,"L%i number of muons",level);
249  hNMu[trig][level-1] = dbe_->book1D(name,title, 11, -0.5, 10.5);
250  hNMu[trig][level-1]->setAxisTitle("Number of muons", 1);
251  sprintf(name,"HLTMuonL%i_pt",level);
252  sprintf(title,"L%i Pt",level);
253  hpt[trig][level-1] = dbe_->book1D(name,title, NBINS, pt_bins);
254  hpt[trig][level-1]->setAxisTitle("Pt", 1);
255  sprintf(name,"HLTMuonL%i_eta",level);
256  sprintf(title,"L%i Muon #eta",level);
257  heta[trig][level-1] = dbe_->book1D(name,title, eta_nbin, eta_bins);
258  heta[trig][level-1]->setAxisTitle("#eta", 1);
259  sprintf(name,"HLTMuonL%i_phi",level);
260  sprintf(title,"L%i Muon #phi",level);
261  hphi[trig][level-1] = dbe_->book1D(name,title, phi_nbin, phi_bins);
262  hphi[trig][level-1]->setAxisTitle("#phi", 1);
263 
264  sprintf(name,"HLTMuonL%i_phi_norm",level);
265  sprintf(title,"L%i Muon #phi_norm",level);
266  hphi_norm[trig][level-1] = dbe_->book1D(name,title, phi_nbin, phi_bins);
267  hphi_norm[trig][level-1]->setAxisTitle("#phi", 1);
268  sprintf(name,"HLTMuonL%i_etaphi",level);
269  sprintf(title,"L%i Muon #eta vs #phi",level);
270  hetaphi[trig][level-1] = dbe_->book2D(name,title, phi_nbin, phi_bins, eta_nbin, eta_bins);
271  hetaphi[trig][level-1]->setAxisTitle("#phi", 1);
272  hetaphi[trig][level-1]->setAxisTitle("#eta", 2);
273  sprintf(name,"HLTMuonL%i_ptphi",level);
274  sprintf(title,"L%i Muon pt vs #phi",level);
275  hptphi[trig][level-1] = dbe_->book2D(name,title, NBINS, pt_bins, phi_nbin, phi_bins);
276  hptphi[trig][level-1]->setAxisTitle("pt", 1);
277  hptphi[trig][level-1]->setAxisTitle("#phi", 2);
278  sprintf(name,"HLTMuonL%i_pteta",level);
279  sprintf(title,"L%i Muon pt vs #eta",level);
280  hpteta[trig][level-1] = dbe_->book2D(name,title, NBINS, pt_bins, eta_nbin, eta_bins);
281  hpteta[trig][level-1]->setAxisTitle("pt", 1);
282  hpteta[trig][level-1]->setAxisTitle("#eta", 2);
283  sprintf(name,"HLTMuonL%i_charge",level);
284  sprintf(title,"L%i Muon Charge",level);
285  hcharge[trig][level-1] = dbe_->book1D(name,title, 3, -1.5, 1.5);
286  hcharge[trig][level-1]->setAxisTitle("Charge", 1);
287 
288  }
289  if( level > 1 && level < 4 ) {
290  sprintf(name,"HLTMuonL%i_NMu",level);
291  sprintf(title,"L%i number of muons",level);
292  hNMu[trig][level-1] = dbe_->book1D(name,title,11, -0.5, 10.5);
293  hNMu[trig][level-1]->setAxisTitle("Number of muons", 1);
294  sprintf(name,"HLTMuonL%i_pt",level);
295  sprintf(title,"L%i Pt",level);
296  hpt[trig][level-1] = dbe_->book1D(name,title, NBINS, 0., pt_max);
297  hpt[trig][level-1]->setAxisTitle("Pt", 1);
298  sprintf(name,"HLTMuonL%i_eta",level);
299  sprintf(title,"L%i Muon #eta",level);
300  heta[trig][level-1] = dbe_->book1D(name,title, NBINS, -2.5, 2.5);
301  heta[trig][level-1]->setAxisTitle("#eta", 1);
302  sprintf(name,"HLTMuonL%i_phi",level);
303  sprintf(title,"L%i Muon #phi",level);
304  hphi[trig][level-1] = dbe_->book1D(name,title, NBINS, -3.15, 3.15);
305  hphi[trig][level-1]->setAxisTitle("#phi", 1);
306 
307  sprintf(name,"HLTMuonL%i_phi_norm",level);
308  sprintf(title,"L%i Muon #phi_norm",level);
309  hphi_norm[trig][level-1] = dbe_->book1D(name,title, NBINS, -3.15, 3.15);
310  hphi_norm[trig][level-1]->setAxisTitle("#phi", 1);
311  sprintf(name,"HLTMuonL%i_etaphi",level);
312  sprintf(title,"L%i Muon #eta vs #phi",level);
313  hetaphi[trig][level-1] = dbe_->book2D(name,title, NBINS, -3.15, 3.15,NBINS,-2.5, 2.5);
314  hetaphi[trig][level-1]->setAxisTitle("#phi", 1);
315  hetaphi[trig][level-1]->setAxisTitle("#eta", 2);
316  sprintf(name,"HLTMuonL%i_ptphi",level);
317  sprintf(title,"L%i Muon pt vs #phi",level);
318  hptphi[trig][level-1] = dbe_->book2D(name,title, NBINS, 0., pt_max,NBINS,-3.15, 3.15);
319  hptphi[trig][level-1]->setAxisTitle("pt", 1);
320  hptphi[trig][level-1]->setAxisTitle("#phi", 2);
321  sprintf(name,"HLTMuonL%i_pteta",level);
322  sprintf(title,"L%i Muon pt vs #eta",level);
323  hpteta[trig][level-1] = dbe_->book2D(name,title, NBINS, 0., pt_max,NBINS,-2.5, 2.5);
324  hpteta[trig][level-1]->setAxisTitle("pt", 1);
325  hpteta[trig][level-1]->setAxisTitle("#eta", 2);
326  sprintf(name,"HLTMuonL%i_nHits",level);
327  sprintf(title,"L%i Number of Hits",level);
328  hnHits[trig][level-1] = dbe_->book1D(name,title, NBINS, 0., 100.);
329  hnHits[trig][level-1]->setAxisTitle("Number of Hits", 1);
330  sprintf(name,"HLTMuonL%i_charge",level);
331  sprintf(title,"L%i Muon Charge",level);
332  hcharge[trig][level-1] = dbe_->book1D(name,title, 3, -1.5, 1.5);
333  hcharge[trig][level-1]->setAxisTitle("Charge", 1);
334 
335 
336  }
337  else if( level == 4 || level == 5 ) {
338  sprintf(name,"HLTMuonL%iSeed_NMu",level-2);
339  sprintf(title,"L%iSeed number of muons",level-2);
340  hNMu[trig][level-1] = dbe_->book1D(name,title, 11, -0.5, 10.5);
341  hNMu[trig][level-1]->setAxisTitle("Number of muons", 1);
342  sprintf(name,"HLTMuonL%iSeed_pt",level-2);
343  sprintf(title,"L%iSeed Pt",level-2);
344  hpt[trig][level-1] = dbe_->book1D(name,title, NBINS, 0., pt_max);
345  hpt[trig][level-1]->setAxisTitle("Pt", 1);
346  sprintf(name,"HLTMuonL%iSeed_eta",level-2);
347  sprintf(title,"L%iSeed Muon #eta",level-2);
348  heta[trig][level-1] = dbe_->book1D(name,title, NBINS, -2.5, 2.5);
349  heta[trig][level-1]->setAxisTitle("#eta", 1);
350  sprintf(name,"HLTMuonL%iSeed_phi",level-2);
351  sprintf(title,"L%iSeed Muon #phi",level-2);
352  hphi[trig][level-1] = dbe_->book1D(name,title, NBINS, -3.15, 3.15);
353  hphi[trig][level-1]->setAxisTitle("#phi", 1);
354 
355  sprintf(name,"HLTMuonL%iSeed_etaphi",level-2);
356  sprintf(title,"L%iSeed Muon #eta vs #phi",level-2);
357  hetaphi[trig][level-1] = dbe_->book2D(name,title, NBINS, -3.15, 3.15,NBINS,-2.5, 2.5);
358  hetaphi[trig][level-1]->setAxisTitle("#phi", 1);
359  hetaphi[trig][level-1]->setAxisTitle("#eta", 2);
360  sprintf(name,"HLTMuonL%iSeed_ptphi",level-2);
361  sprintf(title,"L%iSeed Muon pt vs #phi",level-2);
362  hptphi[trig][level-1] = dbe_->book2D(name,title, NBINS, 0., pt_max,NBINS,-3.15, 3.15);
363  hptphi[trig][level-1]->setAxisTitle("pt", 1);
364  hptphi[trig][level-1]->setAxisTitle("#phi", 2);
365  sprintf(name,"HLTMuonL%iSeed_pteta",level-2);
366  sprintf(title,"L%iSeed Muon pt vs #eta",level-2);
367  hpteta[trig][level-1] = dbe_->book2D(name,title, NBINS, 0., pt_max,NBINS,-2.5, 2.5);
368  hpteta[trig][level-1]->setAxisTitle("pt", 1);
369  hpteta[trig][level-1]->setAxisTitle("#eta", 2);
370  sprintf(name,"HLTMuonL%iSeed_charge",level-2);
371  sprintf(title,"L%iSeed Muon Charge",level-2);
372  hcharge[trig][level-1] = dbe_->book1D(name,title, 3, -1.5, 1.5);
373  hcharge[trig][level-1]->setAxisTitle("Charge", 1);
374  // pt
375  sprintf(name,"HLTMuonL%iSeedtoL%i_ptres",level-2,level-3);
376  sprintf(title,"L%iSeed1/Pt - L%iMuon1/Pt",level-2,level-3);
377  hseedptres[trig][level-4] = dbe_->book1D(name,title, NBINS, -0.1, 0.1);
378  sprintf(title,"1/PtL%iSeed - 1/PtL%i",level-2,level-3);
379  hseedptres[trig][level-4]->setAxisTitle(title, 1);
380  sprintf(name,"HLTMuonL%iSeedtoL%i_ptrelres",level-2,level-3);
381  sprintf(title,"(L%iSeed1/Pt - L%iMuon1/Pt)/(L%iMuon1/Pt)",level-2,level-3,level-3);
382  hseedptrelres[trig][level-4] = dbe_->book1D(name,title, NBINS, -1.0, 1.0);
383  sprintf(title,"(1/PtL%iSeed - 1/PtL%i)/(1/PtL%i)",level-2,level-3,level-3);
384  hseedptrelres[trig][level-4]->setAxisTitle(title, 1);
385  // eta
386  sprintf(name,"HLTMuonL%iSeedtoL%i_etares",level-2,level-3);
387  sprintf(title,"L%iSeed#eta - L%iMuon#eta",level-2,level-3);
388  hseedetares[trig][level-4] =dbe_->book1D(name,title, NBINS, -0.1, 0.1);
389  sprintf(title,"L%iSeed #eta - L%i #eta",level-2,level-3);
390  hseedetares[trig][level-4]->setAxisTitle(title, 1);
391  sprintf(name,"HLTMuonL%iSeedtoL%i_etarelres",level-2,level-3);
392  sprintf(title,"(L%iSeed#eta - L%iMuon#eta)/L%iMuon#eta",level-2,level-3,level-3);
393  hseedetarelres[trig][level-4] =dbe_->book1D(name,title, NBINS, -1.0, 1.0);
394  sprintf(title,"(L%iSeed #eta - L%i #eta)/L%i #eta",level-2,level-3,level-3);
395  hseedetarelres[trig][level-4]->setAxisTitle(title, 1);
396  // phi
397  sprintf(name,"HLTMuonL%iSeedtoL%i_phires",level-2,level-3);
398  sprintf(title,"L%iSeed#phi - L%iMuon#phi",level-2,level-3);
399  hseedphires[trig][level-4] =dbe_->book1D(name,title, NBINS, -0.1, 0.1);
400  sprintf(title,"L%iSeed #phi - L%i #phi",level-2,level-3);
401  hseedphires[trig][level-4]->setAxisTitle(title, 1);
402  sprintf(name,"HLTMuonL%iSeedtoL%i_phirelres",level-2,level-3);
403  sprintf(title,"(L%iSeed#phi - L%iMuon#phi)/L%iMuon#phi",level-2,level-3,level-3);
404  hseedphirelres[trig][level-4] =dbe_->book1D(name,title, NBINS, -0.1, 0.1);
405  sprintf(title,"(L%iSeed #phi - L%i #phi)/L%i #phi",level-2,level-3,level-3);
406  hseedphirelres[trig][level-4]->setAxisTitle(title, 1);
407 
408  sprintf(name,"HLTMuonL%iSeed_NMuperL%i",level-2,level-3);
409  sprintf(title,"L%iSeedNMu per L%i",level-2,level-3);
410  hseedNMuper[trig][level-4] = dbe_->book1D(name, title, 5, -0.5, 4.5);
411  hseedNMuper[trig][level-4]->setAxisTitle(title, 1);
412 
413  if( level == 5 ){
414  dbe_->setCurrentFolder(monitorName_+dirname+"Level3Seed");
415 
416  sprintf(name,"HLTMuonL3Seed_NMu_comp");
417  sprintf(title,"Comparison of each HLT L3 Muon Seed");
418  hNMu_l3seed_comp[trig][level-1] = dbe_->book1D(name,title,4,0,4);
419  hNMu_l3seed_comp[trig][level-1]->setAxisTitle("Number of muons",1);
420  hNMu_l3seed_comp[trig][level-1]->setBinLabel(1, "Cascade", 1);
421  hNMu_l3seed_comp[trig][level-1]->setBinLabel(2, "OIState", 1);
422  hNMu_l3seed_comp[trig][level-1]->setBinLabel(3, "OIHit", 1);
423  hNMu_l3seed_comp[trig][level-1]->setBinLabel(4, "IOHit", 1);
424 
425  dbe_->setCurrentFolder(monitorName_+dirname+"Level3Seed/OIState");
426 
427  sprintf(name,"HLTMuonL%iSeed_NMu_OIState",level-2);
428  sprintf(title,"OIState L%iSeed number of muons",level-2);
429  hNMu_OIState[trig][level-1] = dbe_->book1D(name,title, 11, -0.5, 10.5);
430  hNMu_OIState[trig][level-1]->setAxisTitle("Number of muons", 1);
431  sprintf(name,"HLTMuonL%iSeed_pt_OIState",level-2);
432  sprintf(title,"L%iSeed OIState Muon Pt",level-2);
433  hpt_OIState[trig][level-1] = dbe_->book1D(name,title, NBINS, 0., pt_max);
434  hpt_OIState[trig][level-1]->setAxisTitle("Pt", 1);
435  sprintf(name,"HLTMuonL%iSeed_eta_OIState",level-2);
436  sprintf(title,"L%iSeed OIState Muon #eta",level-2);
437  heta_OIState[trig][level-1] = dbe_->book1D(name,title, NBINS, -2.5, 2.5);
438  heta_OIState[trig][level-1]->setAxisTitle("#eta", 1);
439  sprintf(name,"HLTMuonL%iSeed_phi_OIState",level-2);
440  sprintf(title,"L%iSeed OIState Muon #phi",level-2);
441  hphi_OIState[trig][level-1] = dbe_->book1D(name,title, NBINS, -3.15, 3.15);
442  hphi_OIState[trig][level-1]->setAxisTitle("#phi", 1);
443  sprintf(name,"HLTMuonL%iSeed_etaphi_OIState",level-2);
444  sprintf(title,"L%iSeed OIState Muon #eta vs #phi",level-2);
445  hetaphi_OIState[trig][level-1] = dbe_->book2D(name,title, NBINS, -3.15, 3.15, NBINS, -2.5, 2.5);
446  hetaphi_OIState[trig][level-1]->setAxisTitle("#phi", 1);
447  hetaphi_OIState[trig][level-1]->setAxisTitle("#eta", 2);
448  sprintf(name,"HLTMuonL%iSeed_ptphi_OIState",level-2);
449  sprintf(title,"L%iSeed OIState Muon pt vs #phi",level-2);
450  hptphi_OIState[trig][level-1] = dbe_->book2D(name,title, NBINS, 0., pt_max, NBINS, -3.15, 3.15);
451  hptphi_OIState[trig][level-1]->setAxisTitle("pt", 1);
452  hptphi_OIState[trig][level-1]->setAxisTitle("#phi", 2);
453  sprintf(name,"HLTMuonL%iSeed_pteta_OIState",level-2);
454  sprintf(title,"L%iSeed OIState Muon pt vs #eta",level-2);
455  hpteta_OIState[trig][level-1] = dbe_->book2D(name,title, NBINS, 0., pt_max, NBINS, -2.5, 2.5);
456  hpteta_OIState[trig][level-1]->setAxisTitle("pt", 1);
457  hpteta_OIState[trig][level-1]->setAxisTitle("#eta", 2);
458  sprintf(name,"HLTMuonL%iSeed_charge_OIState",level-2);
459  sprintf(title,"L%iSeed OIState Muon Charge",level-2);
460  hcharge_OIState[trig][level-1] = dbe_->book1D(name,title, 3, -1.5, 1.5);
461  hcharge_OIState[trig][level-1]->setAxisTitle("Charge", 1);
462 
463  dbe_->setCurrentFolder(monitorName_+dirname+"Level3Seed/OIHit");
464 
465  sprintf(name,"HLTMuonL%iSeed_NMu_OIHit",level-2);
466  sprintf(title,"OIHit L%iSeed number of muons",level-2);
467  hNMu_OIHit[trig][level-1] = dbe_->book1D(name,title, 11, -0.5, 10.5);
468  hNMu_OIHit[trig][level-1]->setAxisTitle("Number of muons", 1);
469  sprintf(name,"HLTMuonL%iSeed_pt_OIHit",level-2);
470  sprintf(title,"L%iSeed OIHit Muon Pt",level-2);
471  hpt_OIHit[trig][level-1] = dbe_->book1D(name,title, NBINS, 0., pt_max);
472  hpt_OIHit[trig][level-1]->setAxisTitle("Pt", 1);
473  sprintf(name,"HLTMuonL%iSeed_eta_OIHit",level-2);
474  sprintf(title,"L%iSeed OIHit Muon #eta",level-2);
475  heta_OIHit[trig][level-1] = dbe_->book1D(name,title, NBINS, -2.5, 2.5);
476  heta_OIHit[trig][level-1]->setAxisTitle("#eta", 1);
477  sprintf(name,"HLTMuonL%iSeed_phi_OIHit",level-2);
478  sprintf(title,"L%iSeed OIHit Muon #phi",level-2);
479  hphi_OIHit[trig][level-1] = dbe_->book1D(name,title, NBINS, -3.15, 3.15);
480  hphi_OIHit[trig][level-1]->setAxisTitle("#phi", 1);
481  sprintf(name,"HLTMuonL%iSeed_etaphi_OIHit",level-2);
482  sprintf(title,"L%iSeed OIHit Muon #eta vs #phi",level-2);
483  hetaphi_OIHit[trig][level-1] = dbe_->book2D(name,title, NBINS, -3.15, 3.15, NBINS, -2.5, 2.5);
484  hetaphi_OIHit[trig][level-1]->setAxisTitle("#phi", 1);
485  hetaphi_OIHit[trig][level-1]->setAxisTitle("#eta", 2);
486  sprintf(name,"HLTMuonL%iSeed_ptphi_OIHit",level-2);
487  sprintf(title,"L%iSeed OIHit Muon pt vs #phi",level-2);
488  hptphi_OIHit[trig][level-1] = dbe_->book2D(name,title, NBINS, 0., pt_max, NBINS, -3.15, 3.15);
489  hptphi_OIHit[trig][level-1]->setAxisTitle("pt", 1);
490  hptphi_OIHit[trig][level-1]->setAxisTitle("#phi", 2);
491  sprintf(name,"HLTMuonL%iSeed_pteta_OIHit",level-2);
492  sprintf(title,"L%iSeed OIHit Muon pt vs #eta",level-2);
493  hpteta_OIHit[trig][level-1] = dbe_->book2D(name,title, NBINS, 0., pt_max, NBINS, -2.5, 2.5);
494  hpteta_OIHit[trig][level-1]->setAxisTitle("pt", 1);
495  hpteta_OIHit[trig][level-1]->setAxisTitle("#eta", 2);
496  sprintf(name,"HLTMuonL%iSeed_charge_OIHit",level-2);
497  sprintf(title,"L%iSeed OIHit Muon Charge",level-2);
498  hcharge_OIHit[trig][level-1] = dbe_->book1D(name,title, 3, -1.5, 1.5);
499  hcharge_OIHit[trig][level-1]->setAxisTitle("Charge", 1);
500 
501  dbe_->setCurrentFolder(monitorName_+dirname+"Level3Seed/IOHit");
502 
503  sprintf(name,"HLTMuonL%iSeed_NMu_IOHit",level-2);
504  sprintf(title,"IOHit L%iSeed number of muons",level-2);
505  hNMu_IOHit[trig][level-1] = dbe_->book1D(name,title, 11, -0.5, 10.5);
506  hNMu_IOHit[trig][level-1]->setAxisTitle("Number of muons", 1);
507  sprintf(name,"HLTMuonL%iSeed_pt_IOHit",level-2);
508  sprintf(title,"L%iSeed IOHit Muon Pt",level-2);
509  hpt_IOHit[trig][level-1] = dbe_->book1D(name,title, NBINS, 0., pt_max);
510  hpt_IOHit[trig][level-1]->setAxisTitle("Pt", 1);
511  sprintf(name,"HLTMuonL%iSeed_eta_IOHit",level-2);
512  sprintf(title,"L%iSeed IOHit Muon #eta",level-2);
513  heta_IOHit[trig][level-1] = dbe_->book1D(name,title, NBINS, -2.5, 2.5);
514  heta_IOHit[trig][level-1]->setAxisTitle("#eta", 1);
515  sprintf(name,"HLTMuonL%iSeed_phi_IOHit",level-2);
516  sprintf(title,"L%iSeed IOHit Muon #phi",level-2);
517  hphi_IOHit[trig][level-1] = dbe_->book1D(name,title, NBINS, -3.15, 3.15);
518  hphi_IOHit[trig][level-1]->setAxisTitle("#phi", 1);
519  sprintf(name,"HLTMuonL%iSeed_etaphi_IOHit",level-2);
520  sprintf(title,"L%iSeed IOHit Muon #eta vs #phi",level-2);
521  hetaphi_IOHit[trig][level-1] = dbe_->book2D(name,title, NBINS, -3.15, 3.15, NBINS, -2.5, 2.5);
522  hetaphi_IOHit[trig][level-1]->setAxisTitle("#phi", 1);
523  hetaphi_IOHit[trig][level-1]->setAxisTitle("#eta", 2);
524  sprintf(name,"HLTMuonL%iSeed_ptphi_IOHit",level-2);
525  sprintf(title,"L%iSeed IOHit Muon pt vs #phi",level-2);
526  hptphi_IOHit[trig][level-1] = dbe_->book2D(name,title, NBINS, 0., pt_max, NBINS, -3.15, 3.15);
527  hptphi_IOHit[trig][level-1]->setAxisTitle("pt", 1);
528  hptphi_IOHit[trig][level-1]->setAxisTitle("#phi", 2);
529  sprintf(name,"HLTMuonL%iSeed_pteta_IOHit",level-2);
530  sprintf(title,"L%iSeed IOHit Muon pt vs #eta",level-2);
531  hpteta_IOHit[trig][level-1] = dbe_->book2D(name,title, NBINS, 0., pt_max, NBINS, -2.5, 2.5);
532  hpteta_IOHit[trig][level-1]->setAxisTitle("pt", 1);
533  hpteta_IOHit[trig][level-1]->setAxisTitle("#eta", 2);
534  sprintf(name,"HLTMuonL%iSeed_charge_IOHit",level-2);
535  sprintf(title,"L%iSeed IOHit Muon Charge",level-2);
536  hcharge_IOHit[trig][level-1] = dbe_->book1D(name,title, 3, -1.5, 1.5);
537  hcharge_IOHit[trig][level-1]->setAxisTitle("Charge", 1);
538 
539  }
540  }
541  else if( level == 6 ) {
542  double max_energy = 1.0;
543 
544  sprintf(name,"HLTMuonL2_driso");
545  sprintf(title,"dR Cone Size");
546  hL2muonIsoDR[trig] = dbe_->book2D(name, title, 10, 0, 0.24, NBINS, 0, 5.0);
547  hL2muonIsoDR[trig]->setAxisTitle(title, 1);
548  hL2muonIsoDR[trig]->setAxisTitle("Calo Energy in Iso Cone (GeV)", 2);
549 
550  sprintf(name,"HLTMuonL3_driso");
551  sprintf(title,"dR Cone Size");
552  hL3muonIsoDR[trig] = dbe_->book2D(name, title, 10, 0, 0.24, NBINS, 0, 5.0);
553  hL3muonIsoDR[trig]->setAxisTitle(title, 1);
554  hL3muonIsoDR[trig]->setAxisTitle("Calo Energy in Iso Cone (GeV)", 2);
555 
556  sprintf(name,"HLTCaloTower_dRwithL2");
557  sprintf(title,"#Delta R(L2muon, CaloTower)");
558  htowerdRL2[trig] = dbe_->book1D(name, title, NBINS, 0, 0.5);
559  htowerdRL2[trig]->setAxisTitle(title, 1);
560  sprintf(name,"HLTCaloTower_dRwithL3");
561  sprintf(title,"#Delta R(L3muon, CaloTower)");
562  htowerdRL3[trig] = dbe_->book1D(name, title, NBINS, 0, 0.5);
563  htowerdRL3[trig]->setAxisTitle(title, 1);
564 
565  sprintf(name,"HLTCaloTower_Et");
566  sprintf(title,"HLT CaloTower Et");
567  htowerEt[trig] = dbe_->book1D(name, title, NBINS, 0, max_energy);
568  htowerEt[trig]->setAxisTitle(title, 1);
569  sprintf(name,"HLTCaloTower_Eta");
570  sprintf(title,"HLT CaloTower #eta");
571  htowerEta[trig] = dbe_->book1D(name, title, NBINS, -2.5, 2.5);
572  htowerEta[trig]->setAxisTitle(title, 1);
573  sprintf(name,"HLTCaloTower_Phi");
574  sprintf(title,"HLT CaloTower #phi");
575  htowerPhi[trig] = dbe_->book1D(name, title, NBINS, -3.14, 3.14);
576  htowerPhi[trig]->setAxisTitle(title, 1);
577 
578  sprintf(name,"HLTCaloTower_HadEnergy");
579  sprintf(title,"HLT CaloTower hadEnergy");
580  htowerHadEnergy[trig] = dbe_->book1D(name, title, NBINS, 0, max_energy);
581  htowerHadEnergy[trig]->setAxisTitle(title, 1);
582  sprintf(name,"HLTCaloTower_EmEnergy");
583  sprintf(title,"HLT CaloTower emEnergy");
584  htowerEmEnergy[trig] = dbe_->book1D(name, title, NBINS, 0, max_energy);
585  htowerEmEnergy[trig]->setAxisTitle(title, 1);
586  sprintf(name,"HLTCaloTower_OuterEnergy");
587  sprintf(title,"HLT CaloTower outerEnergy");
588  htowerOuterEnergy[trig] = dbe_->book1D(name, title, NBINS, 0, max_energy);
589  htowerOuterEnergy[trig]->setAxisTitle(title, 1);
590 
591  sprintf(name,"HLTCaloTower_HadEt");
592  sprintf(title,"HLT CaloTower hadEt");
593  htowerHadEt[trig] = dbe_->book1D(name, title, NBINS, 0, max_energy);
594  htowerHadEt[trig]->setAxisTitle(title, 1);
595  sprintf(name,"HLTCaloTower_EmEt");
596  sprintf(title,"HLT CaloTower emEt");
597  htowerEmEt[trig] = dbe_->book1D(name, title, NBINS, 0, max_energy);
598  htowerEmEt[trig]->setAxisTitle(title, 1);
599  sprintf(name,"HLTCaloTower_OuterEt");
600  sprintf(title,"HLT CaloTower outerEt");
601  htowerOuterEt[trig] = dbe_->book1D(name, title, NBINS, 0, max_energy);
602  htowerOuterEt[trig]->setAxisTitle(title, 1);
603 
604  sprintf(name,"HLTCaloTower_EtaHadEt");
605  sprintf(title,"HLT CaloTower hadEt");
606  htowerEtaHadEt[trig] = dbe_->book2D(name, title, NBINS, -2.5, 2.5, NBINS, 0, max_energy);
607  htowerEtaHadEt[trig]->setAxisTitle("CaloTower #eta", 1);
608  htowerEtaHadEt[trig]->setAxisTitle(title, 2);
609  sprintf(name,"HLTCaloTower_EtaEmEt");
610  sprintf(title,"HLT CaloTower emEt");
611  htowerEtaEmEt[trig] = dbe_->book2D(name, title, NBINS, -2.5, 2.5, NBINS, 0, max_energy);
612  htowerEtaEmEt[trig]->setAxisTitle("CaloTower #eta", 1);
613  htowerEtaEmEt[trig]->setAxisTitle(title, 2);
614  sprintf(name,"HLTCaloTower_EtaOuterEt");
615  sprintf(title,"HLT CaloTower outerEt");
616  htowerEtaOuterEt[trig] = dbe_->book2D(name, title, NBINS, -2.5, 2.5, NBINS, 0, max_energy);
617  htowerEtaOuterEt[trig]->setAxisTitle("CaloTower #eta", 1);
618  htowerEtaOuterEt[trig]->setAxisTitle(title, 2);
619 
620  sprintf(name,"HLTCaloTower_PhiHadEt");
621  sprintf(title,"HLT CaloTower hadEt");
622  htowerPhiHadEt[trig] = dbe_->book2D(name, title, NBINS, -3.15, 3.15, NBINS, 0, max_energy);
623  htowerPhiHadEt[trig]->setAxisTitle("CaloTower #phi", 1);
624  htowerPhiHadEt[trig]->setAxisTitle(title, 2);
625  sprintf(name,"HLTCaloTower_PhiEmEt");
626  sprintf(title,"HLT CaloTower emEt");
627  htowerPhiEmEt[trig] = dbe_->book2D(name, title, NBINS, -3.15, 3.15, NBINS, 0, max_energy);
628  htowerPhiEmEt[trig]->setAxisTitle("CaloTower #phi", 1);
629  htowerPhiEmEt[trig]->setAxisTitle(title, 2);
630  sprintf(name,"HLTCaloTower_PhiOuterEt");
631  sprintf(title,"HLT CaloTower outerEt");
632  htowerPhiOuterEt[trig] = dbe_->book2D(name, title, NBINS, -3.15, 3.15, NBINS, 0, max_energy);
633  htowerPhiOuterEt[trig]->setAxisTitle("CaloTower #phi", 1);
634  htowerPhiOuterEt[trig]->setAxisTitle(title, 2);
635 
636  sprintf(name,"HLTMuonL2_iso");
637  sprintf(title,"L2 Muon Energy in Isolation cone");
638  hisoL2[trig] = dbe_->book1D(name,title, NBINS, 0., 5./1);
639  hisoL2[trig]->setAxisTitle("Calo Energy in Iso Cone (GeV)", 1);
640  sprintf(name,"HLTMuonL3_iso");
641  sprintf(title,"L3 Muon SumPt in Isolation cone");
642  hisoL3[trig] = dbe_->book1D(name,title, NBINS, 0., 5./2);
643  hisoL3[trig]->setAxisTitle("Sum Pt in Iso Cone (GeV)", 1);
644  }
645 
646  if (level>1&&level<4){
647 
648  sprintf(name,"HLTMuonL%i_dr",level);
649  sprintf(title,"L%i Muon radial impact vs BeamSpot",level);
650  hdr[trig][level-2] = dbe_->book1D(name,title, NBINS, -0.3, 0.3);
651  hdr[trig][level-2]->setAxisTitle("R Impact (cm) vs BeamSpot", 1);
652  sprintf(name,"HLTMuonL%i_d0",level);
653  sprintf(title,"L%i Muon radial impact vs (0,0)",level);
654  hd0[trig][level-2] = dbe_->book1D(name,title, NBINS, -0.3, 0.3);
655  hd0[trig][level-2]->setAxisTitle("R Impact (cm) vs 0,0", 1);
656  sprintf(name,"HLTMuonL%i_dz0",level);
657  sprintf(title,"L%i Muon Z impact vs (0)",level);
658  hdz0[trig][level-2] = dbe_->book1D(name,title, NBINS, -25., 25.);
659  hdz0[trig][level-2]->setAxisTitle("Z impact (cm) vs 0", 1);
660  sprintf(name,"HLTMuonL%i_dz",level);
661  sprintf(title,"L%i Muon Z impact vs BeamSpot",level);
662  hdz[trig][level-2] = dbe_->book1D(name,title, NBINS, -25., 25.);
663  hdz[trig][level-2]->setAxisTitle("Z impact (cm) vs BeamSpot", 1);
664  sprintf(name,"HLTMuonL%i_err0",level);
665  sprintf(title,"L%i Muon Error on Pt",level);
666  herr0[trig][level-2] = dbe_->book1D(name,title,NBINS, 0., 0.03);
667  herr0[trig][level-2]->setAxisTitle("Error on Pt", 1);
668  sprintf(name,"HLTMuonL%i_DiMuMass",level);
669  sprintf(title,"L%i Opposite charge DiMuon invariant Mass",level);
670  hdimumass[trig][level-2]= dbe_->book1D(name,title, NBINS, 0., 150.);
671  hdimumass[trig][level-2]->setAxisTitle("Di Muon Invariant Mass (GeV)");
672 
673  sprintf(name,"HLTMuonL%i_drphi",level);
674  sprintf(title,"L%i #Deltar vs #phi",level);
675  hdrphi[trig][level-2] = dbe_->bookProfile(name,title, NBINS, -3.15, 3.15,1,-999.,999.,"s");
676  hdrphi[trig][level-2]->setAxisTitle("#phi", 1);
677  sprintf(title,"L%i Muon radial impact vs BeamSpot",level);
678  hdrphi[trig][level-2]->setAxisTitle(title, 2);
679 
680  sprintf(name,"HLTMuonL%i_d0phi",level);
681  sprintf(title,"L%i #Delta0 vs #phi",level);
682  hd0phi[trig][level-2] = dbe_->bookProfile(name,title, NBINS, -3.15, 3.15,1,-999.,999.,"s");
683  hd0phi[trig][level-2]->setAxisTitle("#phi", 1);
684  sprintf(title,"L%i Muon radial impact vs (0,0)",level);
685  hd0phi[trig][level-2]->setAxisTitle(title, 2);
686 
687  sprintf(name,"HLTMuonL%i_dz0eta",level);
688  sprintf(title,"L%i #Deltaz0 vs #eta",level);
689  hdz0eta[trig][level-2] = dbe_->bookProfile(name,title, NBINS,-2.5, 2.5,1,-999.,999.,"s");
690  hdz0eta[trig][level-2]->setAxisTitle("#eta", 1);
691  sprintf(title,"L%i Muon Z impact vs (0)",level);
692  hdz0eta[trig][level-2]->setAxisTitle(title, 2);
693 
694  sprintf(name,"HLTMuonL%i_dzeta",level);
695  sprintf(title,"L%i #Deltaz vs #eta",level);
696  hdzeta[trig][level-2] = dbe_->bookProfile(name,title, NBINS,-2.5, 2.5,1,-999.,999.,"s");
697  hdzeta[trig][level-2]->setAxisTitle("#eta", 1);
698  sprintf(title,"L%i Muon Z impact vs BeamSpot",level);
699  hdzeta[trig][level-2]->setAxisTitle(title, 2);
700 
701  }
702  if(level == 2 ) {
703 
704  sprintf(name,"HLTMuonL%itoL%i_ptpull",level,level+1);
705  sprintf(title,"(L%iMuon1/Pt - L%iMuon1/Pt)/#sigma_{pt}^{L2}",level,level+1);
706  hptpull[trig] = dbe_->book1D(name,title, NBINS, -10.0, 10.0);
707  sprintf(title,"(1/PtL%i - 1/PtL%i)/#sigma_{pt}^{L2}",level,level+1);
708  hptpull[trig]->setAxisTitle(title, 1);
709  sprintf(name,"HLTMuonL%itoL%i_etapull",level,level+1);
710  sprintf(title,"(L%iMuon#eta - L%iMuon#eta)/#sigma_{#eta}^{L2}",level,level+1);
711  hetapull[trig] =dbe_->book1D(name,title, NBINS, -10.0, 10.0);
712  sprintf(title,"(L%i #eta - L%i #eta)/#sigma_{#eta}^{L2}",level,level+1);
713  hetapull[trig]->setAxisTitle(title, 1);
714  sprintf(name,"HLTMuonL%itoL%i_phipull",level,level+1);
715  sprintf(title,"(L%iMuon#phi - L%iMuon#phi)/#sigma_{#phi}^{L2}",level,level+1);
716  hphipull[trig] =dbe_->book1D(name,title, NBINS, -10.0, 10.0);
717  sprintf(title,"(L%i #phi - L%i #phi)/#sigma_{#phi}^{L2}",level,level+1);
718  hphipull[trig]->setAxisTitle(title, 1);
719 
720  sprintf(name,"HLTMuonL%itoL%i_ptpullpt",level,level+1);
721  sprintf(title,"L%i Muon #Delta Pt/#sigma_{pt}^{L2} vs Pt ",level);
722  hptpullpt[trig] =dbe_->bookProfile(name,title, NBINS, 0, pt_max,1,-999.,999.,"s");
723  sprintf(title,"(1/PtL%i - 1/PtL%i)/#sigma_{pt}^{L2}",level,level+1);
724  hptpullpt[trig]->setAxisTitle(title, 2);
725  hptpullpt[trig]->setAxisTitle("Pt", 1);
726  sprintf(name,"HLTMuonL%itoL%i_etapulleta",level,level+1);
727  sprintf(title,"L%i Muon #Delta#eta/#sigma_{#eta}^{L2} vs #eta ",level);
728  hetapulleta[trig] =dbe_->bookProfile(name,title, NBINS,-2.5, 2.5,1,-999.,999.,"s");
729  sprintf(title,"(L%i #eta - L%i #eta)/#sigma_{#eta}^{L2}",level,level+1);
730  hetapulleta[trig]->setAxisTitle(title, 2);
731  hetapulleta[trig]->setAxisTitle("#eta", 1);
732  sprintf(name,"HLTMuonL%itoL%i_phipullphi",level,level+1);
733  sprintf(title,"L%i Muon #Delta#phi/#sigma_{#phi}^{L2} vs #phi ",level);
734  hphipullphi[trig] =dbe_->bookProfile(name,title, NBINS, -3.15, 3.15,1,-999.,999.,"s");
735  sprintf(title,"(L%i #phi - L%i #phi)/#sigma_{#phi}^{L2}",level,level+1);
736  hphipullphi[trig]->setAxisTitle(title, 2);
737  hphipullphi[trig]->setAxisTitle("#phi", 1);
738 
739  }
740  if( level == 3 ){
741  sprintf(name,"HLTMuonL3_NMu_comp");
742  sprintf(title,"Comparison of each HLT L3 Muons");
743  hNMu_comp[trig][level-1] = dbe_->book1D(name,title,4,0,4);
744  hNMu_comp[trig][level-1]->setAxisTitle("Number of muons",1);
745  hNMu_comp[trig][level-1]->setBinLabel(1, "Cascade", 1);
746  hNMu_comp[trig][level-1]->setBinLabel(2, "OIState", 1);
747  hNMu_comp[trig][level-1]->setBinLabel(3, "OIHit", 1);
748  hNMu_comp[trig][level-1]->setBinLabel(4, "IOHit", 1);
749  sprintf(name,"HLTMuonL3_trk_NMu_comp");
750  sprintf(title,"Comparison of each HLT L3 Muons");
751  hNMu_trk_comp[trig][level-1] = dbe_->book1D(name,title,4,0,4);
752  hNMu_trk_comp[trig][level-1]->setAxisTitle("Number of muons",1);
753  hNMu_trk_comp[trig][level-1]->setBinLabel(1, "Cascade", 1);
754  hNMu_trk_comp[trig][level-1]->setBinLabel(2, "OIState", 1);
755  hNMu_trk_comp[trig][level-1]->setBinLabel(3, "OIHit", 1);
756  hNMu_trk_comp[trig][level-1]->setBinLabel(4, "IOHit", 1);
757 
758  sprintf(name,"HLTMuonL%i_trk_NMu",level);
759  sprintf(title," L%i tracker number of muons",level);
760  hNMu_trk[trig][level-1] = dbe_->book1D(name,title, 10, -0.5, 10.5);
761  hNMu_trk[trig][level-1]->setAxisTitle("Number of muons", 1);
762  sprintf(name,"HLTMuonL%i_trk_pt",level);
763  sprintf(title,"L%i tracker Muon Pt",level);
764  hpt_trk[trig][level-1] = dbe_->book1D(name,title, NBINS, 0., 200);
765  hpt_trk[trig][level-1]->setAxisTitle("Pt", 1);
766  sprintf(name,"HLTMuonL%i_trk_eta",level);
767  sprintf(title,"L%i tracker Muon #eta",level);
768  heta_trk[trig][level-1] = dbe_->book1D(name,title, NBINS, -2.5, 2.5);
769  heta_trk[trig][level-1]->setAxisTitle("#eta", 1);
770  sprintf(name,"HLTMuonL%i_trk_phi",level);
771  sprintf(title,"L%i tracker Muon #phi",level);
772  hphi_trk[trig][level-1] = dbe_->book1D(name,title, NBINS, -3.15, 3.15);
773  hphi_trk[trig][level-1]->setAxisTitle("#phi", 1);
774  sprintf(name,"HLTMuonL%i_trk_etaphi",level);
775  sprintf(title,"L%i tracker Muon #eta vs #phi",level);
776  hetaphi_trk[trig][level-1] = dbe_->book2D(name,title, NBINS, -3.15, 3.15, NBINS, -2.5, 2.5);
777  hetaphi_trk[trig][level-1]->setAxisTitle("#phi", 1);
778  hetaphi_trk[trig][level-1]->setAxisTitle("#eta", 2);
779  sprintf(name,"HLTMuonL%i_trk_ptphi",level);
780  sprintf(title,"L%i tracker Muon pt vs #phi",level);
781  hptphi_trk[trig][level-1] = dbe_->book2D(name,title, NBINS, 0., 200, NBINS, -3.15, 3.15);
782  hptphi_trk[trig][level-1]->setAxisTitle("pt", 1);
783  hptphi_trk[trig][level-1]->setAxisTitle("#phi", 2);
784  sprintf(name,"HLTMuonL%i_trk_pteta",level);
785  sprintf(title,"L%i tracker Muon pt vs #eta",level);
786  hpteta_trk[trig][level-1] = dbe_->book2D(name,title, NBINS, 0., 200, NBINS, -2.5, 2.5);
787  hpteta_trk[trig][level-1]->setAxisTitle("pt", 1);
788  hpteta_trk[trig][level-1]->setAxisTitle("#eta", 2);
789  sprintf(name,"HLTMuonL%i_trk_charge",level);
790  sprintf(title,"L%i tracker Muon Charge",level);
791  hcharge_trk[trig][level-1] = dbe_->book1D(name,title, 3, -1.5, 1.5);
792  hcharge_trk[trig][level-1]->setAxisTitle("Charge", 1);
793  sprintf(name,"HLTMuonL%i_trk_d0",level);
794  sprintf(title,"L%i tracker Muon from radial impact vs (0,0)",level);
795  hd0_trk[trig][level-1] = dbe_->book1D(name,title, 50, -0.3, 0.3 );
796  hd0_trk[trig][level-1]->setAxisTitle("R Impact (cm) vs 0,0", 1);
797  sprintf(name,"HLTMuonL%i_trk_dz",level);
798  sprintf(title,"L%i tracker Muon from Z impact vs BeamSpot",level);
799  hdz_trk[trig][level-1] = dbe_->book1D(name,title, NBINS, -25., 25.);
800  hdz_trk[trig][level-1]->setAxisTitle("Z impact (cm) vs BeamSpot", 1);
801  sprintf(name,"HLTMuonL%i_trk_dr",level);
802  sprintf(title,"L%i tracker Muon radial impact vs BeamSpot",level);
803  hdr_trk[trig][level-1] = dbe_->book1D(name,title, 50, -0.3, 0.3 );
804  hdr_trk[trig][level-1]->setAxisTitle("R Impact (cm) vs BeamSpot", 1);
805 
806  hptres_L3L3trk[trig][level-1] = dbe_->book1D("HLTMuonL3toL3trk_ptres","L3Muon 1/Pt - L3trkMuon 1/Pt;L3 1/P_{T} - L3 trk 1/P_{T}",50+1,-0.02,0.02);
807 
808  hetares_L3L3trk[trig][level-1] = dbe_->book1D("HLTMuonL3toL3trk_etares","L3Muon #eta - L3trkMuon #eta;L3 #eta - L3 trk #eta",50,-0.02,0.02);
809  hphires_L3L3trk[trig][level-1] = dbe_->book1D("HLTMuonL3toL3trk_phires","L3Muon #phi - L3trkMuon #phi;L3 #phi - L3 trk #phi",50,-0.02,0.02);
810  hptrelres_L3L3trk[trig][level-1] = dbe_->book1D("HLTMuonL3toL3trk_ptrelres","(L3Muon 1/Pt - L3trkMuon 1/Pt)/(L3Muon 1/Pt);(L3 1/P_{T} - L3 trk 1/P_{T})/(L3 1/P_{T})",50,-0.05,0.05);
811  hetarelres_L3L3trk[trig][level-1] = dbe_->book1D("HLTMuonL3toL3trk_etarelres","(L3Muon #eta - L3trkMuon #eta)/L3Muon #eta;(L3 #eta - L3 trk #eta)/L3 #eta",50,-0.02,0.02);
812  hphirelres_L3L3trk[trig][level-1] = dbe_->book1D("HLTMuonL3toL3trk_phirelres","(L3Muon #phi - L3trkMuon #phi)/L3Muon #phi;(L3 #phi - L3 trk #phi)/L3 #phi",50,-0.02,0.02);
813 
814  dbe_->setCurrentFolder(monitorName_+dirname+"Level3/OIState");
815 
816  sprintf(name,"HLTMuonL%i_NMu_OIState",level);
817  sprintf(title,"OIState L%i number of muons",level);
818  hNMu_OIState[trig][level-1] = dbe_->book1D(name,title, 10, -0.5, 10.5);
819  hNMu_OIState[trig][level-1]->setAxisTitle("Number of muons", 1);
820  sprintf(name,"HLTMuonL%i_pt_OIState",level);
821  sprintf(title,"L%i Pt_OIState",level);
822  hpt_OIState[trig][level-1] = dbe_->book1D(name,title, NBINS, 0., 200);
823  hpt_OIState[trig][level-1]->setAxisTitle("Pt", 1);
824  sprintf(name,"HLTMuonL%i_eta_OIState",level);
825  sprintf(title,"L%i Muon #eta_OIState",level);
826  heta_OIState[trig][level-1] = dbe_->book1D(name,title, NBINS, -2.5, 2.5);
827  heta_OIState[trig][level-1]->setAxisTitle("#eta", 1);
828  sprintf(name,"HLTMuonL%i_phi_OIState",level);
829  sprintf(title,"L%i Muon #phi_OIState",level);
830  hphi_OIState[trig][level-1] = dbe_->book1D(name,title, NBINS, -3.15, 3.15);
831  hphi_OIState[trig][level-1]->setAxisTitle("#phi", 1);
832  sprintf(name,"HLTMuonL%i_etaphi_OIState",level);
833  sprintf(title,"L%i Muon #eta vs #phi_OIState",level);
834  hetaphi_OIState[trig][level-1] = dbe_->book2D(name,title, NBINS, -3.15, 3.15, NBINS, -2.5, 2.5);
835  hetaphi_OIState[trig][level-1]->setAxisTitle("#phi", 1);
836  hetaphi_OIState[trig][level-1]->setAxisTitle("#eta", 2);
837  sprintf(name,"HLTMuonL%i_ptphi_OIState",level);
838  sprintf(title,"L%i Muon pt vs #phi_OIState",level);
839  hptphi_OIState[trig][level-1] = dbe_->book2D(name,title, NBINS, 0., 200, NBINS, -3.15, 3.15);
840  hptphi_OIState[trig][level-1]->setAxisTitle("pt", 1);
841  hptphi_OIState[trig][level-1]->setAxisTitle("#phi", 2);
842  sprintf(name,"HLTMuonL%i_pteta_OIState",level);
843  sprintf(title,"L%i Muon pt vs #eta_OIState",level);
844  hpteta_OIState[trig][level-1] = dbe_->book2D(name,title, NBINS, 0., 200, NBINS, -2.5, 2.5);
845  hpteta_OIState[trig][level-1]->setAxisTitle("pt", 1);
846  hpteta_OIState[trig][level-1]->setAxisTitle("#eta", 2);
847  sprintf(name,"HLTMuonL%i_charge_OIState",level);
848  sprintf(title,"L%i Muon Charge_OIState",level);
849  hcharge_OIState[trig][level-1] = dbe_->book1D(name,title, 3, -1.5, 1.5);
850  hcharge_OIState[trig][level-1]->setAxisTitle("Charge", 1);
851  sprintf(name,"HLTMuonL%i_d0_OIState",level);
852  sprintf(title,"L%i Muon from OIState radial impact vs (0,0)",level);
853  hd0_OIState[trig][level-1] = dbe_->book1D(name,title, 50, -0.3, 0.3 );
854  hd0_OIState[trig][level-1]->setAxisTitle("R Impact (cm) vs 0,0", 1);
855  sprintf(name,"HLTMuonL%i_dz_OIState",level);
856  sprintf(title,"L%i Muon from OIStateZ impact vs BeamSpot",level);
857  hdz_OIState[trig][level-1] = dbe_->book1D(name,title, NBINS, -25., 25.);
858  hdz_OIState[trig][level-1]->setAxisTitle("Z impact (cm) vs BeamSpot", 1);
859  sprintf(name,"HLTMuonL%i_dr_OIState",level);
860  sprintf(title,"L%i Muon from OIState radial impact vs BeamSpot",level);
861  hdr_OIState[trig][level-1] = dbe_->book1D(name,title, 50, -0.3, 0.3 );
862  hdr_OIState[trig][level-1]->setAxisTitle("R Impact (cm) vs BeamSpot", 1);
863 
864  sprintf(name,"HLTMuonL%i_trk_OIState_NMu",level);
865  sprintf(title," L%i OIState tracker number of muons",level);
866  hNMu_trk_OIState[trig][level-1] = dbe_->book1D(name,title, 10, -0.5, 10.5);
867  hNMu_trk_OIState[trig][level-1]->setAxisTitle("Number of muons", 1);
868  sprintf(name,"HLTMuonL%i_trk_OIState_pt",level);
869  sprintf(title,"L%i OIState tracker Muon Pt",level);
870  hpt_trk_OIState[trig][level-1] = dbe_->book1D(name,title, NBINS, 0., 200);
871  hpt_trk_OIState[trig][level-1]->setAxisTitle("Pt", 1);
872  sprintf(name,"HLTMuonL%i_trk_OIState_eta",level);
873  sprintf(title,"L%i OIState tracker Muon #eta",level);
874  heta_trk_OIState[trig][level-1] = dbe_->book1D(name,title, NBINS, -2.5, 2.5);
875  heta_trk_OIState[trig][level-1]->setAxisTitle("#eta", 1);
876  sprintf(name,"HLTMuonL%i_trk_OIState_phi",level);
877  sprintf(title,"L%i OIState tracker Muon #phi",level);
878  hphi_trk_OIState[trig][level-1] = dbe_->book1D(name,title, NBINS, -3.15, 3.15);
879  hphi_trk_OIState[trig][level-1]->setAxisTitle("#phi", 1);
880  sprintf(name,"HLTMuonL%i_trk_OIState_etaphi",level);
881  sprintf(title,"L%i OIState tracker Muon #eta vs #phi",level);
882  hetaphi_trk_OIState[trig][level-1] = dbe_->book2D(name,title, NBINS, -3.15, 3.15, NBINS, -2.5, 2.5);
883  hetaphi_trk_OIState[trig][level-1]->setAxisTitle("#phi", 1);
884  hetaphi_trk_OIState[trig][level-1]->setAxisTitle("#eta", 2);
885  sprintf(name,"HLTMuonL%i_trk_OIState_ptphi",level);
886  sprintf(title,"L%i OIState tracker Muon pt vs #phi",level);
887  hptphi_trk_OIState[trig][level-1] = dbe_->book2D(name,title, NBINS, 0., 200, NBINS, -3.15, 3.15);
888  hptphi_trk_OIState[trig][level-1]->setAxisTitle("pt", 1);
889  hptphi_trk_OIState[trig][level-1]->setAxisTitle("#phi", 2);
890  sprintf(name,"HLTMuonL%i_trk_OIState_pteta",level);
891  sprintf(title,"L%i OIState tracker Muon pt vs #eta",level);
892  hpteta_trk_OIState[trig][level-1] = dbe_->book2D(name,title, NBINS, 0., 200, NBINS, -2.5, 2.5);
893  hpteta_trk_OIState[trig][level-1]->setAxisTitle("pt", 1);
894  hpteta_trk_OIState[trig][level-1]->setAxisTitle("#eta", 2);
895  sprintf(name,"HLTMuonL%i_trk_OIState_charge",level);
896  sprintf(title,"L%i OIState tracker Muon Charge",level);
897  hcharge_trk_OIState[trig][level-1] = dbe_->book1D(name,title, 3, -1.5, 1.5);
898  hcharge_trk_OIState[trig][level-1]->setAxisTitle("Charge", 1);
899  sprintf(name,"HLTMuonL%i_trk_OIState_d0",level);
900  sprintf(title,"L%i OIState tracker Muon from radial impact vs (0,0)",level);
901  hd0_trk_OIState[trig][level-1] = dbe_->book1D(name,title, 50, -0.3, 0.3 );
902  hd0_trk_OIState[trig][level-1]->setAxisTitle("R Impact (cm) vs 0,0", 1);
903  sprintf(name,"HLTMuonL%i_trk_OIState_dz",level);
904  sprintf(title,"L%i OIState tracker Muon from Z impact vs BeamSpot",level);
905  hdz_trk_OIState[trig][level-1] = dbe_->book1D(name,title, NBINS, -25., 25.);
906  hdz_trk_OIState[trig][level-1]->setAxisTitle("Z impact (cm) vs BeamSpot", 1);
907  sprintf(name,"HLTMuonL%i_trk_OIState_dr",level);
908  sprintf(title,"L%i OIState tracker Muon radial impact vs BeamSpot",level);
909  hdr_trk_OIState[trig][level-1] = dbe_->book1D(name,title, 50, -0.3, 0.3 );
910  hdr_trk_OIState[trig][level-1]->setAxisTitle("R Impact (cm) vs BeamSpot", 1);
911 
912  dbe_->setCurrentFolder(monitorName_+dirname+"Level3/OIHit");
913 
914  sprintf(name,"HLTMuonL%i_NMu_OIHit",level);
915  sprintf(title,"OIHit L%i number of muons",level);
916  hNMu_OIHit[trig][level-1] = dbe_->book1D(name,title, 10, -0.5, 10.5);
917  hNMu_OIHit[trig][level-1]->setAxisTitle("Number of muons", 1);
918 
919  sprintf(name,"HLTMuonL%i_pt_OIHit",level);
920  sprintf(title,"L%i Pt_OIHit",level);
921  hpt_OIHit[trig][level-1] = dbe_->book1D(name,title, NBINS, 0., 200);
922  hpt_OIHit[trig][level-1]->setAxisTitle("Pt", 1);
923  sprintf(name,"HLTMuonL%i_eta_OIHit",level);
924  sprintf(title,"L%i Muon #eta_OIHit",level);
925  heta_OIHit[trig][level-1] = dbe_->book1D(name,title, NBINS, -2.5, 2.5);
926  heta_OIHit[trig][level-1]->setAxisTitle("#eta", 1);
927  sprintf(name,"HLTMuonL%i_phi_OIHit",level);
928  sprintf(title,"L%i Muon #phi_OIHit",level);
929  hphi_OIHit[trig][level-1] = dbe_->book1D(name,title, NBINS, -3.15, 3.15);
930  hphi_OIHit[trig][level-1]->setAxisTitle("#phi", 1);
931  sprintf(name,"HLTMuonL%i_etaphi_OIHit",level);
932  sprintf(title,"L%i Muon #eta vs #phi_OIHit",level);
933  hetaphi_OIHit[trig][level-1] = dbe_->book2D(name,title, NBINS, -3.15, 3.15, NBINS, -2.5, 2.5);
934  hetaphi_OIHit[trig][level-1]->setAxisTitle("#phi", 1);
935  hetaphi_OIHit[trig][level-1]->setAxisTitle("#eta", 2);
936  sprintf(name,"HLTMuonL%i_ptphi_OIHit",level);
937  sprintf(title,"L%i Muon pt vs #phi_OIHit",level);
938  hptphi_OIHit[trig][level-1] = dbe_->book2D(name,title, NBINS, 0., 200, NBINS, -3.15, 3.15);
939  hptphi_OIHit[trig][level-1]->setAxisTitle("pt", 1);
940  hptphi_OIHit[trig][level-1]->setAxisTitle("#phi", 2);
941  sprintf(name,"HLTMuonL%i_pteta_OIHit",level);
942  sprintf(title,"L%i Muon pt vs #eta_OIHit",level);
943  hpteta_OIHit[trig][level-1] = dbe_->book2D(name,title, NBINS, 0., 200, NBINS, -2.5, 2.5);
944  hpteta_OIHit[trig][level-1]->setAxisTitle("pt", 1);
945  hpteta_OIHit[trig][level-1]->setAxisTitle("#eta", 2);
946  sprintf(name,"HLTMuonL%i_charge_OIHit",level);
947  sprintf(title,"L%i Muon Charge_OIHit",level);
948  hcharge_OIHit[trig][level-1] = dbe_->book1D(name,title, 3, -1.5, 1.5);
949  hcharge_OIHit[trig][level-1]->setAxisTitle("Charge", 1);
950 
951  sprintf(name,"HLTMuonL%i_d0_OIHit",level);
952  sprintf(title,"L%i Muon from OIHit radial impact vs (0,0)",level);
953  hd0_OIHit[trig][level-1] = dbe_->book1D(name,title, 50, -0.3, 0.3 );
954  hd0_OIHit[trig][level-1]->setAxisTitle("R Impact (cm) vs 0,0", 1);
955  sprintf(name,"HLTMuonL%i_dz_OIHit",level);
956  sprintf(title,"L%i Muon from OIHit Z impact vs BeamSpot",level);
957  hdz_OIHit[trig][level-1] = dbe_->book1D(name,title, NBINS, -25., 25.);
958  hdz_OIHit[trig][level-1]->setAxisTitle("Z impact (cm) vs BeamSpot", 1);
959  sprintf(name,"HLTMuonL%i_dr_OIHit",level);
960  sprintf(title,"L%i Muon from OIHit radial impact vs BeamSpot",level);
961  hdr_OIHit[trig][level-1] = dbe_->book1D(name,title, 50, -0.3, 0.3 );
962  hdr_OIHit[trig][level-1]->setAxisTitle("R Impact (cm) vs BeamSpot", 1);
963 
964  sprintf(name,"HLTMuonL%i_trk_OIHit_NMu",level);
965  sprintf(title," L%i OIHit tracker number of muons",level);
966  hNMu_trk_OIHit[trig][level-1] = dbe_->book1D(name,title, 10, -0.5, 10.5);
967  hNMu_trk_OIHit[trig][level-1]->setAxisTitle("Number of muons", 1);
968  sprintf(name,"HLTMuonL%i_trk_OIHit_pt",level);
969  sprintf(title,"L%i OIHit tracker Muon Pt",level);
970  hpt_trk_OIHit[trig][level-1] = dbe_->book1D(name,title, NBINS, 0., 200);
971  hpt_trk_OIHit[trig][level-1]->setAxisTitle("Pt", 1);
972  sprintf(name,"HLTMuonL%i_trk_OIHit_eta",level);
973  sprintf(title,"L%i OIHit tracker Muon #eta",level);
974  heta_trk_OIHit[trig][level-1] = dbe_->book1D(name,title, NBINS, -2.5, 2.5);
975  heta_trk_OIHit[trig][level-1]->setAxisTitle("#eta", 1);
976  sprintf(name,"HLTMuonL%i_trk_OIHit_phi",level);
977  sprintf(title,"L%i OIHit tracker Muon #phi",level);
978  hphi_trk_OIHit[trig][level-1] = dbe_->book1D(name,title, NBINS, -3.15, 3.15);
979  hphi_trk_OIHit[trig][level-1]->setAxisTitle("#phi", 1);
980  sprintf(name,"HLTMuonL%i_trk_OIHit_etaphi",level);
981  sprintf(title,"L%i OIHit tracker Muon #eta vs #phi",level);
982  hetaphi_trk_OIHit[trig][level-1] = dbe_->book2D(name,title, NBINS, -3.15, 3.15, NBINS, -2.5, 2.5);
983  hetaphi_trk_OIHit[trig][level-1]->setAxisTitle("#phi", 1);
984  hetaphi_trk_OIHit[trig][level-1]->setAxisTitle("#eta", 2);
985  sprintf(name,"HLTMuonL%i_trk_OIHit_ptphi",level);
986  sprintf(title,"L%i OIHit tracker Muon pt vs #phi",level);
987  hptphi_trk_OIHit[trig][level-1] = dbe_->book2D(name,title, NBINS, 0., 200, NBINS, -3.15, 3.15);
988  hptphi_trk_OIHit[trig][level-1]->setAxisTitle("pt", 1);
989  hptphi_trk_OIHit[trig][level-1]->setAxisTitle("#phi", 2);
990  sprintf(name,"HLTMuonL%i_trk_OIHit_pteta",level);
991  sprintf(title,"L%i OIHit tracker Muon pt vs #eta",level);
992  hpteta_trk_OIHit[trig][level-1] = dbe_->book2D(name,title, NBINS, 0., 200, NBINS, -2.5, 2.5);
993  hpteta_trk_OIHit[trig][level-1]->setAxisTitle("pt", 1);
994  hpteta_trk_OIHit[trig][level-1]->setAxisTitle("#eta", 2);
995  sprintf(name,"HLTMuonL%i_trk_OIHit_charge",level);
996  sprintf(title,"L%i OIHit tracker Muon Charge",level);
997  hcharge_trk_OIHit[trig][level-1] = dbe_->book1D(name,title, 3, -1.5, 1.5);
998  hcharge_trk_OIHit[trig][level-1]->setAxisTitle("Charge", 1);
999  sprintf(name,"HLTMuonL%i_trk_OIHit_d0",level);
1000  sprintf(title,"L%i OIHit tracker Muon from radial impact vs (0,0)",level);
1001  hd0_trk_OIHit[trig][level-1] = dbe_->book1D(name,title, 50, -0.3, 0.3 );
1002  hd0_trk_OIHit[trig][level-1]->setAxisTitle("R Impact (cm) vs 0,0", 1);
1003  sprintf(name,"HLTMuonL%i_trk_OIHit_dz",level);
1004  sprintf(title,"L%i OIHit tracker Muon from Z impact vs BeamSpot",level);
1005  hdz_trk_OIHit[trig][level-1] = dbe_->book1D(name,title, NBINS, -25., 25.);
1006  hdz_trk_OIHit[trig][level-1]->setAxisTitle("Z impact (cm) vs BeamSpot", 1);
1007  sprintf(name,"HLTMuonL%i_trk_OIHit_dr",level);
1008  sprintf(title,"L%i OIHit tracker Muon radial impact vs BeamSpot",level);
1009  hdr_trk_OIHit[trig][level-1] = dbe_->book1D(name,title, 50, -0.3, 0.3 );
1010  hdr_trk_OIHit[trig][level-1]->setAxisTitle("R Impact (cm) vs BeamSpot", 1);
1011 
1012  dbe_->setCurrentFolder(monitorName_+dirname+"Level3/IOHit");
1013 
1014  sprintf(name,"HLTMuonL%i_NMu_IOHit",level);
1015  sprintf(title,"IOHit L%i number of muons",level);
1016  hNMu_IOHit[trig][level-1] = dbe_->book1D(name,title, 10, -0.5, 10.5);
1017  hNMu_IOHit[trig][level-1]->setAxisTitle("Number of muons", 1);
1018 
1019  sprintf(name,"HLTMuonL%i_pt_IOHit",level);
1020  sprintf(title,"L%i Pt_IOHit",level);
1021  hpt_IOHit[trig][level-1] = dbe_->book1D(name,title, NBINS, 0., 200);
1022  hpt_IOHit[trig][level-1]->setAxisTitle("Pt", 1);
1023  sprintf(name,"HLTMuonL%i_eta_IOHit",level);
1024  sprintf(title,"L%i Muon #eta_IOHit",level);
1025  heta_IOHit[trig][level-1] = dbe_->book1D(name,title, NBINS, -2.5, 2.5);
1026  heta_IOHit[trig][level-1]->setAxisTitle("#eta", 1);
1027  sprintf(name,"HLTMuonL%i_phi_IOHit",level);
1028  sprintf(title,"L%i Muon #phi_IOHit",level);
1029  hphi_IOHit[trig][level-1] = dbe_->book1D(name,title, NBINS, -3.15, 3.15);
1030  hphi_IOHit[trig][level-1]->setAxisTitle("#phi", 1);
1031  sprintf(name,"HLTMuonL%i_etaphi_IOHit",level);
1032  sprintf(title,"L%i Muon #eta vs #phi_IOHit",level);
1033  hetaphi_IOHit[trig][level-1] = dbe_->book2D(name,title, NBINS, -3.15, 3.15, NBINS, -2.5, 2.5);
1034  hetaphi_IOHit[trig][level-1]->setAxisTitle("#phi", 1);
1035  hetaphi_IOHit[trig][level-1]->setAxisTitle("#eta", 2);
1036  sprintf(name,"HLTMuonL%i_ptphi_IOHit",level);
1037  sprintf(title,"L%i Muon pt vs #phi_IOHit",level);
1038  hptphi_IOHit[trig][level-1] = dbe_->book2D(name,title, NBINS, 0., 200, NBINS, -3.15, 3.15);
1039  hptphi_IOHit[trig][level-1]->setAxisTitle("pt", 1);
1040  hptphi_IOHit[trig][level-1]->setAxisTitle("#phi", 2);
1041  sprintf(name,"HLTMuonL%i_pteta_IOHit",level);
1042  sprintf(title,"L%i Muon pt vs #eta_IOHit",level);
1043  hpteta_IOHit[trig][level-1] = dbe_->book2D(name,title, NBINS, 0., 200, NBINS, -2.5, 2.5);
1044  hpteta_IOHit[trig][level-1]->setAxisTitle("pt", 1);
1045  hpteta_IOHit[trig][level-1]->setAxisTitle("#eta", 2);
1046  sprintf(name,"HLTMuonL%i_charge_IOHit",level);
1047  sprintf(title,"L%i Muon Charge_IOHit",level);
1048  hcharge_IOHit[trig][level-1] = dbe_->book1D(name,title, 3, -1.5, 1.5);
1049  hcharge_IOHit[trig][level-1]->setAxisTitle("Charge", 1);
1050 
1051  sprintf(name,"HLTMuonL%i_d0_IOHit",level);
1052  sprintf(title,"L%i Muon from IOHit radial impact vs (0,0)",level);
1053  hd0_IOHit[trig][level-1] = dbe_->book1D(name,title, 50, -0.3, 0.3 );
1054  hd0_IOHit[trig][level-1]->setAxisTitle("R Impact (cm) vs 0,0", 1);
1055  sprintf(name,"HLTMuonL%i_dz_IOHit",level);
1056  sprintf(title,"L%i Muon from IOHit Z impact vs BeamSpot",level);
1057  hdz_IOHit[trig][level-1] = dbe_->book1D(name,title, NBINS, -25., 25.);
1058  hdz_IOHit[trig][level-1]->setAxisTitle("Z impact (cm) vs BeamSpot", 1);
1059  sprintf(name,"HLTMuonL%i_dr_IOHit",level);
1060  sprintf(title,"L%i Muon from IOHit radial impact vs BeamSpot",level);
1061  hdr_IOHit[trig][level-1] = dbe_->book1D(name,title, 50, -0.3, 0.3 );
1062  hdr_IOHit[trig][level-1]->setAxisTitle("R Impact (cm) vs BeamSpot", 1);
1063 
1064  sprintf(name,"HLTMuonL%i_trk_IOHit_NMu",level);
1065  sprintf(title," L%i IOHit tracker number of muons",level);
1066  hNMu_trk_IOHit[trig][level-1] = dbe_->book1D(name,title, 10, -0.5, 10.5);
1067  hNMu_trk_IOHit[trig][level-1]->setAxisTitle("Number of muons", 1);
1068  sprintf(name,"HLTMuonL%i_trk_IOHit_pt",level);
1069  sprintf(title,"L%i IOHit tracker Muon Pt",level);
1070  hpt_trk_IOHit[trig][level-1] = dbe_->book1D(name,title, NBINS, 0., 200);
1071  hpt_trk_IOHit[trig][level-1]->setAxisTitle("Pt", 1);
1072  sprintf(name,"HLTMuonL%i_trk_IOHit_eta",level);
1073  sprintf(title,"L%i IOHit tracker Muon #eta",level);
1074  heta_trk_IOHit[trig][level-1] = dbe_->book1D(name,title, NBINS, -2.5, 2.5);
1075  heta_trk_IOHit[trig][level-1]->setAxisTitle("#eta", 1);
1076  sprintf(name,"HLTMuonL%i_trk_IOHit_phi",level);
1077  sprintf(title,"L%i IOHit tracker Muon #phi",level);
1078  hphi_trk_IOHit[trig][level-1] = dbe_->book1D(name,title, NBINS, -3.15, 3.15);
1079  hphi_trk_IOHit[trig][level-1]->setAxisTitle("#phi", 1);
1080  sprintf(name,"HLTMuonL%i_trk_IOHit_etaphi",level);
1081  sprintf(title,"L%i IOHit tracker Muon #eta vs #phi",level);
1082  hetaphi_trk_IOHit[trig][level-1] = dbe_->book2D(name,title, NBINS, -3.15, 3.15, NBINS, -2.5, 2.5);
1083  hetaphi_trk_IOHit[trig][level-1]->setAxisTitle("#phi", 1);
1084  hetaphi_trk_IOHit[trig][level-1]->setAxisTitle("#eta", 2);
1085  sprintf(name,"HLTMuonL%i_trk_IOHit_ptphi",level);
1086  sprintf(title,"L%i IOHit tracker Muon pt vs #phi",level);
1087  hptphi_trk_IOHit[trig][level-1] = dbe_->book2D(name,title, NBINS, 0., 200, NBINS, -3.15, 3.15);
1088  hptphi_trk_IOHit[trig][level-1]->setAxisTitle("pt", 1);
1089  hptphi_trk_IOHit[trig][level-1]->setAxisTitle("#phi", 2);
1090  sprintf(name,"HLTMuonL%i_trk_IOHit_pteta",level);
1091  sprintf(title,"L%i IOHit tracker Muon pt vs #eta",level);
1092  hpteta_trk_IOHit[trig][level-1] = dbe_->book2D(name,title, NBINS, 0., 200, NBINS, -2.5, 2.5);
1093  hpteta_trk_IOHit[trig][level-1]->setAxisTitle("pt", 1);
1094  hpteta_trk_IOHit[trig][level-1]->setAxisTitle("#eta", 2);
1095  sprintf(name,"HLTMuonL%i_trk_IOHit_charge",level);
1096  sprintf(title,"L%i IOHit tracker Muon Charge",level);
1097  hcharge_trk_IOHit[trig][level-1] = dbe_->book1D(name,title, 3, -1.5, 1.5);
1098  hcharge_trk_IOHit[trig][level-1]->setAxisTitle("Charge", 1);
1099  sprintf(name,"HLTMuonL%i_trk_IOHit_d0",level);
1100  sprintf(title,"L%i IOHit tracker Muon from radial impact vs (0,0)",level);
1101  hd0_trk_IOHit[trig][level-1] = dbe_->book1D(name,title, 50, -0.3, 0.3 );
1102  hd0_trk_IOHit[trig][level-1]->setAxisTitle("R Impact (cm) vs 0,0", 1);
1103  sprintf(name,"HLTMuonL%i_trk_IOHit_dz",level);
1104  sprintf(title,"L%i IOHit tracker Muon from Z impact vs BeamSpot",level);
1105  hdz_trk_IOHit[trig][level-1] = dbe_->book1D(name,title, NBINS, -25., 25.);
1106  hdz_trk_IOHit[trig][level-1]->setAxisTitle("Z impact (cm) vs BeamSpot", 1);
1107  sprintf(name,"HLTMuonL%i_trk_IOHit_dr",level);
1108  sprintf(title,"L%i IOHit tracker Muon radial impact vs BeamSpot",level);
1109  hdr_trk_IOHit[trig][level-1] = dbe_->book1D(name,title, 50, -0.3, 0.3 );
1110  hdr_trk_IOHit[trig][level-1]->setAxisTitle("R Impact (cm) vs BeamSpot", 1);
1111 
1112  }
1113  if (level < 3 ) {
1114 
1115  // res
1116  sprintf(name,"HLTMuonL%itoL%i_ptres",level,level+1);
1117  sprintf(title,"L%iMuon1/Pt - L%iMuon1/Pt",level,level+1);
1118  hptres[trig][level-1] = dbe_->book1D(name,title, NBINS, -0.1, 0.1);
1119  sprintf(title,"1/PtL%i - 1/PtL%i",level,level+1);
1120  hptres[trig][level-1]->setAxisTitle(title, 1);
1121  sprintf(name,"HLTMuonL%itoL%i_etares",level,level+1);
1122  sprintf(title,"L%iMuon#eta - L%iMuon#eta",level,level+1);
1123  hetares[trig][level-1] =dbe_->book1D(name,title, NBINS, -0.1, 0.1);
1124  sprintf(title,"L%i #eta - L%i #eta",level,level+1);
1125  hetares[trig][level-1]->setAxisTitle(title, 1);
1126  sprintf(name,"HLTMuonL%itoL%i_phires",level,level+1);
1127  sprintf(title,"L%iMuon#phi - L%iMuon#phi",level,level+1);
1128  hphires[trig][level-1] =dbe_->book1D(name,title, NBINS, -0.1, 0.1);
1129  sprintf(title,"L%i #phi - L%i #phi",level,level+1);
1130  hphires[trig][level-1]->setAxisTitle(title, 1);
1131 
1132  sprintf(name,"HLTMuonL%itoL%i_ptrespt",level,level+1);
1133  sprintf(title,"L%i Muon #Delta Pt vs Pt ",level);
1134  hptrespt[trig][level-1] =dbe_->bookProfile(name,title, NBINS, 0, pt_max,1,-999.,999.,"s");
1135  sprintf(title,"1/PtL%i - 1/PtL%i",level,level+1);
1136  hptrespt[trig][level-1]->setAxisTitle(title, 2);
1137  hptrespt[trig][level-1]->setAxisTitle("Pt", 1);
1138  sprintf(name,"HLTMuonL%itoL%i_phiresphi",level,level+1);
1139  sprintf(title,"L%i Muon #Delta#phi vs #phi ",level);
1140  hphiresphi[trig][level-1] =dbe_->bookProfile(name,title, NBINS, -3.15, 3.15,1,-999.,999.,"s");
1141  sprintf(title,"L%i #phi - L%i #phi",level,level+1);
1142  hphiresphi[trig][level-1]->setAxisTitle(title, 2);
1143  hphiresphi[trig][level-1]->setAxisTitle("#phi", 1);
1144  sprintf(name,"HLTMuonL%itoL%i_etareseta",level,level+1);
1145  sprintf(title,"L%i Muon #Delta#eta vs #eta ",level);
1146  hetareseta[trig][level-1] =dbe_->bookProfile(name,title, NBINS,-2.5, 2.5,1,-999.,999.,"s");
1147  sprintf(title,"L%i #eta - L%i #eta",level,level+1);
1148  hetareseta[trig][level-1]->setAxisTitle(title, 2);
1149  hetareseta[trig][level-1]->setAxisTitle("#eta", 1);
1150 
1151  // relres
1152  sprintf(name,"HLTMuonL%itoL%i_ptrelres",level,level+1);
1153  sprintf(title,"(L%iMuon1/Pt - L%iMuon1/Pt)/(L%iMuon1/Pt)",level,level+1,level+1);
1154  hptrelres[trig][level-1] = dbe_->book1D(name,title, NBINS, -1.0, 1.0);
1155  sprintf(title,"(1/PtL%i - 1/PtL%i)/(1/PtL%i)",level,level+1,level+1);
1156  hptrelres[trig][level-1]->setAxisTitle(title, 1);
1157  sprintf(name,"HLTMuonL%itoL%i_etarelres",level,level+1);
1158  sprintf(title,"(L%iMuon#eta - L%iMuon#eta)/L%iMuon#eta",level,level+1,level+1);
1159  hetarelres[trig][level-1] =dbe_->book1D(name,title, NBINS, -1.0, 1.0);
1160  sprintf(title,"(L%i #eta - L%i #eta)/L%i #eta",level,level+1,level+1);
1161  hetarelres[trig][level-1]->setAxisTitle(title, 1);
1162  sprintf(name,"HLTMuonL%itoL%i_phirelres",level,level+1);
1163  sprintf(title,"(L%iMuon#phi - L%iMuon#phi)/L%iMuon#phi",level,level+1,level+1);
1164  hphirelres[trig][level-1] =dbe_->book1D(name,title, NBINS, -1.0, 1.0);
1165  sprintf(title,"(L%i #phi - L%i #phi)/L%i #phi",level,level+1,level+1);
1166  hphirelres[trig][level-1]->setAxisTitle(title, 1);
1167 
1168  sprintf(name,"HLTMuonL%itoL%i_ptrelrespt",level,level+1);
1169  sprintf(title,"L%i Muon #DeltaPt/Pt vs Pt ",level);
1170  hptrelrespt[trig][level-1] =dbe_->bookProfile(name,title, NBINS, 0, pt_max,1,-999.,999.,"s");
1171  sprintf(title,"(1/PtL%i - 1/PtL%i)/(1/PtL%i)",level,level+1,level+1);
1172  hptrelrespt[trig][level-1]->setAxisTitle(title, 2);
1173  hptrelrespt[trig][level-1]->setAxisTitle("Pt", 1);
1174  sprintf(name,"HLTMuonL%itoL%i_phirelresphi",level,level+1);
1175  sprintf(title,"L%i Muon #Delta#phi/#phi vs #phi ",level);
1176  hphirelresphi[trig][level-1] =dbe_->bookProfile(name,title, NBINS, -3.15, 3.15,1,-999.,999.,"s");
1177  sprintf(title,"(L%i #phi - L%i #phi)/L%i #phi",level,level+1,level+1);
1178  hphirelresphi[trig][level-1]->setAxisTitle(title, 2);
1179  hphirelresphi[trig][level-1]->setAxisTitle("#phi", 1);
1180  sprintf(name,"HLTMuonL%itoL%i_etarelreseta",level,level+1);
1181  sprintf(title,"L%i Muon #Delta#eta/#eta vs #eta ",level);
1182  hetarelreseta[trig][level-1] =dbe_->bookProfile(name,title, NBINS,-2.5, 2.5,1,-999.,999.,"s");
1183  sprintf(title,"(L%i #eta - L%i #eta)/L%i #eta",level,level+1,level+1);
1184  hetarelreseta[trig][level-1]->setAxisTitle(title, 2);
1185  hetarelreseta[trig][level-1]->setAxisTitle("#eta", 1);
1186  // charge conversion
1187  sprintf(name,"HLTMuonL%itoL%i_chargeconvers",level,level+1);
1188  sprintf(title,"L%i Muon charge #rightarrow L%i Muon charge",level,level+1);
1189  hchargeconv[trig][level-1] =dbe_->book1D(name,title, 4, 0, 4);
1190  hchargeconv[trig][level-1]->setAxisTitle(title, 1);
1191  hchargeconv[trig][level-1]->setBinLabel(1, "- #rightarrow -", 1);
1192  hchargeconv[trig][level-1]->setBinLabel(2, "- #rightarrow +", 1);
1193  hchargeconv[trig][level-1]->setBinLabel(3, "+ #rightarrow -", 1);
1194  hchargeconv[trig][level-1]->setBinLabel(4, "+ #rightarrow +", 1);
1195  // reconstruction fraction with dependence
1196  sprintf(name,"HLTMuonL%itoL%i_fracpt",level,level+1);
1197  sprintf(title,"#ofL%iMuon/#ofL%iMuon",level+1,level);
1198  hptfrac[trig][level-1] = dbe_->book1D(name,title, 40, 0, pt_max);
1199  hptfrac[trig][level-1]->setAxisTitle("Pt", 1);
1200  sprintf(name,"HLTMuonL%itoL%i_fraceta",level,level+1);
1201  sprintf(title,"#ofL%iMuon/#ofL%iMuon",level+1,level);
1202  hetafrac[trig][level-1] = dbe_->book1D(name,title, 40, -2.5, 2.5);
1203  hetafrac[trig][level-1]->setAxisTitle("#eta", 1);
1204  sprintf(name,"HLTMuonL%itoL%i_fracphi",level,level+1);
1205  sprintf(title,"#ofL%iMuon/#ofL%iMuon",level+1,level);
1206  hphifrac[trig][level-1] = dbe_->book1D(name,title, 40, -3.15, 3.15);
1207  hphifrac[trig][level-1]->setAxisTitle("#phi", 1);
1208  if (level == 1 ){
1209  // res
1210  sprintf(name,"HLTMuonL%itoL3_ptres",level);
1211  sprintf(title,"L%iMuon1/Pt - L%iMuon1/Pt",level,level+2);
1212  hptres[trig][level+1] = dbe_->book1D(name,title, NBINS, -0.1, 0.1);
1213  sprintf(title,"1/PtL%i - 1/PtL%i",level,level+2);
1214  hptres[trig][level+1]->setAxisTitle(title, 1);
1215  sprintf(name,"HLTMuonL%itoL3_etares",level);
1216  sprintf(title,"L%iMuon#eta - L3Muon#eta",level);
1217  hetares[trig][level+1] =dbe_->book1D(name,title, NBINS, -0.1, 0.1);
1218  sprintf(title,"L%i #eta - L3 #eta",level);
1219  hetares[trig][level+1]->setAxisTitle(title, 1);
1220  sprintf(name,"HLTMuonL%itoL3_phires",level);
1221  sprintf(title,"L%iMuon#phi - L3Muon#phi",level);
1222  hphires[trig][level+1] =dbe_->book1D(name,title, NBINS, -0.1, 0.1);
1223  sprintf(title,"L%i #phi - L3 #phi",level);
1224  hphires[trig][level+1]->setAxisTitle(title, 1);
1225 
1226  sprintf(name,"HLTMuonL%itoL3_ptrespt",level);
1227  sprintf(title,"L%i Muon #Delta Pt vs Pt (wrt L3) ",level);
1228  hptrespt[trig][level+1] =dbe_->bookProfile(name,title, NBINS, 0, pt_max,1,-999.,999.,"s");
1229  sprintf(title,"1/PtL%i - 1/PtL3",level);
1230  hptrespt[trig][level+1]->setAxisTitle(title, 2);
1231  hptrespt[trig][level+1]->setAxisTitle("Pt", 1);
1232  sprintf(name,"HLTMuonL%itoL3_phiresphi",level);
1233  sprintf(title,"L%i Muon #Delta#phi vs #phi (wrt L3) ",level);
1234  hphiresphi[trig][level+1] =dbe_->bookProfile(name,title, NBINS, -3.15, 3.15,1,-999.,999.,"s");
1235  sprintf(title,"L%i #phi - L3 #phi",level);
1236  hphiresphi[trig][level+1]->setAxisTitle(title, 2);
1237  hphiresphi[trig][level+1]->setAxisTitle("#phi", 1);
1238  sprintf(name,"HLTMuonL%itoL3_etareseta",level);
1239  sprintf(title,"L%i Muon #Delta#eta vs #eta (wrt L3) ",level);
1240  hetareseta[trig][level+1] =dbe_->bookProfile(name,title, NBINS,-2.5, 2.5,1,-999.,999.,"s");
1241  sprintf(title,"L%i #eta - L3 #eta",level);
1242  hetareseta[trig][level+1]->setAxisTitle(title, 2);
1243  hetareseta[trig][level+1]->setAxisTitle("#eta", 1);
1244 
1245  // relres
1246  sprintf(name,"HLTMuonL%itoL3_ptrelres",level);
1247  sprintf(title,"(L%iMuon1/Pt - L%iMuon1/Pt)/(L%iMuon1/Pt)",level,level+2,level+2);
1248  hptrelres[trig][level+1] = dbe_->book1D(name,title, NBINS, -1.0, 1.0);
1249  sprintf(title,"(1/PtL%i - 1/PtL3)/(1/PtL3)",level);
1250  hptrelres[trig][level+1]->setAxisTitle(title, 1);
1251  sprintf(name,"HLTMuonL%itoL3_etarelres",level);
1252  sprintf(title,"(L%iMuon#eta - L3Muon#eta)/L3Muon#eta",level);
1253  hetarelres[trig][level+1] =dbe_->book1D(name,title, NBINS, -1.0, 1.0);
1254  sprintf(title,"(L%i #eta - L3 #eta)/L3 #eta",level);
1255  hetarelres[trig][level+1]->setAxisTitle(title, 1);
1256  sprintf(name,"HLTMuonL%itoL3_phirelres",level);
1257  sprintf(title,"(L%iMuon#phi - L3Muon#phi)/L3Muon#phi",level);
1258  hphirelres[trig][level+1] =dbe_->book1D(name,title, NBINS, -1.0, 1.0);
1259  sprintf(title,"(L%i #phi - L3 #phi)/L3 #phi",level);
1260  hphirelres[trig][level+1]->setAxisTitle(title, 1);
1261 
1262  sprintf(name,"HLTMuonL%itoL3_ptrelrespt",level);
1263  sprintf(title,"L%i Muon #DeltaPt/Pt vs Pt (wrt L3) ",level);
1264  hptrelrespt[trig][level+1] =dbe_->bookProfile(name,title, NBINS, 0, pt_max,1,-999.,999.,"s");
1265  sprintf(title,"(1/PtL%i - 1/PtL3)/(1/PtL3)",level);
1266  hptrelrespt[trig][level+1]->setAxisTitle(title, 2);
1267  hptrelrespt[trig][level+1]->setAxisTitle("Pt", 1);
1268  sprintf(name,"HLTMuonL%itoL3_phirelresphi",level);
1269  sprintf(title,"L%i Muon #Delta#phi/#phi vs #phi (wrt L3) ",level);
1270  hphirelresphi[trig][level+1] =dbe_->bookProfile(name,title, NBINS, -3.15, 3.15,1,-999.,999.,"s");
1271  sprintf(title,"(L%i #phi - L3 #phi)/L3 #phi",level);
1272  hphirelresphi[trig][level+1]->setAxisTitle(title, 2);
1273  hphirelresphi[trig][level+1]->setAxisTitle("#phi", 1);
1274  sprintf(name,"HLTMuonL%itoL3_etarelreseta",level);
1275  sprintf(title,"L%i Muon #Delta#eta/#eta vs #eta (wrt L3) ",level);
1276  hetarelreseta[trig][level+1] =dbe_->bookProfile(name,title, NBINS,-2.5, 2.5,1,-999.,999.,"s");
1277  sprintf(title,"(L%i #eta - L3 #eta)/L3 #eta",level);
1278  hetarelreseta[trig][level+1]->setAxisTitle(title, 2);
1279  hetarelreseta[trig][level+1]->setAxisTitle("#eta", 1);
1280 
1281  sprintf(name,"HLTMuonL%itoL3_chargeconvers",level);
1282  sprintf(title,"L%i Muon charge #rightarrow L3 Muon charge",level);
1283  hchargeconv[trig][level+1] =dbe_->book1D(name,title, 4, 0, 4);
1284  hchargeconv[trig][level+1]->setAxisTitle(title, 1);
1285  hchargeconv[trig][level+1]->setBinLabel(1, "- #rightarrow -", 1);
1286  hchargeconv[trig][level+1]->setBinLabel(2, "- #rightarrow +", 1);
1287  hchargeconv[trig][level+1]->setBinLabel(3, "+ #rightarrow -", 1);
1288  hchargeconv[trig][level+1]->setBinLabel(4, "+ #rightarrow +", 1);
1289  }
1290 
1291  }
1292  }
1294  }
1295  // Muon det id is 2 pushed in bits 28:31
1296  const unsigned int detector_id = 2<<28;
1297  dbe_->tagContents(monitorName_, detector_id);
1298  }
1299 
1300  for( int trig = 0; trig < nTrigs; trig++ ) {
1301  for( int level = 1; level < 3; ++level ) {
1302  char name[512];
1303 
1304  sprintf(name, "DenominatorL%iptTrig%i", level, trig);
1305  _hpt1[trig][level-1] = new TH1D(name, name, 40, 0, 145);
1306  sprintf(name, "NumeratorL%iptTrig%i", level, trig);
1307  _hpt2[trig][level-1] = new TH1D(name, name, 40, 0, 145);
1308  sprintf(name, "DenominatorL%ietaTrig%i", level, trig);
1309  _heta1[trig][level-1] = new TH1D(name, name, 40, -2.5, 2.5);
1310  sprintf(name, "NumeratorL%ietaTrig%i", level, trig);
1311  _heta2[trig][level-1] = new TH1D(name, name, 40, -2.5, 2.5);
1312  sprintf(name, "DenominatorL%iphiTrig%i", level, trig);
1313  _hphi1[trig][level-1] = new TH1D(name, name, 40, -3.15, 3.15);
1314  sprintf(name, "NumeratorL%iphiTrig%i", level, trig);
1315  _hphi2[trig][level-1] = new TH1D(name, name, 40, -3.15, 3.15);
1316 
1317  }
1318  }
1319 }
1320 
1321 //--------------------------------------------------------
1322 void HLTMuonDQMSource::beginRun(const edm::Run& run, const edm::EventSetup& eventSetup) {
1323 
1324 }
1325 
1326 //--------------------------------------------------------
1328  const edm::EventSetup& eventSetup) {
1329 
1330 }
1331 
1332 // ----------------------------------------------------------
1334  const edm::EventSetup& eventSetup )
1335 {
1336  if ( !dbe_) return;
1337  counterEvt_++;
1338  if (prescaleEvt_ > 0 && counterEvt_%prescaleEvt_!=0) return;
1339  LogDebug("HLTMuonDQMSource") << " processing conterEvt_: " << counterEvt_ <<std::endl;
1340 
1341  bool trigFired = false;
1342  bool FiredTriggers[NTRIG] = {false};
1344  event.getByLabel(TrigResultInput, trigResult);
1345  if( !trigResult.failedToGet() ) {
1346  int ntrigs = trigResult->size();
1347  const edm::TriggerNames & trigName = event.triggerNames(*trigResult);
1348  for( int itrig = 0; itrig != ntrigs; ++itrig) {
1349  //std::cout << "trigName = " << trigName.triggerName(itrig) << " " << itrig << std::endl;
1350  for( unsigned int n = 0; n < (unsigned int)theTriggerBits.size(); n++) {
1351  if( trigName.triggerIndex(theTriggerBits[n]) == (unsigned int)ntrigs ) continue;
1352  if( trigResult->accept(trigName.triggerIndex(theTriggerBits[n])) ) {
1353  for( unsigned int j = 0; j < (unsigned int)theDirectoryName.size(); j++ ) {
1354  if( theHLTCollectionLevel[n] == theDirectoryName[j] ) FiredTriggers[j] = true;
1355  }
1356  trigFired = true;
1357  }
1358  }
1359  }
1360  }
1361  //else std::cout << "failed to get trigResult!!" << std::endl;
1362  // trigger fired
1363  if( !trigFired ) return;
1364  nTrig_++;
1365 
1366  //get the field
1368  eventSetup.get<IdealMagneticFieldRecord>().get(magField);
1369 
1370  //get the geometry
1371  edm::ESHandle<GlobalTrackingGeometry> glbTrackingGeometry;
1372  eventSetup.get<GlobalTrackingGeometryRecord>().get(glbTrackingGeometry);
1373 
1377  reco::RecoChargedCandidateCollection::const_iterator cand, cand2, cand3;
1378 
1379  event.getByLabel (l2seedscollectionTag_,l2seeds);
1380  event.getByLabel (l3seedscollectionTag_,l3seeds);
1381  event.getByLabel (l2collectionTag_,l2mucands);
1382  event.getByLabel (l3collectionTag_,l3mucands);
1383 
1387  event.getByLabel (l3seedscollectionTagOIState_,l3seedsOIState);
1388  event.getByLabel (l3seedscollectionTagOIHit_,l3seedsOIHit);
1389  event.getByLabel (l3seedscollectionTagIOHit_,l3seedsIOHit);
1390 
1391  edm::Handle<std::vector<TrackCandidate> > l3trkCandsOIState;
1392  edm::Handle<std::vector<TrackCandidate> > l3trkCandsOIHit;
1393  edm::Handle<std::vector<TrackCandidate> > l3trkCandsIOHit;
1394  event.getByLabel (l3trkfindingOIState_,l3trkCandsOIState);
1395  event.getByLabel (l3trkfindingOIHit_,l3trkCandsOIHit);
1396  event.getByLabel (l3trkfindingIOHit_,l3trkCandsIOHit);
1397 
1398  edm::Handle<std::vector<reco::Track> > l3trkOIState;
1402  event.getByLabel (l3trkOIState_,l3trkOIState);
1403  event.getByLabel (l3trkOIHit_,l3trkOIHit);
1404  event.getByLabel (l3trkIOHit_,l3trkIOHit);
1405  event.getByLabel (l3tktrk_, l3tktrk);
1406 
1407 //
1408  edm::Handle<std::vector<reco::Track> > l3muonOIState;
1412  event.getByLabel (l3muonsOIState_,l3muonOIState);
1413  event.getByLabel (l3muonsOIHit_,l3muonOIHit);
1414  event.getByLabel (l3muonsIOHit_,l3muonIOHit);
1415  event.getByLabel (l3muons_, l3muon);
1416 
1417 //
1418  if( !l2seeds.failedToGet() && l2seeds.isValid() ) {
1419  event.getByLabel (l2collectionTag_,l2mucands);
1420  if( !l2mucands.failedToGet() && l2mucands->size() != 0 ) {
1421  event.getByLabel (l3seedscollectionTag_,l3seeds);
1422  if( !l3seeds.failedToGet() && l3seeds.isValid() ) event.getByLabel (l3collectionTag_,l3mucands);
1423  }
1424  }
1425 
1426  for( int ntrig = 0; ntrig < nTrigs; ntrig++ ) {
1427  if( !FiredTriggers[ntrig] ) continue;
1428  if( !l2seeds.failedToGet() && l2seeds.isValid() ) {
1429  hNMu[ntrig][3]->Fill(l2seeds->size());
1430  L2MuonTrajectorySeedCollection::const_iterator l2seed;
1431  std::map<l1extra::L1MuonParticleRef, int> l1map;
1432  for (l2seed=l2seeds->begin() ; l2seed != l2seeds->end();++l2seed){
1433  PTrajectoryStateOnDet state=l2seed->startingState();
1434  // Transform Trajectory State on Det to a TSOS
1435  TrajectoryStateTransform tsTransform;
1436  DetId seedDetId(state.detId());
1437  const GeomDet* gdet = glbTrackingGeometry->idToDet( seedDetId );
1438  TrajectoryStateOnSurface tsos = tsTransform.transientState(state, &(gdet->surface()), magField.product());
1439  float pt = tsos.globalMomentum().perp();
1440  float eta = tsos.globalPosition().eta();
1441  float phi = tsos.globalPosition().phi();
1442  hcharge[ntrig][3]->Fill(tsos.charge());
1443  hpt[ntrig][3]->Fill(pt);
1444  hphi[ntrig][3]->Fill(phi);
1445  heta[ntrig][3]->Fill(eta);
1446  hetaphi[ntrig][3]->Fill(phi,eta);
1447  hptphi[ntrig][3]->Fill(pt,phi);
1448  hpteta[ntrig][3]->Fill(pt,eta);
1449  l1extra::L1MuonParticleRef l1ref = l2seed->l1Particle();
1450  l1map[l1ref]++;
1451  hseedptres[ntrig][0]->Fill(1/pt - 1/l1ref->pt());
1452  hseedetares[ntrig][0]->Fill(eta - l1ref->eta());
1453  hseedphires[ntrig][0]->Fill(phi - l1ref->phi());
1454  hseedptrelres[ntrig][0]->Fill((1/pt - 1/l1ref->pt())/(1/l1ref->pt()));
1455  hseedetarelres[ntrig][0]->Fill((eta - l1ref->eta())/l1ref->eta());
1456  hseedphirelres[ntrig][0]->Fill((phi - l1ref->phi())/l1ref->phi());
1457 
1458  hcharge[ntrig][0]->Fill(l1ref->charge());
1459  hpt[ntrig][0]->Fill(l1ref->pt());
1460  hphi[ntrig][0]->Fill(l1ref->phi());
1461 
1462  if(hphi[ntrig][0]->getEntries()){
1463  for(int ibin = 1; ibin <= hphi[ntrig][0]->getNbinsX(); ++ibin)
1464  hphi_norm[ntrig][0]->setBinContent(ibin,
1465  hphi[ntrig][0]->getBinContent(ibin)/hphi[ntrig][0]->getEntries());
1466  }
1467 
1468  heta[ntrig][0]->Fill(l1ref->eta());
1469  hetaphi[ntrig][0]->Fill(l1ref->phi(),l1ref->eta());
1470  hptphi[ntrig][0]->Fill(l1ref->pt(),l1ref->phi());
1471  hpteta[ntrig][0]->Fill(l1ref->pt(),l1ref->eta());
1472  hl1quality[ntrig]->Fill(l1ref->gmtMuonCand().quality());
1473  _hpt1[ntrig][0]->Fill(l1ref->pt());
1474  _heta1[ntrig][0]->Fill(l1ref->eta());
1475  _hphi1[ntrig][0]->Fill(l1ref->phi());
1476  if ( !l2mucands.failedToGet() && l2mucands.isValid() ) {
1477  for (cand=l2mucands->begin(); cand!=l2mucands->end(); ++cand) {
1478  reco::TrackRef tk = cand->get<reco::TrackRef>();
1479  edm::RefToBase<TrajectorySeed> seed=tk->seedRef();
1480  if ( (l2seed->startingState()).detId() == (seed->startingState()).detId() ) {
1481  if(tk->pt()*l1ref->pt() != 0 ) {
1482  hptres[ntrig][0]->Fill(1/l1ref->pt() - 1/tk->pt());
1483  hptrespt[ntrig][0]->Fill(tk->pt(), 1/l1ref->pt() - 1/tk->pt());
1484  hptrelres[ntrig][0]->Fill((1/l1ref->pt() - 1/tk->pt())/(1/tk->pt()));
1485  hptrelrespt[ntrig][0]->Fill(tk->pt(), (1/l1ref->pt() - 1/tk->pt())/(1/tk->pt()));
1486  }
1487  _hpt2[ntrig][0]->Fill(l1ref->pt());
1488  _heta2[ntrig][0]->Fill(l1ref->eta());
1489  _hphi2[ntrig][0]->Fill(l1ref->phi());
1490  hetares[ntrig][0]->Fill(l1ref->eta()-tk->eta());
1491  hetareseta[ntrig][0]->Fill(tk->eta(),l1ref->eta()-tk->eta());
1492  hetarelres[ntrig][0]->Fill((l1ref->eta()-tk->eta())/tk->eta());
1493  hetarelreseta[ntrig][0]->Fill(tk->eta(),(l1ref->eta()-tk->eta())/tk->eta());
1494  hphires[ntrig][0]->Fill(l1ref->phi()-tk->phi());
1495  double dphi=l1ref->phi()-tk->phi();
1496  if (dphi>TMath::TwoPi())dphi-=2*TMath::TwoPi();
1497  else if (dphi<-TMath::TwoPi()) dphi+=TMath::TwoPi();
1498  hphiresphi[ntrig][0]->Fill(tk->phi(),dphi);
1499  hphirelres[ntrig][0]->Fill((l1ref->phi()-tk->phi())/tk->phi());
1500  hphirelresphi[ntrig][0]->Fill(tk->phi(),dphi/tk->phi());
1501  // charge conversion
1502  int chargeconv = -1;
1503  int l1charge = l1ref->charge();
1504  int l2charge = tk->charge();
1505  if( l1charge == -1 && l2charge == -1 ) chargeconv = 0;
1506  else if( l1charge == -1 && l2charge == 1 ) chargeconv = 1;
1507  else if( l1charge == 1 && l2charge == -1 ) chargeconv = 2;
1508  else if( l1charge == 1 && l2charge == 1 ) chargeconv = 3;
1509  hchargeconv[ntrig][0]->Fill(chargeconv);
1510  _hpt1[ntrig][1]->Fill(tk->pt());
1511  _heta1[ntrig][1]->Fill(tk->eta());
1512  _hphi1[ntrig][1]->Fill(tk->phi());
1513  //find the L3 build from this L2
1514  if (!l3mucands.failedToGet() && l3mucands.isValid() ) {
1515  for (cand=l3mucands->begin(); cand!=l3mucands->end(); ++cand) {
1516  reco::TrackRef l3tk= cand->get<reco::TrackRef>();
1517  if( l3tk->seedRef().castTo<edm::Ref<L3MuonTrajectorySeedCollection> > ().isAvailable() ) {
1518  if (l3tk->seedRef().castTo<edm::Ref<L3MuonTrajectorySeedCollection> >()->l2Track() == tk){
1519  if(l1ref->pt()*l3tk->pt() != 0 ) {
1520  hptres[ntrig][2]->Fill(1/l1ref->pt() - 1/l3tk->pt());
1521  hptrespt[ntrig][2]->Fill(l3tk->pt(), 1/l1ref->pt() - 1/l3tk->pt());
1522  hptrelres[ntrig][2]->Fill((1/l1ref->pt() - 1/l3tk->pt())/(1/l3tk->pt()));
1523  hptrelrespt[ntrig][2]->Fill(l3tk->pt(), (1/l1ref->pt() - 1/l3tk->pt())/(1/l3tk->pt()));
1524  }
1525  hetares[ntrig][2]->Fill(l1ref->eta()-l3tk->eta());
1526  hetareseta[ntrig][2]->Fill(l1ref->eta(),l1ref->eta()-l3tk->eta());
1527  hetarelres[ntrig][2]->Fill((l1ref->eta()-l3tk->eta())/l3tk->eta());
1528  hetarelreseta[ntrig][2]->Fill(l1ref->eta(),(l1ref->eta()-l3tk->eta())/l3tk->eta());
1529  hphires[ntrig][2]->Fill(l1ref->phi()-l3tk->phi());
1530  double dphi=l1ref->phi()-l3tk->phi();
1531  if (dphi>TMath::TwoPi())dphi-=2*TMath::TwoPi();
1532  else if (dphi<-TMath::TwoPi()) dphi+=TMath::TwoPi();
1533  hphiresphi[ntrig][2]->Fill(l3tk->phi(),dphi);
1534  hphirelres[ntrig][2]->Fill((l1ref->phi()-l3tk->phi())/l3tk->phi());
1535  hphirelresphi[ntrig][2]->Fill(l3tk->phi(),(dphi)/l3tk->phi());
1536  // charge conversion
1537  int chargeconv = -1;
1538  int l1charge = l1ref->charge();
1539  int l3charge = l3tk->charge();
1540  if( l1charge == -1 && l3charge == -1 ) chargeconv = 0;
1541  else if( l1charge == -1 && l3charge == 1 ) chargeconv = 1;
1542  else if( l1charge == 1 && l3charge == -1 ) chargeconv = 2;
1543  else if( l1charge == 1 && l3charge == 1 ) chargeconv = 3;
1544  hchargeconv[ntrig][2]->Fill(chargeconv);
1545  _hpt2[ntrig][1]->Fill(tk->pt());
1546  _heta2[ntrig][1]->Fill(tk->eta());
1547  _hphi2[ntrig][1]->Fill(tk->phi());
1548  //break; //plot only once per L2?
1549  }//if
1550  }
1551  }//for
1552  }
1553  break;
1554  }
1555  }
1556  }
1557  }
1558  // mapping
1559  std::map<l1extra::L1MuonParticleRef, int>::iterator it;
1560  for( it = l1map.begin(); it != l1map.end(); it++ ) {
1561  hseedNMuper[ntrig][0]->Fill(it->second);
1562  }
1563  hNMu[ntrig][0]->Fill(l1map.size());
1564  }
1565 
1566  if (!l3seedsOIState.failedToGet() && l3seedsOIState.isValid() ) {
1567  hNMu_OIState[ntrig][4]->Fill(l3seedsOIState->size());
1568 
1569  L3MuonTrajectorySeedCollection::const_iterator l3seedOIState;
1570  for(l3seedOIState=l3seedsOIState->begin(); l3seedOIState != l3seedsOIState->end(); ++l3seedOIState){
1571  PTrajectoryStateOnDet state=l3seedOIState->startingState();
1572  TrajectoryStateTransform tsTransform;
1573  DetId seedDetId(state.detId());
1574  const GeomDet* gdet = glbTrackingGeometry->idToDet( seedDetId );
1575  TrajectoryStateOnSurface tsos = tsTransform.transientState(state, &(gdet->surface()), magField.product());
1576 
1577  float pt = tsos.globalMomentum().perp();
1578  float eta = tsos.globalPosition().eta();
1579  float phi = tsos.globalPosition().phi();
1580 
1581  hNMu_l3seed_comp[ntrig][4]->Fill(1);
1582  hpt_OIState[ntrig][4]->Fill(pt);
1583  hphi_OIState[ntrig][4]->Fill(phi);
1584  heta_OIState[ntrig][4]->Fill(eta);
1585  hetaphi_OIState[ntrig][4]->Fill(phi,eta);
1586  hptphi_OIState[ntrig][4]->Fill(pt,phi);
1587  hpteta_OIState[ntrig][4]->Fill(pt,eta);
1588  hcharge_OIState[ntrig][4]->Fill(tsos.charge());
1589 
1590  // reco::TrackRef tk = cand->get<reco::TrackRef>();
1591  // hpt_OIState[ntrig][2]->Fill(tk->pt());
1592 
1593  // OIState track candidate
1594  //reco::TrackRef l2tkRef = l3seedOIState->l2Track();
1595  }
1596  }
1597 
1598  if ( !l3seedsOIHit.failedToGet() && l3seedsOIHit.isValid() && l3seedsOIHit->size() != 0 ) {
1599  hNMu_OIHit[ntrig][4]->Fill(l3seedsOIHit->size());
1600 
1601  L3MuonTrajectorySeedCollection::const_iterator l3seedOIHit;
1602  for(l3seedOIHit=l3seedsOIHit->begin(); l3seedOIHit != l3seedsOIHit->end(); ++l3seedOIHit){
1603  PTrajectoryStateOnDet state=l3seedOIHit->startingState();
1604  TrajectoryStateTransform tsTransform;
1605  DetId seedDetId(state.detId());
1606  const GeomDet* gdet = glbTrackingGeometry->idToDet( seedDetId );
1607  TrajectoryStateOnSurface tsos = tsTransform.transientState(state, &(gdet->surface()), magField.product());
1608 
1609  float pt = tsos.globalMomentum().perp();
1610  float eta = tsos.globalPosition().eta();
1611  float phi = tsos.globalPosition().phi();
1612 
1613  hNMu_l3seed_comp[ntrig][4]->Fill(2);
1614  hpt_OIHit[ntrig][4]->Fill(pt);
1615  hphi_OIHit[ntrig][4]->Fill(phi);
1616  heta_OIHit[ntrig][4]->Fill(eta);
1617  hetaphi_OIHit[ntrig][4]->Fill(phi,eta);
1618  hptphi_OIHit[ntrig][4]->Fill(pt,phi);
1619  hpteta_OIHit[ntrig][4]->Fill(pt,eta);
1620  hcharge_OIHit[ntrig][4]->Fill(tsos.charge());
1621 
1622  //reco::TrackRef l2tkRef = l3seedOIHit->l2Track();
1623 // std::cout << "== l3 cascade->l2tk muon pt : " << l2tkRef->pt() << " eta : " << l2tkRef->eta() << " phi : " << l2tkRef->phi() << std::endl;
1624  }
1625  }
1626 
1627  if ( !l3seedsIOHit.failedToGet() && l3seedsIOHit.isValid() && l3seedsIOHit->size() != 0 ) {
1628  hNMu_IOHit[ntrig][4]->Fill(l3seedsIOHit->size());
1629 
1630 
1631  L3MuonTrajectorySeedCollection::const_iterator l3seedIOHit;
1632  for(l3seedIOHit=l3seedsIOHit->begin(); l3seedIOHit != l3seedsIOHit->end(); ++l3seedIOHit){
1633  PTrajectoryStateOnDet state=l3seedIOHit->startingState();
1634  TrajectoryStateTransform tsTransform;
1635  DetId seedDetId(state.detId());
1636  const GeomDet* gdet = glbTrackingGeometry->idToDet( seedDetId );
1637  TrajectoryStateOnSurface tsos = tsTransform.transientState(state, &(gdet->surface()), magField.product());
1638 
1639  float pt = tsos.globalMomentum().perp();
1640  float eta = tsos.globalPosition().eta();
1641  float phi = tsos.globalPosition().phi();
1642 
1643 
1644  hNMu_l3seed_comp[ntrig][4]->Fill(3);
1645  hpt_IOHit[ntrig][4]->Fill(pt);
1646  hphi_IOHit[ntrig][4]->Fill(phi);
1647  heta_IOHit[ntrig][4]->Fill(eta);
1648  hetaphi_IOHit[ntrig][4]->Fill(phi,eta);
1649  hptphi_IOHit[ntrig][4]->Fill(pt,phi);
1650  hpteta_IOHit[ntrig][4]->Fill(pt,eta);
1651  hcharge_IOHit[ntrig][4]->Fill(tsos.charge());
1652 
1653  //reco::TrackRef l2tkRef = l3seedIOHit->l2Track();
1654  }
1655  }
1656 
1657 
1658  if (!l3seeds.failedToGet() && l3seeds.isValid() ) {
1659  hNMu[ntrig][4]->Fill(l3seeds->size());
1660  L3MuonTrajectorySeedCollection::const_iterator l3seed;
1661  std::map<reco::TrackRef, int> l2map;
1662  for (l3seed=l3seeds->begin() ; l3seed != l3seeds->end();++l3seed){
1663  PTrajectoryStateOnDet state=l3seed->startingState();
1664  // Transform Trajectory State on Det to a TSOS
1665  TrajectoryStateTransform tsTransform;
1666  DetId seedDetId(state.detId());
1667  const GeomDet* gdet = glbTrackingGeometry->idToDet( seedDetId );
1668  TrajectoryStateOnSurface tsos = tsTransform.transientState(state, &(gdet->surface()), magField.product());
1669 
1670  float pt = tsos.globalMomentum().perp();
1671  float eta = tsos.globalPosition().eta();
1672  float phi = tsos.globalPosition().phi();
1673 
1674 
1675  hNMu_l3seed_comp[ntrig][4]->Fill(0);
1676  hcharge[ntrig][4]->Fill(tsos.charge());
1677  hpt[ntrig][4]->Fill(pt);
1678  hphi[ntrig][4]->Fill(phi);
1679  heta[ntrig][4]->Fill(eta);
1680  hetaphi[ntrig][4]->Fill(phi,eta);
1681  hptphi[ntrig][4]->Fill(pt,phi);
1682  hpteta[ntrig][4]->Fill(pt,eta);
1683 
1684  reco::TrackRef l2tkRef = l3seed->l2Track();
1685 
1686  l2map[l2tkRef]++;
1687  hseedptres[ntrig][1]->Fill(1/pt - 1/l2tkRef->pt());
1688  hseedetares[ntrig][1]->Fill(eta - l2tkRef->eta());
1689  hseedphires[ntrig][1]->Fill(phi - l2tkRef->phi());
1690  hseedptrelres[ntrig][1]->Fill((1/pt - 1/l2tkRef->pt())/(1/l2tkRef->pt()));
1691  hseedetarelres[ntrig][1]->Fill((eta - l2tkRef->eta())/l2tkRef->eta());
1692  hseedphirelres[ntrig][1]->Fill((phi - l2tkRef->phi())/l2tkRef->phi());
1693  }
1694  // mapping
1695  std::map<reco::TrackRef, int>::iterator it;
1696  for( it = l2map.begin(); it != l2map.end(); it++ ) {
1697  hseedNMuper[ntrig][1]->Fill(it->second);
1698  }
1699  }
1700 
1701 
1702  reco::BeamSpot beamSpot;
1703  edm::Handle<reco::BeamSpot> recoBeamSpotHandle;
1704  event.getByLabel("hltOnlineBeamSpot",recoBeamSpotHandle);
1705  if (!recoBeamSpotHandle.failedToGet()) beamSpot = *recoBeamSpotHandle;
1706 
1707  if (!l2mucands.failedToGet() && l2mucands.isValid() ) {
1708  LogDebug("HLTMuonDQMSource") << " filling L2 stuff " << std::endl;
1710 
1711 
1712  if( l2mucands->size() != 0 ) event.getByLabel (l2isolationTag_,l2depMap);
1713  hNMu[ntrig][1]->Fill(l2mucands->size());
1714  for (cand=l2mucands->begin(); cand!=l2mucands->end(); ++cand) {
1715  reco::TrackRef tk = cand->get<reco::TrackRef>();
1716  if (!l2depMap.failedToGet() && l2depMap.isValid() ) {
1717  LogDebug("HLTMuonDQMSource") << " filling L2 Iso stuff " << std::endl;
1718  if ( tk.isNonnull() &&l2depMap->contains(tk.id()) ){
1719  reco::IsoDepositMap::value_type calDeposit = (*l2depMap)[tk];
1720  double dephlt = calDeposit.depositWithin(coneSize_);
1721  if( dephlt != 0 ) hisoL2[ntrig]->Fill(dephlt);
1722  // 2D plot: cone size vs. dep
1723  double depL2[10];
1724  for( int idep = 0; idep < 10; idep++ ) {
1725  double conesize = (idep + 1)*coneSize_/10.0;
1726  depL2[idep] = calDeposit.depositWithin(conesize);
1727  if( depL2[idep] != 0 ) hL2muonIsoDR[ntrig]->Fill(conesize, depL2[idep]);
1728  }
1729  }
1730  }
1731 
1732  // eta cut
1733  hpt[ntrig][1]->Fill(tk->pt());
1734  hcharge[ntrig][1]->Fill(tk->charge());
1735  if ( tk->charge() != 0 ) {
1736  heta[ntrig][1]->Fill(tk->eta());
1737  hphi[ntrig][1]->Fill(tk->phi());
1738 
1739 
1740  if(hphi[ntrig][1]->getEntries()){
1741  for(int ibin = 1; ibin <= hphi[ntrig][1]->getNbinsX(); ++ibin)
1742  hphi_norm[ntrig][1]->setBinContent(ibin,
1743  hphi[ntrig][1]->getBinContent(ibin)/hphi[ntrig][1]->getEntries());
1744  }
1745 
1746  hetaphi[ntrig][1]->Fill(tk->phi(),tk->eta());
1747  hptphi[ntrig][1]->Fill(tk->pt(),tk->phi());
1748  hpteta[ntrig][1]->Fill(tk->pt(),tk->eta());
1749  const reco::HitPattern& hitp = tk->hitPattern();
1750  hnHits[ntrig][1]->Fill(hitp.numberOfHits());
1752  hd0[ntrig][0]->Fill(tk->d0());
1753  if (!recoBeamSpotHandle.failedToGet()){
1754  hdr[ntrig][0]->Fill(tk->dxy(beamSpot.position()));
1755  hdrphi[ntrig][0]->Fill(tk->phi(),tk->dxy(beamSpot.position()));
1756  hdz[ntrig][0]->Fill(tk->dz(beamSpot.position()));
1757  hdzeta[ntrig][0]->Fill(tk->eta(),tk->dz(beamSpot.position()));
1758  }
1759  hd0phi[ntrig][0]->Fill(tk->phi(),tk->d0());
1760  hdz0[ntrig][0]->Fill(tk->dz());
1761  hdz0eta[ntrig][0]->Fill(tk->eta(),tk->dz());
1762  herr0[ntrig][0]->Fill(tk->error(0));
1763  cand2=cand;
1764  ++cand2;
1765  for (; cand2!=l2mucands->end(); cand2++) {
1766  reco::TrackRef tk2=cand2->get<reco::TrackRef>();
1767  if ( tk->charge()*tk2->charge() == -1 ){
1768  double mass=(cand->p4()+cand2->p4()).M();
1769  hdimumass[ntrig][0]->Fill(mass);
1770  }
1771  }
1772  } else edm::LogWarning("HLTMonMuon")<<"stop filling candidate with update@Vtx failure";
1773  }
1774  }
1775 
1776  if (!l3mucands.failedToGet() && l3mucands.isValid() ) {
1777  LogDebug("HLTMuonDQMSource") << " filling L3 stuff " << std::endl;
1778  hNMu[ntrig][2]->Fill(l3mucands->size());
1780 
1781  if( l3mucands->size() != 0 ) event.getByLabel (l3isolationTag_,l3depMap);
1782  for (cand=l3mucands->begin(); cand!=l3mucands->end(); ++cand) {
1783  reco::TrackRef tk = cand->get<reco::TrackRef>();
1784  if (!l3depMap.failedToGet() && l3depMap.isValid() ) {
1785  if ( tk.isNonnull() && l3depMap->contains(tk.id()) ){
1786  reco::IsoDepositMap::value_type calDeposit= (*l3depMap)[tk];
1787  double dephlt = calDeposit.depositWithin(coneSize_);
1788  if( dephlt != 0 ) hisoL3[ntrig]->Fill(dephlt);
1789  double depL3[10];
1790  for( int idep = 0; idep < 10; idep++ ) {
1791  double conesize = ( idep + 1 ) * coneSize_/10.0;
1792  depL3[idep] = calDeposit.depositWithin(conesize);
1793  if( depL3[idep] != 0 ) hL3muonIsoDR[ntrig]->Fill(conesize,depL3[idep]);
1794  }
1795  }
1796  }
1797  // eta cut
1798  hpt[ntrig][2]->Fill(tk->pt());
1799  heta[ntrig][2]->Fill(tk->eta());
1800  hphi[ntrig][2]->Fill(tk->phi());
1801 
1802  if(hphi[ntrig][2]->getEntries()){
1803  for(int ibin = 1; ibin <= hphi[ntrig][2]->getNbinsX(); ++ibin)
1804  hphi_norm[ntrig][2]->setBinContent(ibin,
1805  hphi[ntrig][2]->getBinContent(ibin)/hphi[ntrig][2]->getEntries());
1806  }
1807 
1808  hetaphi[ntrig][2]->Fill(tk->phi(),tk->eta());
1809  hptphi[ntrig][2]->Fill(tk->pt(),tk->phi());
1810  hpteta[ntrig][2]->Fill(tk->pt(),tk->eta());
1811  const reco::HitPattern& hitp = tk->hitPattern();
1812  hnHits[ntrig][2]->Fill(hitp.numberOfHits());
1817  hd0[ntrig][1]->Fill(tk->d0());
1818  if (!recoBeamSpotHandle.failedToGet()) {
1819  hdr[ntrig][1]->Fill(tk->dxy(beamSpot.position()));
1820  hdrphi[ntrig][1]->Fill(tk->phi(),tk->dxy(beamSpot.position()));
1821  hdz[ntrig][1]->Fill(tk->dz(beamSpot.position()));
1822  hdzeta[ntrig][1]->Fill(tk->eta(),tk->dz(beamSpot.position()));
1823  }
1824  hd0phi[ntrig][1]->Fill(tk->phi(),tk->d0());
1825  hdz0[ntrig][1]->Fill(tk->dz());
1826  hdz0eta[ntrig][1]->Fill(tk->eta(),tk->dz());
1827  herr0[ntrig][1]->Fill(tk->error(0));
1828  hcharge[ntrig][2]->Fill(tk->charge());
1829  cand2=cand;
1830  ++cand2;
1831 
1832  for (; cand2!=l3mucands->end(); cand2++) {
1833  reco::TrackRef tk2=cand2->get<reco::TrackRef>();
1834  if ( tk->charge()*tk2->charge() == -1 ){
1835  double mass=(cand->p4()+cand2->p4()).M();
1836  hdimumass[ntrig][1]->Fill(mass);
1837  }
1838  }
1839  if( tk->seedRef().castTo<edm::Ref<L3MuonTrajectorySeedCollection> >().isAvailable() ) {
1840  reco::TrackRef l2tk = tk->seedRef().castTo<edm::Ref<L3MuonTrajectorySeedCollection> >()->l2Track();
1841  if(tk->pt()*l2tk->pt() != 0 ) {
1842  hptres[ntrig][1]->Fill(1/l2tk->pt() - 1/tk->pt());
1843  hptrespt[ntrig][1]->Fill(tk->pt(), 1/l2tk->pt() - 1/tk->pt());
1844  hptrelres[ntrig][1]->Fill((1/l2tk->pt() - 1/tk->pt())/(1/tk->pt()));
1845  hptrelrespt[ntrig][1]->Fill(tk->pt(), (1/l2tk->pt() - 1/tk->pt())/(1/tk->pt()));
1846  double pterr = (tk->ptError()/(tk->pt()*tk->pt()));
1847  hptpull[ntrig]->Fill((1/l2tk->pt() - 1/tk->pt())/pterr);
1848  hptpullpt[ntrig]->Fill(tk->pt(), (1/l2tk->pt() - 1/tk->pt())/pterr);
1849  }
1850  hphires[ntrig][1]->Fill(l2tk->phi()-tk->phi());
1851  double dphi=l2tk->phi()-tk->phi();
1852  if (dphi>TMath::TwoPi())dphi-=2*TMath::TwoPi();
1853  else if (dphi<-TMath::TwoPi()) dphi+=TMath::TwoPi();
1854  hphiresphi[ntrig][1]->Fill(tk->phi(),dphi);
1855  hphirelres[ntrig][1]->Fill((l2tk->phi()-tk->phi())/tk->phi());
1856  hphirelresphi[ntrig][1]->Fill(tk->phi(),dphi/tk->phi());
1857  hphipull[ntrig]->Fill(dphi/tk->phiError());
1858  hphipullphi[ntrig]->Fill(tk->phi(), dphi/tk->phiError());
1859  hetares[ntrig][1]->Fill(l2tk->eta()-tk->eta());
1860  hetareseta[ntrig][1]->Fill(tk->eta(),l2tk->eta()-tk->eta());
1861  hetarelres[ntrig][1]->Fill((l2tk->eta()-tk->eta())/tk->eta());
1862  hetarelreseta[ntrig][1]->Fill(tk->eta(),(l2tk->eta()-tk->eta())/tk->eta());
1863  hetapull[ntrig]->Fill((l2tk->eta()-tk->eta())/tk->etaError());
1864  hetapulleta[ntrig]->Fill(tk->eta(),(l2tk->eta()-tk->eta())/tk->etaError());
1865  // charge conversion
1866  int chargeconv = -1;
1867  int l2charge = l2tk->charge();
1868  int l3charge = tk->charge();
1869  if( l2charge == -1 && l3charge == -1 ) chargeconv = 0;
1870  else if( l2charge == -1 && l3charge == 1 ) chargeconv = 1;
1871  else if( l2charge == 1 && l3charge == -1 ) chargeconv = 2;
1872  else if( l2charge == 1 && l3charge == 1 ) chargeconv = 3;
1873  hchargeconv[ntrig][1]->Fill(chargeconv);
1874  }
1875  }
1876  }
1877  // l3 matching
1878 
1879 // std::vector<reco::Track>::const_iterator l3MatchedTrk = l3tktrk->end();
1880  double bpt = -999.;
1881  double beta = -999.;
1882  double bphi = -999.;
1883  if( !l3mucands.failedToGet() && l3mucands.isValid() ) {
1884  for(reco::RecoChargedCandidateCollection::const_iterator i = l3mucands->begin(); i != l3mucands->end(); i++ ) {
1885  double dR_min_tk=1e9;
1886  if( !l3tktrk.failedToGet() && l3tktrk.isValid() ) {
1887  for( std::vector<reco::Track>::const_iterator itl3trk = l3tktrk->begin(); itl3trk !=l3tktrk->end(); itl3trk++ ) {
1888  double dR = deltaR(i->eta(), i->phi(),itl3trk->eta(),itl3trk->phi());
1889  if( dR < dR_min_tk ) {
1890  dR_min_tk=dR ;
1891  bpt = itl3trk->pt();
1892  beta = itl3trk->eta();
1893  bphi = itl3trk->phi();
1894 // l3MatchedTrk = itl3trk;
1895  }
1896  }
1897  }
1898  if( bpt !=-999 && beta != -999 && bphi != -999 ) {
1899  hptres_L3L3trk[ntrig][2]->Fill(1/i->pt() - 1/bpt);
1900  hetares_L3L3trk[ntrig][2]->Fill(i->eta() - beta);
1901  hphires_L3L3trk[ntrig][2]->Fill(i->phi() - bphi);
1902  hptrelres_L3L3trk[ntrig][2]->Fill( (1/i->pt() - 1/bpt)/(1/i->pt()) );
1903  hetarelres_L3L3trk[ntrig][2]->Fill( (i->eta() - beta)/i->eta() );
1904  hphirelres_L3L3trk[ntrig][2]->Fill( (i->phi() - bphi)/i->phi() );
1905  }
1906  }
1907  }
1908  std::vector<reco::Track>::const_iterator itl3mu;
1909  if( !l3muon.failedToGet() && l3muon.isValid() ) {
1910  for( itl3mu = l3muon->begin(); itl3mu != l3muon->end(); itl3mu++ ) {
1911  hNMu_comp[ntrig][2]->Fill(0);
1912  }
1913  }
1914 
1915  std::vector<reco::Track>::const_iterator itl3muOIState;
1916  if( !l3muonOIState.failedToGet() && l3muonOIState.isValid() && l3muonOIState->size() > 0 ) {
1917  hNMu_OIState[ntrig][2]->Fill(l3muonOIState->size());
1918  for( itl3muOIState = l3muonOIState->begin(); itl3muOIState != l3muonOIState->end(); itl3muOIState++ ) {
1919  hNMu_comp[ntrig][2]->Fill(1);
1920  hcharge_OIState[ntrig][2]->Fill(itl3muOIState->charge());
1921  hpt_OIState[ntrig][2]->Fill(itl3muOIState->pt());
1922  hphi_OIState[ntrig][2]->Fill(itl3muOIState->phi());
1923  heta_OIState[ntrig][2]->Fill(itl3muOIState->eta());
1924  hetaphi_OIState[ntrig][2]->Fill(itl3muOIState->phi(),itl3muOIState->eta());
1925  hptphi_OIState[ntrig][2]->Fill(itl3muOIState->pt(),itl3muOIState->phi());
1926  hpteta_OIState[ntrig][2]->Fill(itl3muOIState->pt(),itl3muOIState->eta());
1927 
1928  hd0_OIState[ntrig][2]->Fill(itl3muOIState->d0());
1929  if( !recoBeamSpotHandle.failedToGet()) {
1930  hdz_OIState[ntrig][2]->Fill(itl3muOIState->dz(beamSpot.position()));
1931  hdr_OIState[ntrig][2]->Fill(itl3muOIState->dxy(beamSpot.position()));
1932  }
1933  //hpt_l3muOIState[ntrig][2]->Fill(itl3muOIState->pt());
1934  }
1935  }
1936  std::vector<reco::Track>::const_iterator itl3muOIHit;
1937  if( !l3muonOIHit.failedToGet() && l3muonOIHit.isValid() && l3muonOIHit->size() > 0 ) {
1938  hNMu_OIHit[ntrig][2]->Fill(l3muonOIHit->size());
1939  for( itl3muOIHit = l3muonOIHit->begin(); itl3muOIHit != l3muonOIHit->end(); itl3muOIHit++ ) {
1940  hNMu_comp[ntrig][2]->Fill(2);
1941  hcharge_OIHit[ntrig][2]->Fill(itl3muOIHit->charge());
1942  hpt_OIHit[ntrig][2]->Fill(itl3muOIHit->pt());
1943  hphi_OIHit[ntrig][2]->Fill(itl3muOIHit->phi());
1944  heta_OIHit[ntrig][2]->Fill(itl3muOIHit->eta());
1945  hetaphi_OIHit[ntrig][2]->Fill(itl3muOIHit->phi(),itl3muOIHit->eta());
1946  hptphi_OIHit[ntrig][2]->Fill(itl3muOIHit->pt(),itl3muOIHit->phi());
1947  hpteta_OIHit[ntrig][2]->Fill(itl3muOIHit->pt(),itl3muOIHit->eta());
1948 
1949  hd0_OIHit[ntrig][2]->Fill(itl3muOIHit->d0());
1950  if( !recoBeamSpotHandle.failedToGet()) {
1951  hdz_OIHit[ntrig][2]->Fill(itl3muOIHit->dz(beamSpot.position()));
1952  hdr_OIHit[ntrig][2]->Fill(itl3muOIHit->dxy(beamSpot.position()));
1953  }
1954  //hpt_l3muOIHit[ntrig][2]->Fill(itl3muOIHit->pt());
1955  }
1956  }
1957  std::vector<reco::Track>::const_iterator itl3muIOHit;
1958  if( !l3muonIOHit.failedToGet() && l3muonIOHit.isValid() && l3muonIOHit->size() > 0 ) {
1959  hNMu_IOHit[ntrig][2]->Fill(l3muonIOHit->size());
1960  for( itl3muIOHit = l3muonIOHit->begin(); itl3muIOHit != l3muonIOHit->end(); itl3muIOHit++ ) {
1961  hNMu_comp[ntrig][2]->Fill(3);
1962  hcharge_IOHit[ntrig][2]->Fill(itl3muIOHit->charge());
1963  hpt_IOHit[ntrig][2]->Fill(itl3muIOHit->pt());
1964  hphi_IOHit[ntrig][2]->Fill(itl3muIOHit->phi());
1965  heta_IOHit[ntrig][2]->Fill(itl3muIOHit->eta());
1966  hetaphi_IOHit[ntrig][2]->Fill(itl3muIOHit->phi(),itl3muIOHit->eta());
1967  hptphi_IOHit[ntrig][2]->Fill(itl3muIOHit->pt(),itl3muIOHit->phi());
1968  hpteta_IOHit[ntrig][2]->Fill(itl3muIOHit->pt(),itl3muIOHit->eta());
1969 
1970  hd0_IOHit[ntrig][2]->Fill(itl3muIOHit->d0());
1971  if( !recoBeamSpotHandle.failedToGet()) {
1972  hdz_IOHit[ntrig][2]->Fill(itl3muIOHit->dz(beamSpot.position()));
1973  hdr_IOHit[ntrig][2]->Fill(itl3muIOHit->dxy(beamSpot.position()));
1974  }
1975  //hpt_l3muIOHit[ntrig][2]->Fill(itl3muIOHit->pt());
1976  }
1977  }
1978  // l3 muon tracker track
1979  std::vector<reco::Track>::const_iterator itl3tktrk;
1980  if( l3tktrk.failedToGet() && l3tktrk.isValid() ) {
1981  hNMu_trk[ntrig][2]->Fill(l3tktrk->size());
1982  for( itl3tktrk = l3tktrk->begin(); itl3tktrk != l3tktrk->end(); itl3tktrk++ ) {
1983  hNMu_trk_comp[ntrig][2]->Fill(0);
1984  hcharge_trk[ntrig][2]->Fill(itl3tktrk->charge());
1985  hpt_trk[ntrig][2]->Fill(itl3tktrk->pt());
1986  hphi_trk[ntrig][2]->Fill(itl3tktrk->phi());
1987  heta_trk[ntrig][2]->Fill(itl3tktrk->eta());
1988  hetaphi_trk[ntrig][2]->Fill(itl3tktrk->phi(),itl3tktrk->eta());
1989  hptphi_trk[ntrig][2]->Fill(itl3tktrk->pt(),itl3tktrk->phi());
1990  hpteta_trk[ntrig][2]->Fill(itl3tktrk->pt(),itl3tktrk->eta());
1991 
1992  //hd0_trk[ntrig][2]->Fill(tk->d0());
1993  hd0_trk[ntrig][2]->Fill(itl3tktrk->d0());
1994  if( !recoBeamSpotHandle.failedToGet()) {
1995  hdz_trk[ntrig][2]->Fill(itl3tktrk->dz(beamSpot.position()));
1996  hdr_trk[ntrig][2]->Fill(itl3tktrk->dxy(beamSpot.position()));
1997  }
1998  }
1999  }
2000  // l3 OIState tracker info.
2001  std::vector<reco::Track>::const_iterator itl3trkOIState;
2002  if( !l3trkOIState.failedToGet() && l3trkOIState.isValid() && l3trkOIState->size() > 0 ) {
2003  hNMu_trk_OIState[ntrig][2]->Fill(l3trkOIState->size());
2004  for( itl3trkOIState = l3trkOIState->begin(); itl3trkOIState != l3trkOIState->end(); itl3trkOIState++ ) {
2005 
2006  hNMu_trk_comp[ntrig][2]->Fill(1);
2007  hcharge_trk_OIState[ntrig][2]->Fill(itl3trkOIState->charge());
2008  hpt_trk_OIState[ntrig][2]->Fill(itl3trkOIState->pt());
2009  hphi_trk_OIState[ntrig][2]->Fill(itl3trkOIState->phi());
2010  heta_trk_OIState[ntrig][2]->Fill(itl3trkOIState->eta());
2011  hetaphi_trk_OIState[ntrig][2]->Fill(itl3trkOIState->phi(),itl3trkOIState->eta());
2012  hptphi_trk_OIState[ntrig][2]->Fill(itl3trkOIState->pt(),itl3trkOIState->phi());
2013  hpteta_trk_OIState[ntrig][2]->Fill(itl3trkOIState->pt(),itl3trkOIState->eta());
2014 
2015  hd0_trk_OIState[ntrig][2]->Fill(itl3trkOIState->d0());
2016  if( !recoBeamSpotHandle.failedToGet()) {
2017  hdz_trk_OIState[ntrig][2]->Fill(itl3trkOIState->dz(beamSpot.position()));
2018  hdr_trk_OIState[ntrig][2]->Fill(itl3trkOIState->dxy(beamSpot.position()));
2019  }
2020  }
2021  }
2022  // l3 OIHit tracker info.
2023  std::vector<reco::Track>::const_iterator itl3trkOIHit;
2024  if( !l3trkOIHit.failedToGet() && l3trkOIHit.isValid() && l3trkOIHit->size() >0 ) {
2025  hNMu_trk_OIHit[ntrig][2]->Fill(l3trkOIHit->size());
2026  for( itl3trkOIHit = l3trkOIHit->begin(); itl3trkOIHit != l3trkOIHit->end(); itl3trkOIHit++ ) {
2027 
2028  hNMu_trk_comp[ntrig][2]->Fill(2);
2029  hcharge_trk_OIHit[ntrig][2]->Fill(itl3trkOIHit->charge());
2030  hpt_trk_OIHit[ntrig][2]->Fill(itl3trkOIHit->pt());
2031  hphi_trk_OIHit[ntrig][2]->Fill(itl3trkOIHit->phi());
2032  heta_trk_OIHit[ntrig][2]->Fill(itl3trkOIHit->eta());
2033  hetaphi_trk_OIHit[ntrig][2]->Fill(itl3trkOIHit->phi(),itl3trkOIHit->eta());
2034  hptphi_trk_OIHit[ntrig][2]->Fill(itl3trkOIHit->pt(),itl3trkOIHit->phi());
2035  hpteta_trk_OIHit[ntrig][2]->Fill(itl3trkOIHit->pt(),itl3trkOIHit->eta());
2036 
2037  hd0_trk_OIHit[ntrig][2]->Fill(itl3trkOIHit->d0());
2038  if( !recoBeamSpotHandle.failedToGet()) {
2039  hdz_trk_OIHit[ntrig][2]->Fill(itl3trkOIHit->dz(beamSpot.position()));
2040  hdr_trk_OIHit[ntrig][2]->Fill(itl3trkOIHit->dxy(beamSpot.position()));
2041  }
2042  }
2043  }
2044  // l3 IOHit tracker info.
2045  std::vector<reco::Track>::const_iterator itl3trkIOHit;
2046  if( !l3trkIOHit.failedToGet() && l3trkIOHit.isValid() && l3trkIOHit->size() > 0 ) {
2047  hNMu_trk_IOHit[ntrig][2]->Fill(l3trkIOHit->size());
2048  for( itl3trkIOHit = l3trkIOHit->begin(); itl3trkIOHit != l3trkIOHit->end(); itl3trkIOHit++ ) {
2049 
2050  hNMu_trk_comp[ntrig][2]->Fill(3);
2051  hcharge_trk_IOHit[ntrig][2]->Fill(itl3trkIOHit->charge());
2052  hpt_trk_IOHit[ntrig][2]->Fill(itl3trkIOHit->pt());
2053  hphi_trk_IOHit[ntrig][2]->Fill(itl3trkIOHit->phi());
2054  heta_trk_IOHit[ntrig][2]->Fill(itl3trkIOHit->eta());
2055  hetaphi_trk_IOHit[ntrig][2]->Fill(itl3trkIOHit->phi(),itl3trkIOHit->eta());
2056  hptphi_trk_IOHit[ntrig][2]->Fill(itl3trkIOHit->pt(),itl3trkIOHit->phi());
2057  hpteta_trk_IOHit[ntrig][2]->Fill(itl3trkIOHit->pt(),itl3trkIOHit->eta());
2058 
2059  hd0_trk_IOHit[ntrig][2]->Fill(itl3trkIOHit->d0());
2060  if( !recoBeamSpotHandle.failedToGet()) {
2061  hdr_trk_IOHit[ntrig][2]->Fill(itl3trkIOHit->dxy(beamSpot.position()));
2062  hdz_trk_IOHit[ntrig][2]->Fill(itl3trkIOHit->dz(beamSpot.position()));
2063  }
2064  }
2065  }
2066 
2067  for( int level = 0; level < 2; level++ ) {
2068  for( int nbin = 1; nbin < _hpt1[ntrig][level]->GetNbinsX()+1; nbin++ ) {
2069  if( _hpt1[ntrig][level]->GetBinContent(nbin) != 0 ) {
2070  double frac = _hpt2[ntrig][level]->GetBinContent(nbin)/_hpt1[ntrig][level]->GetBinContent(nbin);
2071  double err = sqrt(frac*fabs(1 - frac)/_hpt1[ntrig][level]->GetBinContent(nbin));
2072  hptfrac[ntrig][level]->setBinContent(nbin, frac);
2073  hptfrac[ntrig][level]->setBinError(nbin, err);
2074  }
2075  if( _heta1[ntrig][level]->GetBinContent(nbin) != 0 ) {
2076  double frac = _heta2[ntrig][level]->GetBinContent(nbin)/_heta1[ntrig][level]->GetBinContent(nbin);
2077  double err = sqrt(frac*fabs(1 - frac)/_heta1[ntrig][level]->GetBinContent(nbin));
2078  hetafrac[ntrig][level]->setBinContent(nbin, frac);
2079  hetafrac[ntrig][level]->setBinError(nbin, err);
2080  }
2081  if( _hphi1[ntrig][level]->GetBinContent(nbin) != 0 ) {
2082  double frac = _hphi2[ntrig][level]->GetBinContent(nbin)/_hphi1[ntrig][level]->GetBinContent(nbin);
2083  double err = sqrt(frac*fabs(1 - frac)/_hphi1[ntrig][level]->GetBinContent(nbin));
2084  hphifrac[ntrig][level]->setBinContent(nbin, frac);
2085  hphifrac[ntrig][level]->setBinError(nbin, err);
2086  }
2087  else {
2088  hptfrac[ntrig][level]->setBinContent(nbin, 0.0);
2089  hetafrac[ntrig][level]->setBinContent(nbin, 0.0);
2090  hphifrac[ntrig][level]->setBinContent(nbin, 0.0);
2091  hptfrac[ntrig][level]->setBinError(nbin, 0.0);
2092  hetafrac[ntrig][level]->setBinError(nbin, 0.0);
2093  hphifrac[ntrig][level]->setBinError(nbin, 0.0);
2094  }
2095  }
2096  }
2097  }
2098 
2099 
2100  // Tower
2102  if( !l2mucands.failedToGet() && l2mucands->size() != 0 )
2103  event.getByLabel(edm::InputTag("hltTowerMakerForMuons"), caloTower);
2104  for( int ntrig = 0; ntrig < nTrigs; ntrig++ ) {
2105  if( !FiredTriggers[ntrig] ) continue;
2106  if( caloTower.isValid() ) {
2108  for( itower = caloTower->begin(); itower != caloTower->end(); ++itower ) {
2109  if( (*itower).et() == 0 ) continue;
2110 
2111  // deltaR with l2muon
2112  if (!l2mucands.failedToGet() && l2mucands.isValid() ) {
2113  for (cand=l2mucands->begin(); cand!=l2mucands->end(); ++cand) {
2114  reco::TrackRef l2tk= cand->get<reco::TrackRef>();
2115  double deltaR_l2 = reco::deltaR(*l2tk, (*itower));
2116  htowerdRL2[ntrig]->Fill(deltaR_l2);
2117  }
2118  }
2119  // deltaR with l3muon
2120  if (!l3mucands.failedToGet() && l3mucands.isValid() ) {
2121  for (cand=l3mucands->begin(); cand!=l3mucands->end(); ++cand) {
2122  reco::TrackRef l3tk= cand->get<reco::TrackRef>();
2123  double deltaR_l3 = reco::deltaR(*l3tk, (*itower));
2124  htowerdRL3[ntrig]->Fill(deltaR_l3);
2125  }
2126  }
2127  htowerEt[ntrig]->Fill((*itower).et());
2128  htowerPhi[ntrig]->Fill((*itower).phi());
2129  htowerEta[ntrig]->Fill((*itower).eta());
2130 
2131  // energy contributions from different detectors
2132  // energy in HO ("outerEnergy")is not included in "hadEnergy"
2133  htowerOuterEnergy[ntrig]->Fill((*itower).outerEnergy());
2134  htowerHadEnergy[ntrig]->Fill((*itower).hadEnergy());
2135  htowerEmEnergy[ntrig]->Fill((*itower).emEnergy());
2136 
2137  htowerOuterEt[ntrig]->Fill((*itower).outerEt());
2138  htowerHadEt[ntrig]->Fill((*itower).hadEt());
2139  htowerEmEt[ntrig]->Fill((*itower).emEt());
2140 
2141  // 2D plots
2142  htowerPhiOuterEt[ntrig]->Fill((*itower).phi(), (*itower).outerEt());
2143  htowerPhiHadEt[ntrig]->Fill((*itower).phi(), (*itower).hadEt());
2144  htowerPhiEmEt[ntrig]->Fill((*itower).phi(), (*itower).emEt());
2145  htowerEtaOuterEt[ntrig]->Fill((*itower).eta(), (*itower).outerEt());
2146  htowerEtaHadEt[ntrig]->Fill((*itower).eta(), (*itower).hadEt());
2147  htowerEtaEmEt[ntrig]->Fill((*itower).eta(), (*itower).emEt());
2148  }
2149  }
2150  }
2151 }
2152 
2153 
2154 
2155 
2156 //--------------------------------------------------------
2158  const edm::EventSetup& eventSetup) {
2159 }
2160 //--------------------------------------------------------
2161 void HLTMuonDQMSource::endRun(const edm::Run& run, const edm::EventSetup& eventSetup){
2162 }
2163 //--------------------------------------------------------
2165  edm::LogInfo("HLTMonMuon") << "analyzed " << counterEvt_ << " events";
2166  //std::cout << "analyzed = " << counterEvt_ << " , triggered = " << nTrig_ << std::endl;
2167 
2168 
2169  //if (outputFile_.size() != 0 && dbe_)
2170  //dbe_->save(outputFile_);
2171 
2172  return;
2173 }
#define LogDebug(id)
MonitorElement * hNMu_trk_OIState[NTRIG][5]
MonitorElement * hseedptrelres[NTRIG][2]
const double beta
const double TwoPi
MonitorElement * hpt_trk[NTRIG][5]
T getParameter(std::string const &) const
MonitorElement * hisoL2[NTRIG]
MonitorElement * hdz_IOHit[NTRIG][5]
T getUntrackedParameter(std::string const &, T const &) const
int i
Definition: DBlmapReader.cc:9
MonitorElement * hd0_trk_IOHit[NTRIG][5]
MonitorElement * hptpullpt[NTRIG]
MonitorElement * heta_trk[NTRIG][5]
void setBinContent(int binx, double content)
set content of bin (1-D)
edm::InputTag l2collectionTag_
MonitorElement * heta_OIHit[NTRIG][5]
MonitorElement * htowerEtaHadEt[NTRIG]
edm::InputTag l3muonsIOHit_
std::string outputFile_
int numberOfValidHits() const
Definition: HitPattern.cc:321
edm::InputTag l3trkfindingOIState_
edm::InputTag l3trkfindingOIHit_
edm::InputTag l3seedscollectionTag_
MonitorElement * htowerHadEt[NTRIG]
MonitorElement * hphires_L3L3trk[NTRIG][5]
MonitorElement * hphi_IOHit[NTRIG][5]
T perp() const
Definition: PV3DBase.h:66
MonitorElement * hnHits[NTRIG][4]
MonitorElement * hptphi_trk_OIHit[NTRIG][5]
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
Definition: DQMStore.cc:514
MonitorElement * heta_IOHit[NTRIG][5]
MonitorElement * hL2muonIsoDR[NTRIG]
int numberOfValidMuonHits() const
Definition: HitPattern.cc:346
MonitorElement * hptrelres_L3L3trk[NTRIG][5]
edm::InputTag l3seedscollectionTagIOHit_
MonitorElement * hetaphi_trk_IOHit[NTRIG][5]
MonitorElement * htowerdRL3[NTRIG]
MonitorElement * hetares[NTRIG][3]
MonitorElement * hdr_trk[NTRIG][5]
MonitorElement * hetapulleta[NTRIG]
MonitorElement * hnTkValidHits[NTRIG]
MonitorElement * hNMu[NTRIG][5]
edm::InputTag l3tktrk_
MonitorElement * hpteta_trk_OIState[NTRIG][5]
edm::InputTag l3collectionTag_
MonitorElement * hdrphi[NTRIG][2]
MonitorElement * hseedphirelres[NTRIG][2]
MonitorElement * hptrelrespt[NTRIG][3]
MonitorElement * hetaphi_OIState[NTRIG][5]
Geom::Phi< T > phi() const
Definition: PV3DBase.h:63
MonitorElement * hpteta_trk_OIHit[NTRIG][5]
std::vector< CaloTower >::const_iterator const_iterator
MonitorElement * hdimumass[NTRIG][2]
void setBinLabel(int bin, const std::string &label, int axis=1)
set bin label for x, y or z axis (axis=1, 2, 3 respectively)
edm::InputTag l3trkIOHit_
MonitorElement * hdz_OIState[NTRIG][5]
MonitorElement * hphipull[NTRIG]
MonitorElement * hcharge_IOHit[NTRIG][5]
GlobalPoint globalPosition() const
MonitorElement * hpt_trk_IOHit[NTRIG][5]
MonitorElement * hd0_trk[NTRIG][5]
#define NULL
Definition: scimark2.h:8
MonitorElement * hNMu_trk[NTRIG][5]
MonitorElement * hpt_trk_OIHit[NTRIG][5]
MonitorElement * hetares_L3L3trk[NTRIG][5]
MonitorElement * hphi_OIState[NTRIG][5]
TH1D * _hphi1[NTRIG][2]
MonitorElement * hpt_OIState[NTRIG][5]
MonitorElement * hphifrac[NTRIG][2]
MonitorElement * hisoL3[NTRIG]
MonitorElement * hetaphi_OIHit[NTRIG][5]
double coneSize_
every n events
T eta() const
void endLuminosityBlock(const edm::LuminosityBlock &lumiBlock, const edm::EventSetup &eventSetup)
DQM Client Diagnostic.
double getEntries(void) const
get # of entries
MonitorElement * hphi_trk_IOHit[NTRIG][5]
MonitorElement * hetafrac[NTRIG][2]
MonitorElement * hphipullphi[NTRIG]
MonitorElement * htowerEta[NTRIG]
MonitorElement * htowerEtaOuterEt[NTRIG]
MonitorElement * hphirelresphi[NTRIG][3]
Strings const & triggerNames() const
Definition: TriggerNames.cc:24
MonitorElement * hd0_trk_OIHit[NTRIG][5]
MonitorElement * heta_OIState[NTRIG][5]
std::vector< TPRegexp > filters
Definition: eve_filter.cc:25
MonitorElement * hcharge_trk_OIHit[NTRIG][5]
MonitorElement * htowerPhiEmEt[NTRIG]
void endRun(const edm::Run &run, const edm::EventSetup &eventSetup)
EndRun.
edm::InputTag l3muons_
MonitorElement * hptphi_OIState[NTRIG][5]
void endJob()
Endjob.
MonitorElement * hphiresphi[NTRIG][3]
MonitorElement * hseedptres[NTRIG][2]
int numberOfValidTrackerHits() const
Definition: HitPattern.cc:333
MonitorElement * hptphi[NTRIG][5]
MonitorElement * hseedNMuper[NTRIG][2]
MonitorElement * htowerEt[NTRIG]
MonitorElement * hnMuValidHits[NTRIG]
double deltaR(double eta1, double phi1, double eta2, double phi2)
Definition: deltaR.h:19
void Fill(long long x)
MonitorElement * htowerdRL2[NTRIG]
int nTrig_
counter
MonitorElement * htowerHadEnergy[NTRIG]
MonitorElement * hdz0eta[NTRIG][2]
MonitorElement * hl1quality[NTRIG]
MonitorElement * hdr_OIHit[NTRIG][5]
MonitorElement * hnStripValidHits[NTRIG]
MonitorElement * hdr[NTRIG][2]
MonitorElement * hphi_trk_OIState[NTRIG][5]
MonitorElement * hcharge_OIHit[NTRIG][5]
MonitorElement * hd0phi[NTRIG][2]
MonitorElement * hdz_trk_OIHit[NTRIG][5]
bool isNonnull() const
Checks for non-null.
Definition: Ref.h:249
void analyze(const edm::Event &event, const edm::EventSetup &eventSetup)
Fake Analyze.
MonitorElement * heta_trk_OIState[NTRIG][5]
void beginRun(const edm::Run &run, const edm::EventSetup &eventSetup)
BeginRun.
MonitorElement * hetareseta[NTRIG][3]
MonitorElement * hptpull[NTRIG]
TH1D * _hpt1[NTRIG][2]
unsigned int triggerIndex(std::string const &name) const
Definition: TriggerNames.cc:32
std::string striggers_[20]
TH1D * _heta1[NTRIG][2]
int numberOfValidStripHits() const
Definition: HitPattern.cc:398
MonitorElement * bookString(const char *name, const char *value)
Book string.
Definition: DQMStore.cc:480
MonitorElement * hd0_OIState[NTRIG][5]
added plots
T sqrt(T t)
Definition: SSEVec.h:28
MonitorElement * hpteta_trk[NTRIG][5]
MonitorElement * htowerOuterEnergy[NTRIG]
std::string monitorName_
MonitorElement * hptrespt[NTRIG][3]
int ntrig
Definition: AMPTWrapper.h:163
MonitorElement * hchargeconv[NTRIG][3]
int numberOfValidPixelHits() const
Definition: HitPattern.cc:359
TH1D * _hphi2[NTRIG][2]
MonitorElement * hphi_norm[NTRIG][5]
MonitorElement * hcharge_trk[NTRIG][5]
MonitorElement * hcharge[NTRIG][5]
int prescaleEvt_
mutriggered events
MonitorElement * hetaphi_trk[NTRIG][5]
int numberOfHits() const
Definition: HitPattern.cc:312
MonitorElement * hpt[NTRIG][5]
int j
Definition: DBlmapReader.cc:9
edm::InputTag l2seedscollectionTag_
MonitorElement * htowerEmEt[NTRIG]
void beginLuminosityBlock(const edm::LuminosityBlock &lumiBlock, const edm::EventSetup &eventSetup)
MonitorElement * hpt_trk_OIState[NTRIG][5]
MonitorElement * hptphi_trk_IOHit[NTRIG][5]
MonitorElement * heta_trk_IOHit[NTRIG][5]
TrajectoryStateOnSurface transientState(const PTrajectoryStateOnDet &ts, const Surface *surface, const MagneticField *field) const
MonitorElement * hphirelres_L3L3trk[NTRIG][5]
MonitorElement * hcharge_trk_OIState[NTRIG][5]
edm::ParameterSet parameters_
edm::InputTag l3isolationTag_
MonitorElement * hdr_trk_IOHit[NTRIG][5]
void setBinError(int binx, double error)
set uncertainty on content of bin (1-D)
MonitorElement * hd0_trk_OIState[NTRIG][5]
MonitorElement * htowerEtaEmEt[NTRIG]
MonitorElement * bookProfile(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, const char *option="s")
Definition: DQMStore.cc:828
MonitorElement * hdz_trk_IOHit[NTRIG][5]
MonitorElement * hdr_trk_OIState[NTRIG][5]
edm::InputTag l3trkOIHit_
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger but the state exists so we define the behavior If all triggers are the negative crieriion will lead to accepting the event(this again matches the behavior of"!*"before the partial wildcard feature was incorporated).The per-event"cost"of each negative criterion with multiple relevant triggers is about the same as!*was in the past
bool isValid() const
Definition: HandleBase.h:76
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:355
MonitorElement * hptphi_IOHit[NTRIG][5]
MonitorElement * hNMu_OIHit[NTRIG][5]
MonitorElement * hetaphi_trk_OIHit[NTRIG][5]
MonitorElement * hdr_IOHit[NTRIG][5]
MonitorElement * hcharge_OIState[NTRIG][5]
MonitorElement * hptphi_trk_OIState[NTRIG][5]
double deltaR(double eta1, double eta2, double phi1, double phi2)
Definition: TreeUtility.cc:17
MonitorElement * hpteta_trk_IOHit[NTRIG][5]
MonitorElement * hetaphi_trk_OIState[NTRIG][5]
MonitorElement * hptres[NTRIG][3]
bool failedToGet() const
Definition: HandleBase.h:80
MonitorElement * hNMu_IOHit[NTRIG][5]
Definition: DetId.h:20
MonitorElement * hpteta_IOHit[NTRIG][5]
MonitorElement * hseedetares[NTRIG][2]
MonitorElement * hseedetarelres[NTRIG][2]
MonitorElement * htowerPhiHadEt[NTRIG]
MonitorElement * hNMu_comp[NTRIG][5]
edm::InputTag l3muonsOIHit_
MonitorElement * hphi_trk_OIHit[NTRIG][5]
MonitorElement * hnValidHits[NTRIG]
edm::InputTag l3muonsOIState_
MonitorElement * hNMu_l3seed_comp[NTRIG][5]
edm::InputTag l3seedscollectionTagOIState_
MonitorElement * hphi[NTRIG][5]
void beginJob()
BeginJob.
edm::InputTag l3seedscollectionTagOIHit_
const T & get() const
Definition: EventSetup.h:55
MonitorElement * hseedphires[NTRIG][2]
MonitorElement * hd0_OIHit[NTRIG][5]
const unsigned int detId() const
MonitorElement * hdr_trk_OIHit[NTRIG][5]
#define NBINS
Definition: FineDelayTask.cc:8
T const * product() const
Definition: ESHandle.h:62
MonitorElement * hd0[NTRIG][2]
MonitorElement * hptres_L3L3trk[NTRIG][5]
TH1D * _heta2[NTRIG][2]
MonitorElement * hptrelres[NTRIG][3]
MonitorElement * hptphi_OIHit[NTRIG][5]
MonitorElement * hphirelres[NTRIG][3]
char state
Definition: procUtils.cc:75
MonitorElement * hetapull[NTRIG]
std::vector< std::string > theDirectoryName
static const int NTRIG
MonitorElement * hdr_OIState[NTRIG][5]
T eta() const
Definition: PV3DBase.h:70
MonitorElement * hdz_OIHit[NTRIG][5]
MonitorElement * hetarelres_L3L3trk[NTRIG][5]
void tagContents(const std::string &path, unsigned int myTag)
tag all children of folder (does NOT include subfolders)
Definition: DQMStore.cc:1182
GlobalVector globalMomentum() const
MonitorElement * hphires[NTRIG][3]
MonitorElement * hdzeta[NTRIG][2]
HLTMuonDQMSource(const edm::ParameterSet &)
MonitorElement * hptfrac[NTRIG][2]
MonitorElement * htowerOuterEt[NTRIG]
MonitorElement * heta[NTRIG][5]
int getNbinsX(void) const
get # of bins in X-axis
MonitorElement * htowerEmEnergy[NTRIG]
MonitorElement * htowerPhi[NTRIG]
MonitorElement * hNMu_trk_OIHit[NTRIG][5]
MonitorElement * hdz0[NTRIG][2]
MonitorElement * hptphi_trk[NTRIG][5]
edm::InputTag l3trkOIState_
std::vector< std::string > theHLTCollectionLevel
MonitorElement * hpteta_OIState[NTRIG][5]
const Point & position() const
position
Definition: BeamSpot.h:63
tuple level
Definition: testEve_cfg.py:34
MonitorElement * hdz_trk[NTRIG][5]
ProductID id() const
Accessor for product ID.
Definition: Ref.h:255
MonitorElement * hNMu_trk_IOHit[NTRIG][5]
edm::InputTag l3trkfindingIOHit_
MonitorElement * heta_trk_OIHit[NTRIG][5]
void showDirStructure(void) const
Definition: DQMStore.cc:2554
edm::InputTag l2isolationTag_
MonitorElement * hpteta_OIHit[NTRIG][5]
MonitorElement * hetaphi[NTRIG][5]
MonitorElement * hL3muonIsoDR[NTRIG]
MonitorElement * herr0[NTRIG][2]
MonitorElement * book2D(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY)
Book 2D histogram.
Definition: DQMStore.cc:642
MonitorElement * htowerPhiOuterEt[NTRIG]
T const * get() const
Returns C++ pointer to the item.
Definition: Ref.h:241
MonitorElement * hNMu_OIState[NTRIG][5]
MonitorElement * hdz_trk_OIState[NTRIG][5]
MonitorElement * hpt_IOHit[NTRIG][5]
MonitorElement * hpteta[NTRIG][5]
edm::InputTag TrigResultInput
MonitorElement * hNMu_trk_comp[NTRIG][5]
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
MonitorElement * hetaphi_IOHit[NTRIG][5]
MonitorElement * hcharge_trk_IOHit[NTRIG][5]
std::vector< std::string > theTriggerBits
MonitorElement * hetarelres[NTRIG][3]
MonitorElement * hpt_OIHit[NTRIG][5]
MonitorElement * hdz[NTRIG][2]
MonitorElement * hphi_OIHit[NTRIG][5]
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:232
TH1D * _hpt2[NTRIG][2]
MonitorElement * hnPixelValidHits[NTRIG]
Definition: Run.h:32
MonitorElement * hetarelreseta[NTRIG][3]
MonitorElement * hd0_IOHit[NTRIG][5]
MonitorElement * hphi_trk[NTRIG][5]
Definition: DDAxes.h:10