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 //
18 //
20 // Framework
24 // DQM Framework
27 // Geometry
32 // DataFormats
39 //
40 #include <string>
41 #include <stdlib.h>
42 #include <iostream>
43 #include <fstream>
44 
45 using namespace std;
46 using namespace edm;
47 
49  conf_(iConfig),
50  src_( conf_.getParameter<edm::InputTag>( "src" ) ),
51  saveFile( conf_.getUntrackedParameter<bool>("saveFile",false) ),
52  isPIB( conf_.getUntrackedParameter<bool>("isPIB",false) ),
53  slowDown( conf_.getUntrackedParameter<bool>("slowDown",false) ),
54  modOn( conf_.getUntrackedParameter<bool>("modOn",true) ),
55  twoDimOn( conf_.getUntrackedParameter<bool>("twoDimOn",true) ),
56  twoDimModOn( conf_.getUntrackedParameter<bool>("twoDimModOn",true) ),
57  twoDimOnlyLayDisk( conf_.getUntrackedParameter<bool>("twoDimOnlyLayDisk",false) ),
58  hiRes( conf_.getUntrackedParameter<bool>("hiRes",false) ),
59  reducedSet( conf_.getUntrackedParameter<bool>("reducedSet",false) ),
60  ladOn( conf_.getUntrackedParameter<bool>("ladOn",false) ),
61  layOn( conf_.getUntrackedParameter<bool>("layOn",false) ),
62  phiOn( conf_.getUntrackedParameter<bool>("phiOn",false) ),
63  ringOn( conf_.getUntrackedParameter<bool>("ringOn",false) ),
64  bladeOn( conf_.getUntrackedParameter<bool>("bladeOn",false) ),
65  diskOn( conf_.getUntrackedParameter<bool>("diskOn",false) ),
66  bigEventSize( conf_.getUntrackedParameter<int>("bigEventSize",1000) ),
67  isUpgrade( conf_.getUntrackedParameter<bool>("isUpgrade",false) )
68 {
69  //set Token(-s)
70  srcToken_ = consumes<edm::DetSetVector<PixelDigi> >(conf_.getParameter<edm::InputTag>( "src" ));
71 
73  LogInfo ("PixelDQM") << "SiPixelDigiSource::SiPixelDigiSource: Got DQM BackEnd interface"<<endl;
74 }
75 
76 
78 {
79  // do anything here that needs to be done at desctruction time
80  // (e.g. close files, deallocate resources etc.)
81  LogInfo ("PixelDQM") << "SiPixelDigiSource::~SiPixelDigiSource: Destructor"<<endl;
82 }
83 
84 
86  firstRun = true;
87  // find a FED# for the current detId:
88  ifstream infile(edm::FileInPath("DQM/SiPixelMonitorClient/test/detId.dat").fullPath().c_str(),ios::in);
89  int nModsInFile=0;
90  assert(!infile.fail());
91  int nTOTmodules;
92  if (isUpgrade) { nTOTmodules=1856; } else { nTOTmodules=1440; }
93  while(!infile.eof()&&nModsInFile<nTOTmodules) {
94  infile >> I_name[nModsInFile] >> I_detId[nModsInFile] >> I_fedId[nModsInFile] >> I_linkId1[nModsInFile] >> I_linkId2[nModsInFile];
95  //cout<<nModsInFile<<" , "<<I_name[nModsInFile]<<" , "<<I_detId[nModsInFile]<<" , "<<I_fedId[nModsInFile]<<" , "<<I_linkId[nModsInFile]<<endl; ;
96  nModsInFile++;
97  }
98  infile.close();
99 }
100 
102  LogInfo ("PixelDQM") << " SiPixelDigiSource::beginJob - Initialisation ... " << std::endl;
103  LogInfo ("PixelDQM") << "Mod/Lad/Lay/Phi " << modOn << "/" << ladOn << "/"
104  << layOn << "/" << phiOn << std::endl;
105  LogInfo ("PixelDQM") << "Blade/Disk/Ring" << bladeOn << "/" << diskOn << "/"
106  << ringOn << std::endl;
107 
108  LogInfo ("PixelDQM") << "2DIM IS " << twoDimOn << " and set to high resolution? " << hiRes << "\n";
109 
110  if(firstRun){
111  eventNo = 0;
112  lumSec = 0;
113  nLumiSecs = 0;
114  nBigEvents = 0;
115  nBPIXDigis = 0;
116  nFPIXDigis = 0;
117  for(int i=0; i!=40; i++) nDigisPerFed[i]=0;
118  for(int i=0; i!=4; i++) nDigisPerDisk[i]=0;
119  nDP1P1M1 = 0;
120  nDP1P1M2 = 0;
121  nDP1P1M3 = 0;
122  nDP1P1M4 = 0;
123  nDP1P2M1 = 0;
124  nDP1P2M2 = 0;
125  nDP1P2M3 = 0;
126  nDP2P1M1 = 0;
127  nDP2P1M2 = 0;
128  nDP2P1M3 = 0;
129  nDP2P1M4 = 0;
130  nDP2P2M1 = 0;
131  nDP2P2M2 = 0;
132  nDP2P2M3 = 0;
133  nDP3P1M1 = 0;
134  nDP3P2M1 = 0;
135  nDM1P1M1 = 0;
136  nDM1P1M2 = 0;
137  nDM1P1M3 = 0;
138  nDM1P1M4 = 0;
139  nDM1P2M1 = 0;
140  nDM1P2M2 = 0;
141  nDM1P2M3 = 0;
142  nDM2P1M1 = 0;
143  nDM2P1M2 = 0;
144  nDM2P1M3 = 0;
145  nDM2P1M4 = 0;
146  nDM2P2M1 = 0;
147  nDM2P2M2 = 0;
148  nDM2P2M3 = 0;
149  nDM3P1M1 = 0;
150  nDM3P2M1 = 0;
151  nL1M1 = 0;
152  nL1M2 = 0;
153  nL1M3 = 0;
154  nL1M4 = 0;
155  nL2M1 = 0;
156  nL2M2 = 0;
157  nL2M3 = 0;
158  nL2M4 = 0;
159  nL3M1 = 0;
160  nL3M2 = 0;
161  nL3M3 = 0;
162  nL3M4 = 0;
163  nL4M1 = 0;
164  nL4M2 = 0;
165  nL4M3 = 0;
166  nL4M4 = 0;
167 
168  // Build map
169  buildStructure(iSetup);
170  // Book Monitoring Elements
171  bookMEs();
172  firstRun = false;
173  }
174 }
175 
176 
178 
179  if(saveFile) {
180  LogInfo ("PixelDQM") << " SiPixelDigiSource::endJob - Saving Root File " << std::endl;
182  theDMBE->save( outputFile.c_str() );
183  }
184 
185 }
186 
187 //------------------------------------------------------------------
188 // Method called for every event
189 //------------------------------------------------------------------
191 {
192  eventNo++;
193  //cout<<"BIGFATEVENTNUMBER: "<<eventNo<<endl;
194 
195  // get input data
197  iEvent.getByToken(srcToken_, input);
198  if (!input.isValid()) return;
199  // Get DQM interface
201 
202  //float iOrbitSec = iEvent.orbitNumber()/11223.;
203  int bx = iEvent.bunchCrossing();
204  //long long tbx = (long long)iEvent.orbitNumber() * 3564 + bx;
205  int lumiSection = (int)iEvent.luminosityBlock();
206  int nEventDigis = 0; int nActiveModules = 0;
207  //int nEventBPIXDigis = 0; int nEventFPIXDigis = 0;
208 
209  if(modOn){
210  MonitorElement* meReset = theDMBE->get("Pixel/averageDigiOccupancy");
211  //if(meReset && eventNo%1000==0){
212  if(meReset && lumiSection%8==0){
213  meReset->Reset();
214  nBPIXDigis = 0;
215  nFPIXDigis = 0;
216  for(int i=0; i!=40; i++) nDigisPerFed[i]=0;
217  }
218  if (lumiSection%10==0){
219  //Now do resets for ROCuppancy maps every 10 ls
220  std::string baseDirs[2] = {"Pixel/Barrel", "Pixel/Endcap"};
221  for (int i = 0; i < 2; ++i){
222  theDMBE->cd(baseDirs[i]);
223  vector<string> shellDirs = theDMBE->getSubdirs();
224  for (vector<string>::const_iterator it = shellDirs.begin(); it != shellDirs.end(); it++) {
225  theDMBE->cd(*it);
226  vector<string> layDirs = theDMBE->getSubdirs();
227  for (vector<string>::const_iterator itt = layDirs.begin(); itt != layDirs.end(); itt++) {
228  theDMBE->cd(*itt);
229  vector<string> contents = theDMBE->getMEs();
230  for (vector<string>::const_iterator im = contents.begin(); im != contents.end(); im++) {
231  if ((*im).find("rocmap") == string::npos) continue;
232  MonitorElement* me = theDMBE->get((*itt)+"/"+(*im));
233  if(me) me->Reset();}}}}//end for contents//end for layDirs//end for shellDirs//end for bar/EC
234  }
235  }
236  if(!modOn){
237  MonitorElement* meReset = theDMBE->get("Pixel/averageDigiOccupancy");
238  if(meReset && lumiSection%1==0){
239  meReset->Reset();
240  nBPIXDigis = 0;
241  nFPIXDigis = 0;
242  for(int i=0; i!=40; i++) nDigisPerFed[i]=0;
243  }
244  }
245 
246  std::map<uint32_t,SiPixelDigiModule*>::iterator struct_iter;
247  for(int i=0; i!=192; i++) numberOfDigis[i]=0;
248  for(int i=0; i!=1152; i++) nDigisPerChan[i]=0;
249  for(int i=0; i!=4; i++) nDigisPerDisk[i]=0;
250  for (struct_iter = thePixelStructure.begin() ; struct_iter != thePixelStructure.end() ; struct_iter++) {
251  int numberOfDigisMod = (*struct_iter).second->fill(*input, modOn,
252  ladOn, layOn, phiOn,
253  bladeOn, diskOn, ringOn,
256  if(numberOfDigisMod>0){
257  //if((*struct_iter).first == I_detId[39])
258  //std::cout << "FED " << (*struct_iter).first << " NDigis all modules..." << numberOfDigisMod << std::endl;
259  nEventDigis = nEventDigis + numberOfDigisMod;
260  nActiveModules++;
261  bool barrel = DetId((*struct_iter).first).subdetId() == static_cast<int>(PixelSubdetector::PixelBarrel);
262  bool endcap = DetId((*struct_iter).first).subdetId() == static_cast<int>(PixelSubdetector::PixelEndcap);
263  //if((*struct_iter).first >= 302055684 && (*struct_iter).first <= 302197792 ){ // Barrel
264  int nBPiXmodules;
265  //int nFPixmodules;
266  int nTOTmodules;
267  if (isUpgrade) {
268  nBPiXmodules=1184;
269  //nFPixmodules=672;
270  nTOTmodules=1856;
271  } else {
272  nBPiXmodules=768;
273  //nFPixmodules=672;
274  nTOTmodules=1440;
275  }
276  if(barrel){ // Barrel
277  //cout<<"AAbpix: "<<numberOfDigisMod<<" + "<<nBPIXDigis<<" = ";
278  nBPIXDigis = nBPIXDigis + numberOfDigisMod;
279  //cout<<nBPIXDigis<<endl;
280  for(int i=0; i!=nBPiXmodules; ++i){
281  //cout<<"\t\t\t bpix: "<<i<<" , "<<(*struct_iter).first<<" , "<<I_detId[i]<<endl;
282  if((*struct_iter).first == I_detId[i]){
283  //if(I_fedId[i]>=32&&I_fedId[i]<=39) std::cout<<"Attention: a BPIX module matched to an FPIX FED!"<<std::endl;
284  nDigisPerFed[I_fedId[i]]=nDigisPerFed[I_fedId[i]]+numberOfDigisMod;
285  //cout<<"BPIX: "<<i<<" , "<<I_fedId[i]<<" , "<<numberOfDigisMod<<" , "<<nDigisPerFed[I_fedId[i]]<<endl;
286  int index1 = 0; int index2 = 0;
287  if(I_linkId1[i]>0) index1 = I_fedId[i]*36+(I_linkId1[i]-1);
288  if(I_linkId2[i]>0) index2 = I_fedId[i]*36+(I_linkId2[i]-1);
289  if(nDigisA>0 && I_linkId1[i]>0) nDigisPerChan[index1]=nDigisPerChan[index1]+nDigisA;
290  if(nDigisB>0 && I_linkId2[i]>0) nDigisPerChan[index2]=nDigisPerChan[index2]+nDigisB;
291  //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;
292  i=(nBPiXmodules-1);
293  }
294  }
295  //}else if((*struct_iter).first >= 343999748 && (*struct_iter).first <= 352477708 ){ // Endcap
296  }else if(endcap && !isUpgrade){ // Endcap
297  //cout<<"AAfpix: "<<nFPIXDigis<<" = ";
298  nFPIXDigis = nFPIXDigis + numberOfDigisMod;
299  //cout<<nFPIXDigis<<endl;
300  PixelEndcapName::HalfCylinder side = PixelEndcapName(DetId((*struct_iter).first)).halfCylinder();
301  int disk = PixelEndcapName(DetId((*struct_iter).first)).diskName();
302  int blade = PixelEndcapName(DetId((*struct_iter).first)).bladeName();
303  int panel = PixelEndcapName(DetId((*struct_iter).first)).pannelName();
304  int module = PixelEndcapName(DetId((*struct_iter).first)).plaquetteName();
305  //std::cout<<"Endcap: "<<side<<" , "<<disk<<" , "<<blade<<" , "<<panel<<" , "<<std::endl;
306  int iter=0; int i=0;
307  if(side==PixelEndcapName::mI){
308  if(disk==1){
309  i=0;
310  if(panel==1){ if(module==1) nDM1P1M1+=numberOfDigisMod;
311  else if(module==2) nDM1P1M2+=numberOfDigisMod;
312  else if(module==3) nDM1P1M3+=numberOfDigisMod;
313  else if(module==4) nDM1P1M4+=numberOfDigisMod;}
314  else if(panel==2){ if(module==1) nDM1P2M1+=numberOfDigisMod;
315  else if(module==2) nDM1P2M2+=numberOfDigisMod;
316  else if(module==3) nDM1P2M3+=numberOfDigisMod; }
317  if(blade==1){ if(panel==1) iter=i; else if(panel==2) iter=i+1; }
318  if(blade==2){ if(panel==1) iter=i+2; else if(panel==2) iter=i+3; }
319  if(blade==3){ if(panel==1) iter=i+4; else if(panel==2) iter=i+5; }
320  if(blade==4){ if(panel==1) iter=i+6; else if(panel==2) iter=i+7; }
321  if(blade==5){ if(panel==1) iter=i+8; else if(panel==2) iter=i+9; }
322  if(blade==6){ if(panel==1) iter=i+10; else if(panel==2) iter=i+11; }
323  if(blade==7){ if(panel==1) iter=i+12; else if(panel==2) iter=i+13; }
324  if(blade==8){ if(panel==1) iter=i+14; else if(panel==2) iter=i+15; }
325  if(blade==9){ if(panel==1) iter=i+16; else if(panel==2) iter=i+17; }
326  if(blade==10){ if(panel==1) iter=i+18; else if(panel==2) iter=i+19; }
327  if(blade==11){ if(panel==1) iter=i+20; else if(panel==2) iter=i+21; }
328  if(blade==12){ if(panel==1) iter=i+22; else if(panel==2) iter=i+23; }
329  }else if(disk==2){
330  i=24;
331  if(panel==1){ if(module==1) nDM2P1M1+=numberOfDigisMod;
332  else if(module==2) nDM2P1M2+=numberOfDigisMod;
333  else if(module==3) nDM2P1M3+=numberOfDigisMod;
334  else if(module==4) nDM2P1M4+=numberOfDigisMod;}
335  else if(panel==2){ if(module==1) nDM2P2M1+=numberOfDigisMod;
336  else if(module==2) nDM2P2M2+=numberOfDigisMod;
337  else if(module==3) nDM2P2M3+=numberOfDigisMod; }
338  if(blade==1){ if(panel==1) iter=i; else if(panel==2) iter=i+1; }
339  if(blade==2){ if(panel==1) iter=i+2; else if(panel==2) iter=i+3; }
340  if(blade==3){ if(panel==1) iter=i+4; else if(panel==2) iter=i+5; }
341  if(blade==4){ if(panel==1) iter=i+6; else if(panel==2) iter=i+7; }
342  if(blade==5){ if(panel==1) iter=i+8; else if(panel==2) iter=i+9; }
343  if(blade==6){ if(panel==1) iter=i+10; else if(panel==2) iter=i+11; }
344  if(blade==7){ if(panel==1) iter=i+12; else if(panel==2) iter=i+13; }
345  if(blade==8){ if(panel==1) iter=i+14; else if(panel==2) iter=i+15; }
346  if(blade==9){ if(panel==1) iter=i+16; else if(panel==2) iter=i+17; }
347  if(blade==10){ if(panel==1) iter=i+18; else if(panel==2) iter=i+19; }
348  if(blade==11){ if(panel==1) iter=i+20; else if(panel==2) iter=i+21; }
349  if(blade==12){ if(panel==1) iter=i+22; else if(panel==2) iter=i+23; }
350  }
351  }else if(side==PixelEndcapName::mO){
352  if(disk==1){
353  i=48;
354  if(panel==1){ if(module==1) nDM1P1M1+=numberOfDigisMod;
355  else if(module==2) nDM1P1M2+=numberOfDigisMod;
356  else if(module==3) nDM1P1M3+=numberOfDigisMod;
357  else if(module==4) nDM1P1M4+=numberOfDigisMod;}
358  else if(panel==2){ if(module==1) nDM1P2M1+=numberOfDigisMod;
359  else if(module==2) nDM1P2M2+=numberOfDigisMod;
360  else if(module==3) nDM1P2M3+=numberOfDigisMod; }
361  if(blade==1){ if(panel==1) iter=i; else if(panel==2) iter=i+1; }
362  if(blade==2){ if(panel==1) iter=i+2; else if(panel==2) iter=i+3; }
363  if(blade==3){ if(panel==1) iter=i+4; else if(panel==2) iter=i+5; }
364  if(blade==4){ if(panel==1) iter=i+6; else if(panel==2) iter=i+7; }
365  if(blade==5){ if(panel==1) iter=i+8; else if(panel==2) iter=i+9; }
366  if(blade==6){ if(panel==1) iter=i+10; else if(panel==2) iter=i+11; }
367  if(blade==7){ if(panel==1) iter=i+12; else if(panel==2) iter=i+13; }
368  if(blade==8){ if(panel==1) iter=i+14; else if(panel==2) iter=i+15; }
369  if(blade==9){ if(panel==1) iter=i+16; else if(panel==2) iter=i+17; }
370  if(blade==10){ if(panel==1) iter=i+18; else if(panel==2) iter=i+19; }
371  if(blade==11){ if(panel==1) iter=i+20; else if(panel==2) iter=i+21; }
372  if(blade==12){ if(panel==1) iter=i+22; else if(panel==2) iter=i+23; }
373  }else if(disk==2){
374  i=72;
375  if(panel==1){ if(module==1) nDM2P1M1+=numberOfDigisMod;
376  else if(module==2) nDM2P1M2+=numberOfDigisMod;
377  else if(module==3) nDM2P1M3+=numberOfDigisMod;
378  else if(module==4) nDM2P1M4+=numberOfDigisMod;}
379  else if(panel==2){ if(module==1) nDM2P2M1+=numberOfDigisMod;
380  else if(module==2) nDM2P2M2+=numberOfDigisMod;
381  else if(module==3) nDM2P2M3+=numberOfDigisMod; }
382  if(blade==1){ if(panel==1) iter=i; else if(panel==2) iter=i+1; }
383  if(blade==2){ if(panel==1) iter=i+2; else if(panel==2) iter=i+3; }
384  if(blade==3){ if(panel==1) iter=i+4; else if(panel==2) iter=i+5; }
385  if(blade==4){ if(panel==1) iter=i+6; else if(panel==2) iter=i+7; }
386  if(blade==5){ if(panel==1) iter=i+8; else if(panel==2) iter=i+9; }
387  if(blade==6){ if(panel==1) iter=i+10; else if(panel==2) iter=i+11; }
388  if(blade==7){ if(panel==1) iter=i+12; else if(panel==2) iter=i+13; }
389  if(blade==8){ if(panel==1) iter=i+14; else if(panel==2) iter=i+15; }
390  if(blade==9){ if(panel==1) iter=i+16; else if(panel==2) iter=i+17; }
391  if(blade==10){ if(panel==1) iter=i+18; else if(panel==2) iter=i+19; }
392  if(blade==11){ if(panel==1) iter=i+20; else if(panel==2) iter=i+21; }
393  if(blade==12){ if(panel==1) iter=i+22; else if(panel==2) iter=i+23; }
394  }
395  }else if(side==PixelEndcapName::pI){
396  if(disk==1){
397  i=96;
398  if(panel==1){ if(module==1) nDP1P1M1+=numberOfDigisMod;
399  else if(module==2) nDP1P1M2+=numberOfDigisMod;
400  else if(module==3) nDP1P1M3+=numberOfDigisMod;
401  else if(module==4) nDP1P1M4+=numberOfDigisMod;}
402  else if(panel==2){ if(module==1) nDP1P2M1+=numberOfDigisMod;
403  else if(module==2) nDP1P2M2+=numberOfDigisMod;
404  else if(module==3) nDP1P2M3+=numberOfDigisMod; }
405  if(blade==1){ if(panel==1) iter=i; else if(panel==2) iter=i+1; }
406  if(blade==2){ if(panel==1) iter=i+2; else if(panel==2) iter=i+3; }
407  if(blade==3){ if(panel==1) iter=i+4; else if(panel==2) iter=i+5; }
408  if(blade==4){ if(panel==1) iter=i+6; else if(panel==2) iter=i+7; }
409  if(blade==5){ if(panel==1) iter=i+8; else if(panel==2) iter=i+9; }
410  if(blade==6){ if(panel==1) iter=i+10; else if(panel==2) iter=i+11; }
411  if(blade==7){ if(panel==1) iter=i+12; else if(panel==2) iter=i+13; }
412  if(blade==8){ if(panel==1) iter=i+14; else if(panel==2) iter=i+15; }
413  if(blade==9){ if(panel==1) iter=i+16; else if(panel==2) iter=i+17; }
414  if(blade==10){ if(panel==1) iter=i+18; else if(panel==2) iter=i+19; }
415  if(blade==11){ if(panel==1) iter=i+20; else if(panel==2) iter=i+21; }
416  if(blade==12){ if(panel==1) iter=i+22; else if(panel==2) iter=i+23; }
417  }else if(disk==2){
418  i=120;
419  if(panel==1){ if(module==1) nDP2P1M1+=numberOfDigisMod;
420  else if(module==2) nDP2P1M2+=numberOfDigisMod;
421  else if(module==3) nDP2P1M3+=numberOfDigisMod;
422  else if(module==4) nDP2P1M4+=numberOfDigisMod;}
423  else if(panel==2){ if(module==1) nDP2P2M1+=numberOfDigisMod;
424  else if(module==2) nDP2P2M2+=numberOfDigisMod;
425  else if(module==3) nDP2P2M3+=numberOfDigisMod; }
426  if(blade==1){ if(panel==1) iter=i; else if(panel==2) iter=i+1; }
427  if(blade==2){ if(panel==1) iter=i+2; else if(panel==2) iter=i+3; }
428  if(blade==3){ if(panel==1) iter=i+4; else if(panel==2) iter=i+5; }
429  if(blade==4){ if(panel==1) iter=i+6; else if(panel==2) iter=i+7; }
430  if(blade==5){ if(panel==1) iter=i+8; else if(panel==2) iter=i+9; }
431  if(blade==6){ if(panel==1) iter=i+10; else if(panel==2) iter=i+11; }
432  if(blade==7){ if(panel==1) iter=i+12; else if(panel==2) iter=i+13; }
433  if(blade==8){ if(panel==1) iter=i+14; else if(panel==2) iter=i+15; }
434  if(blade==9){ if(panel==1) iter=i+16; else if(panel==2) iter=i+17; }
435  if(blade==10){ if(panel==1) iter=i+18; else if(panel==2) iter=i+19; }
436  if(blade==11){ if(panel==1) iter=i+20; else if(panel==2) iter=i+21; }
437  if(blade==12){ if(panel==1) iter=i+22; else if(panel==2) iter=i+23; }
438  }
439  }else if(side==PixelEndcapName::pO){
440  if(disk==1){
441  i=144;
442  if(panel==1){ if(module==1) nDP1P1M1+=numberOfDigisMod;
443  else if(module==2) nDP1P1M2+=numberOfDigisMod;
444  else if(module==3) nDP1P1M3+=numberOfDigisMod;
445  else if(module==4) nDP1P1M4+=numberOfDigisMod;}
446  else if(panel==2){ if(module==1) nDP1P2M1+=numberOfDigisMod;
447  else if(module==2) nDP1P2M2+=numberOfDigisMod;
448  else if(module==3) nDP1P2M3+=numberOfDigisMod; }
449  if(blade==1){ if(panel==1) iter=i; else if(panel==2) iter=i+1; }
450  if(blade==2){ if(panel==1) iter=i+2; else if(panel==2) iter=i+3; }
451  if(blade==3){ if(panel==1) iter=i+4; else if(panel==2) iter=i+5; }
452  if(blade==4){ if(panel==1) iter=i+6; else if(panel==2) iter=i+7; }
453  if(blade==5){ if(panel==1) iter=i+8; else if(panel==2) iter=i+9; }
454  if(blade==6){ if(panel==1) iter=i+10; else if(panel==2) iter=i+11; }
455  if(blade==7){ if(panel==1) iter=i+12; else if(panel==2) iter=i+13; }
456  if(blade==8){ if(panel==1) iter=i+14; else if(panel==2) iter=i+15; }
457  if(blade==9){ if(panel==1) iter=i+16; else if(panel==2) iter=i+17; }
458  if(blade==10){ if(panel==1) iter=i+18; else if(panel==2) iter=i+19; }
459  if(blade==11){ if(panel==1) iter=i+20; else if(panel==2) iter=i+21; }
460  if(blade==12){ if(panel==1) iter=i+22; else if(panel==2) iter=i+23; }
461  }else if(disk==2){
462  i=168;
463  if(panel==1){ if(module==1) nDP2P1M1+=numberOfDigisMod;
464  else if(module==2) nDP2P1M2+=numberOfDigisMod;
465  else if(module==3) nDP2P1M3+=numberOfDigisMod;
466  else if(module==4) nDP2P1M4+=numberOfDigisMod;}
467  else if(panel==2){ if(module==1) nDP2P2M1+=numberOfDigisMod;
468  else if(module==2) nDP2P2M2+=numberOfDigisMod;
469  else if(module==3) nDP2P2M3+=numberOfDigisMod; }
470  if(blade==1){ if(panel==1) iter=i; else if(panel==2) iter=i+1; }
471  if(blade==2){ if(panel==1) iter=i+2; else if(panel==2) iter=i+3; }
472  if(blade==3){ if(panel==1) iter=i+4; else if(panel==2) iter=i+5; }
473  if(blade==4){ if(panel==1) iter=i+6; else if(panel==2) iter=i+7; }
474  if(blade==5){ if(panel==1) iter=i+8; else if(panel==2) iter=i+9; }
475  if(blade==6){ if(panel==1) iter=i+10; else if(panel==2) iter=i+11; }
476  if(blade==7){ if(panel==1) iter=i+12; else if(panel==2) iter=i+13; }
477  if(blade==8){ if(panel==1) iter=i+14; else if(panel==2) iter=i+15; }
478  if(blade==9){ if(panel==1) iter=i+16; else if(panel==2) iter=i+17; }
479  if(blade==10){ if(panel==1) iter=i+18; else if(panel==2) iter=i+19; }
480  if(blade==11){ if(panel==1) iter=i+20; else if(panel==2) iter=i+21; }
481  if(blade==12){ if(panel==1) iter=i+22; else if(panel==2) iter=i+23; }
482  }
483  }
484  numberOfDigis[iter]=numberOfDigis[iter]+numberOfDigisMod;
485  //if(side==PixelEndcapName::pO||side==PixelEndcapName::pI){
486  // if(disk==2){
487  // std::cout<<"status: "<<iter<<","<<side<<","<<disk<<","<<blade<<","<<panel<<","<<numberOfDigisMod<<","<<numberOfDigis[iter]<<std::endl;
488  //}}
489  for(int i=nBPiXmodules; i!=nTOTmodules; i++){
490  //cout<<"\t\t\t fpix: "<<i<<" , "<<(*struct_iter).first<<" , "<<I_detId[i]<<endl;
491  if((*struct_iter).first == I_detId[i]){
492  //if(I_fedId[i]<32||I_fedId[i]>39) std::cout<<"Attention: an FPIX module matched to a BPIX FED!"<<std::endl;
493  nDigisPerFed[I_fedId[i]]=nDigisPerFed[I_fedId[i]]+numberOfDigisMod;
494  //cout<<"FPIX: "<<i<<" , "<<I_fedId[i]<<" , "<<nDigisPerFed[I_fedId[i]]<< ", "<<numberOfDigisMod << endl;
495  i=nTOTmodules-1;
496  }
497  }
498  //cout<<"NDigis Endcap: "<<nDM1P1M1/2.<<" "<<nDM1P2M1/6.<<" "<<nDM1P1M2/6.<<" "<<nDM1P2M2/8.<<" "<<nDM1P1M3/8.<<" "<<nDM1P2M3/10.<<" "<<nDM1P1M4/5.<<endl;
499  } //endif Barrel/(Endcap && !isUpgrade)
500  else if (endcap && isUpgrade) {
501  //cout<<"AAfpix: "<<nFPIXDigis<<" = ";
502  nFPIXDigis = nFPIXDigis + numberOfDigisMod;
503  //cout<<nFPIXDigis<<endl;
505  int disk = PixelEndcapNameUpgrade(DetId((*struct_iter).first)).diskName();
506  int blade = PixelEndcapNameUpgrade(DetId((*struct_iter).first)).bladeName();
507  int panel = PixelEndcapNameUpgrade(DetId((*struct_iter).first)).pannelName();
508  int module = PixelEndcapNameUpgrade(DetId((*struct_iter).first)).plaquetteName();
509 
510  int iter=0; int i=0;
511  if(side==PixelEndcapNameUpgrade::mI){
512  if(disk==1){
513  i=0;
514  if(panel==1){ if(module==1) nDM1P1M1+=numberOfDigisMod; }
515  else if(panel==2){ if(module==1) nDM1P2M1+=numberOfDigisMod; }
516  if(blade==1){ if(panel==1) iter=i; else if(panel==2) iter=i+1; }
517  if(blade==2){ if(panel==1) iter=i+2; else if(panel==2) iter=i+3; }
518  if(blade==3){ if(panel==1) iter=i+4; else if(panel==2) iter=i+5; }
519  if(blade==4){ if(panel==1) iter=i+6; else if(panel==2) iter=i+7; }
520  if(blade==5){ if(panel==1) iter=i+8; else if(panel==2) iter=i+9; }
521  if(blade==6){ if(panel==1) iter=i+10; else if(panel==2) iter=i+11; }
522  if(blade==7){ if(panel==1) iter=i+12; else if(panel==2) iter=i+13; }
523  if(blade==8){ if(panel==1) iter=i+14; else if(panel==2) iter=i+15; }
524  if(blade==9){ if(panel==1) iter=i+16; else if(panel==2) iter=i+17; }
525  if(blade==10){ if(panel==1) iter=i+18; else if(panel==2) iter=i+19; }
526  if(blade==11){ if(panel==1) iter=i+20; else if(panel==2) iter=i+21; }
527  }else if(disk==2){
528  i=22;
529  if(panel==1){ if(module==1) nDM2P1M1+=numberOfDigisMod; }
530  else if(panel==2){ if(module==1) nDM2P2M1+=numberOfDigisMod; }
531  if(blade==1){ if(panel==1) iter=i; else if(panel==2) iter=i+1; }
532  if(blade==2){ if(panel==1) iter=i+2; else if(panel==2) iter=i+3; }
533  if(blade==3){ if(panel==1) iter=i+4; else if(panel==2) iter=i+5; }
534  if(blade==4){ if(panel==1) iter=i+6; else if(panel==2) iter=i+7; }
535  if(blade==5){ if(panel==1) iter=i+8; else if(panel==2) iter=i+9; }
536  if(blade==6){ if(panel==1) iter=i+10; else if(panel==2) iter=i+11; }
537  if(blade==7){ if(panel==1) iter=i+12; else if(panel==2) iter=i+13; }
538  if(blade==8){ if(panel==1) iter=i+14; else if(panel==2) iter=i+15; }
539  if(blade==9){ if(panel==1) iter=i+16; else if(panel==2) iter=i+17; }
540  if(blade==10){ if(panel==1) iter=i+18; else if(panel==2) iter=i+19; }
541  if(blade==11){ if(panel==1) iter=i+20; else if(panel==2) iter=i+21; }
542  }else if(disk==3){
543  i=44;
544  if(panel==1){ if(module==1) nDM3P1M1+=numberOfDigisMod; }
545  else if(panel==2){ if(module==1) nDM3P2M1+=numberOfDigisMod; }
546  if(blade==1){ if(panel==1) iter=i; else if(panel==2) iter=i+1; }
547  if(blade==2){ if(panel==1) iter=i+2; else if(panel==2) iter=i+3; }
548  if(blade==3){ if(panel==1) iter=i+4; else if(panel==2) iter=i+5; }
549  if(blade==4){ if(panel==1) iter=i+6; else if(panel==2) iter=i+7; }
550  if(blade==5){ if(panel==1) iter=i+8; else if(panel==2) iter=i+9; }
551  if(blade==6){ if(panel==1) iter=i+10; else if(panel==2) iter=i+11; }
552  if(blade==7){ if(panel==1) iter=i+12; else if(panel==2) iter=i+13; }
553  if(blade==8){ if(panel==1) iter=i+14; else if(panel==2) iter=i+15; }
554  if(blade==9){ if(panel==1) iter=i+16; else if(panel==2) iter=i+17; }
555  if(blade==10){ if(panel==1) iter=i+18; else if(panel==2) iter=i+19; }
556  if(blade==11){ if(panel==1) iter=i+20; else if(panel==2) iter=i+21; }
557  }
558  }else if(side==PixelEndcapNameUpgrade::mO){
559  if(disk==1){
560  i=66;
561  if(panel==1){ if(module==1) nDM1P1M1+=numberOfDigisMod; }
562  else if(panel==2){ if(module==1) nDM1P2M1+=numberOfDigisMod; }
563  if(blade==1){ if(panel==1) iter=i; else if(panel==2) iter=i+1; }
564  if(blade==2){ if(panel==1) iter=i+2; else if(panel==2) iter=i+3; }
565  if(blade==3){ if(panel==1) iter=i+4; else if(panel==2) iter=i+5; }
566  if(blade==4){ if(panel==1) iter=i+6; else if(panel==2) iter=i+7; }
567  if(blade==5){ if(panel==1) iter=i+8; else if(panel==2) iter=i+9; }
568  if(blade==6){ if(panel==1) iter=i+10; else if(panel==2) iter=i+11; }
569  if(blade==7){ if(panel==1) iter=i+12; else if(panel==2) iter=i+13; }
570  if(blade==8){ if(panel==1) iter=i+14; else if(panel==2) iter=i+15; }
571  if(blade==9){ if(panel==1) iter=i+16; else if(panel==2) iter=i+17; }
572  if(blade==10){ if(panel==1) iter=i+18; else if(panel==2) iter=i+19; }
573  if(blade==11){ if(panel==1) iter=i+20; else if(panel==2) iter=i+21; }
574  if(blade==12){ if(panel==1) iter=i+22; else if(panel==2) iter=i+23; }
575  if(blade==13){ if(panel==1) iter=i+24; else if(panel==2) iter=i+25; }
576  if(blade==14){ if(panel==1) iter=i+26; else if(panel==2) iter=i+27; }
577  if(blade==15){ if(panel==1) iter=i+28; else if(panel==2) iter=i+29; }
578  if(blade==16){ if(panel==1) iter=i+30; else if(panel==2) iter=i+31; }
579  if(blade==17){ if(panel==1) iter=i+32; else if(panel==2) iter=i+33; }
580  }else if(disk==2){
581  i=100;
582  if(panel==1){ if(module==1) nDM2P1M1+=numberOfDigisMod; }
583  else if(panel==2){ if(module==1) nDM2P2M1+=numberOfDigisMod; }
584  if(blade==1){ if(panel==1) iter=i; else if(panel==2) iter=i+1; }
585  if(blade==2){ if(panel==1) iter=i+2; else if(panel==2) iter=i+3; }
586  if(blade==3){ if(panel==1) iter=i+4; else if(panel==2) iter=i+5; }
587  if(blade==4){ if(panel==1) iter=i+6; else if(panel==2) iter=i+7; }
588  if(blade==5){ if(panel==1) iter=i+8; else if(panel==2) iter=i+9; }
589  if(blade==6){ if(panel==1) iter=i+10; else if(panel==2) iter=i+11; }
590  if(blade==7){ if(panel==1) iter=i+12; else if(panel==2) iter=i+13; }
591  if(blade==8){ if(panel==1) iter=i+14; else if(panel==2) iter=i+15; }
592  if(blade==9){ if(panel==1) iter=i+16; else if(panel==2) iter=i+17; }
593  if(blade==10){ if(panel==1) iter=i+18; else if(panel==2) iter=i+19; }
594  if(blade==11){ if(panel==1) iter=i+20; else if(panel==2) iter=i+21; }
595  if(blade==12){ if(panel==1) iter=i+22; else if(panel==2) iter=i+23; }
596  if(blade==13){ if(panel==1) iter=i+24; else if(panel==2) iter=i+25; }
597  if(blade==14){ if(panel==1) iter=i+26; else if(panel==2) iter=i+27; }
598  if(blade==15){ if(panel==1) iter=i+28; else if(panel==2) iter=i+29; }
599  if(blade==16){ if(panel==1) iter=i+30; else if(panel==2) iter=i+31; }
600  if(blade==17){ if(panel==1) iter=i+32; else if(panel==2) iter=i+33; }
601  }else if (disk==3){
602  i=134;
603  if(panel==1){ if(module==1) nDM3P1M1+=numberOfDigisMod; }
604  else if(panel==2){ if(module==1) nDM3P2M1+=numberOfDigisMod; }
605  if(blade==1){ if(panel==1) iter=i; else if(panel==2) iter=i+1; }
606  if(blade==2){ if(panel==1) iter=i+2; else if(panel==2) iter=i+3; }
607  if(blade==3){ if(panel==1) iter=i+4; else if(panel==2) iter=i+5; }
608  if(blade==4){ if(panel==1) iter=i+6; else if(panel==2) iter=i+7; }
609  if(blade==5){ if(panel==1) iter=i+8; else if(panel==2) iter=i+9; }
610  if(blade==6){ if(panel==1) iter=i+10; else if(panel==2) iter=i+11; }
611  if(blade==7){ if(panel==1) iter=i+12; else if(panel==2) iter=i+13; }
612  if(blade==8){ if(panel==1) iter=i+14; else if(panel==2) iter=i+15; }
613  if(blade==9){ if(panel==1) iter=i+16; else if(panel==2) iter=i+17; }
614  if(blade==10){ if(panel==1) iter=i+18; else if(panel==2) iter=i+19; }
615  if(blade==11){ if(panel==1) iter=i+20; else if(panel==2) iter=i+21; }
616  if(blade==12){ if(panel==1) iter=i+22; else if(panel==2) iter=i+23; }
617  if(blade==13){ if(panel==1) iter=i+24; else if(panel==2) iter=i+25; }
618  if(blade==14){ if(panel==1) iter=i+26; else if(panel==2) iter=i+27; }
619  if(blade==15){ if(panel==1) iter=i+28; else if(panel==2) iter=i+29; }
620  if(blade==16){ if(panel==1) iter=i+30; else if(panel==2) iter=i+31; }
621  if(blade==17){ if(panel==1) iter=i+32; else if(panel==2) iter=i+33; }
622  }
623  }else if(side==PixelEndcapNameUpgrade::pI){
624  if(disk==1){
625  i=168;
626  if(panel==1){ if(module==1) nDP1P1M1+=numberOfDigisMod; }
627  else if(panel==2){ if(module==1) nDP1P2M1+=numberOfDigisMod; }
628  if(blade==1){ if(panel==1) iter=i; else if(panel==2) iter=i+1; }
629  if(blade==2){ if(panel==1) iter=i+2; else if(panel==2) iter=i+3; }
630  if(blade==3){ if(panel==1) iter=i+4; else if(panel==2) iter=i+5; }
631  if(blade==4){ if(panel==1) iter=i+6; else if(panel==2) iter=i+7; }
632  if(blade==5){ if(panel==1) iter=i+8; else if(panel==2) iter=i+9; }
633  if(blade==6){ if(panel==1) iter=i+10; else if(panel==2) iter=i+11; }
634  if(blade==7){ if(panel==1) iter=i+12; else if(panel==2) iter=i+13; }
635  if(blade==8){ if(panel==1) iter=i+14; else if(panel==2) iter=i+15; }
636  if(blade==9){ if(panel==1) iter=i+16; else if(panel==2) iter=i+17; }
637  if(blade==10){ if(panel==1) iter=i+18; else if(panel==2) iter=i+19; }
638  if(blade==11){ if(panel==1) iter=i+20; else if(panel==2) iter=i+21; }
639  }else if(disk==2){
640  i=190;
641  if(panel==1){ if(module==1) nDP2P1M1+=numberOfDigisMod; }
642  else if(panel==2){ if(module==1) nDP2P2M1+=numberOfDigisMod; }
643  if(blade==1){ if(panel==1) iter=i; else if(panel==2) iter=i+1; }
644  if(blade==2){ if(panel==1) iter=i+2; else if(panel==2) iter=i+3; }
645  if(blade==3){ if(panel==1) iter=i+4; else if(panel==2) iter=i+5; }
646  if(blade==4){ if(panel==1) iter=i+6; else if(panel==2) iter=i+7; }
647  if(blade==5){ if(panel==1) iter=i+8; else if(panel==2) iter=i+9; }
648  if(blade==6){ if(panel==1) iter=i+10; else if(panel==2) iter=i+11; }
649  if(blade==7){ if(panel==1) iter=i+12; else if(panel==2) iter=i+13; }
650  if(blade==8){ if(panel==1) iter=i+14; else if(panel==2) iter=i+15; }
651  if(blade==9){ if(panel==1) iter=i+16; else if(panel==2) iter=i+17; }
652  if(blade==10){ if(panel==1) iter=i+18; else if(panel==2) iter=i+19; }
653  if(blade==11){ if(panel==1) iter=i+20; else if(panel==2) iter=i+21; }
654  }else if(disk==3){
655  i=212;
656  if(panel==1){ if(module==1) nDP3P1M1+=numberOfDigisMod; }
657  else if(panel==2){ if(module==1) nDP3P2M1+=numberOfDigisMod; }
658  if(blade==1){ if(panel==1) iter=i; else if(panel==2) iter=i+1; }
659  if(blade==2){ if(panel==1) iter=i+2; else if(panel==2) iter=i+3; }
660  if(blade==3){ if(panel==1) iter=i+4; else if(panel==2) iter=i+5; }
661  if(blade==4){ if(panel==1) iter=i+6; else if(panel==2) iter=i+7; }
662  if(blade==5){ if(panel==1) iter=i+8; else if(panel==2) iter=i+9; }
663  if(blade==6){ if(panel==1) iter=i+10; else if(panel==2) iter=i+11; }
664  if(blade==7){ if(panel==1) iter=i+12; else if(panel==2) iter=i+13; }
665  if(blade==8){ if(panel==1) iter=i+14; else if(panel==2) iter=i+15; }
666  if(blade==9){ if(panel==1) iter=i+16; else if(panel==2) iter=i+17; }
667  if(blade==10){ if(panel==1) iter=i+18; else if(panel==2) iter=i+19; }
668  if(blade==11){ if(panel==1) iter=i+20; else if(panel==2) iter=i+21; }
669  }
670  }else if(side==PixelEndcapNameUpgrade::pO){
671  if(disk==1){
672  i=234;
673  if(panel==1){ if(module==1) nDP1P1M1+=numberOfDigisMod; }
674  else if(panel==2){ if(module==1) nDP1P2M1+=numberOfDigisMod; }
675  if(blade==1){ if(panel==1) iter=i; else if(panel==2) iter=i+1; }
676  if(blade==2){ if(panel==1) iter=i+2; else if(panel==2) iter=i+3; }
677  if(blade==3){ if(panel==1) iter=i+4; else if(panel==2) iter=i+5; }
678  if(blade==4){ if(panel==1) iter=i+6; else if(panel==2) iter=i+7; }
679  if(blade==5){ if(panel==1) iter=i+8; else if(panel==2) iter=i+9; }
680  if(blade==6){ if(panel==1) iter=i+10; else if(panel==2) iter=i+11; }
681  if(blade==7){ if(panel==1) iter=i+12; else if(panel==2) iter=i+13; }
682  if(blade==8){ if(panel==1) iter=i+14; else if(panel==2) iter=i+15; }
683  if(blade==9){ if(panel==1) iter=i+16; else if(panel==2) iter=i+17; }
684  if(blade==10){ if(panel==1) iter=i+18; else if(panel==2) iter=i+19; }
685  if(blade==11){ if(panel==1) iter=i+20; else if(panel==2) iter=i+21; }
686  if(blade==12){ if(panel==1) iter=i+22; else if(panel==2) iter=i+23; }
687  if(blade==13){ if(panel==1) iter=i+24; else if(panel==2) iter=i+25; }
688  if(blade==14){ if(panel==1) iter=i+26; else if(panel==2) iter=i+27; }
689  if(blade==15){ if(panel==1) iter=i+28; else if(panel==2) iter=i+29; }
690  if(blade==16){ if(panel==1) iter=i+30; else if(panel==2) iter=i+31; }
691  if(blade==17){ if(panel==1) iter=i+32; else if(panel==2) iter=i+33; }
692  }else if(disk==2){
693  i=268;
694  if(panel==1){ if(module==1) nDP2P1M1+=numberOfDigisMod; }
695  else if(panel==2){ if(module==1) nDP2P2M1+=numberOfDigisMod; }
696  if(blade==1){ if(panel==1) iter=i; else if(panel==2) iter=i+1; }
697  if(blade==2){ if(panel==1) iter=i+2; else if(panel==2) iter=i+3; }
698  if(blade==3){ if(panel==1) iter=i+4; else if(panel==2) iter=i+5; }
699  if(blade==4){ if(panel==1) iter=i+6; else if(panel==2) iter=i+7; }
700  if(blade==5){ if(panel==1) iter=i+8; else if(panel==2) iter=i+9; }
701  if(blade==6){ if(panel==1) iter=i+10; else if(panel==2) iter=i+11; }
702  if(blade==7){ if(panel==1) iter=i+12; else if(panel==2) iter=i+13; }
703  if(blade==8){ if(panel==1) iter=i+14; else if(panel==2) iter=i+15; }
704  if(blade==9){ if(panel==1) iter=i+16; else if(panel==2) iter=i+17; }
705  if(blade==10){ if(panel==1) iter=i+18; else if(panel==2) iter=i+19; }
706  if(blade==11){ if(panel==1) iter=i+20; else if(panel==2) iter=i+21; }
707  if(blade==12){ if(panel==1) iter=i+22; else if(panel==2) iter=i+23; }
708  if(blade==13){ if(panel==1) iter=i+24; else if(panel==2) iter=i+25; }
709  if(blade==14){ if(panel==1) iter=i+26; else if(panel==2) iter=i+27; }
710  if(blade==15){ if(panel==1) iter=i+28; else if(panel==2) iter=i+29; }
711  if(blade==16){ if(panel==1) iter=i+30; else if(panel==2) iter=i+31; }
712  if(blade==17){ if(panel==1) iter=i+32; else if(panel==2) iter=i+33; }
713  }else if(disk==3){
714  i=302;
715  if(panel==1){ if(module==1) nDP3P1M1+=numberOfDigisMod; }
716  else if(panel==2){ if(module==1) nDP3P2M1+=numberOfDigisMod; }
717  if(blade==1){ if(panel==1) iter=i; else if(panel==2) iter=i+1; }
718  if(blade==2){ if(panel==1) iter=i+2; else if(panel==2) iter=i+3; }
719  if(blade==3){ if(panel==1) iter=i+4; else if(panel==2) iter=i+5; }
720  if(blade==4){ if(panel==1) iter=i+6; else if(panel==2) iter=i+7; }
721  if(blade==5){ if(panel==1) iter=i+8; else if(panel==2) iter=i+9; }
722  if(blade==6){ if(panel==1) iter=i+10; else if(panel==2) iter=i+11; }
723  if(blade==7){ if(panel==1) iter=i+12; else if(panel==2) iter=i+13; }
724  if(blade==8){ if(panel==1) iter=i+14; else if(panel==2) iter=i+15; }
725  if(blade==9){ if(panel==1) iter=i+16; else if(panel==2) iter=i+17; }
726  if(blade==10){ if(panel==1) iter=i+18; else if(panel==2) iter=i+19; }
727  if(blade==11){ if(panel==1) iter=i+20; else if(panel==2) iter=i+21; }
728  if(blade==12){ if(panel==1) iter=i+22; else if(panel==2) iter=i+23; }
729  if(blade==13){ if(panel==1) iter=i+24; else if(panel==2) iter=i+25; }
730  if(blade==14){ if(panel==1) iter=i+26; else if(panel==2) iter=i+27; }
731  if(blade==15){ if(panel==1) iter=i+28; else if(panel==2) iter=i+29; }
732  if(blade==16){ if(panel==1) iter=i+30; else if(panel==2) iter=i+31; }
733  if(blade==17){ if(panel==1) iter=i+32; else if(panel==2) iter=i+33; }
734  }
735  }
736  numberOfDigis[iter]=numberOfDigis[iter]+numberOfDigisMod;
737  //if(side==PixelEndcapNameUpgrade::pO||side==PixelEndcapNameUpgrade::pI){
738  // if(disk==2){
739  // std::cout<<"status: "<<iter<<","<<side<<","<<disk<<","<<blade<<","<<panel<<","<<numberOfDigisMod<<","<<numberOfDigis[iter]<<std::endl;
740  //}}
741  for(int i=nBPiXmodules; i!=nTOTmodules; i++){
742  //cout<<"\t\t\t fpix: "<<i<<" , "<<(*struct_iter).first<<" , "<<I_detId[i]<<endl;
743  if((*struct_iter).first == I_detId[i]){
744  //if(I_fedId[i]<32||I_fedId[i]>39) std::cout<<"Attention: an FPIX module matched to a BPIX FED!"<<std::endl;
745  nDigisPerFed[I_fedId[i]]=nDigisPerFed[I_fedId[i]]+numberOfDigisMod;
746  //cout<<"FPIX: "<<i<<" , "<<I_fedId[i]<<" , "<<nDigisPerFed[I_fedId[i]]<< ", "<<numberOfDigisMod << endl;
747  i=nTOTmodules-1;
748  }
749  }
750  //cout<<"NDigis Endcap: "<<nDM1P1M1/2.<<" "<<nDM1P2M1/6.<<" "<<nDM1P1M2/6.<<" "<<nDM1P2M2/8.<<" "<<nDM1P1M3/8.<<" "<<nDM1P2M3/10.<<" "<<nDM1P1M4/5.<<endl;
751  }//endif(Endcap && isUpgrade)
752  //cout<<"numberOfDigis: "<<numberOfDigisMod<<" , nBPIXDigis: "<<nBPIXDigis<<" , nFPIXDigis: "<<nFPIXDigis<<endl;
753  // digi occupancy per individual FED channel:
754  } // endif any digis in this module
755  } // endfor loop over all modules
756 
757  //A really, really ugly way to do the occupancy-based
758  int NzeroROCs[2] = {0,-672};
759  int NloEffROCs[2] = {0,-672};
760  std::string baseDirs[2] = {"Pixel/Barrel", "Pixel/Endcap"};
761  if (lumiSection%10> 2){
762  for (int i = 0; i < 2; ++i){
763  theDMBE->cd(baseDirs[i]);
764  vector<string> shellDirs = theDMBE->getSubdirs();
765  for (vector<string>::const_iterator it = shellDirs.begin(); it != shellDirs.end(); it++) {
766  theDMBE->cd(*it);
767  vector<string> layDirs = theDMBE->getSubdirs();
768  for (vector<string>::const_iterator itt = layDirs.begin(); itt != layDirs.end(); itt++) {
769  theDMBE->cd(*itt);
770  vector<string> contents = theDMBE->getMEs();
771  for (vector<string>::const_iterator im = contents.begin(); im != contents.end(); im++) {
772  if ((*im).find("rocmap") == string::npos) continue;
773  MonitorElement* me = theDMBE->get((*itt)+"/"+(*im));
774  if(!me) continue;
775  MonitorElement* me2;
776  me2 = theDMBE->get((*itt)+"/zeroOccROC_map");
777  float SF = 1.0; if (me->getEntries() > 0) SF = float(me->getNbinsX()*me->getNbinsY()/me->getEntries());
778  for (int ii = 1; ii < me->getNbinsX()+1; ++ii){for (int jj = 1; jj < me->getNbinsY()+1; ++jj){
779  //Putting in conversion to layer maps.. again, ugly way to do it...
780  float localX = float(ii)-0.5;
781  float localY = float(jj)/2.0 + 1.25;
782  if (i ==1) localY = float(jj)/2.0 + 0.75;
783  if (me->getBinContent(ii,jj) < 1) {++NzeroROCs[i]; if (me2) me2->Fill(localX, localY);}
784  if (me->getBinContent(ii,jj)*SF < 0.25) ++NloEffROCs[i];}}
785  }
786  }
787  }
788  }
789  for (int i =0; i < 2; ++i) NloEffROCs[i] = NloEffROCs[i] - NzeroROCs[i];
790  MonitorElement* menoOcc=theDMBE->get("Pixel/noOccROCsBarrel");
791  MonitorElement* meloOcc=theDMBE->get("Pixel/loOccROCsBarrel");
792  if(menoOcc) menoOcc->setBinContent(1+lumiSection/10, NzeroROCs[0]);
793  if(meloOcc) meloOcc->setBinContent(1+lumiSection/10, NloEffROCs[0]);
794  MonitorElement* menoOcc1=theDMBE->get("Pixel/noOccROCsEndcap");
795  MonitorElement* meloOcc1=theDMBE->get("Pixel/loOccROCsEndcap");
796  if(menoOcc1) menoOcc1->setBinContent(1+lumiSection/10, NzeroROCs[1]);
797  if(meloOcc1) meloOcc1->setBinContent(1+lumiSection/10, NloEffROCs[1]);
798  theDMBE->cd();
799  }
800 // if(lumiSection>lumSec){ lumSec = lumiSection; nLumiSecs++; }
801 // if(nEventDigis>bigEventSize) nBigEvents++;
802 // if(nLumiSecs%5==0){
803 
805  MonitorElement* meE5; MonitorElement* meE6;
806  if (!isUpgrade) {
807  meE=theDMBE->get("Pixel/Endcap/ALLMODS_ndigisCHAN_Endcap");
808  if(meE){ for(int j=0; j!=192; j++) if(numberOfDigis[j]>0) meE->Fill((float)numberOfDigis[j]);}
809  meE1=theDMBE->get("Pixel/Endcap/ALLMODS_ndigisCHAN_EndcapDm1");
810  if(meE1){ for(int j=0; j!=72; j++) if((j<24||j>47)&&numberOfDigis[j]>0) meE1->Fill((float)numberOfDigis[j]);}
811  meE2=theDMBE->get("Pixel/Endcap/ALLMODS_ndigisCHAN_EndcapDm2");
812  if(meE2){ for(int j=24; j!=96; j++) if((j<48||j>71)&&numberOfDigis[j]>0) meE2->Fill((float)numberOfDigis[j]);}
813  meE3=theDMBE->get("Pixel/Endcap/ALLMODS_ndigisCHAN_EndcapDp1");
814  if(meE3){ for(int j=96; j!=168; j++) if((j<120||j>143)&&numberOfDigis[j]>0) meE3->Fill((float)numberOfDigis[j]);}
815  meE4=theDMBE->get("Pixel/Endcap/ALLMODS_ndigisCHAN_EndcapDp2");
816  if(meE4){ for(int j=120; j!=192; j++) if((j<144||j>167)&&numberOfDigis[j]>0) meE4->Fill((float)numberOfDigis[j]);}
817  } else if (isUpgrade) {
818  meE=theDMBE->get("Pixel/Endcap/ALLMODS_ndigisCHAN_Endcap");
819  if(meE){ for(int j=0; j!=336; j++) if(numberOfDigis[j]>0) meE->Fill((float)numberOfDigis[j]);}
820  meE1=theDMBE->get("Pixel/Endcap/ALLMODS_ndigisCHAN_EndcapDm1");
821  if(meE1){ for(int j=0; j!=100; j++) if((j<22||j>65)&&numberOfDigis[j]>0) meE1->Fill((float)numberOfDigis[j]);}
822  meE2=theDMBE->get("Pixel/Endcap/ALLMODS_ndigisCHAN_EndcapDm2");
823  if(meE2){ for(int j=22; j!=134; j++) if((j<44||j>99)&&numberOfDigis[j]>0) meE2->Fill((float)numberOfDigis[j]);}
824  meE3=theDMBE->get("Pixel/Endcap/ALLMODS_ndigisCHAN_EndcapDm3");
825  if(meE3){ for(int j=44; j!=168; j++) if((j<66||j>133)&&numberOfDigis[j]>0) meE3->Fill((float)numberOfDigis[j]);}
826  meE4=theDMBE->get("Pixel/Endcap/ALLMODS_ndigisCHAN_EndcapDp1");
827  if(meE4){ for(int j=168; j!=268; j++) if((j<190||j>233)&&numberOfDigis[j]>0) meE4->Fill((float)numberOfDigis[j]);}
828  meE5=theDMBE->get("Pixel/Endcap/ALLMODS_ndigisCHAN_EndcapDp2");
829  if(meE5){ for(int j=190; j!=302; j++) if((j<212||j>267)&&numberOfDigis[j]>0) meE5->Fill((float)numberOfDigis[j]);}
830  meE6=theDMBE->get("Pixel/Endcap/ALLMODS_ndigisCHAN_EndcapDp3");
831  if(meE6){ for(int j=212; j!=336; j++) if((j<234||j>301)&&numberOfDigis[j]>0) meE6->Fill((float)numberOfDigis[j]);}
832  }
833 
840  MonitorElement* me36;
841  me1=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh1");
842  if(me1){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+0]>0) me1->Fill((float)nDigisPerChan[i*36+0]);}
843  me2=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh2");
844  if(me2){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+1]>0) me2->Fill((float)nDigisPerChan[i*36+1]);}
845  me3=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh3");
846  if(me3){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+2]>0) me3->Fill((float)nDigisPerChan[i*36+2]);}
847  me4=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh4");
848  if(me4){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+3]>0) me4->Fill((float)nDigisPerChan[i*36+3]);}
849  me5=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh5");
850  if(me5){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+4]>0) me5->Fill((float)nDigisPerChan[i*36+4]);}
851  me6=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh6");
852  if(me6){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+5]>0) me6->Fill((float)nDigisPerChan[i*36+5]);}
853  me7=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh7");
854  if(me7){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+6]>0) me7->Fill((float)nDigisPerChan[i*36+6]);}
855  me8=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh8");
856  if(me8){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+7]>0) me8->Fill((float)nDigisPerChan[i*36+7]);}
857  me9=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh9");
858  if(me9){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+8]>0) me9->Fill((float)nDigisPerChan[i*36+8]);}
859  me10=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh10");
860  if(me10){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+9]>0) me10->Fill((float)nDigisPerChan[i*36+9]);}
861  me11=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh11");
862  if(me11){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+10]>0) me11->Fill((float)nDigisPerChan[i*36+10]);}
863  me12=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh12");
864  if(me12){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+11]>0) me12->Fill((float)nDigisPerChan[i*36+11]);}
865  me13=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh13");
866  if(me13){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+12]>0) me13->Fill((float)nDigisPerChan[i*36+12]);}
867  me14=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh14");
868  if(me14){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+13]>0) me14->Fill((float)nDigisPerChan[i*36+13]);}
869  me15=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh15");
870  if(me15){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+14]>0) me15->Fill((float)nDigisPerChan[i*36+14]);}
871  me16=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh16");
872  if(me16){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+15]>0) me16->Fill((float)nDigisPerChan[i*36+15]);}
873  me17=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh17");
874  if(me17){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+16]>0) me17->Fill((float)nDigisPerChan[i*36+16]);}
875  me18=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh18");
876  if(me18){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+17]>0) me18->Fill((float)nDigisPerChan[i*36+17]);}
877  me19=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh19");
878  if(me19){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+18]>0) me19->Fill((float)nDigisPerChan[i*36+18]);}
879  me20=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh20");
880  if(me20){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+19]>0) me20->Fill((float)nDigisPerChan[i*36+19]);}
881  me21=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh21");
882  if(me21){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+20]>0) me21->Fill((float)nDigisPerChan[i*36+20]);}
883  me22=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh22");
884  if(me22){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+21]>0) me22->Fill((float)nDigisPerChan[i*36+21]);}
885  me23=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh23");
886  if(me23){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+22]>0) me23->Fill((float)nDigisPerChan[i*36+22]);}
887  me24=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh24");
888  if(me24){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+23]>0) me24->Fill((float)nDigisPerChan[i*36+23]);}
889  me25=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh25");
890  if(me25){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+24]>0) me25->Fill((float)nDigisPerChan[i*36+24]);}
891  me26=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh26");
892  if(me26){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+25]>0) me26->Fill((float)nDigisPerChan[i*36+25]);}
893  me27=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh27");
894  if(me27){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+26]>0) me27->Fill((float)nDigisPerChan[i*36+26]);}
895  me28=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh28");
896  if(me28){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+27]>0) me28->Fill((float)nDigisPerChan[i*36+27]);}
897  me29=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh29");
898  if(me29){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+28]>0) me29->Fill((float)nDigisPerChan[i*36+28]);}
899  me30=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh30");
900  if(me30){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+29]>0) me30->Fill((float)nDigisPerChan[i*36+29]);}
901  me31=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh31");
902  if(me31){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+30]>0) me31->Fill((float)nDigisPerChan[i*36+30]);}
903  me32=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh32");
904  if(me32){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+31]>0) me32->Fill((float)nDigisPerChan[i*36+31]);}
905  me33=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh33");
906  if(me33){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+32]>0) me33->Fill((float)nDigisPerChan[i*36+32]);}
907  me34=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh34");
908  if(me34){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+33]>0) me34->Fill((float)nDigisPerChan[i*36+33]);}
909  me35=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh35");
910  if(me35){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+34]>0) me35->Fill((float)nDigisPerChan[i*36+34]);}
911  me36=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh36");
912  if(me36){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+35]>0) me36->Fill((float)nDigisPerChan[i*36+35]);}
913 
914  // Rate of events with >N digis:
915  MonitorElement* meX1;
916  if(nEventDigis>bigEventSize){
917  meX1 = theDMBE->get("Pixel/bigEventRate");
918  if(meX1) meX1->Fill(lumiSection,1./23.);
919  }
920  //std::cout<<"nEventDigis: "<<nEventDigis<<" , nLumiSecs: "<<nLumiSecs<<" , nBigEvents: "<<nBigEvents<<std::endl;
921 
922  // Rate of pixel events and total number of pixel events per BX:
923  MonitorElement* meX2; MonitorElement* meX3;
924  if(nActiveModules>=4){
925  meX2 = theDMBE->get("Pixel/pixEvtsPerBX");
926  if(meX2) meX2->Fill(float(bx));
927  meX3 = theDMBE->get("Pixel/pixEventRate");
928  if(meX3) meX3->Fill(lumiSection, 1./23.);
929  }
930 
931  // Actual digi occupancy in a FED compared to average digi occupancy per FED
932  MonitorElement* meX4; MonitorElement* meX5;
933  meX4 = theDMBE->get("Pixel/averageDigiOccupancy");
934  meX5 = theDMBE->get("Pixel/avgfedDigiOccvsLumi");
935  if(meX4){
936  int maxfed=0;
937  for(int i=0; i!=32; i++){
938  if(nDigisPerFed[i]>maxfed) maxfed=nDigisPerFed[i];
939  }
940  for(int i=0; i!=40; i++){
941  float averageOcc = 0.;
942  if(i<32){
943  float averageBPIXFed = float(nBPIXDigis-maxfed)/31.;
944  if(averageBPIXFed>0.) averageOcc = nDigisPerFed[i]/averageBPIXFed;
945  //cout<<"\t BPIX i: "<<i<<" , "<<nBPIXDigis<<" , "<<averageBPIXFed<<" , "<<nDigisPerFed[i]<<" , "<<averageOcc<<endl;
946  }else{
947  float averageFPIXFed = float(nFPIXDigis)/8.;
948  if(averageFPIXFed>0.) averageOcc = nDigisPerFed[i]/averageFPIXFed;
949  //cout<<"\t FPIX i: "<<i<<" , "<<nFPIXDigis<<" , "<<averageFPIXFed<<" , "<<nDigisPerFed[i]<<" , "<<averageOcc<<endl;
950  }
951  meX4->setBinContent(i+1,averageOcc);
952  int lumiSections8 = int(lumiSection/8);
953  if (modOn){
954  if (meX5){
955  meX5->setBinContent(1+lumiSections8, i+1, averageOcc);
956  }//endif meX5
957  }//endif modOn
958  }
959  }
960 
961  // slow down...
962  if(slowDown) usleep(10000);
963 
964 }
965 
966 //------------------------------------------------------------------
967 // Build data structure
968 //------------------------------------------------------------------
970 
971  LogInfo ("PixelDQM") <<" SiPixelDigiSource::buildStructure" ;
973  iSetup.get<TrackerDigiGeometryRecord>().get( pDD );
974 
975  LogVerbatim ("PixelDQM") << " *** Geometry node for TrackerGeom is "<<&(*pDD)<<std::endl;
976  LogVerbatim ("PixelDQM") << " *** I have " << pDD->dets().size() <<" detectors"<<std::endl;
977  LogVerbatim ("PixelDQM") << " *** I have " << pDD->detTypes().size() <<" types"<<std::endl;
978 
979  for(TrackerGeometry::DetContainer::const_iterator it = pDD->dets().begin(); it != pDD->dets().end(); it++){
980 
981  if(dynamic_cast<PixelGeomDetUnit const *>((*it))!=0){
982 
983  DetId detId = (*it)->geographicalId();
984  const GeomDetUnit * geoUnit = pDD->idToDetUnit( detId );
985  const PixelGeomDetUnit * pixDet = dynamic_cast<const PixelGeomDetUnit*>(geoUnit);
986  int nrows = (pixDet->specificTopology()).nrows();
987  int ncols = (pixDet->specificTopology()).ncolumns();
988 
989  if(detId.subdetId() == static_cast<int>(PixelSubdetector::PixelBarrel)) {
990  if(isPIB) continue;
991  LogDebug ("PixelDQM") << " ---> Adding Barrel Module " << detId.rawId() << endl;
992  uint32_t id = detId();
993  SiPixelDigiModule* theModule = new SiPixelDigiModule(id, ncols, nrows);
994  thePixelStructure.insert(pair<uint32_t,SiPixelDigiModule*> (id,theModule));
995 
996  } else if((detId.subdetId() == static_cast<int>(PixelSubdetector::PixelEndcap)) && (!isUpgrade)) {
997  LogDebug ("PixelDQM") << " ---> Adding Endcap Module " << detId.rawId() << endl;
998  uint32_t id = detId();
999  SiPixelDigiModule* theModule = new SiPixelDigiModule(id, ncols, nrows);
1000 
1002  int disk = PixelEndcapName(DetId(id)).diskName();
1003  int blade = PixelEndcapName(DetId(id)).bladeName();
1004  int panel = PixelEndcapName(DetId(id)).pannelName();
1006 
1007  char sside[80]; sprintf(sside, "HalfCylinder_%i",side);
1008  char sdisk[80]; sprintf(sdisk, "Disk_%i",disk);
1009  char sblade[80]; sprintf(sblade, "Blade_%02i",blade);
1010  char spanel[80]; sprintf(spanel, "Panel_%i",panel);
1011  char smodule[80];sprintf(smodule,"Module_%i",module);
1012  std::string side_str = sside;
1013  std::string disk_str = sdisk;
1014  bool mask = side_str.find("HalfCylinder_1")!=string::npos||
1015  side_str.find("HalfCylinder_2")!=string::npos||
1016  side_str.find("HalfCylinder_4")!=string::npos||
1017  disk_str.find("Disk_2")!=string::npos;
1018  // clutch to take all of FPIX, but no BPIX:
1019  mask = false;
1020  if(isPIB && mask) continue;
1021 
1022  thePixelStructure.insert(pair<uint32_t,SiPixelDigiModule*> (id,theModule));
1023  } else if( (detId.subdetId() == static_cast<int>(PixelSubdetector::PixelEndcap)) && (isUpgrade)) {
1024  LogDebug ("PixelDQM") << " ---> Adding Endcap Module " << detId.rawId() << endl;
1025  uint32_t id = detId();
1026  SiPixelDigiModule* theModule = new SiPixelDigiModule(id, ncols, nrows);
1027 
1029  int disk = PixelEndcapNameUpgrade(DetId(id)).diskName();
1030  int blade = PixelEndcapNameUpgrade(DetId(id)).bladeName();
1031  int panel = PixelEndcapNameUpgrade(DetId(id)).pannelName();
1033 
1034  char sside[80]; sprintf(sside, "HalfCylinder_%i",side);
1035  char sdisk[80]; sprintf(sdisk, "Disk_%i",disk);
1036  char sblade[80]; sprintf(sblade, "Blade_%02i",blade);
1037  char spanel[80]; sprintf(spanel, "Panel_%i",panel);
1038  char smodule[80];sprintf(smodule,"Module_%i",module);
1039  std::string side_str = sside;
1040  std::string disk_str = sdisk;
1041  bool mask = side_str.find("HalfCylinder_1")!=string::npos||
1042  side_str.find("HalfCylinder_2")!=string::npos||
1043  side_str.find("HalfCylinder_4")!=string::npos||
1044  disk_str.find("Disk_2")!=string::npos;
1045  // clutch to take all of FPIX, but no BPIX:
1046  mask = false;
1047  if(isPIB && mask) continue;
1048 
1049  thePixelStructure.insert(pair<uint32_t,SiPixelDigiModule*> (id,theModule));
1050  }//end_elseif(isUpgrade)
1051 
1052  }
1053  }
1054  LogInfo ("PixelDQM") << " *** Pixel Structure Size " << thePixelStructure.size() << endl;
1055 }
1056 //------------------------------------------------------------------
1057 // Book MEs
1058 //------------------------------------------------------------------
1060 
1061  // Get DQM interface
1063  theDMBE->setCurrentFolder("Pixel");
1064  char title[80]; sprintf(title, "Rate of events with >%i digis;LumiSection;Rate [Hz]",bigEventSize);
1065  bigEventRate = theDMBE->book1D("bigEventRate",title,5000,0.,5000.);
1066  char title1[80]; sprintf(title1, "Pixel events vs. BX;BX;# events");
1067  pixEvtsPerBX = theDMBE->book1D("pixEvtsPerBX",title1,3565,0.,3565.);
1068  char title2[80]; sprintf(title2, "Rate of Pixel events;LumiSection;Rate [Hz]");
1069  pixEventRate = theDMBE->book1D("pixEventRate",title2,5000,0.,5000.);
1070  char title3[80]; sprintf(title3, "Number of Zero-Occupancy Barrel ROCs;LumiSection;N_{ZERO-OCCUPANCY} Barrel ROCs");
1071  noOccROCsBarrel = theDMBE->book1D("noOccROCsBarrel",title3,500,0.,5000.);
1072  char title4[80]; sprintf(title4, "Number of Low-Efficiency Barrel ROCs;LumiSection;N_{LO EFF} Barrel ROCs");
1073  loOccROCsBarrel = theDMBE->book1D("loOccROCsBarrel",title4,500,0.,5000.);
1074  char title5[80]; sprintf(title5, "Number of Zero-Occupancy Endcap ROCs;LumiSection;N_{ZERO-OCCUPANCY} Endcap ROCs");
1075  noOccROCsEndcap = theDMBE->book1D("noOccROCsEndcap",title5,500,0.,5000.);
1076  char title6[80]; sprintf(title6, "Number of Low-Efficiency Endcap ROCs;LumiSection;N_{LO EFF} Endcap ROCs");
1077  loOccROCsEndcap = theDMBE->book1D("loOccROCsEndcap",title6,500,0.,5000.);
1078  char title7[80]; sprintf(title7, "Average digi occupancy per FED;FED;NDigis/<NDigis>");
1079  averageDigiOccupancy = theDMBE->book1D("averageDigiOccupancy",title7,40,-0.5,39.5);
1081  if(modOn){
1082  char title4[80]; sprintf(title4, "FED Digi Occupancy (NDigis/<NDigis>) vs LumiSections;Lumi Section;FED");
1083  avgfedDigiOccvsLumi = theDMBE->book2D ("avgfedDigiOccvsLumi", title4, 400,0., 3200., 40, -0.5, 39.5);
1084  }
1085  std::map<uint32_t,SiPixelDigiModule*>::iterator struct_iter;
1086 
1087  SiPixelFolderOrganizer theSiPixelFolder;
1088 
1089  for(struct_iter = thePixelStructure.begin(); struct_iter != thePixelStructure.end(); struct_iter++){
1091  if(modOn){
1092  if(theSiPixelFolder.setModuleFolder((*struct_iter).first,0,isUpgrade)){
1093  (*struct_iter).second->book( conf_,0,twoDimOn,hiRes, reducedSet, twoDimModOn, isUpgrade);
1094  } else {
1095 
1096  if(!isPIB) throw cms::Exception("LogicError")
1097  << "[SiPixelDigiSource::bookMEs] Creation of DQM folder failed";
1098  }
1099  }
1100  if(ladOn){
1101  if(theSiPixelFolder.setModuleFolder((*struct_iter).first,1,isUpgrade)){
1102  (*struct_iter).second->book( conf_,1,twoDimOn,hiRes, reducedSet, isUpgrade);
1103  } else {
1104  LogDebug ("PixelDQM") << "PROBLEM WITH LADDER-FOLDER\n";
1105  }
1106 
1107  }
1108  if(layOn || twoDimOnlyLayDisk){
1109  if(theSiPixelFolder.setModuleFolder((*struct_iter).first,2,isUpgrade)){
1110  (*struct_iter).second->book( conf_,2,twoDimOn,hiRes, reducedSet, twoDimOnlyLayDisk, isUpgrade);
1111  } else {
1112  LogDebug ("PixelDQM") << "PROBLEM WITH LAYER-FOLDER\n";
1113  }
1114  }
1115 
1116  if(phiOn){
1117  if(theSiPixelFolder.setModuleFolder((*struct_iter).first,3,isUpgrade)){
1118  (*struct_iter).second->book( conf_,3,twoDimOn,hiRes, reducedSet, isUpgrade);
1119  } else {
1120  LogDebug ("PixelDQM") << "PROBLEM WITH PHI-FOLDER\n";
1121  }
1122  }
1123  if(bladeOn){
1124  if(theSiPixelFolder.setModuleFolder((*struct_iter).first,4,isUpgrade)){
1125  (*struct_iter).second->book( conf_,4,twoDimOn,hiRes, reducedSet, isUpgrade);
1126  } else {
1127  LogDebug ("PixelDQM") << "PROBLEM WITH BLADE-FOLDER\n";
1128  }
1129  }
1130  if(diskOn || twoDimOnlyLayDisk){
1131  if(theSiPixelFolder.setModuleFolder((*struct_iter).first,5,isUpgrade)){
1132  (*struct_iter).second->book( conf_,5,twoDimOn,hiRes, reducedSet, twoDimOnlyLayDisk, isUpgrade);
1133  } else {
1134  LogDebug ("PixelDQM") << "PROBLEM WITH DISK-FOLDER\n";
1135  }
1136  }
1137  if(ringOn){
1138  if(theSiPixelFolder.setModuleFolder((*struct_iter).first,6,isUpgrade)){
1139  (*struct_iter).second->book( conf_,6,twoDimOn,hiRes, reducedSet, isUpgrade);
1140  } else {
1141  LogDebug ("PixelDQM") << "PROBLEM WITH RING-FOLDER\n";
1142  }
1143  }
1144  }
1145  std::string currDir = theDMBE->pwd();
1146  theDMBE->cd("Pixel/Barrel");
1147  meNDigisCOMBBarrel_ = theDMBE->book1D("ALLMODS_ndigisCOMB_Barrel","Number of Digis",200,0.,400.);
1148  meNDigisCOMBBarrel_->setAxisTitle("Number of digis per module per event",1);
1149  meNDigisCHANBarrel_ = theDMBE->book1D("ALLMODS_ndigisCHAN_Barrel","Number of Digis",100,0.,1000.);
1150  meNDigisCHANBarrel_->setAxisTitle("Number of digis per FED channel per event",1);
1151  meNDigisCHANBarrelL1_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelL1","Number of Digis L1",100,0.,1000.);
1152  meNDigisCHANBarrelL1_->setAxisTitle("Number of digis per FED channel per event",1);
1153  meNDigisCHANBarrelL2_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelL2","Number of Digis L2",100,0.,1000.);
1154  meNDigisCHANBarrelL2_->setAxisTitle("Number of digis per FED channel per event",1);
1155  meNDigisCHANBarrelL3_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelL3","Number of Digis L3",100,0.,1000.);
1156  meNDigisCHANBarrelL3_->setAxisTitle("Number of digis per FED channel per event",1);
1157  if (isUpgrade) {
1158  meNDigisCHANBarrelL4_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelL4","Number of Digis L4",100,0.,1000.);
1159  meNDigisCHANBarrelL4_->setAxisTitle("Number of digis per FED channel per event",1);
1160  }
1161  meNDigisCHANBarrelCh1_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh1","Number of Digis Ch1",100,0.,1000.);
1162  meNDigisCHANBarrelCh1_->setAxisTitle("Number of digis per FED channel per event",1);
1163  meNDigisCHANBarrelCh2_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh2","Number of Digis Ch2",100,0.,1000.);
1164  meNDigisCHANBarrelCh2_->setAxisTitle("Number of digis per FED channel per event",1);
1165  meNDigisCHANBarrelCh3_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh3","Number of Digis Ch3",100,0.,1000.);
1166  meNDigisCHANBarrelCh3_->setAxisTitle("Number of digis per FED channel per event",1);
1167  meNDigisCHANBarrelCh4_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh4","Number of Digis Ch4",100,0.,1000.);
1168  meNDigisCHANBarrelCh4_->setAxisTitle("Number of digis per FED channel per event",1);
1169  meNDigisCHANBarrelCh5_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh5","Number of Digis Ch5",100,0.,1000.);
1170  meNDigisCHANBarrelCh5_->setAxisTitle("Number of digis per FED channel per event",1);
1171  meNDigisCHANBarrelCh6_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh6","Number of Digis Ch6",100,0.,1000.);
1172  meNDigisCHANBarrelCh6_->setAxisTitle("Number of digis per FED channel per event",1);
1173  meNDigisCHANBarrelCh7_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh7","Number of Digis Ch7",100,0.,1000.);
1174  meNDigisCHANBarrelCh7_->setAxisTitle("Number of digis per FED channel per event",1);
1175  meNDigisCHANBarrelCh8_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh8","Number of Digis Ch8",100,0.,1000.);
1176  meNDigisCHANBarrelCh8_->setAxisTitle("Number of digis per FED channel per event",1);
1177  meNDigisCHANBarrelCh9_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh9","Number of Digis Ch9",100,0.,1000.);
1178  meNDigisCHANBarrelCh9_->setAxisTitle("Number of digis per FED channel per event",1);
1179  meNDigisCHANBarrelCh10_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh10","Number of Digis Ch10",100,0.,1000.);
1180  meNDigisCHANBarrelCh10_->setAxisTitle("Number of digis per FED channel per event",1);
1181  meNDigisCHANBarrelCh11_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh11","Number of Digis Ch11",100,0.,1000.);
1182  meNDigisCHANBarrelCh11_->setAxisTitle("Number of digis per FED channel per event",1);
1183  meNDigisCHANBarrelCh12_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh12","Number of Digis Ch12",100,0.,1000.);
1184  meNDigisCHANBarrelCh12_->setAxisTitle("Number of digis per FED channel per event",1);
1185  meNDigisCHANBarrelCh13_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh13","Number of Digis Ch13",100,0.,1000.);
1186  meNDigisCHANBarrelCh13_->setAxisTitle("Number of digis per FED channel per event",1);
1187  meNDigisCHANBarrelCh14_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh14","Number of Digis Ch14",100,0.,1000.);
1188  meNDigisCHANBarrelCh14_->setAxisTitle("Number of digis per FED channel per event",1);
1189  meNDigisCHANBarrelCh15_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh15","Number of Digis Ch15",100,0.,1000.);
1190  meNDigisCHANBarrelCh15_->setAxisTitle("Number of digis per FED channel per event",1);
1191  meNDigisCHANBarrelCh16_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh16","Number of Digis Ch16",100,0.,1000.);
1192  meNDigisCHANBarrelCh16_->setAxisTitle("Number of digis per FED channel per event",1);
1193  meNDigisCHANBarrelCh17_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh17","Number of Digis Ch17",100,0.,1000.);
1194  meNDigisCHANBarrelCh17_->setAxisTitle("Number of digis per FED channel per event",1);
1195  meNDigisCHANBarrelCh18_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh18","Number of Digis Ch18",100,0.,1000.);
1196  meNDigisCHANBarrelCh18_->setAxisTitle("Number of digis per FED channel per event",1);
1197  meNDigisCHANBarrelCh19_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh19","Number of Digis Ch19",100,0.,1000.);
1198  meNDigisCHANBarrelCh19_->setAxisTitle("Number of digis per FED channel per event",1);
1199  meNDigisCHANBarrelCh20_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh20","Number of Digis Ch20",100,0.,1000.);
1200  meNDigisCHANBarrelCh20_->setAxisTitle("Number of digis per FED channel per event",1);
1201  meNDigisCHANBarrelCh21_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh21","Number of Digis Ch21",100,0.,1000.);
1202  meNDigisCHANBarrelCh21_->setAxisTitle("Number of digis per FED channel per event",1);
1203  meNDigisCHANBarrelCh22_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh22","Number of Digis Ch22",100,0.,1000.);
1204  meNDigisCHANBarrelCh22_->setAxisTitle("Number of digis per FED channel per event",1);
1205  meNDigisCHANBarrelCh23_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh23","Number of Digis Ch23",100,0.,1000.);
1206  meNDigisCHANBarrelCh23_->setAxisTitle("Number of digis per FED channel per event",1);
1207  meNDigisCHANBarrelCh24_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh24","Number of Digis Ch24",100,0.,1000.);
1208  meNDigisCHANBarrelCh24_->setAxisTitle("Number of digis per FED channel per event",1);
1209  meNDigisCHANBarrelCh25_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh25","Number of Digis Ch25",100,0.,1000.);
1210  meNDigisCHANBarrelCh25_->setAxisTitle("Number of digis per FED channel per event",1);
1211  meNDigisCHANBarrelCh26_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh26","Number of Digis Ch26",100,0.,1000.);
1212  meNDigisCHANBarrelCh26_->setAxisTitle("Number of digis per FED channel per event",1);
1213  meNDigisCHANBarrelCh27_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh27","Number of Digis Ch27",100,0.,1000.);
1214  meNDigisCHANBarrelCh27_->setAxisTitle("Number of digis per FED channel per event",1);
1215  meNDigisCHANBarrelCh28_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh28","Number of Digis Ch28",100,0.,1000.);
1216  meNDigisCHANBarrelCh28_->setAxisTitle("Number of digis per FED channel per event",1);
1217  meNDigisCHANBarrelCh29_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh29","Number of Digis Ch29",100,0.,1000.);
1218  meNDigisCHANBarrelCh29_->setAxisTitle("Number of digis per FED channel per event",1);
1219  meNDigisCHANBarrelCh30_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh30","Number of Digis Ch30",100,0.,1000.);
1220  meNDigisCHANBarrelCh30_->setAxisTitle("Number of digis per FED channel per event",1);
1221  meNDigisCHANBarrelCh31_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh31","Number of Digis Ch31",100,0.,1000.);
1222  meNDigisCHANBarrelCh31_->setAxisTitle("Number of digis per FED channel per event",1);
1223  meNDigisCHANBarrelCh32_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh32","Number of Digis Ch32",100,0.,1000.);
1224  meNDigisCHANBarrelCh32_->setAxisTitle("Number of digis per FED channel per event",1);
1225  meNDigisCHANBarrelCh33_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh33","Number of Digis Ch33",100,0.,1000.);
1226  meNDigisCHANBarrelCh33_->setAxisTitle("Number of digis per FED channel per event",1);
1227  meNDigisCHANBarrelCh34_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh34","Number of Digis Ch34",100,0.,1000.);
1228  meNDigisCHANBarrelCh34_->setAxisTitle("Number of digis per FED channel per event",1);
1229  meNDigisCHANBarrelCh35_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh35","Number of Digis Ch35",100,0.,1000.);
1230  meNDigisCHANBarrelCh35_->setAxisTitle("Number of digis per FED channel per event",1);
1231  meNDigisCHANBarrelCh36_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh36","Number of Digis Ch36",100,0.,1000.);
1232  meNDigisCHANBarrelCh36_->setAxisTitle("Number of digis per FED channel per event",1);
1233  theDMBE->cd("Pixel/Endcap");
1234  meNDigisCOMBEndcap_ = theDMBE->book1D("ALLMODS_ndigisCOMB_Endcap","Number of Digis",200,0.,400.);
1235  meNDigisCOMBEndcap_->setAxisTitle("Number of digis per module per event",1);
1236  meNDigisCHANEndcap_ = theDMBE->book1D("ALLMODS_ndigisCHAN_Endcap","Number of Digis",100,0.,1000.);
1237  meNDigisCHANEndcap_->setAxisTitle("Number of digis per FED channel per event",1);
1238  meNDigisCHANEndcapDp1_ = theDMBE->book1D("ALLMODS_ndigisCHAN_EndcapDp1","Number of Digis Disk p1",100,0.,1000.);
1239  meNDigisCHANEndcapDp1_->setAxisTitle("Number of digis per FED channel per event",1);
1240  meNDigisCHANEndcapDp2_ = theDMBE->book1D("ALLMODS_ndigisCHAN_EndcapDp2","Number of Digis Disk p2",100,0.,1000.);
1241  meNDigisCHANEndcapDp2_->setAxisTitle("Number of digis per FED channel per event",1);
1242  if (isUpgrade) {
1243  meNDigisCHANEndcapDp3_ = theDMBE->book1D("ALLMODS_ndigisCHAN_EndcapDp3","Number of Digis Disk p3",100,0.,1000.);
1244  meNDigisCHANEndcapDp3_->setAxisTitle("Number of digis per FED channel per event",1);
1245  }
1246  meNDigisCHANEndcapDm1_ = theDMBE->book1D("ALLMODS_ndigisCHAN_EndcapDm1","Number of Digis Disk m1",100,0.,1000.);
1247  meNDigisCHANEndcapDm1_->setAxisTitle("Number of digis per FED channel per event",1);
1248  meNDigisCHANEndcapDm2_ = theDMBE->book1D("ALLMODS_ndigisCHAN_EndcapDm2","Number of Digis Disk m2",100,0.,1000.);
1249  meNDigisCHANEndcapDm2_->setAxisTitle("Number of digis per FED channel per event",1);
1250  if (isUpgrade) {
1251  meNDigisCHANEndcapDm3_ = theDMBE->book1D("ALLMODS_ndigisCHAN_EndcapDm3","Number of Digis Disk m3",100,0.,1000.);
1252  meNDigisCHANEndcapDm3_->setAxisTitle("Number of digis per FED channel per event",1);
1253  }
1254  theDMBE->cd(currDir);
1255 }
1256 
1257 //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 * meNDigisCHANEndcapDm3_
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:1630
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
Definition: DQMStore.cc:928
MonitorElement * meNDigisCHANBarrelCh8_
MonitorElement * meNDigisCHANBarrelCh36_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:434
void cd(void)
go to top directory (ie. root)
Definition: DQMStore.cc:616
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:17
MonitorElement * loOccROCsEndcap
MonitorElement * meNDigisCHANBarrelCh17_
MonitorElement * meNDigisCHANBarrelCh25_
MonitorElement * meNDigisCHANBarrelCh6_
MonitorElement * meNDigisCOMBBarrel_
int bunchCrossing() const
Definition: EventBase.h:62
MonitorElement * meNDigisCHANBarrelL4_
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 ii
Definition: cuy.py:588
int plaquetteName() const
plaquetteId (in pannel)
static std::string const input
Definition: EdmProvDump.cc:44
int getNbinsY(void) const
get # of bins in Y-axis
void Fill(long long x)
edm::EDGetTokenT< edm::DetSetVector< PixelDigi > > srcToken_
uint32_t rawId() const
get the raw id
Definition: DetId.h:43
MonitorElement * meNDigisCHANBarrelCh27_
int bladeName() const
blade id
SiPixelDigiSource(const edm::ParameterSet &conf)
int iEvent
Definition: GenABIO.cc:230
MonitorElement * meNDigisCHANEndcapDm2_
MonitorElement * meNDigisCHANBarrelCh3_
MonitorElement * meNDigisCHANBarrelCh9_
MonitorElement * meNDigisCHANBarrelCh4_
MonitorElement * meNDigisCHANBarrelCh34_
MonitorElement * meNDigisCHANBarrelCh26_
bool setModuleFolder(const uint32_t &rawdetid=0, int type=0, bool isUpgrade=false)
Set folder name for a module or plaquette.
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_
void save(const std::string &filename, const std::string &path="", const std::string &pattern="", const std::string &rewrite="", const uint32_t run=0, SaveReferenceTag ref=SaveWithReference, int minStatus=dqm::qstatus::STATUS_OK, const std::string &fileupdate="RECREATE")
Definition: DQMStore.cc:2424
int bladeName() const
blade id
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:1679
MonitorElement * meNDigisCHANBarrelCh21_
unsigned int I_detId[1856]
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:37
MonitorElement * meNDigisCHANBarrelCh32_
virtual void beginRun(const edm::Run &, edm::EventSetup const &)
MonitorElement * meNDigisCHANBarrelCh10_
MonitorElement * loOccROCsBarrel
int diskName() const
disk id
MonitorElement * meNDigisCHANBarrelCh1_
MonitorElement * averageDigiOccupancy
Definition: DetId.h:18
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:1653
MonitorElement * meNDigisCHANEndcapDp2_
MonitorElement * meNDigisCHANEndcapDp3_
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
volatile std::atomic< bool > shutdown_flag false
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:1056
MonitorElement * meNDigisCHANBarrelCh16_
HalfCylinder halfCylinder() const
MonitorElement * meNDigisCHANBarrelCh11_
int pannelName() const
pannel id
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:208
virtual void buildStructure(edm::EventSetup const &)
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:639
MonitorElement * meNDigisCHANBarrelL2_
std::string I_name[1856]
MonitorElement * meNDigisCHANBarrelCh24_
Definition: Run.h:41
const std::string & pwd(void) const
Definition: DQMStore.cc:611