13 using namespace ecaldqm;
15 std::vector<EcalDQMBinningService::AxisSpecs>
18 std::vector<AxisSpecs> axes(0);
43 xaxis.
nbins = nEBEtaBins;
44 xaxis.
low = -etaBound_;
45 xaxis.
high = etaBound_;
49 xaxis.
nbins = nPhiBins;
58 axes.push_back(xaxis);
84 axes.push_back(xaxis);
85 axes.push_back(yaxis);
92 std::vector<EcalDQMBinningService::AxisSpecs>
95 std::vector<AxisSpecs> axes(0);
98 if(_btype !=
kCrystal || !_isMap)
return axes;
103 xaxis.
title =
"channel";
108 yaxis.
title =
"pseudo-strip";
110 axes.push_back(xaxis);
111 axes.push_back(yaxis);
116 std::vector<EcalDQMBinningService::AxisSpecs>
119 std::vector<AxisSpecs> axes(0);
138 xaxis.
nbins = _zside ? 36 : 72;
140 xaxis.
high = _zside ? 36. : 72.;
141 xaxis.
title =
"iTCC";
144 xaxis.
nbins = _zside ? 9 : 18;
146 xaxis.
high = _zside ? 9. : 18.;
149 if(!_zside)
return axes;
150 xaxis.
nbins = nEEEtaBins;
151 xaxis.
low = _zside < 0 ? -3. : etaBound_;
152 xaxis.
high = _zside < 0 ? -etaBound_ : 3.;
156 xaxis.
nbins = nPhiBins;
165 axes.push_back(xaxis);
172 xaxis.
nbins = _zside ? 100 : 200;
176 xaxis.
nbins = _zside ? 20 : 40;
184 xaxis.
high = _zside ? 100. : 200.;
190 axes.push_back(xaxis);
191 axes.push_back(yaxis);
198 std::vector<EcalDQMBinningService::AxisSpecs>
201 std::vector<AxisSpecs> axes(0);
204 if(_btype !=
kCrystal || !_isMap)
return axes;
209 xaxis.
title =
"channel";
214 yaxis.
title =
"pseudo-strip";
216 axes.push_back(xaxis);
217 axes.push_back(yaxis);
222 std::vector<EcalDQMBinningService::AxisSpecs>
227 std::vector<AxisSpecs> axes(0);
237 xaxis.
title =
"channel";
240 xaxis.
nbins = isBarrel ? 68 : 80;
243 xaxis.
title =
"tower";
249 xaxis.
title =
"tower";
255 axes.push_back(xaxis);
264 xaxis.
nbins = isBarrel ? nEBSMEta : nEEX;
265 yaxis.
nbins = isBarrel ? nEBSMPhi : nEESMY;
268 xaxis.
nbins = isBarrel ? nEBSMEta / 5 : nEEX;
269 yaxis.
nbins = isBarrel ? nEBSMPhi / 5 : nEESMY;
272 xaxis.
nbins = isBarrel ? nEBSMEta / 5 : nEEX / 5;
273 yaxis.
nbins = isBarrel ? nEBSMPhi / 5 : nEESMY / 5;
278 xaxis.
low = xlow(_offset);
279 xaxis.
high = xaxis.
low + (isBarrel ? nEBSMEta : nEEX);
280 xaxis.
title = isBarrel ? (_offset <
kEBpLow ?
"-ieta" :
"ieta") :
"ix";
281 yaxis.
low = ylow(_offset);
282 yaxis.
high = yaxis.
low + (isBarrel ? nEBSMPhi : nEESMY);
283 yaxis.
title = isBarrel ?
"iphi" :
"iy";
285 axes.push_back(xaxis);
286 axes.push_back(yaxis);
293 std::vector<EcalDQMBinningService::AxisSpecs>
296 std::vector<AxisSpecs> axes(0);
305 xaxis.
title =
"pseudo-strip";
307 axes.push_back(xaxis);
313 yaxis.
title =
"channel";
314 axes.push_back(yaxis);
320 std::vector<EcalDQMBinningService::AxisSpecs>
323 std::vector<AxisSpecs> axes(0);
333 xaxis.
title =
"iTCC";
341 xaxis.
nbins = nEBEtaBins + 2 * nEEEtaBins;
343 for(
int i(0);
i <= nEEEtaBins;
i++)
344 xaxis.
edges[
i] = -3. + (3. - etaBound_) / nEEEtaBins *
i;
345 for(
int i(1); i <= nEBEtaBins; i++)
346 xaxis.
edges[i + nEEEtaBins] = -etaBound_ + 2. * etaBound_ / nEBEtaBins * i;
347 for(
int i(1); i <= nEEEtaBins; i++)
348 xaxis.
edges[i + nEEEtaBins + nEBEtaBins] = etaBound_ + (3. - etaBound_) / nEEEtaBins *
i;
352 xaxis.
nbins = nPhiBins;
361 axes.push_back(xaxis);
380 xaxis.
title =
"iphi/ix/ix+100";
383 yaxis.
title =
"ieta/iy";
385 axes.push_back(xaxis);
386 axes.push_back(yaxis);
394 const std::vector<int>*
397 std::vector<int>& binMap(binMaps_[kEB][_bkey]);
402 for(
int ix = 1; ix <= 360; ix++){
403 for(
int iy = 1; iy <= 170; iy++){
405 binMap[dIndex] = 360 * (iy - 1) + ix ;
412 for(
int ix = 1; ix <= 72; ix++){
413 for(
int iy = 1; iy <= 34; iy++){
414 int ieta(iy < 18 ? (iy - 18) * 5 : (iy - 17) * 5);
417 binMap[dIndex] = 72 * (iy - 1) + ix;
425 binMap.resize(nEBDCC);
426 for(
int ix = 1; ix <= nEBDCC; ix++)
433 int nEBTCC(kEBTCCHigh - kEBTCCLow + 1);
434 binMap.resize(nEBTCC);
435 for(
int ix = 1; ix <= nEBTCC; ix++)
442 float binEdges[nEBEtaBins + 1];
443 for(
int i(0);
i <= nEBEtaBins;
i++)
444 binEdges[
i] = -etaBound_ + 2. * etaBound_ / nEBEtaBins *
i;
446 for(
int ieta(-85); ieta <= 85; ieta++){
447 if(ieta == 0)
continue;
449 float eta(geometry_->getGeometry(ebid)->getPosition().eta());
450 float* pBin(std::upper_bound(binEdges, binEdges + nEBEtaBins + 1,
eta));
451 uint32_t dIndex(ieta < 0 ? ieta + 85 : ieta + 84);
452 binMap[dIndex] =
static_cast<int>(pBin - binEdges);
459 float binEdges[nPhiBins + 1];
460 for(
int i(0);
i <= nPhiBins;
i++)
461 binEdges[
i] =
TMath::Pi() * (-1./18. + 2. / nPhiBins *
i);
463 for(
int iphi(1); iphi <= 360; iphi++){
465 float phi(geometry_->getGeometry(ebid)->getPosition().phi());
467 float* pBin(std::upper_bound(binEdges, binEdges + nPhiBins + 1,
phi));
468 uint32_t dIndex(iphi - 1);
469 binMap[dIndex] =
static_cast<int>(pBin - binEdges);
479 const std::vector<int>*
485 std::vector<int>& binMap(binMaps_[kEBMEM][
kCrystal]);
487 binMap.resize(nEBMEM);
488 for(
int ix = 1; ix <= 18; ix++){
489 for(
int iy = 1; iy <= 20; iy++){
491 int pnId(iy < 11 ? 11 - iy : iy - 10);
492 uint32_t dIndex((idcc -
kEBmLow) * 10 + pnId - 1);
493 binMap[dIndex] = 18 * (iy - 1) + ix;
499 const std::vector<int>*
504 case -1: okey =
kEEm;
break;
505 case 0: okey = kEE;
break;
506 case 1: okey =
kEEp;
break;
510 std::vector<int>& binMap(binMaps_[okey][_bkey]);
512 int ixmax(_zside == 0 ? 200 : 100);
518 for(
int ix = 1; ix <= ixmax; ix++){
519 if(_zside == 0) zside = (ix <= 100 ? -1 : 1);
520 int iix(_zside == 0 && ix > 100 ? ix - 100 : ix);
521 for(
int iy = 1; iy <= 100; iy++){
525 binMap[dIndex] = ixmax * (iy - 1) + ix;
532 for(
int ix = 1; ix <= ixmax / 5; ix++){
533 if(_zside == 0) zside = (ix <= 20 ? -1 : 1);
534 int iix(_zside == 0 && ix > 20 ? ix - 20 : ix);
535 for(
int iy = 1; iy <= 20; iy++){
539 binMap[dIndex] = ixmax / 5 * (iy - 1) + ix;
547 if(_zside != 0) nEEDCC /= 2;
548 binMap.resize(nEEDCC);
549 for(
int ix = 1; ix <= nEEDCC; ix++)
550 binMap[ix - 1] = (ix + 5) % 9 + 1 + 9 * ((ix - 1) / 9);
556 int nEETCC(kEEmTCCHigh - kEEmTCCLow + kEEpTCCHigh - kEEpTCCLow + 2);
557 if(_zside != 0) nEETCC /= 2;
558 binMap.resize(nEETCC);
559 for(
int ix = 1; ix <= nEETCC; ix++)
566 if(_zside == 0)
return 0;
568 float binEdges[nEEEtaBins + 1];
570 for(
int i(0);
i <= nEEEtaBins;
i++)
571 binEdges[
i] = -3. + (3. - etaBound_) / nEEEtaBins *
i;
574 for(
int i(0);
i <= nEEEtaBins;
i++)
575 binEdges[
i] = etaBound_ + (3. - etaBound_) / nEEEtaBins *
i;
577 binMap.resize(EEDetId::kEEhalf / 2);
579 for(
int ix = 1; ix <= 100; ix++){
580 for(
int iy = 1; iy <= 50; iy++){
583 float eta(geometry_->getGeometry(eeid)->getPosition().eta());
584 float* pBin(std::upper_bound(binEdges, binEdges + nEEEtaBins + 1,
eta));
587 binMap[dIndex] =
static_cast<int>(pBin - binEdges);
595 if(_zside != 0)
return 0;
597 float binEdges[nPhiBins + 1];
598 for(
int i(0);
i <= nPhiBins;
i++)
599 binEdges[
i] =
TMath::Pi() * (-1./18. + 2. / nPhiBins *
i);
600 binMap.resize(EEDetId::kEEhalf);
601 for(
int ix = 1; ix <= 100; ix++){
602 for(
int iy = 1; iy <= 100; iy++){
605 float phi(geometry_->getGeometry(eeid)->getPosition().phi());
607 float* pBin(std::upper_bound(binEdges, binEdges + nPhiBins + 1,
phi));
609 binMap[dIndex] =
static_cast<int>(pBin - binEdges);
620 const std::vector<int>*
625 std::vector<int>& binMap(binMaps_[kEEMEM][
kCrystal]);
634 for (
int ich(0); ich < 10; ich++)
635 binMap[iEEDCC * 10 + ich] = 0;
643 for(
int iy = 1 + offset; iy <= 10 +
offset; iy++){
644 int pnId(iy < 11 ? 11 - iy : iy - 10);
645 uint32_t dIndex(iEEDCC * 10 + pnId - 1);
646 binMap[dIndex] = 4 * (iy - 1) + memIx;
654 const std::vector<int>*
659 std::vector<int>& binMap(binMaps_[
kSM][_bkey]);
664 for (
int iDCC(0); iDCC < nDCC; iDCC++) {
666 for(
int ix = 1; ix <= nEBSMEta; ix++){
667 for(
int iy = 1; iy <= nEBSMPhi; iy++){
668 int ieta(ix + xlow(iDCC));
669 int iphi(iy + ylow(iDCC));
678 binMap[dIndex] = totalBins + nEBSMEta * (iy - 1) + ix;
681 totalBins += nEBSMBins;
685 int nEEX(nEESMX), nEEBins(nEESMBins);
688 nEEBins = nEESMBinsExt;
690 for(std::vector<DetId>::iterator idItr(crystals.begin()); idItr != crystals.end(); ++idItr){
693 int ix(
id.ix() - xlow(iDCC));
694 int iy(
id.iy() - ylow(iDCC));
698 binMap[dIndex] = totalBins + nEEX * (iy - 1) + ix;
700 totalBins += nEEBins;
708 for(
int iSM(0); iSM < nDCC; iSM++){
710 for(
int ix = 1; ix <= nEBSMEta; ix += 5){
711 for(
int iy = 1; iy <= nEBSMPhi; iy += 5){
712 int ieta(ix + xlow(iSM));
713 int iphi(iy + ylow(iSM));
724 totalBins += nEBSMBins / 25;
727 int nEEX(nEESMX), nEEBins(nEESMBins);
730 nEEBins = nEESMBinsExt;
732 for (
int ix(1); ix <= nEEX / 5; ix++) {
733 for (
int iy(1); iy <= nEESMY / 5; iy++) {
736 int scix(ix + xlow(iSM) / 5);
737 int sciy(iy + ylow(iSM) / 5);
738 if(scix <= 0 || scix > 20 || sciy <= 0 || sciy > 20)
continue;
742 binMap[dIndex] = totalBins + nEEX / 5 * (iy - 1) + ix;
745 totalBins += nEEBins / 25;
753 for(
int iSM(0); iSM < nDCC; iSM++){
755 for(
int ix = 1; ix <= nEBSMEta; ix += 5){
756 for(
int iy = 1; iy <= nEBSMPhi; iy += 5){
757 int ieta(ix + xlow(iSM));
758 int iphi(iy + ylow(iSM));
766 binMap[dIndex +
EEDetId::kEEhalf] = totalBins + nEBSMEta / 5 * (iy - 1) / 5 + (ix - 1) / 5 + 1;
769 totalBins += nEBSMBins / 25;
772 int nEEX(nEESMX), nEEBins(nEESMBins);
775 nEEBins = nEESMBinsExt;
779 tccid[0] = ((iSM % 9) * 2 + 17) % 18 + 1;
780 tccid[1] = tccid[0] % 18 + 1;
781 tccid[2] = tccid[0] + 18;
782 tccid[3] = tccid[1] + 18;
784 for(
int i(0);
i < 4;
i++) tccid[
i] += kEEpTCCLow;
785 for(
int it(0); it < 4; it++){
787 for(std::vector<DetId>::iterator idItr(crystals.begin()); idItr != crystals.end(); ++idItr){
790 int ix(
id.ix() - xlow(iSM));
791 int iy(
id.iy() - ylow(iSM));
795 binMap[dIndex] = totalBins + nEEX * (iy - 1) + ix;
798 totalBins += nEEBins;
808 const std::vector<int>*
815 std::vector<int>& binMap(binMaps_[kSMMEM][_bkey]);
817 binMap.resize(nDCC * 10);
818 for(
int iSM(0); iSM < nDCC; iSM++){
820 for (
int ich(0); ich < 10; ich++)
821 binMap[iSM * 10 + ich] = 0;
824 for(
int ix = 1; ix <= 10; ix++){
825 int pnId(iSM <=
kEBmHigh ? 11 - ix : ix);
826 uint32_t dIndex(iSM * 10 + pnId - 1);
827 binMap[dIndex] = totalBins + ix;
836 const std::vector<int>*
839 std::vector<int>& binMap(binMaps_[kEcal][_bkey]);
844 for(
int ix = 1; ix <= 360; ix++){
845 for(
int iy = 101; iy <= 270; iy++){
847 binMap[dIndex] = 360 * (iy - 1) + ix ;
850 for(
int ix = 1; ix <= 200; ix++){
851 int iix(ix > 100 ? ix - 100 : ix);
852 int zside(ix > 100 ? 1 : -1);
853 for(
int iy = 1; iy <= 100; iy++){
857 binMap[dIndex] = 360 * (iy - 1) + ix;
864 for(
int ix = 1; ix <= 72; ix++){
865 for(
int iy = 21; iy <= 54; iy++){
866 int ieta(iy < 38 ? (iy - 38) * 5 : (iy - 37) * 5);
869 binMap[dIndex] = 72 * (iy - 1) + ix;
872 for(
int ix = 1; ix <= 40; ix++){
873 int iix((ix - 1) % 20 + 1);
874 int zside(ix > 20 ? 1 : -1);
875 for(
int iy = 1; iy <= 20; iy++){
879 binMap[dIndex] = 72 * (iy - 1) + ix;
886 float binEdges[nEBEtaBins + 2 * nEEEtaBins + 1];
887 for(
int i(0);
i <= nEEEtaBins;
i++)
888 binEdges[
i] = -3. + (3. - etaBound_) / nEEEtaBins *
i;
889 for(
int i(1); i <= nEBEtaBins; i++)
890 binEdges[i + nEEEtaBins] = -etaBound_ + 2. * etaBound_ / nEBEtaBins * i;
891 for(
int i(1); i <= nEEEtaBins; i++)
892 binEdges[i + nEEEtaBins + nEBEtaBins] = etaBound_ + (3. - etaBound_) / nEEEtaBins *
i;
894 float* lowEdge(binEdges);
896 for(
int ix = 1; ix <= 100; ix++){
897 for(
int iy = 1; iy <= 50; iy++){
900 float eta(geometry_->getGeometry(eeid)->getPosition().eta());
901 float* pBin(std::upper_bound(lowEdge, lowEdge + nEEEtaBins + 1,
eta));
903 binMap[dIndex] =
static_cast<int>(pBin - binEdges);
906 lowEdge += nEEEtaBins;
907 for(
int ieta(-85); ieta <= 85; ieta++){
908 if(ieta == 0)
continue;
910 float eta(geometry_->getGeometry(ebid)->getPosition().eta());
911 float* pBin(std::upper_bound(lowEdge, lowEdge + nEBEtaBins + 1,
eta));
912 uint32_t dIndex(ieta < 0 ? ieta + 85 : ieta + 84);
914 binMap[dIndex] =
static_cast<int>(pBin - binEdges);
916 lowEdge += nEBEtaBins;
917 for(
int ix = 1; ix <= 100; ix++){
918 for(
int iy = 1; iy <= 50; iy++){
921 float eta(geometry_->getGeometry(eeid)->getPosition().eta());
922 float* pBin(std::upper_bound(lowEdge, lowEdge + nEEEtaBins + 1,
eta));
924 binMap[dIndex] =
static_cast<int>(pBin - binEdges);
932 float binEdges[nPhiBins + 1];
933 for(
int i(0);
i <= nPhiBins;
i++)
934 binEdges[
i] =
TMath::Pi() * (-1./18. + 2. / nPhiBins *
i);
936 for(
int ix = 1; ix <= 100; ix++){
937 for(
int iy = 1; iy <= 100; iy++){
940 float phi(geometry_->getGeometry(eeid)->getPosition().phi());
942 float* pBin(std::upper_bound(binEdges, binEdges + nPhiBins + 1,
phi));
944 binMap[dIndex] =
static_cast<int>(pBin - binEdges);
947 for(
int iphi(1); iphi <= 360; iphi++){
949 float phi(geometry_->getGeometry(ebid)->getPosition().phi());
951 float* pBin(std::upper_bound(binEdges, binEdges + nPhiBins + 1,
phi));
953 binMap[dIndex] =
static_cast<int>(pBin - binEdges);
960 for(
int ix = 1; ix <= nTCC; ix++)
980 bool fullRange(_okey ==
kSM || _okey == kEcal);
987 if(index < _binMap.size()) _bins.push_back(_binMap[index]);
993 vector<DetId> detIds(
getElectronicsMap()->dccTowerConstituents(dccSc.first, dccSc.second));
994 for(vector<DetId>::iterator idItr(detIds.begin()); idItr != detIds.end(); ++idItr) {
997 if(eeid.
zside() > 0) {
1001 if(
index < _binMap.size()) _bins.push_back(_binMap[
index]);
1007 if(eeid.
zside() > 0) {
1011 if(
index < _binMap.size()) _bins.push_back(_binMap[
index]);
1018 for(vector<DetId>::iterator idItr(detIds.begin()); idItr != detIds.end(); ++idItr) {
1022 if(
index < _binMap.size()) _bins.push_back(_binMap[
index]);
1027 if(eeid.
zside() > 0) {
1031 if (
index < _binMap.size()) _bins.push_back(_binMap[
index]);
1039 int iDCC(pnid.
iDCCId() - 1);
1043 if(
index < _binMap.size()) _bins.push_back(_binMap[
index]);
1054 using namespace std;
1061 if(
index < _binMap.size()) _bins.push_back(_binMap[
index]);
1067 for(vector<DetId>::iterator idItr(detIds.begin()); idItr != detIds.end(); ++idItr){
1071 if(
index < _binMap.size()) _bins.push_back(_binMap[
index]);
1080 if(
index < _binMap.size()) _bins.push_back(_binMap[
index]);
1084 for(vector<DetId>::iterator idItr(detIds.begin()); idItr != detIds.end(); ++idItr){
1088 if(
index < _binMap.size()) _bins.push_back(_binMap[
index]);
1102 bool fullRange(_okey ==
kSM || _okey == kEcal);
1109 if(index < _binMap.size()) _bins.push_back(_binMap[index]);
1118 zside = scid.
zside();
1123 zside = eeid.
zside();
1130 if(index < _binMap.size()) _bins.push_back(_binMap[index]);
1138 if(
index < _binMap.size()) _bins.push_back(_binMap[
index]);
1149 if(_okey == kEB) index -=
kEBmLow;
1152 if(index < _binMap.size()) _bins.push_back(_binMap[index]);
1159 if(_okey == kEB) index -= kEBTCCLow;
1160 else if(_okey == kEE && index >=
kEEpLow) index -= (kEBTCCHigh - kEEmTCCHigh);
1161 else if(_okey ==
kEEp) index -= kEEpTCCLow;
1162 if(index < _binMap.size()) _bins.push_back(_binMap[index]);
1168 using namespace std;
1176 if(
index < _binMap.size()) _bins.push_back(_binMap[
index]);
1187 if(
index < _binMap.size()) _bins.push_back(_binMap[
index]);
1196 for(vector<DetId>::iterator idItr(detIds.begin()); idItr != detIds.end(); ++idItr){
1200 if(
index < _binMap.size()) binset.insert(_binMap[
index]);
1204 for(vector<DetId>::iterator idItr(detIds.begin()); idItr != detIds.end(); ++idItr){
1211 if(
index < _binMap.size()) binset.insert(_binMap[
index]);
1214 for(set<int>::iterator binItr(binset.begin()); binItr != binset.end(); ++binItr)
1215 _bins.push_back(*binItr);
1226 using namespace std;
1234 if(
index < _binMap.size()) _bins.push_back(_binMap[
index]);
1242 if(
index < _binMap.size()) _bins.push_back(_binMap[
index]);
1251 for(vector<DetId>::iterator idItr(detIds.begin()); idItr != detIds.end(); ++idItr){
1255 if(
index < _binMap.size()) binset.insert(_binMap[
index]);
1259 for(vector<DetId>::iterator idItr(detIds.begin()); idItr != detIds.end(); ++idItr){
1263 if(
index < _binMap.size()) binset.insert(_binMap[
index]);
1266 for(set<int>::iterator binItr(binset.begin()); binItr != binset.end(); ++binItr)
1267 _bins.push_back(*binItr);
static bool validDetId(int ix, int iy, int iz)
std::vector< AxisSpecs > getBinningEBMEM_(BinningType, bool) const
const std::vector< int > * getBinMapSMMEM_(BinningType) const
std::vector< AxisSpecs > getBinningEcal_(BinningType, bool) const
static const int SC_PER_EE_CNT
const EcalElectronicsMapping * getElectronicsMap()
void findBinsDCC_(const DetId &, ObjectType, const std::vector< int > &, std::vector< int > &) const
std::vector< DetId > dccConstituents(int dccId) const
Get the constituent detids for this dccId.
const std::vector< int > * getBinMapEcal_(BinningType) const
int hashedIndex() const
get a compact index for arrays [TODO: NEEDS WORK]
unsigned dccId(const DetId &)
std::vector< AxisSpecs > getBinningSMMEM_(BinningType, bool, unsigned) const
void findBinsTCC_(const DetId &, ObjectType, const std::vector< int > &, std::vector< int > &) const
const std::vector< int > * getBinMapEE_(BinningType, int) const
uint32_t denseIndex() const
int iphi() const
get the crystal iphi
const std::vector< int > * getBinMapEEMEM_(BinningType) const
void findBinsProjPhi_(const DetId &, ObjectType, const std::vector< int > &, std::vector< int > &) const
void findBinsCrystal_(const DetId &, ObjectType, const std::vector< int > &, std::vector< int > &) const
int iPnId() const
get the PnId
int hashedIndex(int ieta, int iphi)
void findBinsSuperCrystal_(const DetId &, ObjectType, const std::vector< int > &, std::vector< int > &) const
std::vector< AxisSpecs > getBinningEE_(BinningType, bool, int) const
const std::vector< int > * getBinMapSM_(BinningType) const
std::vector< AxisSpecs > getBinningEB_(BinningType, bool) const
int ieta() const
get the crystal ieta
unsigned int offset(bool)
int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum) ...
int iDCCId() const
get the DCCId
bool isEcalScDetId(const DetId &_id)
const std::set< unsigned > dccNoMEM
const std::vector< int > * getBinMapEB_(BinningType) const
unsigned getNSuperCrystals(unsigned)
static bool validDetId(int crystal_ix, int crystal_iy, int iz)
uint32_t denseIndex() const
const std::vector< int > * getBinMapEBMEM_(BinningType) const
const EcalTrigTowerConstituentsMap * getTrigTowerMap()
unsigned tccId(const DetId &)
uint32_t denseIndex() const
EcalSubdetector subDet() const
get the subDetector associated to the Trigger Tower
void findBinsTriggerTower_(const DetId &, ObjectType, const std::vector< int > &, std::vector< int > &) const
std::vector< AxisSpecs > getBinningSM_(BinningType, bool, unsigned) const
uint32_t denseIndex() const
void findBinsProjEta_(const DetId &, ObjectType, const std::vector< int > &, std::vector< int > &) const
std::vector< AxisSpecs > getBinningEEMEM_(BinningType, bool) const