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 // -*- C++ -*-
2 //
3 // Package: SiPixelMonitorDigi
4 // Class: SiPixelDigiSource
5 //
13 //
14 // Original Author: Vincenzo Chiochia
15 // Created:
16 // $Id: SiPixelDigiSource.cc,v 1.47 2010/11/03 21:38:38 merkelp Exp $
17 //
18 //
20 // Framework
24 // DQM Framework
27 // Geometry
32 // DataFormats
37 //
38 #include <string>
39 #include <stdlib.h>
40 #include <iostream>
41 #include <fstream>
42 
43 using namespace std;
44 using namespace edm;
45 
47  conf_(iConfig),
48  src_( conf_.getParameter<edm::InputTag>( "src" ) ),
49  saveFile( conf_.getUntrackedParameter<bool>("saveFile",false) ),
50  isPIB( conf_.getUntrackedParameter<bool>("isPIB",false) ),
51  slowDown( conf_.getUntrackedParameter<bool>("slowDown",false) ),
52  modOn( conf_.getUntrackedParameter<bool>("modOn",true) ),
53  twoDimOn( conf_.getUntrackedParameter<bool>("twoDimOn",true) ),
54  twoDimModOn( conf_.getUntrackedParameter<bool>("twoDimModOn",true) ),
55  twoDimOnlyLayDisk( conf_.getUntrackedParameter<bool>("twoDimOnlyLayDisk",false) ),
56  hiRes( conf_.getUntrackedParameter<bool>("hiRes",false) ),
57  reducedSet( conf_.getUntrackedParameter<bool>("reducedSet",false) ),
58  ladOn( conf_.getUntrackedParameter<bool>("ladOn",false) ),
59  layOn( conf_.getUntrackedParameter<bool>("layOn",false) ),
60  phiOn( conf_.getUntrackedParameter<bool>("phiOn",false) ),
61  ringOn( conf_.getUntrackedParameter<bool>("ringOn",false) ),
62  bladeOn( conf_.getUntrackedParameter<bool>("bladeOn",false) ),
63  diskOn( conf_.getUntrackedParameter<bool>("diskOn",false) ),
64  bigEventSize( conf_.getUntrackedParameter<int>("bigEventSize",1000) )
65 {
67  LogInfo ("PixelDQM") << "SiPixelDigiSource::SiPixelDigiSource: Got DQM BackEnd interface"<<endl;
68 }
69 
70 
72 {
73  // do anything here that needs to be done at desctruction time
74  // (e.g. close files, deallocate resources etc.)
75  LogInfo ("PixelDQM") << "SiPixelDigiSource::~SiPixelDigiSource: Destructor"<<endl;
76 }
77 
78 
80  firstRun = true;
81  // find a FED# for the current detId:
82  ifstream infile(edm::FileInPath("DQM/SiPixelMonitorClient/test/detId.dat").fullPath().c_str(),ios::in);
83  int nModsInFile=0;
84  assert(!infile.fail());
85  while(!infile.eof()&&nModsInFile<1440) {
86  infile >> I_name[nModsInFile] >> I_detId[nModsInFile] >> I_fedId[nModsInFile] >> I_linkId1[nModsInFile] >> I_linkId2[nModsInFile];
87  //cout<<nModsInFile<<" , "<<I_name[nModsInFile]<<" , "<<I_detId[nModsInFile]<<" , "<<I_fedId[nModsInFile]<<" , "<<I_linkId[nModsInFile]<<endl; ;
88  nModsInFile++;
89  }
90  infile.close();
91 }
92 
94  LogInfo ("PixelDQM") << " SiPixelDigiSource::beginJob - Initialisation ... " << std::endl;
95  LogInfo ("PixelDQM") << "Mod/Lad/Lay/Phi " << modOn << "/" << ladOn << "/"
96  << layOn << "/" << phiOn << std::endl;
97  LogInfo ("PixelDQM") << "Blade/Disk/Ring" << bladeOn << "/" << diskOn << "/"
98  << ringOn << std::endl;
99 
100  LogInfo ("PixelDQM") << "2DIM IS " << twoDimOn << " and set to high resolution? " << hiRes << "\n";
101 
102  if(firstRun){
103  eventNo = 0;
104  lumSec = 0;
105  nLumiSecs = 0;
106  nBigEvents = 0;
107  nBPIXDigis = 0;
108  nFPIXDigis = 0;
109  for(int i=0; i!=40; i++) nDigisPerFed[i]=0;
110  for(int i=0; i!=4; i++) nDigisPerDisk[i]=0;
111 
112  // Build map
113  buildStructure(iSetup);
114  // Book Monitoring Elements
115  bookMEs();
116  firstRun = false;
117  }
118 }
119 
120 
122 
123  if(saveFile) {
124  LogInfo ("PixelDQM") << " SiPixelDigiSource::endJob - Saving Root File " << std::endl;
125  std::string outputFile = conf_.getParameter<std::string>("outputFile");
126  theDMBE->save( outputFile.c_str() );
127  }
128 
129 }
130 
131 //------------------------------------------------------------------
132 // Method called for every event
133 //------------------------------------------------------------------
135 {
136  eventNo++;
137  //cout<<"BIGFATEVENTNUMBER: "<<eventNo<<endl;
138 
139  // get input data
141  iEvent.getByLabel( src_, input );
142  if (!input.isValid()) return;
143  // Get DQM interface
145 
146  //float iOrbitSec = iEvent.orbitNumber()/11223.;
147  int bx = iEvent.bunchCrossing();
148  //long long tbx = (long long)iEvent.orbitNumber() * 3564 + bx;
149  int lumiSection = (int)iEvent.luminosityBlock();
150  int nEventDigis = 0; int nActiveModules = 0;
151  //int nEventBPIXDigis = 0; int nEventFPIXDigis = 0;
152 
153  if(modOn){
154  MonitorElement* meReset = theDMBE->get("Pixel/averageDigiOccupancy");
155  //if(meReset && eventNo%1000==0){
156  if(meReset && lumiSection%8==0){
157  meReset->Reset();
158  nBPIXDigis = 0;
159  nFPIXDigis = 0;
160  for(int i=0; i!=40; i++) nDigisPerFed[i]=0;
161  }
162  }
163 
164  std::map<uint32_t,SiPixelDigiModule*>::iterator struct_iter;
165  for(int i=0; i!=192; i++) numberOfDigis[i]=0;
166  for(int i=0; i!=1152; i++) nDigisPerChan[i]=0;
167  for(int i=0; i!=4; i++) nDigisPerDisk[i]=0;
168  for (struct_iter = thePixelStructure.begin() ; struct_iter != thePixelStructure.end() ; struct_iter++) {
169  int numberOfDigisMod = (*struct_iter).second->fill(*input, modOn,
170  ladOn, layOn, phiOn,
171  bladeOn, diskOn, ringOn,
173  nDigisA, nDigisB);
174  if(numberOfDigisMod>0){
175  nEventDigis = nEventDigis + numberOfDigisMod;
176  nActiveModules++;
177  bool barrel = DetId((*struct_iter).first).subdetId() == static_cast<int>(PixelSubdetector::PixelBarrel);
178  bool endcap = DetId((*struct_iter).first).subdetId() == static_cast<int>(PixelSubdetector::PixelEndcap);
179  //if((*struct_iter).first >= 302055684 && (*struct_iter).first <= 302197792 ){ // Barrel
180  if(barrel){ // Barrel
181  //cout<<"AAbpix: "<<numberOfDigisMod<<" + "<<nBPIXDigis<<" = ";
182  nBPIXDigis = nBPIXDigis + numberOfDigisMod;
183  //cout<<nBPIXDigis<<endl;
184  for(int i=0; i!=768; i++){
185  //cout<<"\t\t\t bpix: "<<i<<" , "<<(*struct_iter).first<<" , "<<I_detId[i]<<endl;
186  if((*struct_iter).first == I_detId[i]){
187  //if(I_fedId[i]>=32&&I_fedId[i]<=39) std::cout<<"Attention: a BPIX module matched to an FPIX FED!"<<std::endl;
188  nDigisPerFed[I_fedId[i]]=nDigisPerFed[I_fedId[i]]+numberOfDigisMod;
189  //cout<<"BPIX: "<<i<<" , "<<I_fedId[i]<<" , "<<numberOfDigisMod<<" , "<<nDigisPerFed[I_fedId[i]]<<endl;
190  int index1 = I_fedId[i]*36+(I_linkId1[i]-1); int index2 = I_fedId[i]*36+(I_linkId2[i]-1);
191  if(nDigisA>0) nDigisPerChan[index1]=nDigisPerChan[index1]+nDigisA;
192  if(nDigisB>0) nDigisPerChan[index2]=nDigisPerChan[index2]+nDigisB;
193  //cout<<"BPIX: "<<i<<" , "<<I_linkId1[i]<<" , "<<I_linkId2[i]<<" , "<<nDigisA<<" , "<<nDigisB<<endl;
194  i=767;
195  }
196  }
197  //}else if((*struct_iter).first >= 343999748 && (*struct_iter).first <= 352477708 ){ // Endcap
198  }else if(endcap){ // Endcap
199  //cout<<"AAfpix: "<<nFPIXDigis<<" = ";
200  nFPIXDigis = nFPIXDigis + numberOfDigisMod;
201  //cout<<nFPIXDigis<<endl;
202  PixelEndcapName::HalfCylinder side = PixelEndcapName(DetId((*struct_iter).first)).halfCylinder();
203  int disk = PixelEndcapName(DetId((*struct_iter).first)).diskName();
204  int blade = PixelEndcapName(DetId((*struct_iter).first)).bladeName();
205  int panel = PixelEndcapName(DetId((*struct_iter).first)).pannelName();
206  //std::cout<<"Endcap: "<<side<<" , "<<disk<<" , "<<blade<<" , "<<panel<<" , "<<std::endl;
207  int iter=-1; int i=0;
208  if(side==PixelEndcapName::mI){
209  if(disk==1){
210  i=0;
211  if(blade==1){ if(panel==1) iter=i; else if(panel==2) iter=i+1; }
212  if(blade==2){ if(panel==1) iter=i+2; else if(panel==2) iter=i+3; }
213  if(blade==3){ if(panel==1) iter=i+4; else if(panel==2) iter=i+5; }
214  if(blade==4){ if(panel==1) iter=i+6; else if(panel==2) iter=i+7; }
215  if(blade==5){ if(panel==1) iter=i+8; else if(panel==2) iter=i+9; }
216  if(blade==6){ if(panel==1) iter=i+10; else if(panel==2) iter=i+11; }
217  if(blade==7){ if(panel==1) iter=i+12; else if(panel==2) iter=i+13; }
218  if(blade==8){ if(panel==1) iter=i+14; else if(panel==2) iter=i+15; }
219  if(blade==9){ if(panel==1) iter=i+16; else if(panel==2) iter=i+17; }
220  if(blade==10){ if(panel==1) iter=i+18; else if(panel==2) iter=i+19; }
221  if(blade==11){ if(panel==1) iter=i+20; else if(panel==2) iter=i+21; }
222  if(blade==12){ if(panel==1) iter=i+22; else if(panel==2) iter=i+23; }
223  }else if(disk==2){
224  i=24;
225  if(blade==1){ if(panel==1) iter=i; else if(panel==2) iter=i+1; }
226  if(blade==2){ if(panel==1) iter=i+2; else if(panel==2) iter=i+3; }
227  if(blade==3){ if(panel==1) iter=i+4; else if(panel==2) iter=i+5; }
228  if(blade==4){ if(panel==1) iter=i+6; else if(panel==2) iter=i+7; }
229  if(blade==5){ if(panel==1) iter=i+8; else if(panel==2) iter=i+9; }
230  if(blade==6){ if(panel==1) iter=i+10; else if(panel==2) iter=i+11; }
231  if(blade==7){ if(panel==1) iter=i+12; else if(panel==2) iter=i+13; }
232  if(blade==8){ if(panel==1) iter=i+14; else if(panel==2) iter=i+15; }
233  if(blade==9){ if(panel==1) iter=i+16; else if(panel==2) iter=i+17; }
234  if(blade==10){ if(panel==1) iter=i+18; else if(panel==2) iter=i+19; }
235  if(blade==11){ if(panel==1) iter=i+20; else if(panel==2) iter=i+21; }
236  if(blade==12){ if(panel==1) iter=i+22; else if(panel==2) iter=i+23; }
237  }
238  }else if(side==PixelEndcapName::mO){
239  if(disk==1){
240  i=48;
241  if(blade==1){ if(panel==1) iter=i; else if(panel==2) iter=i+1; }
242  if(blade==2){ if(panel==1) iter=i+2; else if(panel==2) iter=i+3; }
243  if(blade==3){ if(panel==1) iter=i+4; else if(panel==2) iter=i+5; }
244  if(blade==4){ if(panel==1) iter=i+6; else if(panel==2) iter=i+7; }
245  if(blade==5){ if(panel==1) iter=i+8; else if(panel==2) iter=i+9; }
246  if(blade==6){ if(panel==1) iter=i+10; else if(panel==2) iter=i+11; }
247  if(blade==7){ if(panel==1) iter=i+12; else if(panel==2) iter=i+13; }
248  if(blade==8){ if(panel==1) iter=i+14; else if(panel==2) iter=i+15; }
249  if(blade==9){ if(panel==1) iter=i+16; else if(panel==2) iter=i+17; }
250  if(blade==10){ if(panel==1) iter=i+18; else if(panel==2) iter=i+19; }
251  if(blade==11){ if(panel==1) iter=i+20; else if(panel==2) iter=i+21; }
252  if(blade==12){ if(panel==1) iter=i+22; else if(panel==2) iter=i+23; }
253  }else if(disk==2){
254  i=72;
255  if(blade==1){ if(panel==1) iter=i; else if(panel==2) iter=i+1; }
256  if(blade==2){ if(panel==1) iter=i+2; else if(panel==2) iter=i+3; }
257  if(blade==3){ if(panel==1) iter=i+4; else if(panel==2) iter=i+5; }
258  if(blade==4){ if(panel==1) iter=i+6; else if(panel==2) iter=i+7; }
259  if(blade==5){ if(panel==1) iter=i+8; else if(panel==2) iter=i+9; }
260  if(blade==6){ if(panel==1) iter=i+10; else if(panel==2) iter=i+11; }
261  if(blade==7){ if(panel==1) iter=i+12; else if(panel==2) iter=i+13; }
262  if(blade==8){ if(panel==1) iter=i+14; else if(panel==2) iter=i+15; }
263  if(blade==9){ if(panel==1) iter=i+16; else if(panel==2) iter=i+17; }
264  if(blade==10){ if(panel==1) iter=i+18; else if(panel==2) iter=i+19; }
265  if(blade==11){ if(panel==1) iter=i+20; else if(panel==2) iter=i+21; }
266  if(blade==12){ if(panel==1) iter=i+22; else if(panel==2) iter=i+23; }
267  }
268  }else if(side==PixelEndcapName::pI){
269  if(disk==1){
270  i=96;
271  if(blade==1){ if(panel==1) iter=i; else if(panel==2) iter=i+1; }
272  if(blade==2){ if(panel==1) iter=i+2; else if(panel==2) iter=i+3; }
273  if(blade==3){ if(panel==1) iter=i+4; else if(panel==2) iter=i+5; }
274  if(blade==4){ if(panel==1) iter=i+6; else if(panel==2) iter=i+7; }
275  if(blade==5){ if(panel==1) iter=i+8; else if(panel==2) iter=i+9; }
276  if(blade==6){ if(panel==1) iter=i+10; else if(panel==2) iter=i+11; }
277  if(blade==7){ if(panel==1) iter=i+12; else if(panel==2) iter=i+13; }
278  if(blade==8){ if(panel==1) iter=i+14; else if(panel==2) iter=i+15; }
279  if(blade==9){ if(panel==1) iter=i+16; else if(panel==2) iter=i+17; }
280  if(blade==10){ if(panel==1) iter=i+18; else if(panel==2) iter=i+19; }
281  if(blade==11){ if(panel==1) iter=i+20; else if(panel==2) iter=i+21; }
282  if(blade==12){ if(panel==1) iter=i+22; else if(panel==2) iter=i+23; }
283  }else if(disk==2){
284  i=120;
285  if(blade==1){ if(panel==1) iter=i; else if(panel==2) iter=i+1; }
286  if(blade==2){ if(panel==1) iter=i+2; else if(panel==2) iter=i+3; }
287  if(blade==3){ if(panel==1) iter=i+4; else if(panel==2) iter=i+5; }
288  if(blade==4){ if(panel==1) iter=i+6; else if(panel==2) iter=i+7; }
289  if(blade==5){ if(panel==1) iter=i+8; else if(panel==2) iter=i+9; }
290  if(blade==6){ if(panel==1) iter=i+10; else if(panel==2) iter=i+11; }
291  if(blade==7){ if(panel==1) iter=i+12; else if(panel==2) iter=i+13; }
292  if(blade==8){ if(panel==1) iter=i+14; else if(panel==2) iter=i+15; }
293  if(blade==9){ if(panel==1) iter=i+16; else if(panel==2) iter=i+17; }
294  if(blade==10){ if(panel==1) iter=i+18; else if(panel==2) iter=i+19; }
295  if(blade==11){ if(panel==1) iter=i+20; else if(panel==2) iter=i+21; }
296  if(blade==12){ if(panel==1) iter=i+22; else if(panel==2) iter=i+23; }
297  }
298  }else if(side==PixelEndcapName::pO){
299  if(disk==1){
300  i=144;
301  if(blade==1){ if(panel==1) iter=i; else if(panel==2) iter=i+1; }
302  if(blade==2){ if(panel==1) iter=i+2; else if(panel==2) iter=i+3; }
303  if(blade==3){ if(panel==1) iter=i+4; else if(panel==2) iter=i+5; }
304  if(blade==4){ if(panel==1) iter=i+6; else if(panel==2) iter=i+7; }
305  if(blade==5){ if(panel==1) iter=i+8; else if(panel==2) iter=i+9; }
306  if(blade==6){ if(panel==1) iter=i+10; else if(panel==2) iter=i+11; }
307  if(blade==7){ if(panel==1) iter=i+12; else if(panel==2) iter=i+13; }
308  if(blade==8){ if(panel==1) iter=i+14; else if(panel==2) iter=i+15; }
309  if(blade==9){ if(panel==1) iter=i+16; else if(panel==2) iter=i+17; }
310  if(blade==10){ if(panel==1) iter=i+18; else if(panel==2) iter=i+19; }
311  if(blade==11){ if(panel==1) iter=i+20; else if(panel==2) iter=i+21; }
312  if(blade==12){ if(panel==1) iter=i+22; else if(panel==2) iter=i+23; }
313  }else if(disk==2){
314  i=168;
315  if(blade==1){ if(panel==1) iter=i; else if(panel==2) iter=i+1; }
316  if(blade==2){ if(panel==1) iter=i+2; else if(panel==2) iter=i+3; }
317  if(blade==3){ if(panel==1) iter=i+4; else if(panel==2) iter=i+5; }
318  if(blade==4){ if(panel==1) iter=i+6; else if(panel==2) iter=i+7; }
319  if(blade==5){ if(panel==1) iter=i+8; else if(panel==2) iter=i+9; }
320  if(blade==6){ if(panel==1) iter=i+10; else if(panel==2) iter=i+11; }
321  if(blade==7){ if(panel==1) iter=i+12; else if(panel==2) iter=i+13; }
322  if(blade==8){ if(panel==1) iter=i+14; else if(panel==2) iter=i+15; }
323  if(blade==9){ if(panel==1) iter=i+16; else if(panel==2) iter=i+17; }
324  if(blade==10){ if(panel==1) iter=i+18; else if(panel==2) iter=i+19; }
325  if(blade==11){ if(panel==1) iter=i+20; else if(panel==2) iter=i+21; }
326  if(blade==12){ if(panel==1) iter=i+22; else if(panel==2) iter=i+23; }
327  }
328  }
329  numberOfDigis[iter]=numberOfDigis[iter]+numberOfDigisMod;
330  //if(side==PixelEndcapName::pO||side==PixelEndcapName::pI){
331  // if(disk==2){
332  // std::cout<<"status: "<<iter<<","<<side<<","<<disk<<","<<blade<<","<<panel<<","<<numberOfDigisMod<<","<<numberOfDigis[iter]<<std::endl;
333  //}}
334  for(int i=768; i!=1440; i++){
335  //cout<<"\t\t\t fpix: "<<i<<" , "<<(*struct_iter).first<<" , "<<I_detId[i]<<endl;
336  if((*struct_iter).first == I_detId[i]){
337  //if(I_fedId[i]<32||I_fedId[i]>39) std::cout<<"Attention: an FPIX module matched to a BPIX FED!"<<std::endl;
338  nDigisPerFed[I_fedId[i]]=nDigisPerFed[I_fedId[i]]+numberOfDigisMod;
339  //cout<<"FPIX: "<<i<<" , "<<I_fedId[i]<<" , "<<nDigisPerFed[I_fedId[i]]<<endl;
340  i=1439;
341  }
342  }
343  } //endif Barrel/Endcap
344  //cout<<"numberOfDigis: "<<numberOfDigisMod<<" , nBPIXDigis: "<<nBPIXDigis<<" , nFPIXDigis: "<<nFPIXDigis<<endl;
345  // digi occupancy per individual FED channel:
346  } // endif any digis in this module
347  } // endfor loop over all modules
348 
349 // if(lumiSection>lumSec){ lumSec = lumiSection; nLumiSecs++; }
350 // if(nEventDigis>bigEventSize) nBigEvents++;
351 // if(nLumiSecs%5==0){
352 
354  meE=theDMBE->get("Pixel/Endcap/ALLMODS_ndigisCHAN_Endcap");
355  if(meE){ for(int j=0; j!=192; j++) if(numberOfDigis[j]>0) meE->Fill((float)numberOfDigis[j]);}
356  meE1=theDMBE->get("Pixel/Endcap/ALLMODS_ndigisCHAN_EndcapDm1");
357  if(meE1){ for(int j=0; j!=72; j++) if((j<24||j>47)&&numberOfDigis[j]>0) meE1->Fill((float)numberOfDigis[j]);}
358  meE2=theDMBE->get("Pixel/Endcap/ALLMODS_ndigisCHAN_EndcapDm2");
359  if(meE2){ for(int j=24; j!=96; j++) if((j<48||j>71)&&numberOfDigis[j]>0) meE2->Fill((float)numberOfDigis[j]);}
360  meE3=theDMBE->get("Pixel/Endcap/ALLMODS_ndigisCHAN_EndcapDp1");
361  if(meE3){ for(int j=96; j!=168; j++) if((j<120||j>143)&&numberOfDigis[j]>0) meE3->Fill((float)numberOfDigis[j]);}
362  meE4=theDMBE->get("Pixel/Endcap/ALLMODS_ndigisCHAN_EndcapDp2");
363  if(meE4){ for(int j=120; j!=192; j++) if((j<144||j>167)&&numberOfDigis[j]>0) meE4->Fill((float)numberOfDigis[j]);}
364 
371  MonitorElement* me36;
372  me1=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh1");
373  if(me1){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+0]>0) me1->Fill((float)nDigisPerChan[i*36+0]);}
374  me2=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh2");
375  if(me2){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+1]>0) me2->Fill((float)nDigisPerChan[i*36+1]);}
376  me3=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh3");
377  if(me3){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+2]>0) me3->Fill((float)nDigisPerChan[i*36+2]);}
378  me4=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh4");
379  if(me4){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+3]>0) me4->Fill((float)nDigisPerChan[i*36+3]);}
380  me5=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh5");
381  if(me5){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+4]>0) me5->Fill((float)nDigisPerChan[i*36+4]);}
382  me6=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh6");
383  if(me6){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+5]>0) me6->Fill((float)nDigisPerChan[i*36+5]);}
384  me7=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh7");
385  if(me7){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+6]>0) me7->Fill((float)nDigisPerChan[i*36+6]);}
386  me8=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh8");
387  if(me8){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+7]>0) me8->Fill((float)nDigisPerChan[i*36+7]);}
388  me9=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh9");
389  if(me9){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+8]>0) me9->Fill((float)nDigisPerChan[i*36+8]);}
390  me10=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh10");
391  if(me10){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+9]>0) me10->Fill((float)nDigisPerChan[i*36+9]);}
392  me11=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh11");
393  if(me11){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+10]>0) me11->Fill((float)nDigisPerChan[i*36+10]);}
394  me12=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh12");
395  if(me12){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+11]>0) me12->Fill((float)nDigisPerChan[i*36+11]);}
396  me13=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh13");
397  if(me13){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+12]>0) me13->Fill((float)nDigisPerChan[i*36+12]);}
398  me14=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh14");
399  if(me14){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+13]>0) me14->Fill((float)nDigisPerChan[i*36+13]);}
400  me15=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh15");
401  if(me15){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+14]>0) me15->Fill((float)nDigisPerChan[i*36+14]);}
402  me16=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh16");
403  if(me16){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+15]>0) me16->Fill((float)nDigisPerChan[i*36+15]);}
404  me17=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh17");
405  if(me17){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+16]>0) me17->Fill((float)nDigisPerChan[i*36+16]);}
406  me18=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh18");
407  if(me18){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+17]>0) me18->Fill((float)nDigisPerChan[i*36+17]);}
408  me19=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh19");
409  if(me19){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+18]>0) me19->Fill((float)nDigisPerChan[i*36+18]);}
410  me20=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh20");
411  if(me20){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+19]>0) me20->Fill((float)nDigisPerChan[i*36+19]);}
412  me21=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh21");
413  if(me21){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+20]>0) me21->Fill((float)nDigisPerChan[i*36+20]);}
414  me22=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh22");
415  if(me22){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+21]>0) me22->Fill((float)nDigisPerChan[i*36+21]);}
416  me23=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh23");
417  if(me23){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+22]>0) me23->Fill((float)nDigisPerChan[i*36+22]);}
418  me24=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh24");
419  if(me24){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+23]>0) me24->Fill((float)nDigisPerChan[i*36+23]);}
420  me25=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh25");
421  if(me25){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+24]>0) me25->Fill((float)nDigisPerChan[i*36+24]);}
422  me26=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh26");
423  if(me26){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+25]>0) me26->Fill((float)nDigisPerChan[i*36+25]);}
424  me27=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh27");
425  if(me27){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+26]>0) me27->Fill((float)nDigisPerChan[i*36+26]);}
426  me28=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh28");
427  if(me28){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+27]>0) me28->Fill((float)nDigisPerChan[i*36+27]);}
428  me29=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh29");
429  if(me29){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+28]>0) me29->Fill((float)nDigisPerChan[i*36+28]);}
430  me30=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh30");
431  if(me30){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+29]>0) me30->Fill((float)nDigisPerChan[i*36+29]);}
432  me31=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh31");
433  if(me31){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+30]>0) me31->Fill((float)nDigisPerChan[i*36+30]);}
434  me32=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh32");
435  if(me32){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+31]>0) me32->Fill((float)nDigisPerChan[i*36+31]);}
436  me33=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh33");
437  if(me33){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+32]>0) me33->Fill((float)nDigisPerChan[i*36+32]);}
438  me34=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh34");
439  if(me34){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+33]>0) me34->Fill((float)nDigisPerChan[i*36+33]);}
440  me35=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh35");
441  if(me35){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+34]>0) me35->Fill((float)nDigisPerChan[i*36+34]);}
442  me36=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh36");
443  if(me36){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+35]>0) me36->Fill((float)nDigisPerChan[i*36+35]);}
444 
445  // Rate of events with >N digis:
446  MonitorElement* meX1;
447  if(nEventDigis>bigEventSize){
448  meX1 = theDMBE->get("Pixel/bigEventRate");
449  if(meX1) meX1->Fill(lumiSection,1./23.);
450  }
451  //std::cout<<"nEventDigis: "<<nEventDigis<<" , nLumiSecs: "<<nLumiSecs<<" , nBigEvents: "<<nBigEvents<<std::endl;
452 
453  // Rate of pixel events and total number of pixel events per BX:
454  MonitorElement* meX2; MonitorElement* meX3;
455  if(nActiveModules>=4){
456  meX2 = theDMBE->get("Pixel/pixEvtsPerBX");
457  if(meX2) meX2->Fill(float(bx));
458  meX3 = theDMBE->get("Pixel/pixEventRate");
459  if(meX3) meX3->Fill(lumiSection, 1./23.);
460  }
461 
462  // Actual digi occupancy in a FED compared to average digi occupancy per FED
463  MonitorElement* meX4; MonitorElement* meX5;
464  meX4 = theDMBE->get("Pixel/averageDigiOccupancy");
465  meX5 = theDMBE->get("Pixel/avgfedDigiOccvsLumi");
466  if(meX4){
467  int maxfed=0;
468  for(int i=0; i!=32; i++){
469  if(nDigisPerFed[i]>maxfed) maxfed=nDigisPerFed[i];
470  }
471  for(int i=0; i!=40; i++){
472  float averageOcc = 0.;
473  if(i<32){
474  float averageBPIXFed = float(nBPIXDigis-maxfed)/31.;
475  if(averageBPIXFed>0.) averageOcc = nDigisPerFed[i]/averageBPIXFed;
476  //cout<<"\t BPIX i: "<<i<<" , "<<nBPIXDigis<<" , "<<averageBPIXFed<<" , "<<nDigisPerFed[i]<<" , "<<averageOcc<<endl;
477  }else{
478  float averageFPIXFed = float(nFPIXDigis)/8.;
479  if(averageFPIXFed>0.) averageOcc = nDigisPerFed[i]/averageFPIXFed;
480  //cout<<"\t FPIX i: "<<i<<" , "<<nFPIXDigis<<" , "<<averageFPIXFed<<" , "<<nDigisPerFed[i]<<" , "<<averageOcc<<endl;
481  }
482  meX4->setBinContent(i+1,averageOcc);
483  int lumiSections8 = int(lumiSection/8);
484  if (modOn){
485  if (meX5){
486  meX5->setBinContent(1+lumiSections8, i+1, averageOcc);
487  }//endif meX5
488  }//endif modOn
489  }
490  }
491 
492  // slow down...
493  if(slowDown) usleep(10000);
494 
495 }
496 
497 //------------------------------------------------------------------
498 // Build data structure
499 //------------------------------------------------------------------
501 
502  LogInfo ("PixelDQM") <<" SiPixelDigiSource::buildStructure" ;
504  iSetup.get<TrackerDigiGeometryRecord>().get( pDD );
505 
506  LogVerbatim ("PixelDQM") << " *** Geometry node for TrackerGeom is "<<&(*pDD)<<std::endl;
507  LogVerbatim ("PixelDQM") << " *** I have " << pDD->dets().size() <<" detectors"<<std::endl;
508  LogVerbatim ("PixelDQM") << " *** I have " << pDD->detTypes().size() <<" types"<<std::endl;
509 
510  for(TrackerGeometry::DetContainer::const_iterator it = pDD->dets().begin(); it != pDD->dets().end(); it++){
511 
512  if(dynamic_cast<PixelGeomDetUnit*>((*it))!=0){
513 
514  DetId detId = (*it)->geographicalId();
515  const GeomDetUnit * geoUnit = pDD->idToDetUnit( detId );
516  const PixelGeomDetUnit * pixDet = dynamic_cast<const PixelGeomDetUnit*>(geoUnit);
517  int nrows = (pixDet->specificTopology()).nrows();
518  int ncols = (pixDet->specificTopology()).ncolumns();
519 
520  if(detId.subdetId() == static_cast<int>(PixelSubdetector::PixelBarrel)) {
521  if(isPIB) continue;
522  LogDebug ("PixelDQM") << " ---> Adding Barrel Module " << detId.rawId() << endl;
523  uint32_t id = detId();
524  SiPixelDigiModule* theModule = new SiPixelDigiModule(id, ncols, nrows);
525  thePixelStructure.insert(pair<uint32_t,SiPixelDigiModule*> (id,theModule));
526 
527  } else if(detId.subdetId() == static_cast<int>(PixelSubdetector::PixelEndcap)) {
528  LogDebug ("PixelDQM") << " ---> Adding Endcap Module " << detId.rawId() << endl;
529  uint32_t id = detId();
530  SiPixelDigiModule* theModule = new SiPixelDigiModule(id, ncols, nrows);
531 
533  int disk = PixelEndcapName(DetId(id)).diskName();
534  int blade = PixelEndcapName(DetId(id)).bladeName();
535  int panel = PixelEndcapName(DetId(id)).pannelName();
537 
538  char sside[80]; sprintf(sside, "HalfCylinder_%i",side);
539  char sdisk[80]; sprintf(sdisk, "Disk_%i",disk);
540  char sblade[80]; sprintf(sblade, "Blade_%02i",blade);
541  char spanel[80]; sprintf(spanel, "Panel_%i",panel);
542  char smodule[80];sprintf(smodule,"Module_%i",module);
543  std::string side_str = sside;
544  std::string disk_str = sdisk;
545  bool mask = side_str.find("HalfCylinder_1")!=string::npos||
546  side_str.find("HalfCylinder_2")!=string::npos||
547  side_str.find("HalfCylinder_4")!=string::npos||
548  disk_str.find("Disk_2")!=string::npos;
549  // clutch to take all of FPIX, but no BPIX:
550  mask = false;
551  if(isPIB && mask) continue;
552 
553  thePixelStructure.insert(pair<uint32_t,SiPixelDigiModule*> (id,theModule));
554  }
555 
556  }
557  }
558  LogInfo ("PixelDQM") << " *** Pixel Structure Size " << thePixelStructure.size() << endl;
559 }
560 //------------------------------------------------------------------
561 // Book MEs
562 //------------------------------------------------------------------
564 
565  // Get DQM interface
567  theDMBE->setCurrentFolder("Pixel");
568  char title[80]; sprintf(title, "Rate of events with >%i digis;LumiSection;Rate [Hz]",bigEventSize);
569  bigEventRate = theDMBE->book1D("bigEventRate",title,5000,0.,5000.);
570  char title1[80]; sprintf(title1, "Pixel events vs. BX;BX;# events");
571  pixEvtsPerBX = theDMBE->book1D("pixEvtsPerBX",title1,3565,0.,3565.);
572  char title2[80]; sprintf(title2, "Rate of Pixel events;LumiSection;Rate [Hz]");
573  pixEventRate = theDMBE->book1D("pixEventRate",title2,5000,0.,5000.);
574  char title3[80]; sprintf(title3, "Average digi occupancy per FED;FED;NDigis/<NDigis>");
575  averageDigiOccupancy = theDMBE->book1D("averageDigiOccupancy",title3,40,-0.5,39.5);
576  if(modOn){
577  char title4[80]; sprintf(title4, "FED Digi Occupancy (NDigis/<NDigis>) vs LumiSections;Lumi Section;FED");
578  avgfedDigiOccvsLumi = theDMBE->book2D ("avgfedDigiOccvsLumi", title4, 400,0., 3200., 40, -0.5, 39.5);
579  }
580  std::map<uint32_t,SiPixelDigiModule*>::iterator struct_iter;
581 
582  SiPixelFolderOrganizer theSiPixelFolder;
583 
584  for(struct_iter = thePixelStructure.begin(); struct_iter != thePixelStructure.end(); struct_iter++){
586  if(modOn){
587  if(theSiPixelFolder.setModuleFolder((*struct_iter).first)){
588  (*struct_iter).second->book( conf_,0,twoDimOn,hiRes, reducedSet, twoDimModOn);
589  } else {
590 
591  if(!isPIB) throw cms::Exception("LogicError")
592  << "[SiPixelDigiSource::bookMEs] Creation of DQM folder failed";
593  }
594  }
595  if(ladOn){
596  if(theSiPixelFolder.setModuleFolder((*struct_iter).first,1)){
597  (*struct_iter).second->book( conf_,1,twoDimOn,hiRes, reducedSet);
598  } else {
599  LogDebug ("PixelDQM") << "PROBLEM WITH LADDER-FOLDER\n";
600  }
601 
602  }
603  if(layOn || twoDimOnlyLayDisk){
604  if(theSiPixelFolder.setModuleFolder((*struct_iter).first,2)){
605  (*struct_iter).second->book( conf_,2,twoDimOn,hiRes, reducedSet, twoDimOnlyLayDisk);
606  } else {
607  LogDebug ("PixelDQM") << "PROBLEM WITH LAYER-FOLDER\n";
608  }
609  }
610 
611  if(phiOn){
612  if(theSiPixelFolder.setModuleFolder((*struct_iter).first,3)){
613  (*struct_iter).second->book( conf_,3,twoDimOn,hiRes, reducedSet);
614  } else {
615  LogDebug ("PixelDQM") << "PROBLEM WITH PHI-FOLDER\n";
616  }
617  }
618  if(bladeOn){
619  if(theSiPixelFolder.setModuleFolder((*struct_iter).first,4)){
620  (*struct_iter).second->book( conf_,4,twoDimOn,hiRes, reducedSet);
621  } else {
622  LogDebug ("PixelDQM") << "PROBLEM WITH BLADE-FOLDER\n";
623  }
624  }
625  if(diskOn || twoDimOnlyLayDisk){
626  if(theSiPixelFolder.setModuleFolder((*struct_iter).first,5)){
627  (*struct_iter).second->book( conf_,5,twoDimOn,hiRes, reducedSet, twoDimOnlyLayDisk);
628  } else {
629  LogDebug ("PixelDQM") << "PROBLEM WITH DISK-FOLDER\n";
630  }
631  }
632  if(ringOn){
633  if(theSiPixelFolder.setModuleFolder((*struct_iter).first,6)){
634  (*struct_iter).second->book( conf_,6,twoDimOn,hiRes, reducedSet);
635  } else {
636  LogDebug ("PixelDQM") << "PROBLEM WITH RING-FOLDER\n";
637  }
638  }
639  }
640  std::string currDir = theDMBE->pwd();
641  theDMBE->cd("Pixel/Barrel");
642  meNDigisCOMBBarrel_ = theDMBE->book1D("ALLMODS_ndigisCOMB_Barrel","Number of Digis",200,0.,400.);
643  meNDigisCOMBBarrel_->setAxisTitle("Number of digis per module per event",1);
644  meNDigisCHANBarrel_ = theDMBE->book1D("ALLMODS_ndigisCHAN_Barrel","Number of Digis",100,0.,1000.);
645  meNDigisCHANBarrel_->setAxisTitle("Number of digis per FED channel per event",1);
646  meNDigisCHANBarrelL1_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelL1","Number of Digis L1",100,0.,1000.);
647  meNDigisCHANBarrelL1_->setAxisTitle("Number of digis per FED channel per event",1);
648  meNDigisCHANBarrelL2_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelL2","Number of Digis L2",100,0.,1000.);
649  meNDigisCHANBarrelL2_->setAxisTitle("Number of digis per FED channel per event",1);
650  meNDigisCHANBarrelL3_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelL3","Number of Digis L3",100,0.,1000.);
651  meNDigisCHANBarrelL3_->setAxisTitle("Number of digis per FED channel per event",1);
652  meNDigisCHANBarrelCh1_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh1","Number of Digis Ch1",100,0.,1000.);
653  meNDigisCHANBarrelCh1_->setAxisTitle("Number of digis per FED channel per event",1);
654  meNDigisCHANBarrelCh2_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh2","Number of Digis Ch2",100,0.,1000.);
655  meNDigisCHANBarrelCh2_->setAxisTitle("Number of digis per FED channel per event",1);
656  meNDigisCHANBarrelCh3_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh3","Number of Digis Ch3",100,0.,1000.);
657  meNDigisCHANBarrelCh3_->setAxisTitle("Number of digis per FED channel per event",1);
658  meNDigisCHANBarrelCh4_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh4","Number of Digis Ch4",100,0.,1000.);
659  meNDigisCHANBarrelCh4_->setAxisTitle("Number of digis per FED channel per event",1);
660  meNDigisCHANBarrelCh5_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh5","Number of Digis Ch5",100,0.,1000.);
661  meNDigisCHANBarrelCh5_->setAxisTitle("Number of digis per FED channel per event",1);
662  meNDigisCHANBarrelCh6_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh6","Number of Digis Ch6",100,0.,1000.);
663  meNDigisCHANBarrelCh6_->setAxisTitle("Number of digis per FED channel per event",1);
664  meNDigisCHANBarrelCh7_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh7","Number of Digis Ch7",100,0.,1000.);
665  meNDigisCHANBarrelCh7_->setAxisTitle("Number of digis per FED channel per event",1);
666  meNDigisCHANBarrelCh8_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh8","Number of Digis Ch8",100,0.,1000.);
667  meNDigisCHANBarrelCh8_->setAxisTitle("Number of digis per FED channel per event",1);
668  meNDigisCHANBarrelCh9_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh9","Number of Digis Ch9",100,0.,1000.);
669  meNDigisCHANBarrelCh9_->setAxisTitle("Number of digis per FED channel per event",1);
670  meNDigisCHANBarrelCh10_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh10","Number of Digis Ch10",100,0.,1000.);
671  meNDigisCHANBarrelCh10_->setAxisTitle("Number of digis per FED channel per event",1);
672  meNDigisCHANBarrelCh11_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh11","Number of Digis Ch11",100,0.,1000.);
673  meNDigisCHANBarrelCh11_->setAxisTitle("Number of digis per FED channel per event",1);
674  meNDigisCHANBarrelCh12_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh12","Number of Digis Ch12",100,0.,1000.);
675  meNDigisCHANBarrelCh12_->setAxisTitle("Number of digis per FED channel per event",1);
676  meNDigisCHANBarrelCh13_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh13","Number of Digis Ch13",100,0.,1000.);
677  meNDigisCHANBarrelCh13_->setAxisTitle("Number of digis per FED channel per event",1);
678  meNDigisCHANBarrelCh14_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh14","Number of Digis Ch14",100,0.,1000.);
679  meNDigisCHANBarrelCh14_->setAxisTitle("Number of digis per FED channel per event",1);
680  meNDigisCHANBarrelCh15_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh15","Number of Digis Ch15",100,0.,1000.);
681  meNDigisCHANBarrelCh15_->setAxisTitle("Number of digis per FED channel per event",1);
682  meNDigisCHANBarrelCh16_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh16","Number of Digis Ch16",100,0.,1000.);
683  meNDigisCHANBarrelCh16_->setAxisTitle("Number of digis per FED channel per event",1);
684  meNDigisCHANBarrelCh17_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh17","Number of Digis Ch17",100,0.,1000.);
685  meNDigisCHANBarrelCh17_->setAxisTitle("Number of digis per FED channel per event",1);
686  meNDigisCHANBarrelCh18_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh18","Number of Digis Ch18",100,0.,1000.);
687  meNDigisCHANBarrelCh18_->setAxisTitle("Number of digis per FED channel per event",1);
688  meNDigisCHANBarrelCh19_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh19","Number of Digis Ch19",100,0.,1000.);
689  meNDigisCHANBarrelCh19_->setAxisTitle("Number of digis per FED channel per event",1);
690  meNDigisCHANBarrelCh20_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh20","Number of Digis Ch20",100,0.,1000.);
691  meNDigisCHANBarrelCh20_->setAxisTitle("Number of digis per FED channel per event",1);
692  meNDigisCHANBarrelCh21_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh21","Number of Digis Ch21",100,0.,1000.);
693  meNDigisCHANBarrelCh21_->setAxisTitle("Number of digis per FED channel per event",1);
694  meNDigisCHANBarrelCh22_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh22","Number of Digis Ch22",100,0.,1000.);
695  meNDigisCHANBarrelCh22_->setAxisTitle("Number of digis per FED channel per event",1);
696  meNDigisCHANBarrelCh23_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh23","Number of Digis Ch23",100,0.,1000.);
697  meNDigisCHANBarrelCh23_->setAxisTitle("Number of digis per FED channel per event",1);
698  meNDigisCHANBarrelCh24_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh24","Number of Digis Ch24",100,0.,1000.);
699  meNDigisCHANBarrelCh24_->setAxisTitle("Number of digis per FED channel per event",1);
700  meNDigisCHANBarrelCh25_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh25","Number of Digis Ch25",100,0.,1000.);
701  meNDigisCHANBarrelCh25_->setAxisTitle("Number of digis per FED channel per event",1);
702  meNDigisCHANBarrelCh26_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh26","Number of Digis Ch26",100,0.,1000.);
703  meNDigisCHANBarrelCh26_->setAxisTitle("Number of digis per FED channel per event",1);
704  meNDigisCHANBarrelCh27_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh27","Number of Digis Ch27",100,0.,1000.);
705  meNDigisCHANBarrelCh27_->setAxisTitle("Number of digis per FED channel per event",1);
706  meNDigisCHANBarrelCh28_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh28","Number of Digis Ch28",100,0.,1000.);
707  meNDigisCHANBarrelCh28_->setAxisTitle("Number of digis per FED channel per event",1);
708  meNDigisCHANBarrelCh29_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh29","Number of Digis Ch29",100,0.,1000.);
709  meNDigisCHANBarrelCh29_->setAxisTitle("Number of digis per FED channel per event",1);
710  meNDigisCHANBarrelCh30_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh30","Number of Digis Ch30",100,0.,1000.);
711  meNDigisCHANBarrelCh30_->setAxisTitle("Number of digis per FED channel per event",1);
712  meNDigisCHANBarrelCh31_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh31","Number of Digis Ch31",100,0.,1000.);
713  meNDigisCHANBarrelCh31_->setAxisTitle("Number of digis per FED channel per event",1);
714  meNDigisCHANBarrelCh32_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh32","Number of Digis Ch32",100,0.,1000.);
715  meNDigisCHANBarrelCh32_->setAxisTitle("Number of digis per FED channel per event",1);
716  meNDigisCHANBarrelCh33_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh33","Number of Digis Ch33",100,0.,1000.);
717  meNDigisCHANBarrelCh33_->setAxisTitle("Number of digis per FED channel per event",1);
718  meNDigisCHANBarrelCh34_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh34","Number of Digis Ch34",100,0.,1000.);
719  meNDigisCHANBarrelCh34_->setAxisTitle("Number of digis per FED channel per event",1);
720  meNDigisCHANBarrelCh35_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh35","Number of Digis Ch35",100,0.,1000.);
721  meNDigisCHANBarrelCh35_->setAxisTitle("Number of digis per FED channel per event",1);
722  meNDigisCHANBarrelCh36_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh36","Number of Digis Ch36",100,0.,1000.);
723  meNDigisCHANBarrelCh36_->setAxisTitle("Number of digis per FED channel per event",1);
724  theDMBE->cd("Pixel/Endcap");
725  meNDigisCOMBEndcap_ = theDMBE->book1D("ALLMODS_ndigisCOMB_Endcap","Number of Digis",200,0.,400.);
726  meNDigisCOMBEndcap_->setAxisTitle("Number of digis per module per event",1);
727  meNDigisCHANEndcap_ = theDMBE->book1D("ALLMODS_ndigisCHAN_Endcap","Number of Digis",100,0.,1000.);
728  meNDigisCHANEndcap_->setAxisTitle("Number of digis per FED channel per event",1);
729  meNDigisCHANEndcapDp1_ = theDMBE->book1D("ALLMODS_ndigisCHAN_EndcapDp1","Number of Digis Disk p1",100,0.,1000.);
730  meNDigisCHANEndcapDp1_->setAxisTitle("Number of digis per FED channel per event",1);
731  meNDigisCHANEndcapDp2_ = theDMBE->book1D("ALLMODS_ndigisCHAN_EndcapDp2","Number of Digis Disk p2",100,0.,1000.);
732  meNDigisCHANEndcapDp2_->setAxisTitle("Number of digis per FED channel per event",1);
733  meNDigisCHANEndcapDm1_ = theDMBE->book1D("ALLMODS_ndigisCHAN_EndcapDm1","Number of Digis Disk m1",100,0.,1000.);
734  meNDigisCHANEndcapDm1_->setAxisTitle("Number of digis per FED channel per event",1);
735  meNDigisCHANEndcapDm2_ = theDMBE->book1D("ALLMODS_ndigisCHAN_EndcapDm2","Number of Digis Disk m2",100,0.,1000.);
736  meNDigisCHANEndcapDm2_->setAxisTitle("Number of digis per FED channel per event",1);
737  theDMBE->cd(currDir);
738 }
739 
740 //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_
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
Definition: DQMStore.cc:514
MonitorElement * meNDigisCHANBarrelCh8_
std::string I_name[1440]
MonitorElement * meNDigisCHANBarrelCh36_
void cd(void)
go to top directory (ie. root)
Definition: DQMStore.cc:209
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:17
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:1898
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_
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 * meNDigisCHANEndcap_
MonitorElement * meNDigisCHANBarrelCh28_
int j
Definition: DBlmapReader.cc:9
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:1265
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_
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:355
tuple input
Definition: collect_tpl.py:10
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_
MonitorElement * meNDigisCHANEndcapDp2_
MonitorElement * bigEventRate
MonitorElement * meNDigisCHANBarrelCh20_
MonitorElement * avgfedDigiOccvsLumi
edm::ParameterSet conf_
list infile
Definition: EdgesToViz.py:90
int pannelName() const
pannel id
MonitorElement * meNDigisCHANBarrelCh22_
int diskName() const
disk id
MonitorElement * pixEvtsPerBX
std::map< uint32_t, SiPixelDigiModule * > thePixelStructure
MonitorElement * meNDigisCHANBarrelL1_
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:642
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:232
MonitorElement * meNDigisCHANBarrelL2_
MonitorElement * meNDigisCHANBarrelCh24_
Definition: Run.h:32
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:204