58 bool isHalfModule =
false;
62 }
else if (isUpgrade) {
76 std::string twodtitle =
"Number of Digis (1bin=four pixels)";
77 std::string pxtitle =
"Number of Digis (1bin=two columns)";
78 std::string pytitle =
"Number of Digis (1bin=two rows)";
79 std::string twodroctitle =
"ROC Occupancy (1bin=one ROC)";
80 std::string twodzeroOccroctitle =
"Zero Occupancy ROC Map (1bin=one ROC) for ";
84 twodtitle =
"Number of Digis (1bin=one pixel)";
85 pxtitle =
"Number of Digis (1bin=one column)";
86 pytitle =
"Number of Digis (1bin=one row)";
92 meNDigis_ = theDMBE->book1D(hid,
"Number of Digis",25,0.,25.);
96 meADC_ = theDMBE->book1D(hid,
"Digi charge",128,0.,256.);
119 delete theHistogramId;
123 if(type==1 && barrel){
127 char sladder[80]; sprintf(sladder,
"Ladder_%02i",DBladder);
128 hid = src.
label() +
"_" + sladder;
129 if(isHalfModule) hid +=
"H";
132 meNDigisLad_ = theDMBE->book1D(
"ndigis_"+hid,
"Number of Digis",25,0.,25.);
135 meADCLad_ = theDMBE->book1D(
"adc_" + hid,
"Digi charge",128,0.,256.);
155 if(type==2 && barrel){
159 char slayer[80]; sprintf(slayer,
"Layer_%i",DBlayer);
160 hid = src.
label() +
"_" + slayer;
163 meNDigisLay_ = theDMBE->book1D(
"ndigis_"+hid,
"Number of Digis",25,0.,25.);
166 meADCLay_ = theDMBE->book1D(
"adc_" + hid,
"Digi charge",128,0.,256.);
170 if(twoD || additInfo){
183 int yROCbins[3] = {18,30,42};
184 mePixRocsLay_ = theDMBE->book2D(
"rocmap_"+hid,twodroctitle,32,0.,32.,yROCbins[DBlayer-1],1.5,1.5+
float(yROCbins[DBlayer-1]/2));
187 meZeroOccRocsLay_ = theDMBE->book2D(
"zeroOccROC_map",twodzeroOccroctitle+hid,32,0.,32.,yROCbins[DBlayer-1],1.5,1.5+
float(yROCbins[DBlayer-1]/2));
191 if(!twoD && !additInfo){
205 if(type==3 && barrel){
209 char smodule[80]; sprintf(smodule,
"Ring_%i",DBmodule);
210 hid = src.
label() +
"_" + smodule;
212 meNDigisPhi_ = theDMBE->book1D(
"ndigis_"+hid,
"Number of Digis",25,0.,25.);
215 meADCPhi_ = theDMBE->book1D(
"adc_" + hid,
"Digi charge",128,0.,256.);
246 if(type==4 && endcap){
251 char sblade[80]; sprintf(sblade,
"Blade_%02i",blade);
252 hid = src.
label() +
"_" + sblade;
254 meNDigisBlade_ = theDMBE->book1D(
"ndigis_"+hid,
"Number of Digis",25,0.,25.);
257 meADCBlade_ = theDMBE->book1D(
"adc_" + hid,
"Digi charge",128,0.,256.);
260 if(type==5 && endcap){
265 char sdisk[80]; sprintf(sdisk,
"Disk_%i",disk);
266 hid = src.
label() +
"_" + sdisk;
269 meNDigisDisk_ = theDMBE->book1D(
"ndigis_"+hid,
"Number of Digis",25,0.,25.);
272 meADCDisk_ = theDMBE->book1D(
"adc_" + hid,
"Digi charge",128,0.,256.);
276 mePixDigisDisk_ = theDMBE->book2D(
"hitmap_"+hid,twodtitle,260,0.,260.,160,0.,160.);
280 mePixRocsDisk_ = theDMBE->book2D(
"rocmap_"+hid,twodroctitle,26,0.,26.,24,1.,13.);
283 meZeroOccRocsDisk_ = theDMBE->book2D(
"zeroOccROC_map",twodzeroOccroctitle+hid,26,0.,26.,24,1.,13.);
288 if(type==6 && endcap){
299 char slab[80]; sprintf(slab,
"Panel_%i_Ring_%i",panel, module);
300 hid = src.
label() +
"_" + slab;
302 meNDigisRing_ = theDMBE->book1D(
"ndigis_"+hid,
"Number of Digis",25,0.,25.);
305 meADCRing_ = theDMBE->book1D(
"adc_" + hid,
"Digi charge",128,0.,256.);
332 bool ladon,
bool layon,
bool phion,
333 bool bladeon,
bool diskon,
bool ringon,
334 bool twoD,
bool reducedSet,
bool twoDimModOn,
bool twoDimOnlyLayDisk,
335 int &nDigisA,
int &nDigisB,
bool isUpgrade) {
338 bool isHalfModule =
false;
339 uint32_t DBladder = 0;
340 if(barrel && !isUpgrade){
343 }
else if (barrel && isUpgrade) {
354 unsigned int numberOfDigisMod = 0;
356 if (isUpgrade) {msize=10;}
else {msize=8;}
357 int numberOfDigis[msize];
for(
int i=0;
i!=msize;
i++) numberOfDigis[
i]=0;
358 nDigisA=0; nDigisB=0;
359 if( isearch != input.
end() ) {
363 for(di = isearch->data.
begin(); di != isearch->data.
end(); di++) {
365 int col = di->column();
379 numberOfDigis[0]++; nDigisA++;
380 if(DBlayer==1) numberOfDigis[2]++;
381 if(DBlayer==2) numberOfDigis[3]++;
382 if(DBlayer==3) numberOfDigis[4]++;
385 numberOfDigis[1]++; nDigisB++;
386 if(DBlayer==1) numberOfDigis[5]++;
387 if(DBlayer==2) numberOfDigis[6]++;
388 if(DBlayer==3) numberOfDigis[7]++;
392 numberOfDigis[0]++; nDigisA++;
393 if(DBlayer==1) numberOfDigis[2]++;
394 if(DBlayer==2) numberOfDigis[3]++;
395 if(DBlayer==3) numberOfDigis[4]++;
397 numberOfDigis[1]++; nDigisB++;
398 if(DBlayer==1) numberOfDigis[5]++;
399 if(DBlayer==2) numberOfDigis[6]++;
400 if(DBlayer==3) numberOfDigis[7]++;
404 }
else if (isUpgrade) {
410 numberOfDigis[0]++; nDigisA++;
411 if(DBlayer==1) numberOfDigis[2]++;
412 if(DBlayer==2) numberOfDigis[3]++;
413 if(DBlayer==3) numberOfDigis[4]++;
414 if(DBlayer==4) numberOfDigis[5]++;
416 numberOfDigis[1]++; nDigisB++;
417 if(DBlayer==1) numberOfDigis[6]++;
418 if(DBlayer==2) numberOfDigis[7]++;
419 if(DBlayer==3) numberOfDigis[8]++;
420 if(DBlayer==4) numberOfDigis[9]++;
449 if((layon || twoDimOnlyLayDisk) &&
barrel){
452 if((layon && twoD) || twoDimOnlyLayDisk){
454 float rocx = (float)col/52. + 8.0*
float(DBmodule-1);
455 float rocy = (float)row/160.+
float(DBladder);
457 if(DBladder==1) rocy = rocy + 0.5;
463 if(isHalfModule && DBladder==1){
468 if((layon && !twoD) && !twoDimOnlyLayDisk){
470 if(isHalfModule && DBladder==1) {
482 if(isHalfModule && DBladder==1){
489 if(isHalfModule && DBladder==1) {
496 if(bladeon && endcap){
500 if((diskon || twoDimOnlyLayDisk) &&
endcap){
502 if(twoDimOnlyLayDisk){
516 for (
int i = DBpanel;
i < DBmodule; ++
i) {offx = offx + float(5+DBpanel-
i);}
517 float rocx = (float)col/52. + offx + 14.0*
float(DBpanel-1);
518 float rocy = (float)row/160.+
float(DBblade);
527 if(ringon && endcap){
541 if(layon && barrel && !twoDimOnlyLayDisk) (
meNDigisLay_)->
Fill((
float)numberOfDigisMod);
544 if(diskon && endcap && !twoDimOnlyLayDisk) (
meNDigisDisk_)->
Fill((
float)numberOfDigisMod);
548 if(me) me->
Fill((
float)numberOfDigisMod);
549 me=theDMBE->
get(
"Pixel/Barrel/ALLMODS_ndigisCHAN_Barrel");
550 if(me){
if(numberOfDigis[0]>0) me->
Fill((
float)numberOfDigis[0]);
if(numberOfDigis[1]>0) me->
Fill((
float)numberOfDigis[1]); }
551 me=theDMBE->
get(
"Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelL1");
552 if(me){
if(numberOfDigis[2]>0) me->
Fill((
float)numberOfDigis[2]); }
553 me=theDMBE->
get(
"Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelL2");
554 if(me){
if(numberOfDigis[3]>0) me->
Fill((
float)numberOfDigis[3]); }
555 me=theDMBE->
get(
"Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelL3");
556 if(me){
if(numberOfDigis[4]>0) me->
Fill((
float)numberOfDigis[4]); }
557 me=theDMBE->
get(
"Pixel/Barrel/ALLMODS_ndigisCHAN_BarrelL4");
558 if(me){
if(numberOfDigis[5]>0) me->
Fill((
float)numberOfDigis[5]); }
561 if(me) me->
Fill((
float)numberOfDigisMod);
566 return numberOfDigisMod;
int adc(sample_type sample)
get the ADC sample (12 bits)
int plaquetteName() const
plaquetteId (in pannel)
T getParameter(std::string const &) const
MonitorElement * meNDigisRing_
MonitorElement * mePixDigisLad_py_
MonitorElement * mePixDigis_
MonitorElement * mePixDigisPhi_py_
iterator find(det_id_type id)
int moduleName() const
module id (index in z)
MonitorElement * meADCRing_
MonitorElement * meNDigis_
MonitorElement * mePixDigisRing_px_
MonitorElement * mePixDigis_py_
bool isHalfModule() const
full or half module
void book(const edm::ParameterSet &iConfig, int type=0, bool twoD=true, bool hiRes=false, bool reducedSet=false, bool additInfo=false, bool isUpgrade=false)
Book histograms.
~SiPixelDigiModule()
Destructor.
MonitorElement * mePixDigisDisk_
int plaquetteName() const
plaquetteId (in pannel)
static std::string const input
MonitorElement * meNDigisBlade_
int bladeName() const
blade id
MonitorElement * meADCDisk_
MonitorElement * mePixDigisPhi_px_
bool isHalfModule() const
full or half module
MonitorElement * mePixDigisRing_py_
MonitorElement * mePixRocsDisk_
MonitorElement * mePixRocsLay_
MonitorElement * meZeroOccRocsLay_
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
MonitorElement * mePixDigisLay_py_
MonitorElement * meADCLad_
MonitorElement * meADCBlade_
MonitorElement * meNDigisLay_
SiPixelDigiModule()
Default constructor.
int bladeName() const
blade id
MonitorElement * get(const std::string &path) const
get ME from full pathname (e.g. "my/long/dir/my_histo")
MonitorElement * mePixDigisLad_
int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum) ...
iterator end()
Return the off-the-end iterator.
MonitorElement * meADCLay_
int diskName() const
disk id
std::string setHistoId(std::string variable, uint32_t &rawId)
Set Histogram Id.
int ladderName() const
ladder id (index in phi)
int ladderName() const
ladder id (index in phi)
MonitorElement * mePixDigis_px_
int moduleName() const
module id (index in z)
int layerName() const
layer id
MonitorElement * mePixDigisLad_px_
MonitorElement * mePixDigisLay_
int fill(const edm::DetSetVector< PixelDigi > &input, const bool modon, const bool ladon, const bool layon, const bool phion, const bool bladeon, const bool diskon, const bool ringon, const bool twoD, const bool reducedSet, const bool twoDimModOn, const bool twoDimOnlyLayDisk, int &nDigisA, int &nDigisB, bool isUpgrade)
Fill histograms.
MonitorElement * meNDigisPhi_
int pannelName() const
pannel id
MonitorElement * meZeroOccRocsDisk_
MonitorElement * mePixDigisRing_
MonitorElement * meADCPhi_
int diskName() const
disk id
iterator begin()
Return an iterator to the first DetSet.
MonitorElement * mePixDigisPhi_
collection_type::const_iterator const_iterator
collection_type::const_iterator const_iterator
MonitorElement * meNDigisDisk_
int pannelName() const
pannel id
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
int layerName() const
layer id
MonitorElement * meNDigisLad_
MonitorElement * mePixDigisLay_px_