CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
SiPixelDigiSource.cc
Go to the documentation of this file.
1 
2 // -*- C++ -*-
3 //
4 // Package: SiPixelMonitorDigi
5 // Class: SiPixelDigiSource
6 //
14 //
15 // Original Author: Vincenzo Chiochia
16 // Created:
17 // $Id: SiPixelDigiSource.cc,v 1.56 2012/08/03 09:03:10 duggan Exp $
18 //
19 //
21 // Framework
25 // DQM Framework
28 // Geometry
33 // DataFormats
38 //
39 #include <string>
40 #include <stdlib.h>
41 #include <iostream>
42 #include <fstream>
43 
44 using namespace std;
45 using namespace edm;
46 
48  conf_(iConfig),
49  src_( conf_.getParameter<edm::InputTag>( "src" ) ),
50  saveFile( conf_.getUntrackedParameter<bool>("saveFile",false) ),
51  isPIB( conf_.getUntrackedParameter<bool>("isPIB",false) ),
52  slowDown( conf_.getUntrackedParameter<bool>("slowDown",false) ),
53  modOn( conf_.getUntrackedParameter<bool>("modOn",true) ),
54  twoDimOn( conf_.getUntrackedParameter<bool>("twoDimOn",true) ),
55  twoDimModOn( conf_.getUntrackedParameter<bool>("twoDimModOn",true) ),
56  twoDimOnlyLayDisk( conf_.getUntrackedParameter<bool>("twoDimOnlyLayDisk",false) ),
57  hiRes( conf_.getUntrackedParameter<bool>("hiRes",false) ),
58  reducedSet( conf_.getUntrackedParameter<bool>("reducedSet",false) ),
59  ladOn( conf_.getUntrackedParameter<bool>("ladOn",false) ),
60  layOn( conf_.getUntrackedParameter<bool>("layOn",false) ),
61  phiOn( conf_.getUntrackedParameter<bool>("phiOn",false) ),
62  ringOn( conf_.getUntrackedParameter<bool>("ringOn",false) ),
63  bladeOn( conf_.getUntrackedParameter<bool>("bladeOn",false) ),
64  diskOn( conf_.getUntrackedParameter<bool>("diskOn",false) ),
65  bigEventSize( conf_.getUntrackedParameter<int>("bigEventSize",1000) )
66 {
68  LogInfo ("PixelDQM") << "SiPixelDigiSource::SiPixelDigiSource: Got DQM BackEnd interface"<<endl;
69 }
70 
71 
73 {
74  // do anything here that needs to be done at desctruction time
75  // (e.g. close files, deallocate resources etc.)
76  LogInfo ("PixelDQM") << "SiPixelDigiSource::~SiPixelDigiSource: Destructor"<<endl;
77 }
78 
79 
81  firstRun = true;
82  // find a FED# for the current detId:
83  ifstream infile(edm::FileInPath("DQM/SiPixelMonitorClient/test/detId.dat").fullPath().c_str(),ios::in);
84  int nModsInFile=0;
85  assert(!infile.fail());
86  while(!infile.eof()&&nModsInFile<1440) {
87  infile >> I_name[nModsInFile] >> I_detId[nModsInFile] >> I_fedId[nModsInFile] >> I_linkId1[nModsInFile] >> I_linkId2[nModsInFile];
88  //cout<<nModsInFile<<" , "<<I_name[nModsInFile]<<" , "<<I_detId[nModsInFile]<<" , "<<I_fedId[nModsInFile]<<" , "<<I_linkId[nModsInFile]<<endl; ;
89  nModsInFile++;
90  }
91  infile.close();
92 }
93 
95  LogInfo ("PixelDQM") << " SiPixelDigiSource::beginJob - Initialisation ... " << std::endl;
96  LogInfo ("PixelDQM") << "Mod/Lad/Lay/Phi " << modOn << "/" << ladOn << "/"
97  << layOn << "/" << phiOn << std::endl;
98  LogInfo ("PixelDQM") << "Blade/Disk/Ring" << bladeOn << "/" << diskOn << "/"
99  << ringOn << std::endl;
100 
101  LogInfo ("PixelDQM") << "2DIM IS " << twoDimOn << " and set to high resolution? " << hiRes << "\n";
102 
103  if(firstRun){
104  eventNo = 0;
105  lumSec = 0;
106  nLumiSecs = 0;
107  nBigEvents = 0;
108  nBPIXDigis = 0;
109  nFPIXDigis = 0;
110  for(int i=0; i!=40; i++) nDigisPerFed[i]=0;
111  for(int i=0; i!=4; i++) nDigisPerDisk[i]=0;
112  nDP1P1M1 = 0;
113  nDP1P1M2 = 0;
114  nDP1P1M3 = 0;
115  nDP1P1M4 = 0;
116  nDP1P2M1 = 0;
117  nDP1P2M2 = 0;
118  nDP1P2M3 = 0;
119  nDP2P1M1 = 0;
120  nDP2P1M2 = 0;
121  nDP2P1M3 = 0;
122  nDP2P1M4 = 0;
123  nDP2P2M1 = 0;
124  nDP2P2M2 = 0;
125  nDP2P2M3 = 0;
126  nDM1P1M1 = 0;
127  nDM1P1M2 = 0;
128  nDM1P1M3 = 0;
129  nDM1P1M4 = 0;
130  nDM1P2M1 = 0;
131  nDM1P2M2 = 0;
132  nDM1P2M3 = 0;
133  nDM2P1M1 = 0;
134  nDM2P1M2 = 0;
135  nDM2P1M3 = 0;
136  nDM2P1M4 = 0;
137  nDM2P2M1 = 0;
138  nDM2P2M2 = 0;
139  nDM2P2M3 = 0;
140  nL1M1 = 0;
141  nL1M2 = 0;
142  nL1M3 = 0;
143  nL1M4 = 0;
144  nL2M1 = 0;
145  nL2M2 = 0;
146  nL2M3 = 0;
147  nL2M4 = 0;
148  nL3M1 = 0;
149  nL3M2 = 0;
150  nL3M3 = 0;
151  nL3M4 = 0;
152 
153 
154  // Build map
155  buildStructure(iSetup);
156  // Book Monitoring Elements
157  bookMEs();
158  firstRun = false;
159  }
160 }
161 
162 
164 
165  if(saveFile) {
166  LogInfo ("PixelDQM") << " SiPixelDigiSource::endJob - Saving Root File " << std::endl;
167  std::string outputFile = conf_.getParameter<std::string>("outputFile");
168  theDMBE->save( outputFile.c_str() );
169  }
170 
171 }
172 
173 //------------------------------------------------------------------
174 // Method called for every event
175 //------------------------------------------------------------------
177 {
178  eventNo++;
179  //cout<<"BIGFATEVENTNUMBER: "<<eventNo<<endl;
180 
181  // get input data
183  iEvent.getByLabel( src_, input );
184  if (!input.isValid()) return;
185  // Get DQM interface
187 
188  //float iOrbitSec = iEvent.orbitNumber()/11223.;
189  int bx = iEvent.bunchCrossing();
190  //long long tbx = (long long)iEvent.orbitNumber() * 3564 + bx;
191  int lumiSection = (int)iEvent.luminosityBlock();
192  int nEventDigis = 0; int nActiveModules = 0;
193  //int nEventBPIXDigis = 0; int nEventFPIXDigis = 0;
194 
195  if(modOn){
196  MonitorElement* meReset = theDMBE->get("Pixel/averageDigiOccupancy");
197  //if(meReset && eventNo%1000==0){
198  if(meReset && lumiSection%8==0){
199  meReset->Reset();
200  nBPIXDigis = 0;
201  nFPIXDigis = 0;
202  for(int i=0; i!=40; i++) nDigisPerFed[i]=0;
203  }
204  if (lumiSection%10==0){
205  //Now do resets for ROCuppancy maps every 10 ls
206  std::string baseDirs[2] = {"Pixel/Barrel", "Pixel/Endcap"};
207  for (int i = 0; i < 2; ++i){
208  theDMBE->cd(baseDirs[i]);
209  vector<string> shellDirs = theDMBE->getSubdirs();
210  for (vector<string>::const_iterator it = shellDirs.begin(); it != shellDirs.end(); it++) {
211  theDMBE->cd(*it);
212  vector<string> layDirs = theDMBE->getSubdirs();
213  for (vector<string>::const_iterator itt = layDirs.begin(); itt != layDirs.end(); itt++) {
214  theDMBE->cd(*itt);
215  vector<string> contents = theDMBE->getMEs();
216  for (vector<string>::const_iterator im = contents.begin(); im != contents.end(); im++) {
217  if ((*im).find("rocmap") == string::npos) continue;
218  MonitorElement* me = theDMBE->get((*itt)+"/"+(*im));
219  if(me) me->Reset();}}}}//end for contents//end for layDirs//end for shellDirs//end for bar/EC
220  }
221  }
222  if(!modOn){
223  MonitorElement* meReset = theDMBE->get("Pixel/averageDigiOccupancy");
224  if(meReset && lumiSection%1==0){
225  meReset->Reset();
226  nBPIXDigis = 0;
227  nFPIXDigis = 0;
228  for(int i=0; i!=40; i++) nDigisPerFed[i]=0;
229  }
230  }
231 
232  std::map<uint32_t,SiPixelDigiModule*>::iterator struct_iter;
233  for(int i=0; i!=192; i++) numberOfDigis[i]=0;
234  for(int i=0; i!=1152; i++) nDigisPerChan[i]=0;
235  for(int i=0; i!=4; i++) nDigisPerDisk[i]=0;
236  for (struct_iter = thePixelStructure.begin() ; struct_iter != thePixelStructure.end() ; struct_iter++) {
237  int numberOfDigisMod = (*struct_iter).second->fill(*input, modOn,
238  ladOn, layOn, phiOn,
239  bladeOn, diskOn, ringOn,
241  nDigisA, nDigisB);
242  if(numberOfDigisMod>0){
243  //if((*struct_iter).first == I_detId[39])
244  //std::cout << "FED " << (*struct_iter).first << " NDigis all modules..." << numberOfDigisMod << std::endl;
245  nEventDigis = nEventDigis + numberOfDigisMod;
246  nActiveModules++;
247  bool barrel = DetId((*struct_iter).first).subdetId() == static_cast<int>(PixelSubdetector::PixelBarrel);
248  bool endcap = DetId((*struct_iter).first).subdetId() == static_cast<int>(PixelSubdetector::PixelEndcap);
249  //if((*struct_iter).first >= 302055684 && (*struct_iter).first <= 302197792 ){ // Barrel
250  if(barrel){ // Barrel
251  //cout<<"AAbpix: "<<numberOfDigisMod<<" + "<<nBPIXDigis<<" = ";
252  nBPIXDigis = nBPIXDigis + numberOfDigisMod;
253  //cout<<nBPIXDigis<<endl;
254  for(int i=0; i!=768; ++i){
255  //cout<<"\t\t\t bpix: "<<i<<" , "<<(*struct_iter).first<<" , "<<I_detId[i]<<endl;
256  if((*struct_iter).first == I_detId[i]){
257  //if(I_fedId[i]>=32&&I_fedId[i]<=39) std::cout<<"Attention: a BPIX module matched to an FPIX FED!"<<std::endl;
258  nDigisPerFed[I_fedId[i]]=nDigisPerFed[I_fedId[i]]+numberOfDigisMod;
259  //cout<<"BPIX: "<<i<<" , "<<I_fedId[i]<<" , "<<numberOfDigisMod<<" , "<<nDigisPerFed[I_fedId[i]]<<endl;
260  int index1 = 0; int index2 = 0;
261  if(I_linkId1[i]>0) index1 = I_fedId[i]*36+(I_linkId1[i]-1);
262  if(I_linkId2[i]>0) index2 = I_fedId[i]*36+(I_linkId2[i]-1);
263  if(nDigisA>0 && I_linkId1[i]>0) nDigisPerChan[index1]=nDigisPerChan[index1]+nDigisA;
264  if(nDigisB>0 && I_linkId2[i]>0) nDigisPerChan[index2]=nDigisPerChan[index2]+nDigisB;
265  //if (index1==35 || index2==35) cout<<"BPIX 35: "<<I_detId[i]<<" : "<<I_fedId[i]<<" "<<I_linkId1[i]<<" , "<<I_fedId[i]<<" "<<I_linkId2[i]<<" , "<<nDigisA<<" , "<<nDigisB<<endl;
266  i=767;
267  }
268  }
269  //}else if((*struct_iter).first >= 343999748 && (*struct_iter).first <= 352477708 ){ // Endcap
270  }else if(endcap){ // Endcap
271 
272  //cout<<"AAfpix: "<<nFPIXDigis<<" = ";
273  nFPIXDigis = nFPIXDigis + numberOfDigisMod;
274  //cout<<nFPIXDigis<<endl;
275  PixelEndcapName::HalfCylinder side = PixelEndcapName(DetId((*struct_iter).first)).halfCylinder();
276  int disk = PixelEndcapName(DetId((*struct_iter).first)).diskName();
277  int blade = PixelEndcapName(DetId((*struct_iter).first)).bladeName();
278  int panel = PixelEndcapName(DetId((*struct_iter).first)).pannelName();
279  int module = PixelEndcapName(DetId((*struct_iter).first)).plaquetteName();
280  //std::cout<<"Endcap: "<<side<<" , "<<disk<<" , "<<blade<<" , "<<panel<<" , "<<std::endl;
281  int iter=0; int i=0;
282  if(side==PixelEndcapName::mI){
283  if(disk==1){
284  i=0;
285  if(panel==1){ if(module==1) nDM1P1M1+=numberOfDigisMod;
286  else if(module==2) nDM1P1M2+=numberOfDigisMod;
287  else if(module==3) nDM1P1M3+=numberOfDigisMod;
288  else if(module==4) nDM1P1M4+=numberOfDigisMod;}
289  else if(panel==2){ if(module==1) nDM1P2M1+=numberOfDigisMod;
290  else if(module==2) nDM1P2M2+=numberOfDigisMod;
291  else if(module==3) nDM1P2M3+=numberOfDigisMod; }
292  if(blade==1){ if(panel==1) iter=i; else if(panel==2) iter=i+1; }
293  if(blade==2){ if(panel==1) iter=i+2; else if(panel==2) iter=i+3; }
294  if(blade==3){ if(panel==1) iter=i+4; else if(panel==2) iter=i+5; }
295  if(blade==4){ if(panel==1) iter=i+6; else if(panel==2) iter=i+7; }
296  if(blade==5){ if(panel==1) iter=i+8; else if(panel==2) iter=i+9; }
297  if(blade==6){ if(panel==1) iter=i+10; else if(panel==2) iter=i+11; }
298  if(blade==7){ if(panel==1) iter=i+12; else if(panel==2) iter=i+13; }
299  if(blade==8){ if(panel==1) iter=i+14; else if(panel==2) iter=i+15; }
300  if(blade==9){ if(panel==1) iter=i+16; else if(panel==2) iter=i+17; }
301  if(blade==10){ if(panel==1) iter=i+18; else if(panel==2) iter=i+19; }
302  if(blade==11){ if(panel==1) iter=i+20; else if(panel==2) iter=i+21; }
303  if(blade==12){ if(panel==1) iter=i+22; else if(panel==2) iter=i+23; }
304  }else if(disk==2){
305  i=24;
306  if(panel==1){ if(module==1) nDM2P1M1+=numberOfDigisMod;
307  else if(module==2) nDM2P1M2+=numberOfDigisMod;
308  else if(module==3) nDM2P1M3+=numberOfDigisMod;
309  else if(module==4) nDM2P1M4+=numberOfDigisMod;}
310  else if(panel==2){ if(module==1) nDM2P2M1+=numberOfDigisMod;
311  else if(module==2) nDM2P2M2+=numberOfDigisMod;
312  else if(module==3) nDM2P2M3+=numberOfDigisMod; }
313  if(blade==1){ if(panel==1) iter=i; else if(panel==2) iter=i+1; }
314  if(blade==2){ if(panel==1) iter=i+2; else if(panel==2) iter=i+3; }
315  if(blade==3){ if(panel==1) iter=i+4; else if(panel==2) iter=i+5; }
316  if(blade==4){ if(panel==1) iter=i+6; else if(panel==2) iter=i+7; }
317  if(blade==5){ if(panel==1) iter=i+8; else if(panel==2) iter=i+9; }
318  if(blade==6){ if(panel==1) iter=i+10; else if(panel==2) iter=i+11; }
319  if(blade==7){ if(panel==1) iter=i+12; else if(panel==2) iter=i+13; }
320  if(blade==8){ if(panel==1) iter=i+14; else if(panel==2) iter=i+15; }
321  if(blade==9){ if(panel==1) iter=i+16; else if(panel==2) iter=i+17; }
322  if(blade==10){ if(panel==1) iter=i+18; else if(panel==2) iter=i+19; }
323  if(blade==11){ if(panel==1) iter=i+20; else if(panel==2) iter=i+21; }
324  if(blade==12){ if(panel==1) iter=i+22; else if(panel==2) iter=i+23; }
325  }
326  }else if(side==PixelEndcapName::mO){
327  if(disk==1){
328  i=48;
329  if(panel==1){ if(module==1) nDM1P1M1+=numberOfDigisMod;
330  else if(module==2) nDM1P1M2+=numberOfDigisMod;
331  else if(module==3) nDM1P1M3+=numberOfDigisMod;
332  else if(module==4) nDM1P1M4+=numberOfDigisMod;}
333  else if(panel==2){ if(module==1) nDM1P2M1+=numberOfDigisMod;
334  else if(module==2) nDM1P2M2+=numberOfDigisMod;
335  else if(module==3) nDM1P2M3+=numberOfDigisMod; }
336  if(blade==1){ if(panel==1) iter=i; else if(panel==2) iter=i+1; }
337  if(blade==2){ if(panel==1) iter=i+2; else if(panel==2) iter=i+3; }
338  if(blade==3){ if(panel==1) iter=i+4; else if(panel==2) iter=i+5; }
339  if(blade==4){ if(panel==1) iter=i+6; else if(panel==2) iter=i+7; }
340  if(blade==5){ if(panel==1) iter=i+8; else if(panel==2) iter=i+9; }
341  if(blade==6){ if(panel==1) iter=i+10; else if(panel==2) iter=i+11; }
342  if(blade==7){ if(panel==1) iter=i+12; else if(panel==2) iter=i+13; }
343  if(blade==8){ if(panel==1) iter=i+14; else if(panel==2) iter=i+15; }
344  if(blade==9){ if(panel==1) iter=i+16; else if(panel==2) iter=i+17; }
345  if(blade==10){ if(panel==1) iter=i+18; else if(panel==2) iter=i+19; }
346  if(blade==11){ if(panel==1) iter=i+20; else if(panel==2) iter=i+21; }
347  if(blade==12){ if(panel==1) iter=i+22; else if(panel==2) iter=i+23; }
348  }else if(disk==2){
349  i=72;
350  if(panel==1){ if(module==1) nDM2P1M1+=numberOfDigisMod;
351  else if(module==2) nDM2P1M2+=numberOfDigisMod;
352  else if(module==3) nDM2P1M3+=numberOfDigisMod;
353  else if(module==4) nDM2P1M4+=numberOfDigisMod;}
354  else if(panel==2){ if(module==1) nDM2P2M1+=numberOfDigisMod;
355  else if(module==2) nDM2P2M2+=numberOfDigisMod;
356  else if(module==3) nDM2P2M3+=numberOfDigisMod; }
357  if(blade==1){ if(panel==1) iter=i; else if(panel==2) iter=i+1; }
358  if(blade==2){ if(panel==1) iter=i+2; else if(panel==2) iter=i+3; }
359  if(blade==3){ if(panel==1) iter=i+4; else if(panel==2) iter=i+5; }
360  if(blade==4){ if(panel==1) iter=i+6; else if(panel==2) iter=i+7; }
361  if(blade==5){ if(panel==1) iter=i+8; else if(panel==2) iter=i+9; }
362  if(blade==6){ if(panel==1) iter=i+10; else if(panel==2) iter=i+11; }
363  if(blade==7){ if(panel==1) iter=i+12; else if(panel==2) iter=i+13; }
364  if(blade==8){ if(panel==1) iter=i+14; else if(panel==2) iter=i+15; }
365  if(blade==9){ if(panel==1) iter=i+16; else if(panel==2) iter=i+17; }
366  if(blade==10){ if(panel==1) iter=i+18; else if(panel==2) iter=i+19; }
367  if(blade==11){ if(panel==1) iter=i+20; else if(panel==2) iter=i+21; }
368  if(blade==12){ if(panel==1) iter=i+22; else if(panel==2) iter=i+23; }
369  }
370  }else if(side==PixelEndcapName::pI){
371  if(disk==1){
372  i=96;
373  if(panel==1){ if(module==1) nDP1P1M1+=numberOfDigisMod;
374  else if(module==2) nDP1P1M2+=numberOfDigisMod;
375  else if(module==3) nDP1P1M3+=numberOfDigisMod;
376  else if(module==4) nDP1P1M4+=numberOfDigisMod;}
377  else if(panel==2){ if(module==1) nDP1P2M1+=numberOfDigisMod;
378  else if(module==2) nDP1P2M2+=numberOfDigisMod;
379  else if(module==3) nDP1P2M3+=numberOfDigisMod; }
380  if(blade==1){ if(panel==1) iter=i; else if(panel==2) iter=i+1; }
381  if(blade==2){ if(panel==1) iter=i+2; else if(panel==2) iter=i+3; }
382  if(blade==3){ if(panel==1) iter=i+4; else if(panel==2) iter=i+5; }
383  if(blade==4){ if(panel==1) iter=i+6; else if(panel==2) iter=i+7; }
384  if(blade==5){ if(panel==1) iter=i+8; else if(panel==2) iter=i+9; }
385  if(blade==6){ if(panel==1) iter=i+10; else if(panel==2) iter=i+11; }
386  if(blade==7){ if(panel==1) iter=i+12; else if(panel==2) iter=i+13; }
387  if(blade==8){ if(panel==1) iter=i+14; else if(panel==2) iter=i+15; }
388  if(blade==9){ if(panel==1) iter=i+16; else if(panel==2) iter=i+17; }
389  if(blade==10){ if(panel==1) iter=i+18; else if(panel==2) iter=i+19; }
390  if(blade==11){ if(panel==1) iter=i+20; else if(panel==2) iter=i+21; }
391  if(blade==12){ if(panel==1) iter=i+22; else if(panel==2) iter=i+23; }
392  }else if(disk==2){
393  i=120;
394  if(panel==1){ if(module==1) nDP2P1M1+=numberOfDigisMod;
395  else if(module==2) nDP2P1M2+=numberOfDigisMod;
396  else if(module==3) nDP2P1M3+=numberOfDigisMod;
397  else if(module==4) nDP2P1M4+=numberOfDigisMod;}
398  else if(panel==2){ if(module==1) nDP2P2M1+=numberOfDigisMod;
399  else if(module==2) nDP2P2M2+=numberOfDigisMod;
400  else if(module==3) nDP2P2M3+=numberOfDigisMod; }
401  if(blade==1){ if(panel==1) iter=i; else if(panel==2) iter=i+1; }
402  if(blade==2){ if(panel==1) iter=i+2; else if(panel==2) iter=i+3; }
403  if(blade==3){ if(panel==1) iter=i+4; else if(panel==2) iter=i+5; }
404  if(blade==4){ if(panel==1) iter=i+6; else if(panel==2) iter=i+7; }
405  if(blade==5){ if(panel==1) iter=i+8; else if(panel==2) iter=i+9; }
406  if(blade==6){ if(panel==1) iter=i+10; else if(panel==2) iter=i+11; }
407  if(blade==7){ if(panel==1) iter=i+12; else if(panel==2) iter=i+13; }
408  if(blade==8){ if(panel==1) iter=i+14; else if(panel==2) iter=i+15; }
409  if(blade==9){ if(panel==1) iter=i+16; else if(panel==2) iter=i+17; }
410  if(blade==10){ if(panel==1) iter=i+18; else if(panel==2) iter=i+19; }
411  if(blade==11){ if(panel==1) iter=i+20; else if(panel==2) iter=i+21; }
412  if(blade==12){ if(panel==1) iter=i+22; else if(panel==2) iter=i+23; }
413  }
414  }else if(side==PixelEndcapName::pO){
415  if(disk==1){
416  i=144;
417  if(panel==1){ if(module==1) nDP1P1M1+=numberOfDigisMod;
418  else if(module==2) nDP1P1M2+=numberOfDigisMod;
419  else if(module==3) nDP1P1M3+=numberOfDigisMod;
420  else if(module==4) nDP1P1M4+=numberOfDigisMod;}
421  else if(panel==2){ if(module==1) nDP1P2M1+=numberOfDigisMod;
422  else if(module==2) nDP1P2M2+=numberOfDigisMod;
423  else if(module==3) nDP1P2M3+=numberOfDigisMod; }
424  if(blade==1){ if(panel==1) iter=i; else if(panel==2) iter=i+1; }
425  if(blade==2){ if(panel==1) iter=i+2; else if(panel==2) iter=i+3; }
426  if(blade==3){ if(panel==1) iter=i+4; else if(panel==2) iter=i+5; }
427  if(blade==4){ if(panel==1) iter=i+6; else if(panel==2) iter=i+7; }
428  if(blade==5){ if(panel==1) iter=i+8; else if(panel==2) iter=i+9; }
429  if(blade==6){ if(panel==1) iter=i+10; else if(panel==2) iter=i+11; }
430  if(blade==7){ if(panel==1) iter=i+12; else if(panel==2) iter=i+13; }
431  if(blade==8){ if(panel==1) iter=i+14; else if(panel==2) iter=i+15; }
432  if(blade==9){ if(panel==1) iter=i+16; else if(panel==2) iter=i+17; }
433  if(blade==10){ if(panel==1) iter=i+18; else if(panel==2) iter=i+19; }
434  if(blade==11){ if(panel==1) iter=i+20; else if(panel==2) iter=i+21; }
435  if(blade==12){ if(panel==1) iter=i+22; else if(panel==2) iter=i+23; }
436  }else if(disk==2){
437  i=168;
438  if(panel==1){ if(module==1) nDP2P1M1+=numberOfDigisMod;
439  else if(module==2) nDP2P1M2+=numberOfDigisMod;
440  else if(module==3) nDP2P1M3+=numberOfDigisMod;
441  else if(module==4) nDP2P1M4+=numberOfDigisMod;}
442  else if(panel==2){ if(module==1) nDP2P2M1+=numberOfDigisMod;
443  else if(module==2) nDP2P2M2+=numberOfDigisMod;
444  else if(module==3) nDP2P2M3+=numberOfDigisMod; }
445  if(blade==1){ if(panel==1) iter=i; else if(panel==2) iter=i+1; }
446  if(blade==2){ if(panel==1) iter=i+2; else if(panel==2) iter=i+3; }
447  if(blade==3){ if(panel==1) iter=i+4; else if(panel==2) iter=i+5; }
448  if(blade==4){ if(panel==1) iter=i+6; else if(panel==2) iter=i+7; }
449  if(blade==5){ if(panel==1) iter=i+8; else if(panel==2) iter=i+9; }
450  if(blade==6){ if(panel==1) iter=i+10; else if(panel==2) iter=i+11; }
451  if(blade==7){ if(panel==1) iter=i+12; else if(panel==2) iter=i+13; }
452  if(blade==8){ if(panel==1) iter=i+14; else if(panel==2) iter=i+15; }
453  if(blade==9){ if(panel==1) iter=i+16; else if(panel==2) iter=i+17; }
454  if(blade==10){ if(panel==1) iter=i+18; else if(panel==2) iter=i+19; }
455  if(blade==11){ if(panel==1) iter=i+20; else if(panel==2) iter=i+21; }
456  if(blade==12){ if(panel==1) iter=i+22; else if(panel==2) iter=i+23; }
457  }
458  }
459  numberOfDigis[iter]=numberOfDigis[iter]+numberOfDigisMod;
460  //if(side==PixelEndcapName::pO||side==PixelEndcapName::pI){
461  // if(disk==2){
462  // std::cout<<"status: "<<iter<<","<<side<<","<<disk<<","<<blade<<","<<panel<<","<<numberOfDigisMod<<","<<numberOfDigis[iter]<<std::endl;
463  //}}
464  for(int i=768; i!=1440; i++){
465  //cout<<"\t\t\t fpix: "<<i<<" , "<<(*struct_iter).first<<" , "<<I_detId[i]<<endl;
466  if((*struct_iter).first == I_detId[i]){
467  //if(I_fedId[i]<32||I_fedId[i]>39) std::cout<<"Attention: an FPIX module matched to a BPIX FED!"<<std::endl;
468  nDigisPerFed[I_fedId[i]]=nDigisPerFed[I_fedId[i]]+numberOfDigisMod;
469  //cout<<"FPIX: "<<i<<" , "<<I_fedId[i]<<" , "<<nDigisPerFed[I_fedId[i]]<< ", "<<numberOfDigisMod << endl;
470  i=1439;
471  }
472  }
473  //cout<<"NDigis Endcap: "<<nDM1P1M1/2.<<" "<<nDM1P2M1/6.<<" "<<nDM1P1M2/6.<<" "<<nDM1P2M2/8.<<" "<<nDM1P1M3/8.<<" "<<nDM1P2M3/10.<<" "<<nDM1P1M4/5.<<endl;
474  } //endif Barrel/Endcap
475  //cout<<"numberOfDigis: "<<numberOfDigisMod<<" , nBPIXDigis: "<<nBPIXDigis<<" , nFPIXDigis: "<<nFPIXDigis<<endl;
476  // digi occupancy per individual FED channel:
477  } // endif any digis in this module
478  } // endfor loop over all modules
479 
480  //A really, really ugly way to do the occupancy-based
481  int NzeroROCs[2] = {0,-672};
482  int NloEffROCs[2] = {0,-672};
483  std::string baseDirs[2] = {"Pixel/Barrel", "Pixel/Endcap"};
484  if (lumiSection%10> 2){
485  for (int i = 0; i < 2; ++i){
486  theDMBE->cd(baseDirs[i]);
487  vector<string> shellDirs = theDMBE->getSubdirs();
488  for (vector<string>::const_iterator it = shellDirs.begin(); it != shellDirs.end(); it++) {
489  theDMBE->cd(*it);
490  vector<string> layDirs = theDMBE->getSubdirs();
491  for (vector<string>::const_iterator itt = layDirs.begin(); itt != layDirs.end(); itt++) {
492  theDMBE->cd(*itt);
493  vector<string> contents = theDMBE->getMEs();
494  for (vector<string>::const_iterator im = contents.begin(); im != contents.end(); im++) {
495  if ((*im).find("rocmap") == string::npos) continue;
496  MonitorElement* me = theDMBE->get((*itt)+"/"+(*im));
497  if(!me) continue;
498  MonitorElement* me2;
499  me2 = theDMBE->get((*itt)+"/zeroOccROC_map");
500  float SF = 1.0; if (me->getEntries() > 0) SF = float(me->getNbinsX()*me->getNbinsY()/me->getEntries());
501  for (int ii = 1; ii < me->getNbinsX()+1; ++ii){for (int jj = 1; jj < me->getNbinsY()+1; ++jj){
502  //Putting in conversion to layer maps.. again, ugly way to do it...
503  float localX = float(ii)-0.5;
504  float localY = float(jj)/2.0 + 1.25;
505  if (i ==1) localY = float(jj)/2.0 + 0.75;
506  if (me->getBinContent(ii,jj) < 1) {++NzeroROCs[i]; if (me2) me2->Fill(localX, localY);}
507  if (me->getBinContent(ii,jj)*SF < 0.25) ++NloEffROCs[i];}}
508  }
509  }
510  }
511  }
512  for (int i =0; i < 2; ++i) NloEffROCs[i] = NloEffROCs[i] - NzeroROCs[i];
513  MonitorElement* menoOcc=theDMBE->get("Pixel/noOccROCsBarrel");
514  MonitorElement* meloOcc=theDMBE->get("Pixel/loOccROCsBarrel");
515  if(menoOcc) menoOcc->setBinContent(1+lumiSection/10, NzeroROCs[0]);
516  if(meloOcc) meloOcc->setBinContent(1+lumiSection/10, NloEffROCs[0]);
517  MonitorElement* menoOcc1=theDMBE->get("Pixel/noOccROCsEndcap");
518  MonitorElement* meloOcc1=theDMBE->get("Pixel/loOccROCsEndcap");
519  if(menoOcc1) menoOcc1->setBinContent(1+lumiSection/10, NzeroROCs[1]);
520  if(meloOcc1) meloOcc1->setBinContent(1+lumiSection/10, NloEffROCs[1]);
521  theDMBE->cd();
522  }
523 // if(lumiSection>lumSec){ lumSec = lumiSection; nLumiSecs++; }
524 // if(nEventDigis>bigEventSize) nBigEvents++;
525 // if(nLumiSecs%5==0){
526 
528  meE=theDMBE->get("Pixel/Endcap/ALLMODS_ndigisCHAN_Endcap");
529  if(meE){ for(int j=0; j!=192; j++) if(numberOfDigis[j]>0) meE->Fill((float)numberOfDigis[j]);}
530  meE1=theDMBE->get("Pixel/Endcap/ALLMODS_ndigisCHAN_EndcapDm1");
531  if(meE1){ for(int j=0; j!=72; j++) if((j<24||j>47)&&numberOfDigis[j]>0) meE1->Fill((float)numberOfDigis[j]);}
532  meE2=theDMBE->get("Pixel/Endcap/ALLMODS_ndigisCHAN_EndcapDm2");
533  if(meE2){ for(int j=24; j!=96; j++) if((j<48||j>71)&&numberOfDigis[j]>0) meE2->Fill((float)numberOfDigis[j]);}
534  meE3=theDMBE->get("Pixel/Endcap/ALLMODS_ndigisCHAN_EndcapDp1");
535  if(meE3){ for(int j=96; j!=168; j++) if((j<120||j>143)&&numberOfDigis[j]>0) meE3->Fill((float)numberOfDigis[j]);}
536  meE4=theDMBE->get("Pixel/Endcap/ALLMODS_ndigisCHAN_EndcapDp2");
537  if(meE4){ for(int j=120; j!=192; j++) if((j<144||j>167)&&numberOfDigis[j]>0) meE4->Fill((float)numberOfDigis[j]);}
538 
545  MonitorElement* me36;
546  me1=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh1");
547  if(me1){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+0]>0) me1->Fill((float)nDigisPerChan[i*36+0]);}
548  me2=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh2");
549  if(me2){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+1]>0) me2->Fill((float)nDigisPerChan[i*36+1]);}
550  me3=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh3");
551  if(me3){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+2]>0) me3->Fill((float)nDigisPerChan[i*36+2]);}
552  me4=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh4");
553  if(me4){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+3]>0) me4->Fill((float)nDigisPerChan[i*36+3]);}
554  me5=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh5");
555  if(me5){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+4]>0) me5->Fill((float)nDigisPerChan[i*36+4]);}
556  me6=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh6");
557  if(me6){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+5]>0) me6->Fill((float)nDigisPerChan[i*36+5]);}
558  me7=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh7");
559  if(me7){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+6]>0) me7->Fill((float)nDigisPerChan[i*36+6]);}
560  me8=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh8");
561  if(me8){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+7]>0) me8->Fill((float)nDigisPerChan[i*36+7]);}
562  me9=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh9");
563  if(me9){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+8]>0) me9->Fill((float)nDigisPerChan[i*36+8]);}
564  me10=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh10");
565  if(me10){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+9]>0) me10->Fill((float)nDigisPerChan[i*36+9]);}
566  me11=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh11");
567  if(me11){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+10]>0) me11->Fill((float)nDigisPerChan[i*36+10]);}
568  me12=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh12");
569  if(me12){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+11]>0) me12->Fill((float)nDigisPerChan[i*36+11]);}
570  me13=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh13");
571  if(me13){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+12]>0) me13->Fill((float)nDigisPerChan[i*36+12]);}
572  me14=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh14");
573  if(me14){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+13]>0) me14->Fill((float)nDigisPerChan[i*36+13]);}
574  me15=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh15");
575  if(me15){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+14]>0) me15->Fill((float)nDigisPerChan[i*36+14]);}
576  me16=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh16");
577  if(me16){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+15]>0) me16->Fill((float)nDigisPerChan[i*36+15]);}
578  me17=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh17");
579  if(me17){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+16]>0) me17->Fill((float)nDigisPerChan[i*36+16]);}
580  me18=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh18");
581  if(me18){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+17]>0) me18->Fill((float)nDigisPerChan[i*36+17]);}
582  me19=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh19");
583  if(me19){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+18]>0) me19->Fill((float)nDigisPerChan[i*36+18]);}
584  me20=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh20");
585  if(me20){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+19]>0) me20->Fill((float)nDigisPerChan[i*36+19]);}
586  me21=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh21");
587  if(me21){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+20]>0) me21->Fill((float)nDigisPerChan[i*36+20]);}
588  me22=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh22");
589  if(me22){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+21]>0) me22->Fill((float)nDigisPerChan[i*36+21]);}
590  me23=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh23");
591  if(me23){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+22]>0) me23->Fill((float)nDigisPerChan[i*36+22]);}
592  me24=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh24");
593  if(me24){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+23]>0) me24->Fill((float)nDigisPerChan[i*36+23]);}
594  me25=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh25");
595  if(me25){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+24]>0) me25->Fill((float)nDigisPerChan[i*36+24]);}
596  me26=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh26");
597  if(me26){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+25]>0) me26->Fill((float)nDigisPerChan[i*36+25]);}
598  me27=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh27");
599  if(me27){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+26]>0) me27->Fill((float)nDigisPerChan[i*36+26]);}
600  me28=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh28");
601  if(me28){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+27]>0) me28->Fill((float)nDigisPerChan[i*36+27]);}
602  me29=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh29");
603  if(me29){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+28]>0) me29->Fill((float)nDigisPerChan[i*36+28]);}
604  me30=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh30");
605  if(me30){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+29]>0) me30->Fill((float)nDigisPerChan[i*36+29]);}
606  me31=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh31");
607  if(me31){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+30]>0) me31->Fill((float)nDigisPerChan[i*36+30]);}
608  me32=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh32");
609  if(me32){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+31]>0) me32->Fill((float)nDigisPerChan[i*36+31]);}
610  me33=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh33");
611  if(me33){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+32]>0) me33->Fill((float)nDigisPerChan[i*36+32]);}
612  me34=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh34");
613  if(me34){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+33]>0) me34->Fill((float)nDigisPerChan[i*36+33]);}
614  me35=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh35");
615  if(me35){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+34]>0) me35->Fill((float)nDigisPerChan[i*36+34]);}
616  me36=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh36");
617  if(me36){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+35]>0) me36->Fill((float)nDigisPerChan[i*36+35]);}
618 
619  // Rate of events with >N digis:
620  MonitorElement* meX1;
621  if(nEventDigis>bigEventSize){
622  meX1 = theDMBE->get("Pixel/bigEventRate");
623  if(meX1) meX1->Fill(lumiSection,1./23.);
624  }
625  //std::cout<<"nEventDigis: "<<nEventDigis<<" , nLumiSecs: "<<nLumiSecs<<" , nBigEvents: "<<nBigEvents<<std::endl;
626 
627  // Rate of pixel events and total number of pixel events per BX:
628  MonitorElement* meX2; MonitorElement* meX3;
629  if(nActiveModules>=4){
630  meX2 = theDMBE->get("Pixel/pixEvtsPerBX");
631  if(meX2) meX2->Fill(float(bx));
632  meX3 = theDMBE->get("Pixel/pixEventRate");
633  if(meX3) meX3->Fill(lumiSection, 1./23.);
634  }
635 
636  // Actual digi occupancy in a FED compared to average digi occupancy per FED
637  MonitorElement* meX4; MonitorElement* meX5;
638  meX4 = theDMBE->get("Pixel/averageDigiOccupancy");
639  meX5 = theDMBE->get("Pixel/avgfedDigiOccvsLumi");
640  if(meX4){
641  int maxfed=0;
642  for(int i=0; i!=32; i++){
643  if(nDigisPerFed[i]>maxfed) maxfed=nDigisPerFed[i];
644  }
645  for(int i=0; i!=40; i++){
646  float averageOcc = 0.;
647  if(i<32){
648  float averageBPIXFed = float(nBPIXDigis-maxfed)/31.;
649  if(averageBPIXFed>0.) averageOcc = nDigisPerFed[i]/averageBPIXFed;
650  //cout<<"\t BPIX i: "<<i<<" , "<<nBPIXDigis<<" , "<<averageBPIXFed<<" , "<<nDigisPerFed[i]<<" , "<<averageOcc<<endl;
651  }else{
652  float averageFPIXFed = float(nFPIXDigis)/8.;
653  if(averageFPIXFed>0.) averageOcc = nDigisPerFed[i]/averageFPIXFed;
654  //cout<<"\t FPIX i: "<<i<<" , "<<nFPIXDigis<<" , "<<averageFPIXFed<<" , "<<nDigisPerFed[i]<<" , "<<averageOcc<<endl;
655  }
656  meX4->setBinContent(i+1,averageOcc);
657  int lumiSections8 = int(lumiSection/8);
658  if (modOn){
659  if (meX5){
660  meX5->setBinContent(1+lumiSections8, i+1, averageOcc);
661  }//endif meX5
662  }//endif modOn
663  }
664  }
665 
666  // slow down...
667  if(slowDown) usleep(10000);
668 
669 }
670 
671 //------------------------------------------------------------------
672 // Build data structure
673 //------------------------------------------------------------------
675 
676  LogInfo ("PixelDQM") <<" SiPixelDigiSource::buildStructure" ;
678  iSetup.get<TrackerDigiGeometryRecord>().get( pDD );
679 
680  LogVerbatim ("PixelDQM") << " *** Geometry node for TrackerGeom is "<<&(*pDD)<<std::endl;
681  LogVerbatim ("PixelDQM") << " *** I have " << pDD->dets().size() <<" detectors"<<std::endl;
682  LogVerbatim ("PixelDQM") << " *** I have " << pDD->detTypes().size() <<" types"<<std::endl;
683 
684  for(TrackerGeometry::DetContainer::const_iterator it = pDD->dets().begin(); it != pDD->dets().end(); it++){
685 
686  if(dynamic_cast<PixelGeomDetUnit*>((*it))!=0){
687 
688  DetId detId = (*it)->geographicalId();
689  const GeomDetUnit * geoUnit = pDD->idToDetUnit( detId );
690  const PixelGeomDetUnit * pixDet = dynamic_cast<const PixelGeomDetUnit*>(geoUnit);
691  int nrows = (pixDet->specificTopology()).nrows();
692  int ncols = (pixDet->specificTopology()).ncolumns();
693 
694  if(detId.subdetId() == static_cast<int>(PixelSubdetector::PixelBarrel)) {
695  if(isPIB) continue;
696  LogDebug ("PixelDQM") << " ---> Adding Barrel Module " << detId.rawId() << endl;
697  uint32_t id = detId();
698  SiPixelDigiModule* theModule = new SiPixelDigiModule(id, ncols, nrows);
699  thePixelStructure.insert(pair<uint32_t,SiPixelDigiModule*> (id,theModule));
700 
701  } else if(detId.subdetId() == static_cast<int>(PixelSubdetector::PixelEndcap)) {
702  LogDebug ("PixelDQM") << " ---> Adding Endcap Module " << detId.rawId() << endl;
703  uint32_t id = detId();
704  SiPixelDigiModule* theModule = new SiPixelDigiModule(id, ncols, nrows);
705 
707  int disk = PixelEndcapName(DetId(id)).diskName();
708  int blade = PixelEndcapName(DetId(id)).bladeName();
709  int panel = PixelEndcapName(DetId(id)).pannelName();
711 
712  char sside[80]; sprintf(sside, "HalfCylinder_%i",side);
713  char sdisk[80]; sprintf(sdisk, "Disk_%i",disk);
714  char sblade[80]; sprintf(sblade, "Blade_%02i",blade);
715  char spanel[80]; sprintf(spanel, "Panel_%i",panel);
716  char smodule[80];sprintf(smodule,"Module_%i",module);
717  std::string side_str = sside;
718  std::string disk_str = sdisk;
719  bool mask = side_str.find("HalfCylinder_1")!=string::npos||
720  side_str.find("HalfCylinder_2")!=string::npos||
721  side_str.find("HalfCylinder_4")!=string::npos||
722  disk_str.find("Disk_2")!=string::npos;
723  // clutch to take all of FPIX, but no BPIX:
724  mask = false;
725  if(isPIB && mask) continue;
726 
727  thePixelStructure.insert(pair<uint32_t,SiPixelDigiModule*> (id,theModule));
728  }
729 
730  }
731  }
732  LogInfo ("PixelDQM") << " *** Pixel Structure Size " << thePixelStructure.size() << endl;
733 }
734 //------------------------------------------------------------------
735 // Book MEs
736 //------------------------------------------------------------------
738 
739  // Get DQM interface
741  theDMBE->setCurrentFolder("Pixel");
742  char title[80]; sprintf(title, "Rate of events with >%i digis;LumiSection;Rate [Hz]",bigEventSize);
743  bigEventRate = theDMBE->book1D("bigEventRate",title,5000,0.,5000.);
744  char title1[80]; sprintf(title1, "Pixel events vs. BX;BX;# events");
745  pixEvtsPerBX = theDMBE->book1D("pixEvtsPerBX",title1,3565,0.,3565.);
746  char title2[80]; sprintf(title2, "Rate of Pixel events;LumiSection;Rate [Hz]");
747  pixEventRate = theDMBE->book1D("pixEventRate",title2,5000,0.,5000.);
748  char title3[80]; sprintf(title3, "Number of Zero-Occupancy Barrel ROCs;LumiSection;N_{ZERO-OCCUPANCY} Barrel ROCs");
749  noOccROCsBarrel = theDMBE->book1D("noOccROCsBarrel",title3,500,0.,5000.);
750  char title4[80]; sprintf(title4, "Number of Low-Efficiency Barrel ROCs;LumiSection;N_{LO EFF} Barrel ROCs");
751  loOccROCsBarrel = theDMBE->book1D("loOccROCsBarrel",title4,500,0.,5000.);
752  char title5[80]; sprintf(title5, "Number of Zero-Occupancy Endcap ROCs;LumiSection;N_{ZERO-OCCUPANCY} Endcap ROCs");
753  noOccROCsEndcap = theDMBE->book1D("noOccROCsEndcap",title5,500,0.,5000.);
754  char title6[80]; sprintf(title6, "Number of Low-Efficiency Endcap ROCs;LumiSection;N_{LO EFF} Endcap ROCs");
755  loOccROCsEndcap = theDMBE->book1D("loOccROCsEndcap",title6,500,0.,5000.);
756  char title7[80]; sprintf(title7, "Average digi occupancy per FED;FED;NDigis/<NDigis>");
757  averageDigiOccupancy = theDMBE->book1D("averageDigiOccupancy",title7,40,-0.5,39.5);
759  if(modOn){
760  char title4[80]; sprintf(title4, "FED Digi Occupancy (NDigis/<NDigis>) vs LumiSections;Lumi Section;FED");
761  avgfedDigiOccvsLumi = theDMBE->book2D ("avgfedDigiOccvsLumi", title4, 400,0., 3200., 40, -0.5, 39.5);
762  }
763  std::map<uint32_t,SiPixelDigiModule*>::iterator struct_iter;
764 
765  SiPixelFolderOrganizer theSiPixelFolder;
766 
767  for(struct_iter = thePixelStructure.begin(); struct_iter != thePixelStructure.end(); struct_iter++){
769  if(modOn){
770  if(theSiPixelFolder.setModuleFolder((*struct_iter).first)){
771  (*struct_iter).second->book( conf_,0,twoDimOn,hiRes, reducedSet, twoDimModOn);
772  } else {
773 
774  if(!isPIB) throw cms::Exception("LogicError")
775  << "[SiPixelDigiSource::bookMEs] Creation of DQM folder failed";
776  }
777  }
778  if(ladOn){
779  if(theSiPixelFolder.setModuleFolder((*struct_iter).first,1)){
780  (*struct_iter).second->book( conf_,1,twoDimOn,hiRes, reducedSet);
781  } else {
782  LogDebug ("PixelDQM") << "PROBLEM WITH LADDER-FOLDER\n";
783  }
784 
785  }
786  if(layOn || twoDimOnlyLayDisk){
787  if(theSiPixelFolder.setModuleFolder((*struct_iter).first,2)){
788  (*struct_iter).second->book( conf_,2,twoDimOn,hiRes, reducedSet, twoDimOnlyLayDisk);
789  } else {
790  LogDebug ("PixelDQM") << "PROBLEM WITH LAYER-FOLDER\n";
791  }
792  }
793 
794  if(phiOn){
795  if(theSiPixelFolder.setModuleFolder((*struct_iter).first,3)){
796  (*struct_iter).second->book( conf_,3,twoDimOn,hiRes, reducedSet);
797  } else {
798  LogDebug ("PixelDQM") << "PROBLEM WITH PHI-FOLDER\n";
799  }
800  }
801  if(bladeOn){
802  if(theSiPixelFolder.setModuleFolder((*struct_iter).first,4)){
803  (*struct_iter).second->book( conf_,4,twoDimOn,hiRes, reducedSet);
804  } else {
805  LogDebug ("PixelDQM") << "PROBLEM WITH BLADE-FOLDER\n";
806  }
807  }
808  if(diskOn || twoDimOnlyLayDisk){
809  if(theSiPixelFolder.setModuleFolder((*struct_iter).first,5)){
810  (*struct_iter).second->book( conf_,5,twoDimOn,hiRes, reducedSet, twoDimOnlyLayDisk);
811  } else {
812  LogDebug ("PixelDQM") << "PROBLEM WITH DISK-FOLDER\n";
813  }
814  }
815  if(ringOn){
816  if(theSiPixelFolder.setModuleFolder((*struct_iter).first,6)){
817  (*struct_iter).second->book( conf_,6,twoDimOn,hiRes, reducedSet);
818  } else {
819  LogDebug ("PixelDQM") << "PROBLEM WITH RING-FOLDER\n";
820  }
821  }
822  }
823  std::string currDir = theDMBE->pwd();
824  theDMBE->cd("Pixel/Barrel");
825  meNDigisCOMBBarrel_ = theDMBE->book1D("ALLMODS_ndigisCOMB_Barrel","Number of Digis",200,0.,400.);
826  meNDigisCOMBBarrel_->setAxisTitle("Number of digis per module per event",1);
827  meNDigisCHANBarrel_ = theDMBE->book1D("ALLMODS_ndigisCHAN_Barrel","Number of Digis",100,0.,1000.);
828  meNDigisCHANBarrel_->setAxisTitle("Number of digis per FED channel per event",1);
829  meNDigisCHANBarrelL1_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelL1","Number of Digis L1",100,0.,1000.);
830  meNDigisCHANBarrelL1_->setAxisTitle("Number of digis per FED channel per event",1);
831  meNDigisCHANBarrelL2_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelL2","Number of Digis L2",100,0.,1000.);
832  meNDigisCHANBarrelL2_->setAxisTitle("Number of digis per FED channel per event",1);
833  meNDigisCHANBarrelL3_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelL3","Number of Digis L3",100,0.,1000.);
834  meNDigisCHANBarrelL3_->setAxisTitle("Number of digis per FED channel per event",1);
835  meNDigisCHANBarrelCh1_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh1","Number of Digis Ch1",100,0.,1000.);
836  meNDigisCHANBarrelCh1_->setAxisTitle("Number of digis per FED channel per event",1);
837  meNDigisCHANBarrelCh2_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh2","Number of Digis Ch2",100,0.,1000.);
838  meNDigisCHANBarrelCh2_->setAxisTitle("Number of digis per FED channel per event",1);
839  meNDigisCHANBarrelCh3_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh3","Number of Digis Ch3",100,0.,1000.);
840  meNDigisCHANBarrelCh3_->setAxisTitle("Number of digis per FED channel per event",1);
841  meNDigisCHANBarrelCh4_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh4","Number of Digis Ch4",100,0.,1000.);
842  meNDigisCHANBarrelCh4_->setAxisTitle("Number of digis per FED channel per event",1);
843  meNDigisCHANBarrelCh5_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh5","Number of Digis Ch5",100,0.,1000.);
844  meNDigisCHANBarrelCh5_->setAxisTitle("Number of digis per FED channel per event",1);
845  meNDigisCHANBarrelCh6_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh6","Number of Digis Ch6",100,0.,1000.);
846  meNDigisCHANBarrelCh6_->setAxisTitle("Number of digis per FED channel per event",1);
847  meNDigisCHANBarrelCh7_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh7","Number of Digis Ch7",100,0.,1000.);
848  meNDigisCHANBarrelCh7_->setAxisTitle("Number of digis per FED channel per event",1);
849  meNDigisCHANBarrelCh8_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh8","Number of Digis Ch8",100,0.,1000.);
850  meNDigisCHANBarrelCh8_->setAxisTitle("Number of digis per FED channel per event",1);
851  meNDigisCHANBarrelCh9_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh9","Number of Digis Ch9",100,0.,1000.);
852  meNDigisCHANBarrelCh9_->setAxisTitle("Number of digis per FED channel per event",1);
853  meNDigisCHANBarrelCh10_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh10","Number of Digis Ch10",100,0.,1000.);
854  meNDigisCHANBarrelCh10_->setAxisTitle("Number of digis per FED channel per event",1);
855  meNDigisCHANBarrelCh11_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh11","Number of Digis Ch11",100,0.,1000.);
856  meNDigisCHANBarrelCh11_->setAxisTitle("Number of digis per FED channel per event",1);
857  meNDigisCHANBarrelCh12_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh12","Number of Digis Ch12",100,0.,1000.);
858  meNDigisCHANBarrelCh12_->setAxisTitle("Number of digis per FED channel per event",1);
859  meNDigisCHANBarrelCh13_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh13","Number of Digis Ch13",100,0.,1000.);
860  meNDigisCHANBarrelCh13_->setAxisTitle("Number of digis per FED channel per event",1);
861  meNDigisCHANBarrelCh14_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh14","Number of Digis Ch14",100,0.,1000.);
862  meNDigisCHANBarrelCh14_->setAxisTitle("Number of digis per FED channel per event",1);
863  meNDigisCHANBarrelCh15_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh15","Number of Digis Ch15",100,0.,1000.);
864  meNDigisCHANBarrelCh15_->setAxisTitle("Number of digis per FED channel per event",1);
865  meNDigisCHANBarrelCh16_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh16","Number of Digis Ch16",100,0.,1000.);
866  meNDigisCHANBarrelCh16_->setAxisTitle("Number of digis per FED channel per event",1);
867  meNDigisCHANBarrelCh17_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh17","Number of Digis Ch17",100,0.,1000.);
868  meNDigisCHANBarrelCh17_->setAxisTitle("Number of digis per FED channel per event",1);
869  meNDigisCHANBarrelCh18_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh18","Number of Digis Ch18",100,0.,1000.);
870  meNDigisCHANBarrelCh18_->setAxisTitle("Number of digis per FED channel per event",1);
871  meNDigisCHANBarrelCh19_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh19","Number of Digis Ch19",100,0.,1000.);
872  meNDigisCHANBarrelCh19_->setAxisTitle("Number of digis per FED channel per event",1);
873  meNDigisCHANBarrelCh20_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh20","Number of Digis Ch20",100,0.,1000.);
874  meNDigisCHANBarrelCh20_->setAxisTitle("Number of digis per FED channel per event",1);
875  meNDigisCHANBarrelCh21_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh21","Number of Digis Ch21",100,0.,1000.);
876  meNDigisCHANBarrelCh21_->setAxisTitle("Number of digis per FED channel per event",1);
877  meNDigisCHANBarrelCh22_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh22","Number of Digis Ch22",100,0.,1000.);
878  meNDigisCHANBarrelCh22_->setAxisTitle("Number of digis per FED channel per event",1);
879  meNDigisCHANBarrelCh23_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh23","Number of Digis Ch23",100,0.,1000.);
880  meNDigisCHANBarrelCh23_->setAxisTitle("Number of digis per FED channel per event",1);
881  meNDigisCHANBarrelCh24_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh24","Number of Digis Ch24",100,0.,1000.);
882  meNDigisCHANBarrelCh24_->setAxisTitle("Number of digis per FED channel per event",1);
883  meNDigisCHANBarrelCh25_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh25","Number of Digis Ch25",100,0.,1000.);
884  meNDigisCHANBarrelCh25_->setAxisTitle("Number of digis per FED channel per event",1);
885  meNDigisCHANBarrelCh26_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh26","Number of Digis Ch26",100,0.,1000.);
886  meNDigisCHANBarrelCh26_->setAxisTitle("Number of digis per FED channel per event",1);
887  meNDigisCHANBarrelCh27_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh27","Number of Digis Ch27",100,0.,1000.);
888  meNDigisCHANBarrelCh27_->setAxisTitle("Number of digis per FED channel per event",1);
889  meNDigisCHANBarrelCh28_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh28","Number of Digis Ch28",100,0.,1000.);
890  meNDigisCHANBarrelCh28_->setAxisTitle("Number of digis per FED channel per event",1);
891  meNDigisCHANBarrelCh29_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh29","Number of Digis Ch29",100,0.,1000.);
892  meNDigisCHANBarrelCh29_->setAxisTitle("Number of digis per FED channel per event",1);
893  meNDigisCHANBarrelCh30_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh30","Number of Digis Ch30",100,0.,1000.);
894  meNDigisCHANBarrelCh30_->setAxisTitle("Number of digis per FED channel per event",1);
895  meNDigisCHANBarrelCh31_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh31","Number of Digis Ch31",100,0.,1000.);
896  meNDigisCHANBarrelCh31_->setAxisTitle("Number of digis per FED channel per event",1);
897  meNDigisCHANBarrelCh32_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh32","Number of Digis Ch32",100,0.,1000.);
898  meNDigisCHANBarrelCh32_->setAxisTitle("Number of digis per FED channel per event",1);
899  meNDigisCHANBarrelCh33_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh33","Number of Digis Ch33",100,0.,1000.);
900  meNDigisCHANBarrelCh33_->setAxisTitle("Number of digis per FED channel per event",1);
901  meNDigisCHANBarrelCh34_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh34","Number of Digis Ch34",100,0.,1000.);
902  meNDigisCHANBarrelCh34_->setAxisTitle("Number of digis per FED channel per event",1);
903  meNDigisCHANBarrelCh35_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh35","Number of Digis Ch35",100,0.,1000.);
904  meNDigisCHANBarrelCh35_->setAxisTitle("Number of digis per FED channel per event",1);
905  meNDigisCHANBarrelCh36_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh36","Number of Digis Ch36",100,0.,1000.);
906  meNDigisCHANBarrelCh36_->setAxisTitle("Number of digis per FED channel per event",1);
907  theDMBE->cd("Pixel/Endcap");
908  meNDigisCOMBEndcap_ = theDMBE->book1D("ALLMODS_ndigisCOMB_Endcap","Number of Digis",200,0.,400.);
909  meNDigisCOMBEndcap_->setAxisTitle("Number of digis per module per event",1);
910  meNDigisCHANEndcap_ = theDMBE->book1D("ALLMODS_ndigisCHAN_Endcap","Number of Digis",100,0.,1000.);
911  meNDigisCHANEndcap_->setAxisTitle("Number of digis per FED channel per event",1);
912  meNDigisCHANEndcapDp1_ = theDMBE->book1D("ALLMODS_ndigisCHAN_EndcapDp1","Number of Digis Disk p1",100,0.,1000.);
913  meNDigisCHANEndcapDp1_->setAxisTitle("Number of digis per FED channel per event",1);
914  meNDigisCHANEndcapDp2_ = theDMBE->book1D("ALLMODS_ndigisCHAN_EndcapDp2","Number of Digis Disk p2",100,0.,1000.);
915  meNDigisCHANEndcapDp2_->setAxisTitle("Number of digis per FED channel per event",1);
916  meNDigisCHANEndcapDm1_ = theDMBE->book1D("ALLMODS_ndigisCHAN_EndcapDm1","Number of Digis Disk m1",100,0.,1000.);
917  meNDigisCHANEndcapDm1_->setAxisTitle("Number of digis per FED channel per event",1);
918  meNDigisCHANEndcapDm2_ = theDMBE->book1D("ALLMODS_ndigisCHAN_EndcapDm2","Number of Digis Disk m2",100,0.,1000.);
919  meNDigisCHANEndcapDm2_->setAxisTitle("Number of digis per FED channel per event",1);
920  theDMBE->cd(currDir);
921 }
922 
923 //define this as a plug-in
#define LogDebug(id)
int plaquetteName() const
plaquetteId (in pannel)
T getParameter(std::string const &) const
MonitorElement * meNDigisCHANBarrelCh19_
MonitorElement * meNDigisCHANBarrelCh35_
int i
Definition: DBlmapReader.cc:9
MonitorElement * meNDigisCHANBarrelCh2_
MonitorElement * meNDigisCHANBarrelCh30_
void setBinContent(int binx, double content)
set content of bin (1-D)
virtual void bookMEs()
MonitorElement * meNDigisCHANEndcapDp1_
MonitorElement * meNDigisCHANBarrelCh31_
std::vector< std::string > getSubdirs(void) const
Definition: DQMStore.cc:1419
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
Definition: DQMStore.cc:717
MonitorElement * meNDigisCHANBarrelCh8_
std::string I_name[1440]
MonitorElement * meNDigisCHANBarrelCh36_
void cd(void)
go to top directory (ie. root)
Definition: DQMStore.cc:406
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:17
MonitorElement * loOccROCsEndcap
MonitorElement * meNDigisCHANBarrelCh17_
MonitorElement * meNDigisCHANBarrelCh25_
void save(const std::string &filename, const std::string &path="", const std::string &pattern="", const std::string &rewrite="", SaveReferenceTag ref=SaveWithReference, int minStatus=dqm::qstatus::STATUS_OK, const std::string &fileupdate="RECREATE")
Definition: DQMStore.cc:2113
MonitorElement * meNDigisCHANBarrelCh6_
MonitorElement * meNDigisCOMBBarrel_
int bunchCrossing() const
Definition: EventBase.h:62
MonitorElement * meNDigisCHANEndcapDm1_
edm::LuminosityBlockNumber_t luminosityBlock() const
Definition: EventBase.h:59
MonitorElement * meNDigisCOMBEndcap_
MonitorElement * meNDigisCHANBarrelCh14_
MonitorElement * meNDigisCHANBarrelCh12_
MonitorElement * meNDigisCHANBarrelL3_
MonitorElement * meNDigisCHANBarrelCh29_
double getEntries(void) const
get # of entries
int getNbinsY(void) const
get # of bins in Y-axis
void Fill(long long x)
uint32_t rawId() const
get the raw id
Definition: DetId.h:45
MonitorElement * meNDigisCHANBarrelCh27_
int bladeName() const
blade id
SiPixelDigiSource(const edm::ParameterSet &conf)
int iEvent
Definition: GenABIO.cc:243
MonitorElement * meNDigisCHANEndcapDm2_
MonitorElement * meNDigisCHANBarrelCh3_
MonitorElement * meNDigisCHANBarrelCh9_
MonitorElement * meNDigisCHANBarrelCh4_
MonitorElement * meNDigisCHANBarrelCh34_
MonitorElement * meNDigisCHANBarrelCh26_
MonitorElement * noOccROCsBarrel
MonitorElement * meNDigisCHANEndcap_
MonitorElement * meNDigisCHANBarrelCh28_
int j
Definition: DBlmapReader.cc:9
MonitorElement * noOccROCsEndcap
virtual void analyze(const edm::Event &, const edm::EventSetup &)
MonitorElement * meNDigisCHANBarrel_
MonitorElement * meNDigisCHANBarrelCh33_
MonitorElement * pixEventRate
MonitorElement * get(const std::string &path) const
get ME from full pathname (e.g. &quot;my/long/dir/my_histo&quot;)
Definition: DQMStore.cc:1468
MonitorElement * meNDigisCHANBarrelCh21_
bool isValid() const
Definition: HandleBase.h:76
int subdetId() const
get the contents of the subdetector field (not cast into any detector&#39;s numbering enum) ...
Definition: DetId.h:39
MonitorElement * meNDigisCHANBarrelCh32_
virtual void beginRun(const edm::Run &, edm::EventSetup const &)
MonitorElement * meNDigisCHANBarrelCh10_
MonitorElement * loOccROCsBarrel
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:356
MonitorElement * meNDigisCHANBarrelCh1_
MonitorElement * averageDigiOccupancy
Definition: DetId.h:20
unsigned int I_detId[1440]
MonitorElement * meNDigisCHANBarrelCh5_
virtual void endJob()
MonitorElement * meNDigisCHANBarrelCh7_
MonitorElement * meNDigisCHANBarrelCh15_
MonitorElement * meNDigisCHANBarrelCh13_
const T & get() const
Definition: EventSetup.h:55
virtual const PixelTopology & specificTopology() const
Returns a reference to the pixel proxy topology.
MonitorElement * meNDigisCHANBarrelCh23_
virtual void beginJob()
MonitorElement * meNDigisCHANBarrelCh18_
std::vector< std::string > getMEs(void) const
get list of (non-dir) MEs of current directory
Definition: DQMStore.cc:1442
MonitorElement * meNDigisCHANEndcapDp2_
double getBinContent(int binx) const
get content of bin (1-D)
MonitorElement * bigEventRate
MonitorElement * meNDigisCHANBarrelCh20_
MonitorElement * avgfedDigiOccvsLumi
edm::ParameterSet conf_
list infile
Definition: EdgesToViz.py:90
int pannelName() const
pannel id
int getNbinsX(void) const
get # of bins in X-axis
MonitorElement * meNDigisCHANBarrelCh22_
int diskName() const
disk id
MonitorElement * pixEvtsPerBX
std::map< uint32_t, SiPixelDigiModule * > thePixelStructure
MonitorElement * meNDigisCHANBarrelL1_
void setLumiFlag(void)
this ME is meant to be stored for each luminosity section
HalfCylinder halfCylinder() const
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:845
MonitorElement * meNDigisCHANBarrelCh16_
MonitorElement * meNDigisCHANBarrelCh11_
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
void Reset(void)
reset ME (ie. contents, errors, etc)
Definition: vlib.h:209
virtual void buildStructure(edm::EventSetup const &)
edm::InputTag src_
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:429
MonitorElement * meNDigisCHANBarrelL2_
MonitorElement * meNDigisCHANBarrelCh24_
Definition: Run.h:33
bool setModuleFolder(const uint32_t &rawdetid=0, int type=0)
Set folder name for a module or plaquette.
const std::string & pwd(void) const
Definition: DQMStore.cc:401