6 #include "CLHEP/Units/GlobalPhysicalConstants.h" 7 #include "CLHEP/Units/GlobalSystemOfUnits.h" 20 edm::LogVerbatim(
"HcalGeom") <<
"HcalDDDRecConstants::HcalDDDRecConstants (const HcalParameters* hp) constructor";
32 const bool& extra)
const {
37 if (it->layer == eta + 1)
return it->layerGroup;
38 if (it->layer > eta + 1 )
return last->layerGroup;
41 return last->layerGroup;
46 for (
unsigned int lay=0; lay < layers.size(); ++lay)
47 depths.emplace_back(layers[lay+1]);
53 const unsigned int&
eta)
const {
60 for (
unsigned int lay=0; lay < layers.size(); ++lay)
61 depths.emplace_back(layers[lay+1]);
66 std::vector<HcalDDDRecConstants::HcalEtaBin>
69 std::vector<HcalDDDRecConstants::HcalEtaBin>
bins;
70 unsigned int type = (itype == 0) ? 0 : 1;
72 std::vector<int> phiSp;
75 for (
int iz=0; iz<2; ++iz) {
78 std::vector<std::pair<int,double> > phis =
getPhis(subdet,ieta);
79 std::vector<std::pair<int,double> > phiUse;
81 if (subdet == subdetSp) {
82 for (
auto &
phi : phis) {
83 if (
std::find(phiSp.begin(),phiSp.end(),(zside*
phi.first)) ==
85 phiUse.emplace_back(
phi);
89 phiUse.insert(phiUse.end(),phis.begin(),phis.end());
92 getOneEtaBin(subdet,ieta,zside,phiUse,layers,
false,bins);
95 if (subdetSp == subdet) {
97 std::vector<std::pair<int,double> > phis =
getPhis(subdet,ieta);
98 for (
int iz=0; iz<2; ++iz) {
100 std::vector<std::pair<int,double> > phiUse;
101 for (
int i : phiSp) {
102 for (
auto &
phi : phis) {
103 if (
i == zside*
phi.first) {
104 phiUse.emplace_back(
phi);
109 if (!phiUse.empty()) {
111 getOneEtaBin(subdet,ieta,zside,phiUse,layers,
true,bins);
118 <<
" eta bins for type " <<
type;
119 for (
unsigned int i=0;
i<bins.size(); ++
i) {
121 <<
":" << bins[
i].etaMin <<
":" 122 << bins[
i].etaMax <<
"), Zside = " 123 << bins[
i].zside <<
", phis = (" 124 << bins[
i].phis.size() <<
":" << bins[
i].dphi
125 <<
") and " << bins[
i].layer.size()
126 <<
" depths (start) " << bins[
i].depthStart;
127 for (
unsigned int k=0;
k<bins[
i].layer.size(); ++
k)
129 <<
":" << bins[
i].layer[
k].second;
131 for (
unsigned int k=0;
k<bins[
i].phis.size(); ++
k)
133 <<
":" <<bins[
i].phis[
k].second;
139 std::pair<double,double>
141 int ietaAbs = (ieta > 0) ? ieta : -ieta;
143 if ((subdet == static_cast<int>(
HcalBarrel)) ||
145 (subdet == static_cast<int>(
HcalOuter))) {
147 int kphi = (unit == 2) ? ((iphi-1)/2 + 1) : iphi;
150 phi = foff + (kphi-0.5)*
phibin[ietaAbs-1];
154 int kphi = (unit == 4) ? ((iphi-3)/4 + 1) : ((iphi-1)/2 + 1);
162 edm::LogVerbatim(
"HcalGeom") <<
"getEtaPhi: subdet|ieta|iphi " << subdet <<
"|" 163 << ieta <<
"|" << iphi <<
" eta|phi " <<
eta 166 return std::pair<double,double>(
eta,
phi);
173 int ieta = (keta > 0) ? keta : -keta;
174 int zside= (keta > 0) ? 1 : -1;
176 if ((subdet == static_cast<int>(
HcalOuter)) ||
180 }
else if (subdet == static_cast<int>(
HcalBarrel) ||
188 }
else if (unit == 4) {
207 kphi = (kphi-1)%4 + 1;
208 if (kphi == 2 || kphi == 3) depth =
layerGroup(
eta-1, lay-2);
216 <<
":" << iphi <<
":" << idepth <<
":" << lay
222 std::vector<HcalDDDRecConstants::HFCellParameters>
225 std::vector<HcalDDDRecConstants::HFCellParameters>
cells;
228 for (
unsigned int k=0;
k<
nEta; ++
k) {
231 int iphi = (dphi == 4) ? 3 : 1;
236 cells.emplace_back(cell1);
238 cells.emplace_back(cell2);
251 cells.emplace_back(cell1);
254 for (
unsigned int k=0;
k<
nEta; ++
k) {
257 int iphi = (dphi == 4) ? 3 : 1;
262 cells.emplace_back(cell1);
264 cells.emplace_back(cell2);
269 edm::LogVerbatim(
"HcalGeom") <<
"HcalDDDRecConstants returns " << cells.size()
270 <<
" HF cell parameters";
271 for (
unsigned int k=0;
k<cells.size(); ++
k)
273 <<
", " << cells[
k].depth <<
", " 274 << cells[
k].firstPhi <<
", " << cells[
k].stepPhi
275 <<
", " << cells[
k].nPhi <<
", " <<cells[
k].rMin
276 <<
", " << cells[
k].rMax <<
")";
289 edm::LogVerbatim(
"HcalGeom") <<
"getLayerDepth::Input " << ieta <<
" Output " 290 << layers.size() <<
" entries";
291 for (std::map<int,int>::iterator itr=layers.begin(); itr != layers.end();
298 const int& iphi,
const int&
depth)
const{
299 int subdet = (idet == 1) ? 1 : 2;
300 int zside = (ieta > 0) ? 1 : -1;
301 int eta = zside*ieta;
304 if (layBack < 0 && eta <= hpar->
etaMax[1]) {
312 if (layBack < 0 || layBack > laymax) layBack = laymax;
314 edm::LogVerbatim(
"HcalGeom") <<
"getLayerBack::Input " << idet <<
":" << ieta
315 <<
":" << iphi <<
":" << depth <<
" Output " 322 const int& iphi,
const int&
depth)
const {
323 int subdet = (idet == 1) ? 1 : 2;
324 int zside = (ieta > 0) ? 1 : -1;
325 int eta = zside*ieta;
328 if ((layFront < 0) ||
329 ((subdet == static_cast<int>(
HcalEndcap)) && (eta == 16))) {
330 if ((subdet == static_cast<int>(
HcalEndcap)) && (eta == 16)) {
332 }
else if (eta <= hpar->
etaMax[1]) {
335 if ((
int)(
k) >= laymin) {
343 if (layFront < laymin) layFront = laymin;
346 edm::LogVerbatim(
"HcalGeom") <<
"getLayerFront::Input " << idet <<
":" << ieta
347 <<
":" << iphi <<
":" << depth <<
" Output " 354 const int& iphi,
const int&
zside)
const {
356 unsigned int type = (itype == 0) ? 0 : 1;
369 edm::LogVerbatim(
"HcalGeom") <<
"getMaxDepth::Input " << itype <<
":" << ieta
370 <<
":" << iphi <<
":" << zside <<
" Output " 377 const int& iphi,
const int&
zside)
const {
383 }
else if (itype == 3) {
386 unsigned int type = (itype == 0) ? 0 : 1;
388 if (type == 1 && ieta ==
iEtaMin[type])
398 std::vector<std::pair<int,double> >
401 std::vector<std::pair<int,double> > phis;
402 int ietaAbs = (ieta > 0) ? ieta : -ieta;
405 double fioff = ficons.first;
407 int nphi =
int((2._pi+0.1*dphi)/dphi);
409 for (
int ifi = 0; ifi < nphi; ++ifi) {
410 double phi =-fioff + (ifi+0.5)*dphi;
412 phis.emplace_back(std::pair<int,double>(iphi,phi));
415 edm::LogVerbatim(
"HcalGeom") <<
"getEtaPhi: subdet|ieta|iphi " << subdet <<
"|" 416 << ieta <<
" with " << phis.size() <<
" phi bins";
417 for (
unsigned int k=0;
k<phis.size(); ++
k)
431 int zside = (
k > 0) ? 1 : -1;
432 int phi = (
k > 0) ?
k : -
k;
433 phiz.emplace_back(std::pair<int,int>(phi,zside));
438 <<
" with " << phiz.size() <<
" phi/z bins";
439 for (
unsigned int k=0;
k<phiz.size(); ++
k)
447 const int&
depth)
const {
449 return getRZ(subdet, ieta, 1, depth);
453 const int&
depth)
const {
455 double rz = (layf < 0) ? 0.0 :
460 <<
"|" << ieta <<
"|" << iphi <<
"|" << depth
461 <<
" lay|rz " << layf <<
"|" << rz;
474 << layer <<
" rz " << rz;
480 int subdet =
id.subdetId();
481 int ieta =
id.ieta();
482 int iphi =
id.iphi();
483 int depth =
id.depth();
486 double rzf = (layf < 0) ? 0.0 :
491 double rzb = (layb < 0) ? 0.0 :
497 <<
"|" << ieta <<
"|" << iphi <<
"|" << depth
498 <<
" lay|rz (front) " << layf <<
"|" << rzf
499 <<
" lay|rz (back) " << layb <<
"|" << rzb;
501 return std::pair<double,double>(rzf,rzb);
504 std::vector<HcalDDDRecConstants::HcalActiveLength>
507 std::vector<HcalDDDRecConstants::HcalActiveLength> actives;
508 std::vector<HcalDDDRecConstants::HcalEtaBin>
bins =
getEtaBins(type);
510 unsigned int kount(0);
512 for (
auto &
bin : bins) {
515 int stype = (
bin.phis.size() > 4) ? 0 : 1;
518 double eta = 0.5*(
bin.etaMin+
bin.etaMax);
520 double scale = 1.0/((type == 0) ?
sin(theta) :
cos(theta));
524 <<
" depth " << depth <<
" Layers " << layf
525 <<
":" << layl <<
":" <<
bin.layer.size();
526 for (
auto ll :
bin.layer)
532 for (
unsigned int i = 0;
i <
bin.layer.size(); ++
i) {
534 int lmin = (type == 1 && ieta ==
iEtaMin[1]) ? layf :
537 for (
int j = lmin; j <= lmax; ++j) {
539 if ((type == 1) && (ieta <= 18)) t =
gconsHE[j].second;
540 if (t > 0) thick +=
t;
544 << lmax <<
" T " << thick;
549 active.
iphis.emplace_back(
phi.first);
550 actives.emplace_back(active);
555 << active.
ieta <<
":" << active.
eta 556 <<
" zside " << active.
zside <<
" depth " 558 <<
" thick " << active.
thick;
565 std::vector<HcalCellType>
569 std::vector<HcalCellType>
cells;
571 std::vector<HcalDDDRecConstants::HcalEtaBin> etabins =
getEtaBins(isub);
572 std::vector<int> missPhi;
573 for (
const auto& etabin : etabins) {
574 std::vector<HcalCellType>
temp;
575 std::vector<int>
count;
576 std::vector<double> dmin, dmax;
577 for (
unsigned int il=0; il<etabin.layer.size(); ++il) {
580 temp.emplace_back(cell);
581 count.emplace_back(0);
582 dmin.emplace_back(0);
583 dmax.emplace_back(0);
585 int ieta = etabin.ieta;
589 for (
unsigned int il=0; il<etabin.layer.size(); ++il) {
590 for (
auto & ic : cellsm) {
591 if (ic.depthSegment() >= etabin.layer[il].first &&
592 ic.depthSegment() <= etabin.layer[il].second &&
593 ic.etaBin() == temp[il].etaBin() &&
594 ic.zside() == temp[il].zside()) {
595 if (count[il] == 0) {
597 dmin[il] = ic.depthMin();
598 dmax[il] = ic.depthMax();
601 if (ic.depthMin() < dmin[il])
602 dmin[il] = ic.depthMin();
603 if (ic.depthMax() > dmax[il])
604 dmax[il] = ic.depthMax();
609 for (
unsigned int il=0; il<etabin.layer.size(); ++il) {
610 int depth = etabin.depthStart + (
int)(il);
611 temp[il].setEta(ieta,etabin.etaMin,etabin.etaMax);
612 temp[il].setDepth(depth,dmin[il],dmax[il]);
615 temp[il].setPhi(etabin.phis, missPhi, foff, etabin.dphi,
unit);
616 cells.emplace_back(temp[il]);
620 edm::LogVerbatim(
"HcalGeom") <<
"HcalDDDRecConstants: found " << cells.size()
621 <<
" cells for sub-detector type " << isub;
622 for (
unsigned int ic=0; ic<cells.size(); ++ic)
633 int zside = (ieta > 0) ? 1 : -1;
635 if ((eta >= etamin) && (eta <=
iEtaMax[1])) {
636 int depthMax =
getMaxDepth(1, etamin, iphi, zside);
638 if (depth >= depthMin && depth <= depthMax)
return true;
646 int zside = (ieta > 0) ? 1 : -1;
648 if ((eta >= etamin) && (eta <=
iEtaMax[1])) {
649 int depthMax =
getMaxDepth(1, etamin, iphi, zside);
651 depths.reserve(depthMax-depthMin+1);
653 depths.emplace_back(
depth);
662 unsigned int num = 0;
664 for (
auto & cellType : cellTypes) {
665 num += (
unsigned int)(cellType.nPhiBins());
668 edm::LogInfo (
"HCalGeom") <<
"HcalDDDRecConstants:numberOfCells " 669 << cellTypes.size() <<
" " << num
670 <<
" for subdetector " << subdet;
682 std::vector<HcalDDDRecConstants::HcalEtaBin> etabins =
getEtaBins(isub);
683 unsigned int ncell(0);
684 for (
auto & etabin : etabins) {
685 ncell += ((etabin.phis.size())*(etabin.layer.size()));
703 std::map<HcalDetId,HcalDetId>::const_iterator itr =
detIdSp_.find(
id);
704 if (itr ==
detIdSp_.end())
return id;
705 else return itr->second;
711 std::map<HcalDetId,std::vector<HcalDetId>>::const_iterator itr =
detIdSpR_.find(
id);
713 hid =
HcalDetId(
id.subdet(),
id.ieta(),
id.iphi(),(itr->second)[0].
depth());
720 std::map<HcalDetId,std::vector<HcalDetId>>::const_iterator itr =
detIdSpR_.find(
id);
722 hid =
HcalDetId(
id.subdet(),
id.ieta(),
id.iphi(),(itr->second).back().depth());
727 std::vector<HcalDetId>&
ids)
const {
730 std::map<HcalDetId,std::vector<HcalDetId>>::const_iterator itr =
detIdSpR_.find(
id);
732 ids.emplace_back(
id);
734 for (
auto k : itr->second) {
735 HcalDetId hid(
id.subdet(),
id.ieta(),
id.iphi(),
k.depth());
736 ids.emplace_back(hid);
742 std::vector<HcalDetId>& idsNew)
const {
743 for (
auto k : idsOld) {
744 std::map<HcalDetId,HcalDetId>::const_iterator itr =
detIdSp_.find(
k);
745 if (itr ==
detIdSp_.end()) idsNew.emplace_back(
k);
746 else idsNew.emplace_back(itr->second);
751 std::vector<HcalDetId>&
ids)
const {
753 std::map<HcalDetId,HcalDetId>::const_iterator itr;
755 ids.emplace_back(itr->first);
757 std::map<HcalDetId,std::vector<HcalDetId>>::const_iterator itr;
759 ids.emplace_back(itr->first);
761 return (!ids.empty());
765 std::vector<std::pair<int,double> >& phis,
766 std::map<int,int>&
layers,
bool planOne,
767 std::vector<HcalDDDRecConstants::HcalEtaBin>&
bins)
const {
771 double dphi =
phibin[ieta-1];
773 etabin.
phis.insert(etabin.
phis.end(),phis.begin(),phis.end());
778 int lmin(0), lmax(0);
780 std::map<int,int>::iterator itr=layers.begin();
781 if (!layers.empty()) {
782 int dep = itr->second;
785 unsigned lymx0 = (layers.size() > lymax) ? lymax : layers.size();
788 <<
" zside " << zside <<
" lymax " << lymx0
789 <<
":" << lymax <<
" Depth " << dep <<
":" 792 for (itr = layers.begin(); itr != layers.end(); ++itr,++
l)
794 <<
":" << itr->second;
796 for (
unsigned int l=0; l<phis.size(); ++
l)
800 for (itr = layers.begin(); itr != layers.end(); ++itr) {
801 if (itr->first <= (
int)(lymx0)) {
802 if (itr->second == dep) {
803 if (lmin == 0) lmin = itr->first;
805 }
else if (itr->second > dep) {
806 if (dstart < 0) dstart = dep;
807 int lmax0 = (lmax >= lmin) ? lmax : lmin;
810 etabin0.
layer.emplace_back(std::pair<int,int>(lmin,lmax0));
812 etabin.
layer.emplace_back(std::pair<int,int>(lmin,lmax0));
825 if (itr->first == (
int)(lymx0)) lmax = lymx0;
830 etabin0.
layer.emplace_back(std::pair<int,int>(lmin,lmax));
831 etabin0.
phis.insert(etabin0.
phis.end(),phis.begin(),phis.end());
832 bins.emplace_back(etabin0);
835 <<
" layers " << etabin0.
layer.size() <<
":" 836 << lmin <<
":" << lmax <<
" phis " 838 for (
unsigned int k=0;
k<etabin0.
layer.size(); ++
k)
840 << etabin0.
layer[
k].first <<
":" 841 << etabin0.
layer[
k].second;
845 etabin.
layer.emplace_back(std::pair<int,int>(lmin,lmax));
846 if (dstart < 0) dstart = dep;
851 bins.emplace_back(etabin);
854 <<
" layers " << etabin.
layer.size() <<
":" 855 << lmin <<
":" << lmax <<
" phis " 856 << etabin.
phis.size();
857 for (
unsigned int k=0;
k<etabin.
layer.size(); ++
k)
859 <<
":" << etabin.
layer[
k].second;
868 edm::LogError(
"HCalGeom") <<
"HcalDDDRecConstants: sizes of the vectors " 869 <<
" etaGroup (" << nEta <<
") and phiGroup (" 871 throw cms::Exception(
"DDException") <<
"HcalDDDRecConstants: inconsistent array sizes" << nEta <<
":" <<
hpar->
phigroup.size();
878 int ieta(0), ietaHB(0), ietaHE(0), ietaHEM(0);
885 <<
"HcalDDDRecConstants: Going beyond the array boundary " 887 <<
" of etaTable from SimConstant";
889 <<
"HcalDDDRecConstants: Going beyond the array boundary " 891 <<
" of etaTable from SimConstant";
894 etaSimValu.emplace_back(std::pair<int,int>(ef,ieta));
897 if (ieta <= hpar->
etaMax[0]) ietaHB =
i+1;
898 if (ieta <= hpar->
etaMin[1]) ietaHE =
i+1;
899 if (ieta <= hpar->etaMax[1]) ietaHEM=
i+1;
907 for (
unsigned int k=0;
k<4; ++
k)
nPhiBins.emplace_back(0);
912 phibin.emplace_back(dphi);
913 int nphi = (
int)((2._pi + 0.001)/dphi);
927 int nphi = (
int)((2._pi + 0.001)/
i);
932 <<
"HcalDDDRecConstants: Modified eta/deltaphi table for " << nEta
934 for (
int i=0; i<
nEta; ++
i)
939 for (
unsigned int i=0; i<
phiUnitS.size(); ++
i)
941 for (
unsigned int i=0; i<
nPhiBins.size(); ++
i)
952 for (
int i=0; i<
nEta; ++
i) {
954 int laymax = (imx > 0) ?
layerGroup(i,imx-1) : 0;
956 int laymax0 = (imx > 16) ?
layerGroup(i,16) : laymax;
960 <<
"HcalDDDRecConstants:HB " << i <<
" " << imx <<
" " << laymax
968 <<
"HcalDDDRecConstants:HE " << i <<
" " << imx <<
" " << laymax;
974 for (
int i=0; i<4; ++
i)
976 <<
"HcalDDDRecConstants:Detector Type[" << i <<
"] iEta " 983 for (
unsigned int i=0; i<
hpar->
rHB.size(); ++
i) {
984 gconsHB.emplace_back(std::pair<double,double>(
hpar->
rHB[i]/CLHEP::cm,
989 <<
"HcalDDDRecConstants:HB with " <<
nModule[0] <<
" modules and " 991 for (
unsigned int i=0; i<
gconsHB.size(); ++
i)
997 for (
unsigned int i=0; i<
hpar->
zHE.size(); ++
i) {
998 gconsHE.emplace_back(std::pair<double,double>(
hpar->
zHE[i]/CLHEP::cm,
1003 <<
"HcalDDDRecConstants:HE with " <<
nModule[1] <<
" modules and " 1006 for (
unsigned int i=0; i<
gconsHE.size(); ++
i)
1024 <<
"HcalDDDRecConstants:Detector type and maximum depth for all RBX " 1031 std::vector<int> phis;
1035 int phi = (phis[0] > 0) ? phis[0] : -phis[0];
1036 int zside = (phis[0] > 0) ? 1 : -1;
1039 for (
int eta=etas.first;
eta<=etas.second; ++
eta) {
1040 std::map<int,std::pair<int,int> > oldDep;
1043 for (
int lay=0; lay<lymax; ++lay) {
1045 if (depth != depc) {
1046 if (depth != 0) oldDep[
depth] = std::pair<int,int>(lmin,lay-1);
1051 if (depth != 0) oldDep[
depth] = std::pair<int,int>(lmin,lymax-1);
1054 <<
"HcalDDDRecConstants:Eta|Phi|Zside " <<
eta <<
":" << phi
1055 <<
":" << zside <<
" with " << oldDep.size() <<
" old Depths";
1057 for (
std::map<
int,std::pair<int,int> >::const_iterator itr=oldDep.begin(); itr != oldDep.end(); ++itr,++
kk)
1059 <<
"[" << kk <<
"] " << itr->first <<
" --> " 1060 << itr->second.first <<
":" << itr->second.second;
1063 for (
int ndepth=depths.first; ndepth<=depths.second; ++ndepth) {
1069 std::vector<int>
count(oldDep.size(),0);
1072 for (
int lay=layFront; lay<=layBack; ++lay) {
1074 for (
std::map<
int,std::pair<int,int> >::iterator itr=oldDep.begin();
1075 itr != oldDep.end(); ++itr,++
l) {
1076 if (lay >= (itr->second).first && lay <= (itr->second).
second) {
1081 int odepth(0), maxlay(0);
1083 for (
std::map<
int,std::pair<int,int> >::iterator itr=oldDep.begin();
1084 itr != oldDep.end(); ++itr,++
l) {
1085 if (
count[l] > maxlay) {
1086 odepth = itr->first;
1092 <<
"HcalDDDRecConstants:New Depth " << ndepth <<
" old Depth " 1093 << odepth <<
" max " << maxlay;
1095 for (
int k : phis) {
1096 zside = (
k > 0) ? 1 : -1;
1097 phi = (
k > 0) ?
k : -
k;
1100 HcalDetId newId(subdet,zside*eta,phi,ndepth);
1101 HcalDetId oldId(subdet,zside*eta,phi,odepth);
1103 std::vector<HcalDetId>
ids;
1104 std::map<HcalDetId,std::vector<HcalDetId>>::iterator itr =
detIdSpR_.find(oldId);
1105 if (itr !=
detIdSpR_.end()) ids = itr->second;
1106 ids.emplace_back(newId);
1114 <<
"HcalDDDRecConstants:Map for merging new channels to old channel" 1115 <<
" IDs with " <<
detIdSp_.size() <<
" entries";
1119 <<
" Standard " << itr.second;
1123 <<
"HcalDDDRecConstants:Reverse Map for mapping old to new IDs with " 1129 for (
auto itr1 : itr.second)
1141 if (it.layer == (
unsigned int)(eta + 1)) {
1142 return it.layerGroup.size();
1144 if (it.layer > (
unsigned int)(eta + 1))
break;
1145 k = it.layerGroup.size();
1153 if (it.layer == (
unsigned int)(eta + 1)) {
1154 return it.layerGroup.at(i);
1156 if (it.layer > (
unsigned int)(eta + 1))
break;
1157 k = it.layerGroup.at(i);
std::vector< int > getDepth(const int &det, const int &phi, const int &zside, const unsigned int &eta) const
std::vector< double > etaTable
std::vector< int > iEtaMin
std::vector< int > etagroup
std::pair< int, int > depthMaxSp_
std::vector< LayerSetAndLayers > layers(const SeedingLayerSetsHits &sets)
std::map< HcalDetId, std::vector< HcalDetId > > detIdSpR_
std::pair< double, double > getEtaPhi(const int &subdet, const int &ieta, const int &iphi) const
int findDepth(const int &det, const int &eta, const int &phi, const int &zside, const int &lay) const
void getLayerDepth(const int subdet, const int ieta, const int iphi, const int zside, std::map< int, int > &layers) const
std::vector< double > rHB
std::vector< std::pair< int, int > > etaSimValu
HcalDetId mergedDepthDetId(const HcalDetId &id) const
int getFrontLayer(const int &det, const int &eta) const
Sin< T >::type sin(const T &t)
bool mergedDepthList29(int ieta, int iphi, int depth) const
int getMinDepth(const int &det, const int &eta, const int &phi, const int &zside, const bool &partialOnly) const
Geom::Theta< T > theta() const
constexpr NumType convertRadToDeg(NumType radians)
unsigned int layerGroup(int eta, int i) const
void getOneEtaBin(HcalSubdetector subdet, int ieta, int zside, std::vector< std::pair< int, double >> &phis, std::map< int, int > &layers, bool planOne, std::vector< HcalDDDRecConstants::HcalEtaBin > &bins) const
int phiNumber(const int &phi, const int &unit) const
static const int maxLayer_
std::vector< int > maxDepth
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
std::vector< double > etaTableHF
int getLayerBack(const int subdet, const int ieta, const int iphi, const int zside, const int depth) const
std::vector< int > etaMax
std::vector< int > phiUnitS
int getLayerFront(const int subdet, const int ieta, const int iphi, const int zside, const int depth) const
U second(std::pair< T, U > const &p)
const HcalParameters * hpar
std::pair< int, int > getDepths(const int eta) const
int validDet(std::vector< int > &phis) const
std::vector< std::pair< double, double > > gconsHE
std::vector< double > zHE
std::vector< HcalEtaBin > getEtaBins(const int &itype) const
std::vector< double > phibin
int getMaxDepth(const int &type) const
const std::vector< double > & getRTableHF() const
void specialRBXHBHE(const std::vector< HcalDetId > &, std::vector< HcalDetId > &) const
int getDepthEta29(const int &phi, const int &zside, const int &i) const
unsigned int numberOfCells(HcalSubdetector) const
HcalDetId idFront(const HcalDetId &id) const
int unitPhi(const int &det, const int &etaR) const
HcalID getHCID(int subdet, int ieta, int iphi, int lay, int idepth) const
std::vector< double > dzHE
int getMinDepth(const int &itype, const int &ieta, const int &iphi, const int &zside) const
double getRZ(const int &subdet, const int &ieta, const int &depth) const
Cos< T >::type cos(const T &t)
const std::vector< double > & getPhiTableHF() const
std::vector< HFCellParameters > getHFCellParameters() const
const std::vector< int > & getPhis() const
std::vector< int > iEtaMax
Abs< T >::type abs(const T &t)
std::vector< HcalCellType > HcalCellTypes() const
std::map< HcalDetId, HcalDetId > detIdSp_
std::vector< int > ietaMap
std::vector< int > nPhiBins
std::vector< std::pair< int, int > > layer
std::pair< int, int > validEta() const
void getLayerDepth(const int &ieta, std::map< int, int > &layers) const
int getLastLayer(const int &det, const int &eta) const
std::vector< HcalCellType > HcalCellTypes(HcalSubdetector) const
unsigned int numberOfCells(const HcalSubdetector &) const
int getLayerFront(const int &det, const int &eta, const int &phi, const int &depth) const
std::vector< std::pair< int, double > > getPhis(const int &subdet, const int &ieta) const
HcalDetId idBack(const HcalDetId &id) const
int getDepthEta16M(const int &det) const
int getDepthEta29M(const int &i, const bool &planOne) const
bin
set the eta bin as selection string.
std::vector< double > phioff
unsigned int layerGroupSize(int eta) const
std::vector< double > etaTable
HcalDDDRecConstants(const HcalParameters *hp, const HcalDDDSimConstants &hc)
int getMaxDepth(const int &type) const
void unmergeDepthDetId(const HcalDetId &id, std::vector< HcalDetId > &ids) const
std::vector< double > phitable
TString units(TString variable, Char_t axis)
std::vector< double > phibin
std::vector< LayerItem > layerGroupEtaRec
std::vector< double > drHB
const HcalDDDSimConstants & hcons
std::pair< int, int > depthMaxDf_
std::vector< HcalActiveLength > getThickActive(const int &type) const
std::pair< int, int > getMaxDepthDet(const int &i) const
const std::vector< HcalDetId > & getIdHF2QIE() const
std::vector< std::pair< double, double > > gconsHB
std::vector< int > maxDepth
std::vector< int > phigroup
int getLayerBack(const int &det, const int &eta, const int &phi, const int &depth) const
static const int maxLayerHB_
std::pair< double, double > getPhiCons(const int &det, const int &ieta) const
std::vector< std::pair< int, double > > phis
std::vector< int > etaMin
unsigned int nCells() const
int getPhiZOne(std::vector< std::pair< int, int > > &phiz) const
int getDepthEta16(const int &det, const int &phi, const int &zside) const
const HcalLayerDepthMap * ldMap() const