00001 #include "DQM/SiPixelMonitorDigi/interface/SiPixelDigiModule.h"
00002 #include "DQMServices/Core/interface/DQMStore.h"
00003 #include "DQM/SiPixelCommon/interface/SiPixelHistogramId.h"
00005 #include "FWCore/ServiceRegistry/interface/Service.h"
00006
00007 #include <vector>
00008 #include <memory>
00009 #include <string>
00010 #include <iostream>
00011 #include <stdlib.h>
00012 #include <sstream>
00013 #include <cstdio>
00014
00015
00016 #include "DataFormats/SiPixelDetId/interface/PixelBarrelName.h"
00017 #include "DataFormats/SiPixelDetId/interface/PixelBarrelNameUpgrade.h"
00018 #include "DataFormats/SiPixelDetId/interface/PixelEndcapName.h"
00019 #include "DataFormats/SiPixelDetId/interface/PixelEndcapNameUpgrade.h"
00020 #include "DataFormats/DetId/interface/DetId.h"
00021 #include "DataFormats/SiPixelDetId/interface/PixelSubdetector.h"
00022
00023
00024
00025
00026 SiPixelDigiModule::SiPixelDigiModule() : id_(0),
00027 ncols_(416),
00028 nrows_(160)
00029 {
00030 }
00032 SiPixelDigiModule::SiPixelDigiModule(const uint32_t& id) :
00033 id_(id),
00034 ncols_(416),
00035 nrows_(160)
00036 {
00037 }
00039 SiPixelDigiModule::SiPixelDigiModule(const uint32_t& id, const int& ncols, const int& nrows) :
00040 id_(id),
00041 ncols_(ncols),
00042 nrows_(nrows)
00043 {
00044 }
00045
00046
00047
00048 SiPixelDigiModule::~SiPixelDigiModule() {}
00049
00050
00051
00052 void SiPixelDigiModule::book(const edm::ParameterSet& iConfig, int type, bool twoD, bool hiRes, bool reducedSet, bool additInfo, bool isUpgrade) {
00053 bool barrel = DetId(id_).subdetId() == static_cast<int>(PixelSubdetector::PixelBarrel);
00054 bool endcap = DetId(id_).subdetId() == static_cast<int>(PixelSubdetector::PixelEndcap);
00055 bool isHalfModule = false;
00056 if(barrel){
00057 if (!isUpgrade) {
00058 isHalfModule = PixelBarrelName(DetId(id_)).isHalfModule();
00059 } else if (isUpgrade) {
00060 isHalfModule = PixelBarrelNameUpgrade(DetId(id_)).isHalfModule();
00061 }
00062 }
00063
00064 std::string hid;
00065
00066 edm::InputTag src = iConfig.getParameter<edm::InputTag>( "src" );
00067
00068
00069
00070 DQMStore* theDMBE = edm::Service<DQMStore>().operator->();
00071
00072 int nbinx=ncols_/2, nbiny=nrows_/2;
00073 std::string twodtitle = "Number of Digis (1bin=four pixels)";
00074 std::string pxtitle = "Number of Digis (1bin=two columns)";
00075 std::string pytitle = "Number of Digis (1bin=two rows)";
00076 std::string twodroctitle = "ROC Occupancy (1bin=one ROC)";
00077 std::string twodzeroOccroctitle = "Zero Occupancy ROC Map (1bin=one ROC) for ";
00078 if(hiRes){
00079 nbinx = ncols_;
00080 nbiny = nrows_;
00081 twodtitle = "Number of Digis (1bin=one pixel)";
00082 pxtitle = "Number of Digis (1bin=one column)";
00083 pytitle = "Number of Digis (1bin=one row)";
00084 }
00085 if(type==0){
00086 SiPixelHistogramId* theHistogramId = new SiPixelHistogramId( src.label() );
00087
00088 hid = theHistogramId->setHistoId("ndigis",id_);
00089 meNDigis_ = theDMBE->book1D(hid,"Number of Digis",25,0.,25.);
00090 meNDigis_->setAxisTitle("Number of digis",1);
00091
00092 hid = theHistogramId->setHistoId("adc",id_);
00093 meADC_ = theDMBE->book1D(hid,"Digi charge",128,0.,256.);
00094 meADC_->setAxisTitle("ADC counts",1);
00095 if(!reducedSet)
00096 {
00097 if(twoD){
00098 if(additInfo){
00099
00100 hid = theHistogramId->setHistoId("hitmap",id_);
00101 mePixDigis_ = theDMBE->book2D(hid,twodtitle,nbinx,0.,float(ncols_),nbiny,0.,float(nrows_));
00102 mePixDigis_->setAxisTitle("Columns",1);
00103 mePixDigis_->setAxisTitle("Rows",2);
00104
00105 }
00106 }
00107 else{
00108
00109 hid = theHistogramId->setHistoId("hitmap",id_);
00110 mePixDigis_px_ = theDMBE->book1D(hid+"_px",pxtitle,nbinx,0.,float(ncols_));
00111 mePixDigis_py_ = theDMBE->book1D(hid+"_py",pytitle,nbiny,0.,float(nrows_));
00112 mePixDigis_px_->setAxisTitle("Columns",1);
00113 mePixDigis_py_->setAxisTitle("Rows",1);
00114 }
00115 }
00116 delete theHistogramId;
00117
00118 }
00119
00120 if(type==1 && barrel){
00121 uint32_t DBladder;
00122 if (!isUpgrade) { DBladder = PixelBarrelName(DetId(id_)).ladderName();}
00123 else if (isUpgrade) { DBladder = PixelBarrelNameUpgrade(DetId(id_)).ladderName();}
00124 char sladder[80]; sprintf(sladder,"Ladder_%02i",DBladder);
00125 hid = src.label() + "_" + sladder;
00126 if(isHalfModule) hid += "H";
00127 else hid += "F";
00128
00129 meNDigisLad_ = theDMBE->book1D("ndigis_"+hid,"Number of Digis",25,0.,25.);
00130 meNDigisLad_->setAxisTitle("Number of digis",1);
00131
00132 meADCLad_ = theDMBE->book1D("adc_" + hid,"Digi charge",128,0.,256.);
00133 meADCLad_->setAxisTitle("ADC counts",1);
00134 if(!reducedSet)
00135 {
00136 if(twoD){
00137
00138 mePixDigisLad_ = theDMBE->book2D("hitmap_"+hid,twodtitle,nbinx,0.,float(ncols_),nbiny,0.,float(nrows_));
00139 mePixDigisLad_->setAxisTitle("Columns",1);
00140 mePixDigisLad_->setAxisTitle("Rows",2);
00141
00142 }
00143 else{
00144
00145 mePixDigisLad_px_ = theDMBE->book1D("hitmap_"+hid+"_px",pxtitle,nbinx,0.,float(ncols_));
00146 mePixDigisLad_py_ = theDMBE->book1D("hitmap_"+hid+"_py",pytitle,nbiny,0.,float(nrows_));
00147 mePixDigisLad_px_->setAxisTitle("Columns",1);
00148 mePixDigisLad_py_->setAxisTitle("Rows",1);
00149 }
00150 }
00151 }
00152 if(type==2 && barrel){
00153 uint32_t DBlayer;
00154 if (!isUpgrade) { DBlayer = PixelBarrelName(DetId(id_)).layerName(); }
00155 else if (isUpgrade) { DBlayer = PixelBarrelNameUpgrade(DetId(id_)).layerName(); }
00156 char slayer[80]; sprintf(slayer,"Layer_%i",DBlayer);
00157 hid = src.label() + "_" + slayer;
00158 if(!additInfo){
00159
00160 meNDigisLay_ = theDMBE->book1D("ndigis_"+hid,"Number of Digis",25,0.,25.);
00161 meNDigisLay_->setAxisTitle("Number of digis",1);
00162
00163 meADCLay_ = theDMBE->book1D("adc_" + hid,"Digi charge",128,0.,256.);
00164 meADCLay_->setAxisTitle("ADC counts",1);
00165 }
00166 if(!reducedSet){
00167 if(twoD || additInfo){
00168
00169 if(isHalfModule){
00170 mePixDigisLay_ = theDMBE->book2D("hitmap_"+hid,twodtitle,nbinx,0.,float(ncols_),2*nbiny,0.,float(2*nrows_));
00171 }
00172 else{
00173 mePixDigisLay_ = theDMBE->book2D("hitmap_"+hid,twodtitle,nbinx,0.,float(ncols_),nbiny,0.,float(nrows_));
00174
00175 }
00176 mePixDigisLay_->setAxisTitle("Columns",1);
00177 mePixDigisLay_->setAxisTitle("Rows",2);
00178
00179
00180 int yROCbins[3] = {18,30,42};
00181 mePixRocsLay_ = theDMBE->book2D("rocmap_"+hid,twodroctitle,32,0.,32.,yROCbins[DBlayer-1],1.5,1.5+float(yROCbins[DBlayer-1]/2));
00182 mePixRocsLay_->setAxisTitle("ROCs per Module",1);
00183 mePixRocsLay_->setAxisTitle("ROCs per 1/2 Ladder",2);
00184 meZeroOccRocsLay_ = theDMBE->book2D("zeroOccROC_map",twodzeroOccroctitle+hid,32,0.,32.,yROCbins[DBlayer-1],1.5,1.5+float(yROCbins[DBlayer-1]/2));
00185 meZeroOccRocsLay_->setAxisTitle("ROCs per Module",1);
00186 meZeroOccRocsLay_->setAxisTitle("ROCs per 1/2 Ladder",2);
00187 }
00188 if(!twoD && !additInfo){
00189
00190 mePixDigisLay_px_ = theDMBE->book1D("hitmap_"+hid+"_px",pxtitle,nbinx,0.,float(ncols_));
00191 if(isHalfModule){
00192 mePixDigisLay_py_ = theDMBE->book1D("hitmap_"+hid+"_py",pytitle,2*nbiny,0.,float(2*nrows_));
00193 }
00194 else{
00195 mePixDigisLay_py_ = theDMBE->book1D("hitmap_"+hid+"_py",pytitle,nbiny,0.,float(nrows_));
00196 }
00197 mePixDigisLay_px_->setAxisTitle("Columns",1);
00198 mePixDigisLay_py_->setAxisTitle("Rows",1);
00199 }
00200 }
00201 }
00202 if(type==3 && barrel){
00203 uint32_t DBmodule;
00204 if (!isUpgrade) { DBmodule = PixelBarrelName(DetId(id_)).moduleName(); }
00205 else if (isUpgrade) { DBmodule = PixelBarrelNameUpgrade(DetId(id_)).moduleName(); }
00206 char smodule[80]; sprintf(smodule,"Ring_%i",DBmodule);
00207 hid = src.label() + "_" + smodule;
00208
00209 meNDigisPhi_ = theDMBE->book1D("ndigis_"+hid,"Number of Digis",25,0.,25.);
00210 meNDigisPhi_->setAxisTitle("Number of digis",1);
00211
00212 meADCPhi_ = theDMBE->book1D("adc_" + hid,"Digi charge",128,0.,256.);
00213 meADCPhi_->setAxisTitle("ADC counts",1);
00214 if(!reducedSet)
00215 {
00216 if(twoD){
00217
00218
00219 if(isHalfModule){
00220 mePixDigisPhi_ = theDMBE->book2D("hitmap_"+hid,twodtitle,nbinx,0.,float(ncols_),2*nbiny,0.,float(2*nrows_));
00221 }
00222 else {
00223 mePixDigisPhi_ = theDMBE->book2D("hitmap_"+hid,twodtitle,nbinx,0.,float(ncols_),nbiny,0.,float(nrows_));
00224 }
00225 mePixDigisPhi_->setAxisTitle("Columns",1);
00226 mePixDigisPhi_->setAxisTitle("Rows",2);
00227
00228 }
00229 else{
00230
00231 mePixDigisPhi_px_ = theDMBE->book1D("hitmap_"+hid+"_px",pxtitle,nbinx,0.,float(ncols_));
00232 if(isHalfModule){
00233 mePixDigisPhi_py_ = theDMBE->book1D("hitmap_"+hid+"_py",pytitle,2*nbiny,0.,float(2*nrows_));
00234 }
00235 else{
00236 mePixDigisPhi_py_ = theDMBE->book1D("hitmap_"+hid+"_py",pytitle,nbiny,0.,float(nrows_));
00237 }
00238 mePixDigisPhi_px_->setAxisTitle("Columns",1);
00239 mePixDigisPhi_py_->setAxisTitle("Rows",1);
00240 }
00241 }
00242 }
00243 if(type==4 && endcap){
00244 uint32_t blade;
00245 if (!isUpgrade) { blade= PixelEndcapName(DetId(id_)).bladeName(); }
00246 else if (isUpgrade) { blade= PixelEndcapNameUpgrade(DetId(id_)).bladeName(); }
00247
00248 char sblade[80]; sprintf(sblade, "Blade_%02i",blade);
00249 hid = src.label() + "_" + sblade;
00250
00251 meNDigisBlade_ = theDMBE->book1D("ndigis_"+hid,"Number of Digis",25,0.,25.);
00252 meNDigisBlade_->setAxisTitle("Number of digis",1);
00253
00254 meADCBlade_ = theDMBE->book1D("adc_" + hid,"Digi charge",128,0.,256.);
00255 meADCBlade_->setAxisTitle("ADC counts",1);
00256 }
00257 if(type==5 && endcap){
00258 uint32_t disk;
00259 if (!isUpgrade) { disk = PixelEndcapName(DetId(id_)).diskName(); }
00260 else if (isUpgrade) { disk = PixelEndcapNameUpgrade(DetId(id_)).diskName(); }
00261
00262 char sdisk[80]; sprintf(sdisk, "Disk_%i",disk);
00263 hid = src.label() + "_" + sdisk;
00264 if(!additInfo){
00265
00266 meNDigisDisk_ = theDMBE->book1D("ndigis_"+hid,"Number of Digis",25,0.,25.);
00267 meNDigisDisk_->setAxisTitle("Number of digis",1);
00268
00269 meADCDisk_ = theDMBE->book1D("adc_" + hid,"Digi charge",128,0.,256.);
00270 meADCDisk_->setAxisTitle("ADC counts",1);
00271 }
00272 if(additInfo){
00273 mePixDigisDisk_ = theDMBE->book2D("hitmap_"+hid,twodtitle,260,0.,260.,160,0.,160.);
00274 mePixDigisDisk_->setAxisTitle("Columns",1);
00275 mePixDigisDisk_->setAxisTitle("Rows",2);
00276
00277 mePixRocsDisk_ = theDMBE->book2D("rocmap_"+hid,twodroctitle,26,0.,26.,24,1.,13.);
00278 mePixRocsDisk_ ->setAxisTitle("ROCs per Module (2 Panels)",1);
00279 mePixRocsDisk_ ->setAxisTitle("Blade Number",2);
00280 meZeroOccRocsDisk_ = theDMBE->book2D("zeroOccROC_map",twodzeroOccroctitle+hid,26,0.,26.,24,1.,13.);
00281 meZeroOccRocsDisk_ ->setAxisTitle("Zero-Occupancy ROCs per Module (2 Panels)",1);
00282 meZeroOccRocsDisk_ ->setAxisTitle("Blade Number",2);
00283 }
00284 }
00285 if(type==6 && endcap){
00286 uint32_t panel;
00287 uint32_t module;
00288 if (!isUpgrade) {
00289 panel= PixelEndcapName(DetId(id_)).pannelName();
00290 module= PixelEndcapName(DetId(id_)).plaquetteName();
00291 } else if (isUpgrade) {
00292 panel= PixelEndcapNameUpgrade(DetId(id_)).pannelName();
00293 module= PixelEndcapNameUpgrade(DetId(id_)).plaquetteName();
00294 }
00295
00296 char slab[80]; sprintf(slab, "Panel_%i_Ring_%i",panel, module);
00297 hid = src.label() + "_" + slab;
00298
00299 meNDigisRing_ = theDMBE->book1D("ndigis_"+hid,"Number of Digis",25,0.,25.);
00300 meNDigisRing_->setAxisTitle("Number of digis",1);
00301
00302 meADCRing_ = theDMBE->book1D("adc_" + hid,"Digi charge",128,0.,256.);
00303 meADCRing_->setAxisTitle("ADC counts",1);
00304 if(!reducedSet)
00305 {
00306 if(twoD){
00307
00308 mePixDigisRing_ = theDMBE->book2D("hitmap_"+hid,twodtitle,nbinx,0.,float(ncols_),nbiny,0.,float(nrows_));
00309 mePixDigisRing_->setAxisTitle("Columns",1);
00310 mePixDigisRing_->setAxisTitle("Rows",2);
00311
00312 }
00313 else{
00314
00315 mePixDigisRing_px_ = theDMBE->book1D("hitmap_"+hid+"_px",pxtitle,nbinx,0.,float(ncols_));
00316 mePixDigisRing_py_ = theDMBE->book1D("hitmap_"+hid+"_py",pytitle,nbiny,0.,float(nrows_));
00317 mePixDigisRing_px_->setAxisTitle("Columns",1);
00318 mePixDigisRing_py_->setAxisTitle("Rows",1);
00319 }
00320 }
00321 }
00322 }
00323
00324
00325
00326
00327
00328 int SiPixelDigiModule::fill(const edm::DetSetVector<PixelDigi>& input, bool modon,
00329 bool ladon, bool layon, bool phion,
00330 bool bladeon, bool diskon, bool ringon,
00331 bool twoD, bool reducedSet, bool twoDimModOn, bool twoDimOnlyLayDisk,
00332 int &nDigisA, int &nDigisB, bool isUpgrade) {
00333 bool barrel = DetId(id_).subdetId() == static_cast<int>(PixelSubdetector::PixelBarrel);
00334 bool endcap = DetId(id_).subdetId() == static_cast<int>(PixelSubdetector::PixelEndcap);
00335 bool isHalfModule = false;
00336 uint32_t DBladder = 0;
00337 if(barrel && !isUpgrade){
00338 isHalfModule = PixelBarrelName(DetId(id_)).isHalfModule();
00339 DBladder = PixelBarrelName(DetId(id_)).ladderName();
00340 } else if (barrel && isUpgrade) {
00341 isHalfModule = PixelBarrelNameUpgrade(DetId(id_)).isHalfModule();
00342 DBladder = PixelBarrelNameUpgrade(DetId(id_)).ladderName();
00343 }
00344
00345
00346 DQMStore* theDMBE = edm::Service<DQMStore>().operator->();
00347
00348
00349 edm::DetSetVector<PixelDigi>::const_iterator isearch = input.find(id_);
00350
00351 unsigned int numberOfDigisMod = 0;
00352 int msize;
00353 if (isUpgrade) {msize=10;} else {msize=8;}
00354 int numberOfDigis[msize]; for(int i=0; i!=msize; i++) numberOfDigis[i]=0;
00355 nDigisA=0; nDigisB=0;
00356 if( isearch != input.end() ) {
00357
00358
00359 edm::DetSet<PixelDigi>::const_iterator di;
00360 for(di = isearch->data.begin(); di != isearch->data.end(); di++) {
00361 int adc = di->adc();
00362 int col = di->column();
00363 int row = di->row();
00364 numberOfDigisMod++;
00365
00366 int DBlayer = 0;
00367 int DBmodule =0;
00368
00369 if (!isUpgrade) {
00370 PixelBarrelName::Shell DBshell = PixelBarrelName(DetId(id_)).shell();
00371 DBlayer = PixelBarrelName(DetId(id_)).layerName();
00372 DBmodule = PixelBarrelName(DetId(id_)).moduleName();
00373 if(barrel){
00374 if(isHalfModule){
00375 if(DBshell==PixelBarrelName::pI||DBshell==PixelBarrelName::pO){
00376 numberOfDigis[0]++; nDigisA++;
00377 if(DBlayer==1) numberOfDigis[2]++;
00378 if(DBlayer==2) numberOfDigis[3]++;
00379 if(DBlayer==3) numberOfDigis[4]++;
00380 }
00381 if(DBshell==PixelBarrelName::mI||DBshell==PixelBarrelName::mO){
00382 numberOfDigis[1]++; nDigisB++;
00383 if(DBlayer==1) numberOfDigis[5]++;
00384 if(DBlayer==2) numberOfDigis[6]++;
00385 if(DBlayer==3) numberOfDigis[7]++;
00386 }
00387 }else{
00388 if(row<80){
00389 numberOfDigis[0]++; nDigisA++;
00390 if(DBlayer==1) numberOfDigis[2]++;
00391 if(DBlayer==2) numberOfDigis[3]++;
00392 if(DBlayer==3) numberOfDigis[4]++;
00393 }else{
00394 numberOfDigis[1]++; nDigisB++;
00395 if(DBlayer==1) numberOfDigis[5]++;
00396 if(DBlayer==2) numberOfDigis[6]++;
00397 if(DBlayer==3) numberOfDigis[7]++;
00398 }
00399 }
00400 }
00401 } else if (isUpgrade) {
00402
00403 DBlayer = PixelBarrelNameUpgrade(DetId(id_)).layerName();
00404 DBmodule = PixelBarrelNameUpgrade(DetId(id_)).moduleName();
00405 if(barrel){
00406 if(row<80){
00407 numberOfDigis[0]++; nDigisA++;
00408 if(DBlayer==1) numberOfDigis[2]++;
00409 if(DBlayer==2) numberOfDigis[3]++;
00410 if(DBlayer==3) numberOfDigis[4]++;
00411 if(DBlayer==4) numberOfDigis[5]++;
00412 }else{
00413 numberOfDigis[1]++; nDigisB++;
00414 if(DBlayer==1) numberOfDigis[6]++;
00415 if(DBlayer==2) numberOfDigis[7]++;
00416 if(DBlayer==3) numberOfDigis[8]++;
00417 if(DBlayer==4) numberOfDigis[9]++;
00418 }
00419 }
00420 }
00421
00422 if(modon){
00423 if(!reducedSet){
00424 if(twoD) {
00425 if(twoDimModOn) (mePixDigis_)->Fill((float)col,(float)row);
00426
00427
00428 }
00429 else {
00430 (mePixDigis_px_)->Fill((float)col);
00431 (mePixDigis_py_)->Fill((float)row);
00432 }
00433 }
00434 (meADC_)->Fill((float)adc);
00435 }
00436 if(ladon && barrel){
00437 (meADCLad_)->Fill((float)adc);
00438 if(!reducedSet){
00439 if(twoD) (mePixDigisLad_)->Fill((float)col,(float)row);
00440 else {
00441 (mePixDigisLad_px_)->Fill((float)col);
00442 (mePixDigisLad_py_)->Fill((float)row);
00443 }
00444 }
00445 }
00446 if((layon || twoDimOnlyLayDisk) && barrel){
00447 if(!twoDimOnlyLayDisk) (meADCLay_)->Fill((float)adc);
00448 if(!reducedSet){
00449 if((layon && twoD) || twoDimOnlyLayDisk){
00450
00451 float rocx = (float)col/52. + 8.0*float(DBmodule-1);
00452 float rocy = (float)row/160.+float(DBladder);
00453
00454 if(DBladder==1) rocy = rocy + 0.5;
00455 mePixRocsLay_->Fill(rocx,rocy);
00456
00457
00458
00459
00460 if(isHalfModule && DBladder==1){
00461 (mePixDigisLay_)->Fill((float)col,(float)row+80);
00462 }
00463 else (mePixDigisLay_)->Fill((float)col,(float)row);
00464 }
00465 if((layon && !twoD) && !twoDimOnlyLayDisk){
00466 (mePixDigisLay_px_)->Fill((float)col);
00467 if(isHalfModule && DBladder==1) {
00468 (mePixDigisLay_py_)->Fill((float)row+80);
00469 }
00470 else (mePixDigisLay_py_)->Fill((float)row);
00471 }
00472 }
00473 }
00474 if(phion && barrel){
00475 (meADCPhi_)->Fill((float)adc);
00476 if(!reducedSet)
00477 {
00478 if(twoD){
00479 if(isHalfModule && DBladder==1){
00480 (mePixDigisPhi_)->Fill((float)col,(float)row+80);
00481 }
00482 else (mePixDigisPhi_)->Fill((float)col,(float)row);
00483 }
00484 else {
00485 (mePixDigisPhi_px_)->Fill((float)col);
00486 if(isHalfModule && DBladder==1) {
00487 (mePixDigisPhi_py_)->Fill((float)row+80);
00488 }
00489 else (mePixDigisPhi_py_)->Fill((float)row);
00490 }
00491 }
00492 }
00493 if(bladeon && endcap){
00494 (meADCBlade_)->Fill((float)adc);
00495 }
00496
00497 if((diskon || twoDimOnlyLayDisk) && endcap){
00498 if(!twoDimOnlyLayDisk) (meADCDisk_)->Fill((float)adc);
00499 if(twoDimOnlyLayDisk){
00500 (mePixDigisDisk_)->Fill((float)col,(float)row);
00501
00502 int DBpanel;
00503 int DBblade;
00504 if (!isUpgrade) {
00505 DBpanel= PixelEndcapName(DetId(id_)).pannelName();
00506 DBblade= PixelEndcapName(DetId(id_)).bladeName();
00507 } else if (isUpgrade) {
00508 DBpanel= PixelEndcapNameUpgrade(DetId(id_)).pannelName();
00509 DBblade= PixelEndcapNameUpgrade(DetId(id_)).bladeName();
00510 }
00511 float offx = 0.;
00512
00513 for (int i = DBpanel; i < DBmodule; ++i) {offx = offx + float(5+DBpanel-i);}
00514 float rocx = (float)col/52. + offx + 14.0*float(DBpanel-1);
00515 float rocy = (float)row/160.+float(DBblade);
00516 mePixRocsDisk_->Fill(rocx,rocy);
00517
00518
00519
00520
00521
00522 }
00523 }
00524 if(ringon && endcap){
00525 (meADCRing_)->Fill((float)adc);
00526 if(!reducedSet)
00527 {
00528 if(twoD) (mePixDigisRing_)->Fill((float)col,(float)row);
00529 else {
00530 (mePixDigisRing_px_)->Fill((float)col);
00531 (mePixDigisRing_py_)->Fill((float)row);
00532 }
00533 }
00534 }
00535 }
00536 if(modon) (meNDigis_)->Fill((float)numberOfDigisMod);
00537 if(ladon && barrel) (meNDigisLad_)->Fill((float)numberOfDigisMod);
00538 if(layon && barrel && !twoDimOnlyLayDisk) (meNDigisLay_)->Fill((float)numberOfDigisMod);
00539 if(phion && barrel) (meNDigisPhi_)->Fill((float)numberOfDigisMod);
00540 if(bladeon && endcap) (meNDigisBlade_)->Fill((float)numberOfDigisMod);
00541 if(diskon && endcap && !twoDimOnlyLayDisk) (meNDigisDisk_)->Fill((float)numberOfDigisMod);
00542 if(ringon && endcap) (meNDigisRing_)->Fill((float)numberOfDigisMod);
00543 if(barrel){
00544 MonitorElement* me=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCOMB_Barrel");
00545 if(me) me->Fill((float)numberOfDigisMod);
00546 me=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_Barrel");
00547 if(me){ if(numberOfDigis[0]>0) me->Fill((float)numberOfDigis[0]); if(numberOfDigis[1]>0) me->Fill((float)numberOfDigis[1]); }
00548 me=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelL1");
00549 if(me){ if(numberOfDigis[2]>0) me->Fill((float)numberOfDigis[2]); }
00550 me=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelL2");
00551 if(me){ if(numberOfDigis[3]>0) me->Fill((float)numberOfDigis[3]); }
00552 me=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelL3");
00553 if(me){ if(numberOfDigis[4]>0) me->Fill((float)numberOfDigis[4]); }
00554 me=theDMBE->get("Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelL4");
00555 if(me){ if(numberOfDigis[5]>0) me->Fill((float)numberOfDigis[5]); }
00556 }else if(endcap){
00557 MonitorElement* me=theDMBE->get("Pixel/Endcap/ALLMODS_ndigisCOMB_Endcap");
00558 if(me) me->Fill((float)numberOfDigisMod);
00559 }
00560 }
00561
00562
00563 return numberOfDigisMod;
00564 }