00001
00002
00003
00004
00005
00006
00014
00015
00016
00017
00018
00019
00020 #include "DQM/SiPixelMonitorDigi/interface/SiPixelDigiSource.h"
00021
00022 #include "FWCore/ServiceRegistry/interface/Service.h"
00023 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00024 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00025
00026 #include "DQM/SiPixelCommon/interface/SiPixelFolderOrganizer.h"
00027 #include "DQMServices/Core/interface/DQMStore.h"
00028
00029 #include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h"
00030 #include "Geometry/Records/interface/TrackerDigiGeometryRecord.h"
00031 #include "Geometry/TrackerGeometryBuilder/interface/PixelGeomDetUnit.h"
00032 #include "Geometry/CommonTopologies/interface/PixelTopology.h"
00033
00034 #include "DataFormats/DetId/interface/DetId.h"
00035 #include "DataFormats/SiPixelDetId/interface/PixelSubdetector.h"
00036 #include "DataFormats/SiPixelDetId/interface/PixelBarrelName.h"
00037 #include "DataFormats/SiPixelDetId/interface/PixelEndcapName.h"
00038
00039 #include <string>
00040 #include <stdlib.h>
00041 #include <iostream>
00042 #include <fstream>
00043
00044 using namespace std;
00045 using namespace edm;
00046
00047 SiPixelDigiSource::SiPixelDigiSource(const edm::ParameterSet& iConfig) :
00048 conf_(iConfig),
00049 src_( conf_.getParameter<edm::InputTag>( "src" ) ),
00050 saveFile( conf_.getUntrackedParameter<bool>("saveFile",false) ),
00051 isPIB( conf_.getUntrackedParameter<bool>("isPIB",false) ),
00052 slowDown( conf_.getUntrackedParameter<bool>("slowDown",false) ),
00053 modOn( conf_.getUntrackedParameter<bool>("modOn",true) ),
00054 twoDimOn( conf_.getUntrackedParameter<bool>("twoDimOn",true) ),
00055 twoDimModOn( conf_.getUntrackedParameter<bool>("twoDimModOn",true) ),
00056 twoDimOnlyLayDisk( conf_.getUntrackedParameter<bool>("twoDimOnlyLayDisk",false) ),
00057 hiRes( conf_.getUntrackedParameter<bool>("hiRes",false) ),
00058 reducedSet( conf_.getUntrackedParameter<bool>("reducedSet",false) ),
00059 ladOn( conf_.getUntrackedParameter<bool>("ladOn",false) ),
00060 layOn( conf_.getUntrackedParameter<bool>("layOn",false) ),
00061 phiOn( conf_.getUntrackedParameter<bool>("phiOn",false) ),
00062 ringOn( conf_.getUntrackedParameter<bool>("ringOn",false) ),
00063 bladeOn( conf_.getUntrackedParameter<bool>("bladeOn",false) ),
00064 diskOn( conf_.getUntrackedParameter<bool>("diskOn",false) ),
00065 bigEventSize( conf_.getUntrackedParameter<int>("bigEventSize",1000) )
00066 {
00067 theDMBE = edm::Service<DQMStore>().operator->();
00068 LogInfo ("PixelDQM") << "SiPixelDigiSource::SiPixelDigiSource: Got DQM BackEnd interface"<<endl;
00069 }
00070
00071
00072 SiPixelDigiSource::~SiPixelDigiSource()
00073 {
00074
00075
00076 LogInfo ("PixelDQM") << "SiPixelDigiSource::~SiPixelDigiSource: Destructor"<<endl;
00077 }
00078
00079
00080 void SiPixelDigiSource::beginJob(){
00081 firstRun = true;
00082
00083 ifstream infile(edm::FileInPath("DQM/SiPixelMonitorClient/test/detId.dat").fullPath().c_str(),ios::in);
00084 int nModsInFile=0;
00085 assert(!infile.fail());
00086 while(!infile.eof()&&nModsInFile<1440) {
00087 infile >> I_name[nModsInFile] >> I_detId[nModsInFile] >> I_fedId[nModsInFile] >> I_linkId1[nModsInFile] >> I_linkId2[nModsInFile];
00088
00089 nModsInFile++;
00090 }
00091 infile.close();
00092 }
00093
00094 void SiPixelDigiSource::beginRun(const edm::Run& r, const edm::EventSetup& iSetup){
00095 LogInfo ("PixelDQM") << " SiPixelDigiSource::beginJob - Initialisation ... " << std::endl;
00096 LogInfo ("PixelDQM") << "Mod/Lad/Lay/Phi " << modOn << "/" << ladOn << "/"
00097 << layOn << "/" << phiOn << std::endl;
00098 LogInfo ("PixelDQM") << "Blade/Disk/Ring" << bladeOn << "/" << diskOn << "/"
00099 << ringOn << std::endl;
00100
00101 LogInfo ("PixelDQM") << "2DIM IS " << twoDimOn << " and set to high resolution? " << hiRes << "\n";
00102
00103 if(firstRun){
00104 eventNo = 0;
00105 lumSec = 0;
00106 nLumiSecs = 0;
00107 nBigEvents = 0;
00108 nBPIXDigis = 0;
00109 nFPIXDigis = 0;
00110 for(int i=0; i!=40; i++) nDigisPerFed[i]=0;
00111 for(int i=0; i!=4; i++) nDigisPerDisk[i]=0;
00112 nDP1P1M1 = 0;
00113 nDP1P1M2 = 0;
00114 nDP1P1M3 = 0;
00115 nDP1P1M4 = 0;
00116 nDP1P2M1 = 0;
00117 nDP1P2M2 = 0;
00118 nDP1P2M3 = 0;
00119 nDP2P1M1 = 0;
00120 nDP2P1M2 = 0;
00121 nDP2P1M3 = 0;
00122 nDP2P1M4 = 0;
00123 nDP2P2M1 = 0;
00124 nDP2P2M2 = 0;
00125 nDP2P2M3 = 0;
00126 nDM1P1M1 = 0;
00127 nDM1P1M2 = 0;
00128 nDM1P1M3 = 0;
00129 nDM1P1M4 = 0;
00130 nDM1P2M1 = 0;
00131 nDM1P2M2 = 0;
00132 nDM1P2M3 = 0;
00133 nDM2P1M1 = 0;
00134 nDM2P1M2 = 0;
00135 nDM2P1M3 = 0;
00136 nDM2P1M4 = 0;
00137 nDM2P2M1 = 0;
00138 nDM2P2M2 = 0;
00139 nDM2P2M3 = 0;
00140 nL1M1 = 0;
00141 nL1M2 = 0;
00142 nL1M3 = 0;
00143 nL1M4 = 0;
00144 nL2M1 = 0;
00145 nL2M2 = 0;
00146 nL2M3 = 0;
00147 nL2M4 = 0;
00148 nL3M1 = 0;
00149 nL3M2 = 0;
00150 nL3M3 = 0;
00151 nL3M4 = 0;
00152
00153
00154
00155 buildStructure(iSetup);
00156
00157 bookMEs();
00158 firstRun = false;
00159 }
00160 }
00161
00162
00163 void SiPixelDigiSource::endJob(void){
00164
00165 if(saveFile) {
00166 LogInfo ("PixelDQM") << " SiPixelDigiSource::endJob - Saving Root File " << std::endl;
00167 std::string outputFile = conf_.getParameter<std::string>("outputFile");
00168 theDMBE->save( outputFile.c_str() );
00169 }
00170
00171 }
00172
00173
00174
00175
00176 void SiPixelDigiSource::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup)
00177 {
00178 eventNo++;
00179
00180
00181
00182 edm::Handle< edm::DetSetVector<PixelDigi> > input;
00183 iEvent.getByLabel( src_, input );
00184 if (!input.isValid()) return;
00185
00186 DQMStore* theDMBE = edm::Service<DQMStore>().operator->();
00187
00188
00189 int bx = iEvent.bunchCrossing();
00190
00191 int lumiSection = (int)iEvent.luminosityBlock();
00192 int nEventDigis = 0; int nActiveModules = 0;
00193
00194
00195 if(modOn){
00196 MonitorElement* meReset = theDMBE->get("Pixel/averageDigiOccupancy");
00197
00198 if(meReset && lumiSection%8==0){
00199 meReset->Reset();
00200 nBPIXDigis = 0;
00201 nFPIXDigis = 0;
00202 for(int i=0; i!=40; i++) nDigisPerFed[i]=0;
00203 }
00204 }
00205 if(!modOn){
00206 MonitorElement* meReset = theDMBE->get("Pixel/averageDigiOccupancy");
00207 if(meReset && lumiSection%1==0){
00208 meReset->Reset();
00209 nBPIXDigis = 0;
00210 nFPIXDigis = 0;
00211 for(int i=0; i!=40; i++) nDigisPerFed[i]=0;
00212 }
00213 }
00214
00215 std::map<uint32_t,SiPixelDigiModule*>::iterator struct_iter;
00216 for(int i=0; i!=192; i++) numberOfDigis[i]=0;
00217 for(int i=0; i!=1152; i++) nDigisPerChan[i]=0;
00218 for(int i=0; i!=4; i++) nDigisPerDisk[i]=0;
00219 for (struct_iter = thePixelStructure.begin() ; struct_iter != thePixelStructure.end() ; struct_iter++) {
00220 int numberOfDigisMod = (*struct_iter).second->fill(*input, modOn,
00221 ladOn, layOn, phiOn,
00222 bladeOn, diskOn, ringOn,
00223 twoDimOn, reducedSet, twoDimModOn, twoDimOnlyLayDisk,
00224 nDigisA, nDigisB);
00225 if(numberOfDigisMod>0){
00226
00227
00228 nEventDigis = nEventDigis + numberOfDigisMod;
00229 nActiveModules++;
00230 bool barrel = DetId((*struct_iter).first).subdetId() == static_cast<int>(PixelSubdetector::PixelBarrel);
00231 bool endcap = DetId((*struct_iter).first).subdetId() == static_cast<int>(PixelSubdetector::PixelEndcap);
00232
00233 if(barrel){
00234
00235 nBPIXDigis = nBPIXDigis + numberOfDigisMod;
00236
00237 for(int i=0; i!=768; ++i){
00238
00239 if((*struct_iter).first == I_detId[i]){
00240
00241 nDigisPerFed[I_fedId[i]]=nDigisPerFed[I_fedId[i]]+numberOfDigisMod;
00242
00243 int index1 = 0; int index2 = 0;
00244 if(I_linkId1[i]>0) index1 = I_fedId[i]*36+(I_linkId1[i]-1);
00245 if(I_linkId2[i]>0) index2 = I_fedId[i]*36+(I_linkId2[i]-1);
00246 if(nDigisA>0 && I_linkId1[i]>0) nDigisPerChan[index1]=nDigisPerChan[index1]+nDigisA;
00247 if(nDigisB>0 && I_linkId2[i]>0) nDigisPerChan[index2]=nDigisPerChan[index2]+nDigisB;
00248
00249 i=767;
00250 }
00251 }
00252
00253 }else if(endcap){
00254
00255
00256 nFPIXDigis = nFPIXDigis + numberOfDigisMod;
00257
00258 PixelEndcapName::HalfCylinder side = PixelEndcapName(DetId((*struct_iter).first)).halfCylinder();
00259 int disk = PixelEndcapName(DetId((*struct_iter).first)).diskName();
00260 int blade = PixelEndcapName(DetId((*struct_iter).first)).bladeName();
00261 int panel = PixelEndcapName(DetId((*struct_iter).first)).pannelName();
00262 int module = PixelEndcapName(DetId((*struct_iter).first)).plaquetteName();
00263
00264 int iter=0; int i=0;
00265 if(side==PixelEndcapName::mI){
00266 if(disk==1){
00267 i=0;
00268 if(panel==1){ if(module==1) nDM1P1M1+=numberOfDigisMod;
00269 else if(module==2) nDM1P1M2+=numberOfDigisMod;
00270 else if(module==3) nDM1P1M3+=numberOfDigisMod;
00271 else if(module==4) nDM1P1M4+=numberOfDigisMod;}
00272 else if(panel==2){ if(module==1) nDM1P2M1+=numberOfDigisMod;
00273 else if(module==2) nDM1P2M2+=numberOfDigisMod;
00274 else if(module==3) nDM1P2M3+=numberOfDigisMod; }
00275 if(blade==1){ if(panel==1) iter=i; else if(panel==2) iter=i+1; }
00276 if(blade==2){ if(panel==1) iter=i+2; else if(panel==2) iter=i+3; }
00277 if(blade==3){ if(panel==1) iter=i+4; else if(panel==2) iter=i+5; }
00278 if(blade==4){ if(panel==1) iter=i+6; else if(panel==2) iter=i+7; }
00279 if(blade==5){ if(panel==1) iter=i+8; else if(panel==2) iter=i+9; }
00280 if(blade==6){ if(panel==1) iter=i+10; else if(panel==2) iter=i+11; }
00281 if(blade==7){ if(panel==1) iter=i+12; else if(panel==2) iter=i+13; }
00282 if(blade==8){ if(panel==1) iter=i+14; else if(panel==2) iter=i+15; }
00283 if(blade==9){ if(panel==1) iter=i+16; else if(panel==2) iter=i+17; }
00284 if(blade==10){ if(panel==1) iter=i+18; else if(panel==2) iter=i+19; }
00285 if(blade==11){ if(panel==1) iter=i+20; else if(panel==2) iter=i+21; }
00286 if(blade==12){ if(panel==1) iter=i+22; else if(panel==2) iter=i+23; }
00287 }else if(disk==2){
00288 i=24;
00289 if(panel==1){ if(module==1) nDM2P1M1+=numberOfDigisMod;
00290 else if(module==2) nDM2P1M2+=numberOfDigisMod;
00291 else if(module==3) nDM2P1M3+=numberOfDigisMod;
00292 else if(module==4) nDM2P1M4+=numberOfDigisMod;}
00293 else if(panel==2){ if(module==1) nDM2P2M1+=numberOfDigisMod;
00294 else if(module==2) nDM2P2M2+=numberOfDigisMod;
00295 else if(module==3) nDM2P2M3+=numberOfDigisMod; }
00296 if(blade==1){ if(panel==1) iter=i; else if(panel==2) iter=i+1; }
00297 if(blade==2){ if(panel==1) iter=i+2; else if(panel==2) iter=i+3; }
00298 if(blade==3){ if(panel==1) iter=i+4; else if(panel==2) iter=i+5; }
00299 if(blade==4){ if(panel==1) iter=i+6; else if(panel==2) iter=i+7; }
00300 if(blade==5){ if(panel==1) iter=i+8; else if(panel==2) iter=i+9; }
00301 if(blade==6){ if(panel==1) iter=i+10; else if(panel==2) iter=i+11; }
00302 if(blade==7){ if(panel==1) iter=i+12; else if(panel==2) iter=i+13; }
00303 if(blade==8){ if(panel==1) iter=i+14; else if(panel==2) iter=i+15; }
00304 if(blade==9){ if(panel==1) iter=i+16; else if(panel==2) iter=i+17; }
00305 if(blade==10){ if(panel==1) iter=i+18; else if(panel==2) iter=i+19; }
00306 if(blade==11){ if(panel==1) iter=i+20; else if(panel==2) iter=i+21; }
00307 if(blade==12){ if(panel==1) iter=i+22; else if(panel==2) iter=i+23; }
00308 }
00309 }else if(side==PixelEndcapName::mO){
00310 if(disk==1){
00311 i=48;
00312 if(panel==1){ if(module==1) nDM1P1M1+=numberOfDigisMod;
00313 else if(module==2) nDM1P1M2+=numberOfDigisMod;
00314 else if(module==3) nDM1P1M3+=numberOfDigisMod;
00315 else if(module==4) nDM1P1M4+=numberOfDigisMod;}
00316 else if(panel==2){ if(module==1) nDM1P2M1+=numberOfDigisMod;
00317 else if(module==2) nDM1P2M2+=numberOfDigisMod;
00318 else if(module==3) nDM1P2M3+=numberOfDigisMod; }
00319 if(blade==1){ if(panel==1) iter=i; else if(panel==2) iter=i+1; }
00320 if(blade==2){ if(panel==1) iter=i+2; else if(panel==2) iter=i+3; }
00321 if(blade==3){ if(panel==1) iter=i+4; else if(panel==2) iter=i+5; }
00322 if(blade==4){ if(panel==1) iter=i+6; else if(panel==2) iter=i+7; }
00323 if(blade==5){ if(panel==1) iter=i+8; else if(panel==2) iter=i+9; }
00324 if(blade==6){ if(panel==1) iter=i+10; else if(panel==2) iter=i+11; }
00325 if(blade==7){ if(panel==1) iter=i+12; else if(panel==2) iter=i+13; }
00326 if(blade==8){ if(panel==1) iter=i+14; else if(panel==2) iter=i+15; }
00327 if(blade==9){ if(panel==1) iter=i+16; else if(panel==2) iter=i+17; }
00328 if(blade==10){ if(panel==1) iter=i+18; else if(panel==2) iter=i+19; }
00329 if(blade==11){ if(panel==1) iter=i+20; else if(panel==2) iter=i+21; }
00330 if(blade==12){ if(panel==1) iter=i+22; else if(panel==2) iter=i+23; }
00331 }else if(disk==2){
00332 i=72;
00333 if(panel==1){ if(module==1) nDM2P1M1+=numberOfDigisMod;
00334 else if(module==2) nDM2P1M2+=numberOfDigisMod;
00335 else if(module==3) nDM2P1M3+=numberOfDigisMod;
00336 else if(module==4) nDM2P1M4+=numberOfDigisMod;}
00337 else if(panel==2){ if(module==1) nDM2P2M1+=numberOfDigisMod;
00338 else if(module==2) nDM2P2M2+=numberOfDigisMod;
00339 else if(module==3) nDM2P2M3+=numberOfDigisMod; }
00340 if(blade==1){ if(panel==1) iter=i; else if(panel==2) iter=i+1; }
00341 if(blade==2){ if(panel==1) iter=i+2; else if(panel==2) iter=i+3; }
00342 if(blade==3){ if(panel==1) iter=i+4; else if(panel==2) iter=i+5; }
00343 if(blade==4){ if(panel==1) iter=i+6; else if(panel==2) iter=i+7; }
00344 if(blade==5){ if(panel==1) iter=i+8; else if(panel==2) iter=i+9; }
00345 if(blade==6){ if(panel==1) iter=i+10; else if(panel==2) iter=i+11; }
00346 if(blade==7){ if(panel==1) iter=i+12; else if(panel==2) iter=i+13; }
00347 if(blade==8){ if(panel==1) iter=i+14; else if(panel==2) iter=i+15; }
00348 if(blade==9){ if(panel==1) iter=i+16; else if(panel==2) iter=i+17; }
00349 if(blade==10){ if(panel==1) iter=i+18; else if(panel==2) iter=i+19; }
00350 if(blade==11){ if(panel==1) iter=i+20; else if(panel==2) iter=i+21; }
00351 if(blade==12){ if(panel==1) iter=i+22; else if(panel==2) iter=i+23; }
00352 }
00353 }else if(side==PixelEndcapName::pI){
00354 if(disk==1){
00355 i=96;
00356 if(panel==1){ if(module==1) nDP1P1M1+=numberOfDigisMod;
00357 else if(module==2) nDP1P1M2+=numberOfDigisMod;
00358 else if(module==3) nDP1P1M3+=numberOfDigisMod;
00359 else if(module==4) nDP1P1M4+=numberOfDigisMod;}
00360 else if(panel==2){ if(module==1) nDP1P2M1+=numberOfDigisMod;
00361 else if(module==2) nDP1P2M2+=numberOfDigisMod;
00362 else if(module==3) nDP1P2M3+=numberOfDigisMod; }
00363 if(blade==1){ if(panel==1) iter=i; else if(panel==2) iter=i+1; }
00364 if(blade==2){ if(panel==1) iter=i+2; else if(panel==2) iter=i+3; }
00365 if(blade==3){ if(panel==1) iter=i+4; else if(panel==2) iter=i+5; }
00366 if(blade==4){ if(panel==1) iter=i+6; else if(panel==2) iter=i+7; }
00367 if(blade==5){ if(panel==1) iter=i+8; else if(panel==2) iter=i+9; }
00368 if(blade==6){ if(panel==1) iter=i+10; else if(panel==2) iter=i+11; }
00369 if(blade==7){ if(panel==1) iter=i+12; else if(panel==2) iter=i+13; }
00370 if(blade==8){ if(panel==1) iter=i+14; else if(panel==2) iter=i+15; }
00371 if(blade==9){ if(panel==1) iter=i+16; else if(panel==2) iter=i+17; }
00372 if(blade==10){ if(panel==1) iter=i+18; else if(panel==2) iter=i+19; }
00373 if(blade==11){ if(panel==1) iter=i+20; else if(panel==2) iter=i+21; }
00374 if(blade==12){ if(panel==1) iter=i+22; else if(panel==2) iter=i+23; }
00375 }else if(disk==2){
00376 i=120;
00377 if(panel==1){ if(module==1) nDP2P1M1+=numberOfDigisMod;
00378 else if(module==2) nDP2P1M2+=numberOfDigisMod;
00379 else if(module==3) nDP2P1M3+=numberOfDigisMod;
00380 else if(module==4) nDP2P1M4+=numberOfDigisMod;}
00381 else if(panel==2){ if(module==1) nDP2P2M1+=numberOfDigisMod;
00382 else if(module==2) nDP2P2M2+=numberOfDigisMod;
00383 else if(module==3) nDP2P2M3+=numberOfDigisMod; }
00384 if(blade==1){ if(panel==1) iter=i; else if(panel==2) iter=i+1; }
00385 if(blade==2){ if(panel==1) iter=i+2; else if(panel==2) iter=i+3; }
00386 if(blade==3){ if(panel==1) iter=i+4; else if(panel==2) iter=i+5; }
00387 if(blade==4){ if(panel==1) iter=i+6; else if(panel==2) iter=i+7; }
00388 if(blade==5){ if(panel==1) iter=i+8; else if(panel==2) iter=i+9; }
00389 if(blade==6){ if(panel==1) iter=i+10; else if(panel==2) iter=i+11; }
00390 if(blade==7){ if(panel==1) iter=i+12; else if(panel==2) iter=i+13; }
00391 if(blade==8){ if(panel==1) iter=i+14; else if(panel==2) iter=i+15; }
00392 if(blade==9){ if(panel==1) iter=i+16; else if(panel==2) iter=i+17; }
00393 if(blade==10){ if(panel==1) iter=i+18; else if(panel==2) iter=i+19; }
00394 if(blade==11){ if(panel==1) iter=i+20; else if(panel==2) iter=i+21; }
00395 if(blade==12){ if(panel==1) iter=i+22; else if(panel==2) iter=i+23; }
00396 }
00397 }else if(side==PixelEndcapName::pO){
00398 if(disk==1){
00399 i=144;
00400 if(panel==1){ if(module==1) nDP1P1M1+=numberOfDigisMod;
00401 else if(module==2) nDP1P1M2+=numberOfDigisMod;
00402 else if(module==3) nDP1P1M3+=numberOfDigisMod;
00403 else if(module==4) nDP1P1M4+=numberOfDigisMod;}
00404 else if(panel==2){ if(module==1) nDP1P2M1+=numberOfDigisMod;
00405 else if(module==2) nDP1P2M2+=numberOfDigisMod;
00406 else if(module==3) nDP1P2M3+=numberOfDigisMod; }
00407 if(blade==1){ if(panel==1) iter=i; else if(panel==2) iter=i+1; }
00408 if(blade==2){ if(panel==1) iter=i+2; else if(panel==2) iter=i+3; }
00409 if(blade==3){ if(panel==1) iter=i+4; else if(panel==2) iter=i+5; }
00410 if(blade==4){ if(panel==1) iter=i+6; else if(panel==2) iter=i+7; }
00411 if(blade==5){ if(panel==1) iter=i+8; else if(panel==2) iter=i+9; }
00412 if(blade==6){ if(panel==1) iter=i+10; else if(panel==2) iter=i+11; }
00413 if(blade==7){ if(panel==1) iter=i+12; else if(panel==2) iter=i+13; }
00414 if(blade==8){ if(panel==1) iter=i+14; else if(panel==2) iter=i+15; }
00415 if(blade==9){ if(panel==1) iter=i+16; else if(panel==2) iter=i+17; }
00416 if(blade==10){ if(panel==1) iter=i+18; else if(panel==2) iter=i+19; }
00417 if(blade==11){ if(panel==1) iter=i+20; else if(panel==2) iter=i+21; }
00418 if(blade==12){ if(panel==1) iter=i+22; else if(panel==2) iter=i+23; }
00419 }else if(disk==2){
00420 i=168;
00421 if(panel==1){ if(module==1) nDP2P1M1+=numberOfDigisMod;
00422 else if(module==2) nDP2P1M2+=numberOfDigisMod;
00423 else if(module==3) nDP2P1M3+=numberOfDigisMod;
00424 else if(module==4) nDP2P1M4+=numberOfDigisMod;}
00425 else if(panel==2){ if(module==1) nDP2P2M1+=numberOfDigisMod;
00426 else if(module==2) nDP2P2M2+=numberOfDigisMod;
00427 else if(module==3) nDP2P2M3+=numberOfDigisMod; }
00428 if(blade==1){ if(panel==1) iter=i; else if(panel==2) iter=i+1; }
00429 if(blade==2){ if(panel==1) iter=i+2; else if(panel==2) iter=i+3; }
00430 if(blade==3){ if(panel==1) iter=i+4; else if(panel==2) iter=i+5; }
00431 if(blade==4){ if(panel==1) iter=i+6; else if(panel==2) iter=i+7; }
00432 if(blade==5){ if(panel==1) iter=i+8; else if(panel==2) iter=i+9; }
00433 if(blade==6){ if(panel==1) iter=i+10; else if(panel==2) iter=i+11; }
00434 if(blade==7){ if(panel==1) iter=i+12; else if(panel==2) iter=i+13; }
00435 if(blade==8){ if(panel==1) iter=i+14; else if(panel==2) iter=i+15; }
00436 if(blade==9){ if(panel==1) iter=i+16; else if(panel==2) iter=i+17; }
00437 if(blade==10){ if(panel==1) iter=i+18; else if(panel==2) iter=i+19; }
00438 if(blade==11){ if(panel==1) iter=i+20; else if(panel==2) iter=i+21; }
00439 if(blade==12){ if(panel==1) iter=i+22; else if(panel==2) iter=i+23; }
00440 }
00441 }
00442 numberOfDigis[iter]=numberOfDigis[iter]+numberOfDigisMod;
00443
00444
00445
00446
00447 for(int i=768; i!=1440; i++){
00448
00449 if((*struct_iter).first == I_detId[i]){
00450
00451 nDigisPerFed[I_fedId[i]]=nDigisPerFed[I_fedId[i]]+numberOfDigisMod;
00452
00453 i=1439;
00454 }
00455 }
00456
00457 }
00458
00459
00460 }
00461 }
00462
00463
00464
00465
00466
00467 MonitorElement* meE; MonitorElement* meE1; MonitorElement* meE2; MonitorElement* meE3; MonitorElement* meE4;
00468 meE=theDMBE->get("Pixel/Endcap/ALLMODS_ndigisCHAN_Endcap");
00469 if(meE){ for(int j=0; j!=192; j++) if(numberOfDigis[j]>0) meE->Fill((float)numberOfDigis[j]);}
00470 meE1=theDMBE->get("Pixel/Endcap/ALLMODS_ndigisCHAN_EndcapDm1");
00471 if(meE1){ for(int j=0; j!=72; j++) if((j<24||j>47)&&numberOfDigis[j]>0) meE1->Fill((float)numberOfDigis[j]);}
00472 meE2=theDMBE->get("Pixel/Endcap/ALLMODS_ndigisCHAN_EndcapDm2");
00473 if(meE2){ for(int j=24; j!=96; j++) if((j<48||j>71)&&numberOfDigis[j]>0) meE2->Fill((float)numberOfDigis[j]);}
00474 meE3=theDMBE->get("Pixel/Endcap/ALLMODS_ndigisCHAN_EndcapDp1");
00475 if(meE3){ for(int j=96; j!=168; j++) if((j<120||j>143)&&numberOfDigis[j]>0) meE3->Fill((float)numberOfDigis[j]);}
00476 meE4=theDMBE->get("Pixel/Endcap/ALLMODS_ndigisCHAN_EndcapDp2");
00477 if(meE4){ for(int j=120; j!=192; j++) if((j<144||j>167)&&numberOfDigis[j]>0) meE4->Fill((float)numberOfDigis[j]);}
00478
00479 MonitorElement* me1; MonitorElement* me2; MonitorElement* me3; MonitorElement* me4; MonitorElement* me5;
00480 MonitorElement* me6; MonitorElement* me7; MonitorElement* me8; MonitorElement* me9; MonitorElement* me10; MonitorElement* me11;
00481 MonitorElement* me12; MonitorElement* me13; MonitorElement* me14; MonitorElement* me15; MonitorElement* me16; MonitorElement* me17;
00482 MonitorElement* me18; MonitorElement* me19; MonitorElement* me20; MonitorElement* me21; MonitorElement* me22; MonitorElement* me23;
00483 MonitorElement* me24; MonitorElement* me25; MonitorElement* me26; MonitorElement* me27; MonitorElement* me28; MonitorElement* me29;
00484 MonitorElement* me30; MonitorElement* me31; MonitorElement* me32; MonitorElement* me33; MonitorElement* me34; MonitorElement* me35;
00485 MonitorElement* me36;
00486 me1=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh1");
00487 if(me1){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+0]>0) me1->Fill((float)nDigisPerChan[i*36+0]);}
00488 me2=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh2");
00489 if(me2){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+1]>0) me2->Fill((float)nDigisPerChan[i*36+1]);}
00490 me3=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh3");
00491 if(me3){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+2]>0) me3->Fill((float)nDigisPerChan[i*36+2]);}
00492 me4=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh4");
00493 if(me4){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+3]>0) me4->Fill((float)nDigisPerChan[i*36+3]);}
00494 me5=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh5");
00495 if(me5){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+4]>0) me5->Fill((float)nDigisPerChan[i*36+4]);}
00496 me6=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh6");
00497 if(me6){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+5]>0) me6->Fill((float)nDigisPerChan[i*36+5]);}
00498 me7=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh7");
00499 if(me7){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+6]>0) me7->Fill((float)nDigisPerChan[i*36+6]);}
00500 me8=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh8");
00501 if(me8){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+7]>0) me8->Fill((float)nDigisPerChan[i*36+7]);}
00502 me9=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh9");
00503 if(me9){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+8]>0) me9->Fill((float)nDigisPerChan[i*36+8]);}
00504 me10=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh10");
00505 if(me10){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+9]>0) me10->Fill((float)nDigisPerChan[i*36+9]);}
00506 me11=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh11");
00507 if(me11){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+10]>0) me11->Fill((float)nDigisPerChan[i*36+10]);}
00508 me12=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh12");
00509 if(me12){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+11]>0) me12->Fill((float)nDigisPerChan[i*36+11]);}
00510 me13=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh13");
00511 if(me13){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+12]>0) me13->Fill((float)nDigisPerChan[i*36+12]);}
00512 me14=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh14");
00513 if(me14){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+13]>0) me14->Fill((float)nDigisPerChan[i*36+13]);}
00514 me15=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh15");
00515 if(me15){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+14]>0) me15->Fill((float)nDigisPerChan[i*36+14]);}
00516 me16=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh16");
00517 if(me16){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+15]>0) me16->Fill((float)nDigisPerChan[i*36+15]);}
00518 me17=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh17");
00519 if(me17){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+16]>0) me17->Fill((float)nDigisPerChan[i*36+16]);}
00520 me18=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh18");
00521 if(me18){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+17]>0) me18->Fill((float)nDigisPerChan[i*36+17]);}
00522 me19=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh19");
00523 if(me19){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+18]>0) me19->Fill((float)nDigisPerChan[i*36+18]);}
00524 me20=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh20");
00525 if(me20){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+19]>0) me20->Fill((float)nDigisPerChan[i*36+19]);}
00526 me21=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh21");
00527 if(me21){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+20]>0) me21->Fill((float)nDigisPerChan[i*36+20]);}
00528 me22=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh22");
00529 if(me22){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+21]>0) me22->Fill((float)nDigisPerChan[i*36+21]);}
00530 me23=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh23");
00531 if(me23){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+22]>0) me23->Fill((float)nDigisPerChan[i*36+22]);}
00532 me24=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh24");
00533 if(me24){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+23]>0) me24->Fill((float)nDigisPerChan[i*36+23]);}
00534 me25=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh25");
00535 if(me25){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+24]>0) me25->Fill((float)nDigisPerChan[i*36+24]);}
00536 me26=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh26");
00537 if(me26){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+25]>0) me26->Fill((float)nDigisPerChan[i*36+25]);}
00538 me27=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh27");
00539 if(me27){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+26]>0) me27->Fill((float)nDigisPerChan[i*36+26]);}
00540 me28=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh28");
00541 if(me28){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+27]>0) me28->Fill((float)nDigisPerChan[i*36+27]);}
00542 me29=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh29");
00543 if(me29){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+28]>0) me29->Fill((float)nDigisPerChan[i*36+28]);}
00544 me30=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh30");
00545 if(me30){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+29]>0) me30->Fill((float)nDigisPerChan[i*36+29]);}
00546 me31=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh31");
00547 if(me31){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+30]>0) me31->Fill((float)nDigisPerChan[i*36+30]);}
00548 me32=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh32");
00549 if(me32){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+31]>0) me32->Fill((float)nDigisPerChan[i*36+31]);}
00550 me33=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh33");
00551 if(me33){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+32]>0) me33->Fill((float)nDigisPerChan[i*36+32]);}
00552 me34=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh34");
00553 if(me34){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+33]>0) me34->Fill((float)nDigisPerChan[i*36+33]);}
00554 me35=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh35");
00555 if(me35){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+34]>0) me35->Fill((float)nDigisPerChan[i*36+34]);}
00556 me36=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelCh36");
00557 if(me36){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+35]>0) me36->Fill((float)nDigisPerChan[i*36+35]);}
00558
00559
00560 MonitorElement* meX1;
00561 if(nEventDigis>bigEventSize){
00562 meX1 = theDMBE->get("Pixel/bigEventRate");
00563 if(meX1) meX1->Fill(lumiSection,1./23.);
00564 }
00565
00566
00567
00568 MonitorElement* meX2; MonitorElement* meX3;
00569 if(nActiveModules>=4){
00570 meX2 = theDMBE->get("Pixel/pixEvtsPerBX");
00571 if(meX2) meX2->Fill(float(bx));
00572 meX3 = theDMBE->get("Pixel/pixEventRate");
00573 if(meX3) meX3->Fill(lumiSection, 1./23.);
00574 }
00575
00576
00577 MonitorElement* meX4; MonitorElement* meX5;
00578 meX4 = theDMBE->get("Pixel/averageDigiOccupancy");
00579 meX5 = theDMBE->get("Pixel/avgfedDigiOccvsLumi");
00580 if(meX4){
00581 int maxfed=0;
00582 for(int i=0; i!=32; i++){
00583 if(nDigisPerFed[i]>maxfed) maxfed=nDigisPerFed[i];
00584 }
00585 for(int i=0; i!=40; i++){
00586 float averageOcc = 0.;
00587 if(i<32){
00588 float averageBPIXFed = float(nBPIXDigis-maxfed)/31.;
00589 if(averageBPIXFed>0.) averageOcc = nDigisPerFed[i]/averageBPIXFed;
00590
00591 }else{
00592 float averageFPIXFed = float(nFPIXDigis)/8.;
00593 if(averageFPIXFed>0.) averageOcc = nDigisPerFed[i]/averageFPIXFed;
00594
00595 }
00596 meX4->setBinContent(i+1,averageOcc);
00597 int lumiSections8 = int(lumiSection/8);
00598 if (modOn){
00599 if (meX5){
00600 meX5->setBinContent(1+lumiSections8, i+1, averageOcc);
00601 }
00602 }
00603 }
00604 }
00605
00606
00607 if(slowDown) usleep(10000);
00608
00609 }
00610
00611
00612
00613
00614 void SiPixelDigiSource::buildStructure(const edm::EventSetup& iSetup){
00615
00616 LogInfo ("PixelDQM") <<" SiPixelDigiSource::buildStructure" ;
00617 edm::ESHandle<TrackerGeometry> pDD;
00618 iSetup.get<TrackerDigiGeometryRecord>().get( pDD );
00619
00620 LogVerbatim ("PixelDQM") << " *** Geometry node for TrackerGeom is "<<&(*pDD)<<std::endl;
00621 LogVerbatim ("PixelDQM") << " *** I have " << pDD->dets().size() <<" detectors"<<std::endl;
00622 LogVerbatim ("PixelDQM") << " *** I have " << pDD->detTypes().size() <<" types"<<std::endl;
00623
00624 for(TrackerGeometry::DetContainer::const_iterator it = pDD->dets().begin(); it != pDD->dets().end(); it++){
00625
00626 if(dynamic_cast<PixelGeomDetUnit*>((*it))!=0){
00627
00628 DetId detId = (*it)->geographicalId();
00629 const GeomDetUnit * geoUnit = pDD->idToDetUnit( detId );
00630 const PixelGeomDetUnit * pixDet = dynamic_cast<const PixelGeomDetUnit*>(geoUnit);
00631 int nrows = (pixDet->specificTopology()).nrows();
00632 int ncols = (pixDet->specificTopology()).ncolumns();
00633
00634 if(detId.subdetId() == static_cast<int>(PixelSubdetector::PixelBarrel)) {
00635 if(isPIB) continue;
00636 LogDebug ("PixelDQM") << " ---> Adding Barrel Module " << detId.rawId() << endl;
00637 uint32_t id = detId();
00638 SiPixelDigiModule* theModule = new SiPixelDigiModule(id, ncols, nrows);
00639 thePixelStructure.insert(pair<uint32_t,SiPixelDigiModule*> (id,theModule));
00640
00641 } else if(detId.subdetId() == static_cast<int>(PixelSubdetector::PixelEndcap)) {
00642 LogDebug ("PixelDQM") << " ---> Adding Endcap Module " << detId.rawId() << endl;
00643 uint32_t id = detId();
00644 SiPixelDigiModule* theModule = new SiPixelDigiModule(id, ncols, nrows);
00645
00646 PixelEndcapName::HalfCylinder side = PixelEndcapName(DetId(id)).halfCylinder();
00647 int disk = PixelEndcapName(DetId(id)).diskName();
00648 int blade = PixelEndcapName(DetId(id)).bladeName();
00649 int panel = PixelEndcapName(DetId(id)).pannelName();
00650 int module = PixelEndcapName(DetId(id)).plaquetteName();
00651
00652 char sside[80]; sprintf(sside, "HalfCylinder_%i",side);
00653 char sdisk[80]; sprintf(sdisk, "Disk_%i",disk);
00654 char sblade[80]; sprintf(sblade, "Blade_%02i",blade);
00655 char spanel[80]; sprintf(spanel, "Panel_%i",panel);
00656 char smodule[80];sprintf(smodule,"Module_%i",module);
00657 std::string side_str = sside;
00658 std::string disk_str = sdisk;
00659 bool mask = side_str.find("HalfCylinder_1")!=string::npos||
00660 side_str.find("HalfCylinder_2")!=string::npos||
00661 side_str.find("HalfCylinder_4")!=string::npos||
00662 disk_str.find("Disk_2")!=string::npos;
00663
00664 mask = false;
00665 if(isPIB && mask) continue;
00666
00667 thePixelStructure.insert(pair<uint32_t,SiPixelDigiModule*> (id,theModule));
00668 }
00669
00670 }
00671 }
00672 LogInfo ("PixelDQM") << " *** Pixel Structure Size " << thePixelStructure.size() << endl;
00673 }
00674
00675
00676
00677 void SiPixelDigiSource::bookMEs(){
00678
00679
00680 DQMStore* theDMBE = edm::Service<DQMStore>().operator->();
00681 theDMBE->setCurrentFolder("Pixel");
00682 char title[80]; sprintf(title, "Rate of events with >%i digis;LumiSection;Rate [Hz]",bigEventSize);
00683 bigEventRate = theDMBE->book1D("bigEventRate",title,5000,0.,5000.);
00684 char title1[80]; sprintf(title1, "Pixel events vs. BX;BX;# events");
00685 pixEvtsPerBX = theDMBE->book1D("pixEvtsPerBX",title1,3565,0.,3565.);
00686 char title2[80]; sprintf(title2, "Rate of Pixel events;LumiSection;Rate [Hz]");
00687 pixEventRate = theDMBE->book1D("pixEventRate",title2,5000,0.,5000.);
00688 char title3[80]; sprintf(title3, "Average digi occupancy per FED;FED;NDigis/<NDigis>");
00689 averageDigiOccupancy = theDMBE->book1D("averageDigiOccupancy",title3,40,-0.5,39.5);
00690 averageDigiOccupancy->setLumiFlag();
00691 if(modOn){
00692 char title4[80]; sprintf(title4, "FED Digi Occupancy (NDigis/<NDigis>) vs LumiSections;Lumi Section;FED");
00693 avgfedDigiOccvsLumi = theDMBE->book2D ("avgfedDigiOccvsLumi", title4, 400,0., 3200., 40, -0.5, 39.5);
00694 }
00695 std::map<uint32_t,SiPixelDigiModule*>::iterator struct_iter;
00696
00697 SiPixelFolderOrganizer theSiPixelFolder;
00698
00699 for(struct_iter = thePixelStructure.begin(); struct_iter != thePixelStructure.end(); struct_iter++){
00701 if(modOn){
00702 if(theSiPixelFolder.setModuleFolder((*struct_iter).first)){
00703 (*struct_iter).second->book( conf_,0,twoDimOn,hiRes, reducedSet, twoDimModOn);
00704 } else {
00705
00706 if(!isPIB) throw cms::Exception("LogicError")
00707 << "[SiPixelDigiSource::bookMEs] Creation of DQM folder failed";
00708 }
00709 }
00710 if(ladOn){
00711 if(theSiPixelFolder.setModuleFolder((*struct_iter).first,1)){
00712 (*struct_iter).second->book( conf_,1,twoDimOn,hiRes, reducedSet);
00713 } else {
00714 LogDebug ("PixelDQM") << "PROBLEM WITH LADDER-FOLDER\n";
00715 }
00716
00717 }
00718 if(layOn || twoDimOnlyLayDisk){
00719 if(theSiPixelFolder.setModuleFolder((*struct_iter).first,2)){
00720 (*struct_iter).second->book( conf_,2,twoDimOn,hiRes, reducedSet, twoDimOnlyLayDisk);
00721 } else {
00722 LogDebug ("PixelDQM") << "PROBLEM WITH LAYER-FOLDER\n";
00723 }
00724 }
00725
00726 if(phiOn){
00727 if(theSiPixelFolder.setModuleFolder((*struct_iter).first,3)){
00728 (*struct_iter).second->book( conf_,3,twoDimOn,hiRes, reducedSet);
00729 } else {
00730 LogDebug ("PixelDQM") << "PROBLEM WITH PHI-FOLDER\n";
00731 }
00732 }
00733 if(bladeOn){
00734 if(theSiPixelFolder.setModuleFolder((*struct_iter).first,4)){
00735 (*struct_iter).second->book( conf_,4,twoDimOn,hiRes, reducedSet);
00736 } else {
00737 LogDebug ("PixelDQM") << "PROBLEM WITH BLADE-FOLDER\n";
00738 }
00739 }
00740 if(diskOn || twoDimOnlyLayDisk){
00741 if(theSiPixelFolder.setModuleFolder((*struct_iter).first,5)){
00742 (*struct_iter).second->book( conf_,5,twoDimOn,hiRes, reducedSet, twoDimOnlyLayDisk);
00743 } else {
00744 LogDebug ("PixelDQM") << "PROBLEM WITH DISK-FOLDER\n";
00745 }
00746 }
00747 if(ringOn){
00748 if(theSiPixelFolder.setModuleFolder((*struct_iter).first,6)){
00749 (*struct_iter).second->book( conf_,6,twoDimOn,hiRes, reducedSet);
00750 } else {
00751 LogDebug ("PixelDQM") << "PROBLEM WITH RING-FOLDER\n";
00752 }
00753 }
00754 }
00755 std::string currDir = theDMBE->pwd();
00756 theDMBE->cd("Pixel/Barrel");
00757 meNDigisCOMBBarrel_ = theDMBE->book1D("ALLMODS_ndigisCOMB_Barrel","Number of Digis",200,0.,400.);
00758 meNDigisCOMBBarrel_->setAxisTitle("Number of digis per module per event",1);
00759 meNDigisCHANBarrel_ = theDMBE->book1D("ALLMODS_ndigisCHAN_Barrel","Number of Digis",100,0.,1000.);
00760 meNDigisCHANBarrel_->setAxisTitle("Number of digis per FED channel per event",1);
00761 meNDigisCHANBarrelL1_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelL1","Number of Digis L1",100,0.,1000.);
00762 meNDigisCHANBarrelL1_->setAxisTitle("Number of digis per FED channel per event",1);
00763 meNDigisCHANBarrelL2_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelL2","Number of Digis L2",100,0.,1000.);
00764 meNDigisCHANBarrelL2_->setAxisTitle("Number of digis per FED channel per event",1);
00765 meNDigisCHANBarrelL3_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelL3","Number of Digis L3",100,0.,1000.);
00766 meNDigisCHANBarrelL3_->setAxisTitle("Number of digis per FED channel per event",1);
00767 meNDigisCHANBarrelCh1_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh1","Number of Digis Ch1",100,0.,1000.);
00768 meNDigisCHANBarrelCh1_->setAxisTitle("Number of digis per FED channel per event",1);
00769 meNDigisCHANBarrelCh2_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh2","Number of Digis Ch2",100,0.,1000.);
00770 meNDigisCHANBarrelCh2_->setAxisTitle("Number of digis per FED channel per event",1);
00771 meNDigisCHANBarrelCh3_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh3","Number of Digis Ch3",100,0.,1000.);
00772 meNDigisCHANBarrelCh3_->setAxisTitle("Number of digis per FED channel per event",1);
00773 meNDigisCHANBarrelCh4_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh4","Number of Digis Ch4",100,0.,1000.);
00774 meNDigisCHANBarrelCh4_->setAxisTitle("Number of digis per FED channel per event",1);
00775 meNDigisCHANBarrelCh5_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh5","Number of Digis Ch5",100,0.,1000.);
00776 meNDigisCHANBarrelCh5_->setAxisTitle("Number of digis per FED channel per event",1);
00777 meNDigisCHANBarrelCh6_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh6","Number of Digis Ch6",100,0.,1000.);
00778 meNDigisCHANBarrelCh6_->setAxisTitle("Number of digis per FED channel per event",1);
00779 meNDigisCHANBarrelCh7_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh7","Number of Digis Ch7",100,0.,1000.);
00780 meNDigisCHANBarrelCh7_->setAxisTitle("Number of digis per FED channel per event",1);
00781 meNDigisCHANBarrelCh8_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh8","Number of Digis Ch8",100,0.,1000.);
00782 meNDigisCHANBarrelCh8_->setAxisTitle("Number of digis per FED channel per event",1);
00783 meNDigisCHANBarrelCh9_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh9","Number of Digis Ch9",100,0.,1000.);
00784 meNDigisCHANBarrelCh9_->setAxisTitle("Number of digis per FED channel per event",1);
00785 meNDigisCHANBarrelCh10_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh10","Number of Digis Ch10",100,0.,1000.);
00786 meNDigisCHANBarrelCh10_->setAxisTitle("Number of digis per FED channel per event",1);
00787 meNDigisCHANBarrelCh11_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh11","Number of Digis Ch11",100,0.,1000.);
00788 meNDigisCHANBarrelCh11_->setAxisTitle("Number of digis per FED channel per event",1);
00789 meNDigisCHANBarrelCh12_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh12","Number of Digis Ch12",100,0.,1000.);
00790 meNDigisCHANBarrelCh12_->setAxisTitle("Number of digis per FED channel per event",1);
00791 meNDigisCHANBarrelCh13_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh13","Number of Digis Ch13",100,0.,1000.);
00792 meNDigisCHANBarrelCh13_->setAxisTitle("Number of digis per FED channel per event",1);
00793 meNDigisCHANBarrelCh14_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh14","Number of Digis Ch14",100,0.,1000.);
00794 meNDigisCHANBarrelCh14_->setAxisTitle("Number of digis per FED channel per event",1);
00795 meNDigisCHANBarrelCh15_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh15","Number of Digis Ch15",100,0.,1000.);
00796 meNDigisCHANBarrelCh15_->setAxisTitle("Number of digis per FED channel per event",1);
00797 meNDigisCHANBarrelCh16_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh16","Number of Digis Ch16",100,0.,1000.);
00798 meNDigisCHANBarrelCh16_->setAxisTitle("Number of digis per FED channel per event",1);
00799 meNDigisCHANBarrelCh17_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh17","Number of Digis Ch17",100,0.,1000.);
00800 meNDigisCHANBarrelCh17_->setAxisTitle("Number of digis per FED channel per event",1);
00801 meNDigisCHANBarrelCh18_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh18","Number of Digis Ch18",100,0.,1000.);
00802 meNDigisCHANBarrelCh18_->setAxisTitle("Number of digis per FED channel per event",1);
00803 meNDigisCHANBarrelCh19_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh19","Number of Digis Ch19",100,0.,1000.);
00804 meNDigisCHANBarrelCh19_->setAxisTitle("Number of digis per FED channel per event",1);
00805 meNDigisCHANBarrelCh20_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh20","Number of Digis Ch20",100,0.,1000.);
00806 meNDigisCHANBarrelCh20_->setAxisTitle("Number of digis per FED channel per event",1);
00807 meNDigisCHANBarrelCh21_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh21","Number of Digis Ch21",100,0.,1000.);
00808 meNDigisCHANBarrelCh21_->setAxisTitle("Number of digis per FED channel per event",1);
00809 meNDigisCHANBarrelCh22_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh22","Number of Digis Ch22",100,0.,1000.);
00810 meNDigisCHANBarrelCh22_->setAxisTitle("Number of digis per FED channel per event",1);
00811 meNDigisCHANBarrelCh23_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh23","Number of Digis Ch23",100,0.,1000.);
00812 meNDigisCHANBarrelCh23_->setAxisTitle("Number of digis per FED channel per event",1);
00813 meNDigisCHANBarrelCh24_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh24","Number of Digis Ch24",100,0.,1000.);
00814 meNDigisCHANBarrelCh24_->setAxisTitle("Number of digis per FED channel per event",1);
00815 meNDigisCHANBarrelCh25_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh25","Number of Digis Ch25",100,0.,1000.);
00816 meNDigisCHANBarrelCh25_->setAxisTitle("Number of digis per FED channel per event",1);
00817 meNDigisCHANBarrelCh26_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh26","Number of Digis Ch26",100,0.,1000.);
00818 meNDigisCHANBarrelCh26_->setAxisTitle("Number of digis per FED channel per event",1);
00819 meNDigisCHANBarrelCh27_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh27","Number of Digis Ch27",100,0.,1000.);
00820 meNDigisCHANBarrelCh27_->setAxisTitle("Number of digis per FED channel per event",1);
00821 meNDigisCHANBarrelCh28_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh28","Number of Digis Ch28",100,0.,1000.);
00822 meNDigisCHANBarrelCh28_->setAxisTitle("Number of digis per FED channel per event",1);
00823 meNDigisCHANBarrelCh29_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh29","Number of Digis Ch29",100,0.,1000.);
00824 meNDigisCHANBarrelCh29_->setAxisTitle("Number of digis per FED channel per event",1);
00825 meNDigisCHANBarrelCh30_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh30","Number of Digis Ch30",100,0.,1000.);
00826 meNDigisCHANBarrelCh30_->setAxisTitle("Number of digis per FED channel per event",1);
00827 meNDigisCHANBarrelCh31_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh31","Number of Digis Ch31",100,0.,1000.);
00828 meNDigisCHANBarrelCh31_->setAxisTitle("Number of digis per FED channel per event",1);
00829 meNDigisCHANBarrelCh32_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh32","Number of Digis Ch32",100,0.,1000.);
00830 meNDigisCHANBarrelCh32_->setAxisTitle("Number of digis per FED channel per event",1);
00831 meNDigisCHANBarrelCh33_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh33","Number of Digis Ch33",100,0.,1000.);
00832 meNDigisCHANBarrelCh33_->setAxisTitle("Number of digis per FED channel per event",1);
00833 meNDigisCHANBarrelCh34_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh34","Number of Digis Ch34",100,0.,1000.);
00834 meNDigisCHANBarrelCh34_->setAxisTitle("Number of digis per FED channel per event",1);
00835 meNDigisCHANBarrelCh35_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh35","Number of Digis Ch35",100,0.,1000.);
00836 meNDigisCHANBarrelCh35_->setAxisTitle("Number of digis per FED channel per event",1);
00837 meNDigisCHANBarrelCh36_ = theDMBE->book1D("ALLMODS_ndigisCHAN_BarrelCh36","Number of Digis Ch36",100,0.,1000.);
00838 meNDigisCHANBarrelCh36_->setAxisTitle("Number of digis per FED channel per event",1);
00839 theDMBE->cd("Pixel/Endcap");
00840 meNDigisCOMBEndcap_ = theDMBE->book1D("ALLMODS_ndigisCOMB_Endcap","Number of Digis",200,0.,400.);
00841 meNDigisCOMBEndcap_->setAxisTitle("Number of digis per module per event",1);
00842 meNDigisCHANEndcap_ = theDMBE->book1D("ALLMODS_ndigisCHAN_Endcap","Number of Digis",100,0.,1000.);
00843 meNDigisCHANEndcap_->setAxisTitle("Number of digis per FED channel per event",1);
00844 meNDigisCHANEndcapDp1_ = theDMBE->book1D("ALLMODS_ndigisCHAN_EndcapDp1","Number of Digis Disk p1",100,0.,1000.);
00845 meNDigisCHANEndcapDp1_->setAxisTitle("Number of digis per FED channel per event",1);
00846 meNDigisCHANEndcapDp2_ = theDMBE->book1D("ALLMODS_ndigisCHAN_EndcapDp2","Number of Digis Disk p2",100,0.,1000.);
00847 meNDigisCHANEndcapDp2_->setAxisTitle("Number of digis per FED channel per event",1);
00848 meNDigisCHANEndcapDm1_ = theDMBE->book1D("ALLMODS_ndigisCHAN_EndcapDm1","Number of Digis Disk m1",100,0.,1000.);
00849 meNDigisCHANEndcapDm1_->setAxisTitle("Number of digis per FED channel per event",1);
00850 meNDigisCHANEndcapDm2_ = theDMBE->book1D("ALLMODS_ndigisCHAN_EndcapDm2","Number of Digis Disk m2",100,0.,1000.);
00851 meNDigisCHANEndcapDm2_->setAxisTitle("Number of digis per FED channel per event",1);
00852 theDMBE->cd(currDir);
00853 }
00854
00855
00856 DEFINE_FWK_MODULE(SiPixelDigiSource);