6 #include "CLHEP/Units/GlobalPhysicalConstants.h" 7 #include "CLHEP/Units/GlobalSystemOfUnits.h" 18 std::cout <<
"HcalDDDRecConstants::HcalDDDRecConstants (const HcalParameters* hp) constructor" << std::endl;
25 std::cout <<
"HcalDDDRecConstants::destructed!!!" << std::endl;
30 const bool extra)
const {
35 if (it->layer == eta + 1)
return it->layerGroup;
36 if (it->layer > eta + 1 )
return last->layerGroup;
39 return last->layerGroup;
43 std::vector<int> depths;
44 for (
unsigned int lay=0; lay < layers.size(); ++lay)
45 depths.push_back(layers[lay+1]);
53 if (layers.size() == 0) {
56 std::vector<int> depths;
57 for (
unsigned int lay=0; lay < layers.size(); ++lay)
58 depths.push_back(layers[lay+1]);
63 std::vector<HcalDDDRecConstants::HcalEtaBin>
66 std::vector<HcalDDDRecConstants::HcalEtaBin>
bins;
67 unsigned int type = (itype == 0) ? 0 : 1;
69 std::vector<int> phiSp;
72 for (
int iz=0; iz<2; ++iz) {
75 std::vector<std::pair<int,double> > phis =
getPhis(subdet,ieta);
76 std::vector<std::pair<int,double> > phiUse;
78 if (subdet == subdetSp) {
79 for (
unsigned k=0;
k<phis.size(); ++
k) {
80 if (
std::find(phiSp.begin(),phiSp.end(),(zside*phis[
k].first)) ==
82 phiUse.push_back(phis[
k]);
86 phiUse.insert(phiUse.end(),phis.begin(),phis.end());
88 getOneEtaBin(subdet,ieta,zside,phiUse,layers,
false,bins);
91 if (subdetSp == subdet) {
93 std::vector<std::pair<int,double> > phis =
getPhis(subdet,ieta);
94 for (
int iz=0; iz<2; ++iz) {
96 std::vector<std::pair<int,double> > phiUse;
97 for (
unsigned i=0;
i<phiSp.size(); ++
i) {
98 for (
unsigned k=0;
k<phis.size(); ++
k) {
99 if (phiSp[
i] == zside*phis[
k].
first) {
100 phiUse.push_back(phis[
k]);
105 if (phiUse.size() > 0) {
107 getOneEtaBin(subdet,ieta,zside,phiUse,layers,
true,bins);
113 std::cout <<
"Prepares " << bins.size() <<
" eta bins for type " << type
115 for (
unsigned int i=0;
i<bins.size(); ++
i) {
116 std::cout <<
"Bin[" <<
i <<
"]: Eta = (" << bins[
i].ieta <<
":" 117 << bins[
i].etaMin <<
":" << bins[
i].etaMax <<
"), Zside = " 118 << bins[
i].zside <<
", phis = (" << bins[
i].phis.size() <<
":" 119 << bins[
i].dphi <<
") and " << bins[
i].layer.size()
120 <<
" depths (start) " << bins[
i].depthStart <<
" :";
121 for (
unsigned int k=0;
k<bins[
i].layer.size(); ++
k)
124 std::cout << std::endl <<
" and Phi sets";
125 for (
unsigned int k=0;
k<bins[
i].phis.size(); ++
k)
133 std::pair<double,double>
135 int ietaAbs = (ieta > 0) ? ieta : -ieta;
137 if ((subdet == static_cast<int>(
HcalBarrel)) ||
139 (subdet == static_cast<int>(
HcalOuter))) {
141 int kphi = (unit == 2) ? ((iphi-1)/2 + 1) : iphi;
144 phi = foff + (kphi-0.5)*
phibin[ietaAbs-1];
148 int kphi = (unit == 4) ? ((iphi-3)/4 + 1) : ((iphi-1)/2 + 1);
156 std::cout <<
"getEtaPhi: subdet|ieta|iphi " << subdet <<
"|" << ieta <<
"|" 157 << iphi <<
" eta|phi " <<
eta <<
"|" << phi << std::endl;
159 return std::pair<double,double>(
eta,
phi);
166 int ieta = (keta > 0) ? keta : -keta;
167 int zside= (keta > 0) ? 1 : -1;
169 if ((subdet == static_cast<int>(
HcalOuter)) ||
173 }
else if (subdet == static_cast<int>(
HcalBarrel) ||
181 }
else if (unit == 4) {
200 kphi = (kphi-1)%4 + 1;
201 if (kphi == 2 || kphi == 3) depth =
layerGroup(
eta-1, lay-2);
208 std::cout <<
"getHCID: input " << subdet <<
":" << ieta <<
":" << iphi
209 <<
":" << idepth <<
":" << lay <<
" output " <<
eta <<
":" <<
phi 210 <<
":" << depth << std::endl;
215 std::vector<HcalDDDRecConstants::HFCellParameters>
218 std::vector<HcalDDDRecConstants::HFCellParameters> cells;
221 for (
unsigned int k=0;
k<
nEta; ++
k) {
224 int iphi = (dphi == 4) ? 3 : 1;
229 cells.push_back(cell1);
231 cells.push_back(cell2);
244 cells.push_back(cell1);
247 for (
unsigned int k=0;
k<
nEta; ++
k) {
250 int iphi = (dphi == 4) ? 3 : 1;
255 cells.push_back(cell1);
257 cells.push_back(cell2);
262 std::cout <<
"HcalDDDRecConstants returns " << cells.size()
263 <<
" HF cell parameters" << std::endl;
264 for (
unsigned int k=0;
k<cells.size(); ++
k)
266 <<
", " << cells[
k].firstPhi <<
", " << cells[
k].stepPhi <<
", " 267 << cells[
k].
nPhi <<
", " << cells[
k].
rMin <<
", " 268 << cells[
k].
rMax <<
")" << std::endl;
274 std::map<int,int>&
layers)
const {
282 std::cout <<
"getLayerDepth::Input " << ieta <<
" Output " 283 << layers.size() <<
" entries" << std::endl;
284 for (std::map<int,int>::iterator itr=layers.begin(); itr != layers.end();
285 ++itr)
std::cout <<
" [" << itr->first <<
"] " << itr->second;
291 const int iphi,
const int zside)
const {
293 unsigned int type = (itype == 0) ? 0 : 1;
309 const int iphi,
const int zside)
const {
315 }
else if (itype == 3) {
318 unsigned int type = (itype == 0) ? 0 : 1;
320 if (type == 1 && ieta ==
iEtaMin[type])
330 std::vector<std::pair<int,double> >
333 std::vector<std::pair<int,double> > phis;
334 int ietaAbs = (ieta > 0) ? ieta : -ieta;
337 double fioff = ficons.first;
339 int nphi =
int((CLHEP::twopi+0.1*dphi)/dphi);
341 for (
int ifi = 0; ifi < nphi; ++ifi) {
342 double phi =-fioff + (ifi+0.5)*dphi;
344 phis.push_back(std::pair<int,double>(iphi,phi));
347 std::cout <<
"getEtaPhi: subdet|ieta|iphi " << subdet <<
"|" << ieta
348 <<
" with " << phis.size() <<
" phi bins" << std::endl;
349 for (
unsigned int k=0;
k<phis.size(); ++
k)
351 << phis[
k].
second/CLHEP::deg << std::endl;
362 for (
unsigned int k=0;
k<phis.size(); ++
k) {
363 int zside = (phis[
k] > 0) ? 1 : -1;
364 int phi = (phis[
k] > 0) ? phis[
k] : -phis[
k];
365 phiz.push_back(std::pair<int,int>(phi,zside));
369 std::cout <<
"Special RBX for detector " << subdet <<
" with " << phiz.size()
371 for (
unsigned int k=0;
k<phiz.size(); ++
k)
380 int ietaAbs = (ieta > 0) ? ieta : -ieta;
385 if (ietaAbs < hpar->
etaMax[1]) {
400 std::cout <<
"getRZ: subdet|ieta|depth " << subdet <<
"|" << ieta <<
"|" 401 << depth <<
" lay|rz " << lay <<
"|" << rz << std::endl;
406 std::vector<HcalDDDRecConstants::HcalActiveLength>
409 std::vector<HcalDDDRecConstants::HcalActiveLength> actives;
410 std::vector<HcalDDDRecConstants::HcalEtaBin>
bins =
getEtaBins(type);
412 unsigned int kount(0);
414 for (
unsigned int k=0;
k<bins.size(); ++
k) {
415 int ieta = bins[
k].ieta;
416 double eta = 0.5*(bins[
k].etaMin+bins[
k].etaMax);
418 double scale = 1.0/((type == 0) ?
sin(theta) :
cos(theta));
419 int depth = bins[
k].depthStart;
420 for (
unsigned int i = 0;
i < bins[
k].layer.size(); ++
i) {
422 for (
int j = bins[
k].layer[
i].
first;
j <= bins[
k].layer[
i].second; ++
j) {
423 if (type == 0 ||
j > 1) {
425 if (t > 0) thick +=
t;
430 actives.push_back(active);
434 std::cout <<
"getThickActive: [" << kount <<
"] eta:" << active.
ieta 435 <<
":" << active.
eta <<
" depth " << active.
depth <<
" thick " 436 << active.
thick << std::endl;
443 std::vector<HcalCellType>
447 std::vector<HcalCellType> cells;
449 std::vector<HcalDDDRecConstants::HcalEtaBin> etabins =
getEtaBins(isub);
450 std::vector<int> missPhi;
451 for (
unsigned int bin=0;
bin<etabins.size(); ++
bin) {
452 std::vector<HcalCellType>
temp;
453 std::vector<int>
count;
454 std::vector<double> dmin, dmax;
455 for (
unsigned int il=0; il<etabins[
bin].layer.size(); ++il) {
460 cell.
setPhi(etabins[bin].phis, missPhi, foff, etabins[bin].dphi,
unit);
461 temp.push_back(cell);
466 int ieta = etabins[
bin].ieta;
470 for (
unsigned int ic=0; ic<cellsm.size(); ++ic) {
471 for (
unsigned int il=0; il<etabins[
bin].layer.size(); ++il) {
472 if (cellsm[ic].depthSegment() >= etabins[
bin].layer[il].first &&
473 cellsm[ic].depthSegment() <= etabins[
bin].layer[il].second) {
474 if (count[il] == 0) {
475 temp[il] = cellsm[ic];
476 dmin[il] = cellsm[ic].depthMin();
477 dmax[il] = cellsm[ic].depthMax();
480 if (cellsm[ic].depthMin() < dmin[il])
481 dmin[il] = cellsm[ic].depthMin();
482 if (cellsm[ic].depthMax() > dmax[il])
483 dmax[il] = cellsm[ic].depthMax();
489 for (
unsigned int il=0; il<etabins[
bin].layer.size(); ++il) {
492 temp[il].setDepth(depth,dmin[il],dmax[il]);
493 cells.push_back(temp[il]);
497 std::cout <<
"HcalDDDRecConstants: found " << cells.size() <<
" cells for sub-detector type " << isub << std::endl;
498 for (
unsigned int ic=0; ic<cells.size(); ++ic)
499 std::cout <<
"Cell[" << ic <<
"] " << cells[ic] << std::endl;
510 unsigned int num = 0;
512 for (
unsigned int i=0;
i<cellTypes.size();
i++) {
516 edm::LogInfo (
"HCalGeom") <<
"HcalDDDRecConstants:numberOfCells " 517 << cellTypes.size() <<
" " << num
518 <<
" for subdetector " << subdet;
530 std::vector<HcalDDDRecConstants::HcalEtaBin> etabins =
getEtaBins(isub);
531 unsigned int ncell(0);
532 for (
unsigned int i=0;
i<etabins.size(); ++
i) {
533 ncell += ((etabins[
i].phis.size())*(etabins[
i].layer.size()));
551 std::map<HcalDetId,HcalDetId>::const_iterator itr =
detIdSp_.find(
id);
552 if (itr ==
detIdSp_.end())
return id;
553 else return itr->second;
559 std::map<HcalDetId,std::vector<HcalDetId>>::const_iterator itr =
detIdSpR_.find(
id);
561 hid =
HcalDetId(
id.subdet(),
id.ieta(),
id.iphi(),(itr->second)[0].
depth());
568 std::map<HcalDetId,std::vector<HcalDetId>>::const_iterator itr =
detIdSpR_.find(
id);
570 hid =
HcalDetId(
id.subdet(),
id.ieta(),
id.iphi(),(itr->second).back().depth());
575 std::vector<HcalDetId>& ids)
const {
578 std::map<HcalDetId,std::vector<HcalDetId>>::const_iterator itr =
detIdSpR_.find(
id);
582 for (
unsigned k=0;
k<itr->second.size(); ++
k) {
583 HcalDetId hid(
id.subdet(),
id.ieta(),
id.iphi(),(itr->second)[
k].depth());
590 std::vector<HcalDetId>& idsNew)
const {
591 for (
unsigned int k=0;
k<idsOld.size(); ++
k) {
592 std::map<HcalDetId,HcalDetId>::const_iterator itr =
detIdSp_.find(idsOld[
k]);
593 if (itr ==
detIdSp_.end()) idsNew.push_back(idsOld[k]);
594 else idsNew.push_back(itr->second);
600 std::vector<std::pair<int,double> >& phis,
601 std::map<int,int>&
layers,
bool planOne,
602 std::vector<HcalDDDRecConstants::HcalEtaBin>&
bins)
const {
606 double dphi =
phibin[ieta-1];
608 etabin.
phis.insert(etabin.
phis.end(),phis.begin(),phis.end());
613 int lmin(0), lmax(0);
614 std::map<int,int>::iterator itr=layers.begin();
615 if (layers.size() > 0) {
616 int dep = itr->second;
619 unsigned lymx0 = (layers.size() > lymax) ? lymax : layers.size();
622 <<
" lymax " << lymx0 <<
":" << lymax <<
" Depth " << dep <<
":" 625 for (itr = layers.begin(); itr != layers.end(); ++itr,++
l)
626 std::cout <<
" [" << l <<
"] " << itr->first <<
":" << itr->second;
627 std::cout << std::endl <<
" with " << phis.size() <<
" phis";
628 for (
unsigned int l=0; l<phis.size(); ++
l)
632 for (itr = layers.begin(); itr != layers.end(); ++itr) {
633 if (itr->first <= (
int)(lymx0)) {
634 if (itr->second == dep) {
635 if (lmin == 0) lmin = itr->first;
637 }
else if (itr->second > dep) {
638 if (dstart < 0) dstart = dep;
639 int lmax0 = (lmax >= lmin) ? lmax : lmin;
642 etabin0.
layer.push_back(std::pair<int,int>(lmin,lmax0));
644 etabin.
layer.push_back(std::pair<int,int>(lmin,lmax0));
657 if (itr->first == (
int)(lymx0)) lmax = lymx0;
662 etabin0.
layer.push_back(std::pair<int,int>(lmin,lmax));
663 etabin0.
phis.insert(etabin0.
phis.end(),phis.begin(),phis.end());
664 bins.push_back(etabin0);
667 << etabin0.
layer.size() <<
":" << lmin <<
":" << lmax
668 <<
" phis " << phis.size() << std::endl;
669 for (
unsigned int k=0;
k<etabin0.
layer.size(); ++
k)
671 << etabin0.
layer[
k].second;
676 etabin.
layer.push_back(std::pair<int,int>(lmin,lmax));
677 if (dstart < 0) dstart = dep;
682 bins.push_back(etabin);
685 << etabin.
layer.size() <<
":" << lmin <<
":" << lmax
686 <<
" phis " << etabin.
phis.size() << std::endl;
687 for (
unsigned int k=0;
k<etabin.
layer.size(); ++
k)
689 << etabin.
layer[
k].second;
699 edm::LogError(
"HCalGeom") <<
"HcalDDDRecConstants: sizes of the vectors " 700 <<
" etaGroup (" << nEta <<
") and phiGroup (" 702 throw cms::Exception(
"DDException") <<
"HcalDDDRecConstants: inconsistent array sizes" << nEta <<
":" <<
hpar->
phigroup.size();
709 int ieta(0), ietaHB(0), ietaHE(0), ietaHEM(0);
715 edm::LogError(
"HCalGeom") <<
"Going beyond the array boundary " 717 <<
" of etaTable from SimConstant";
718 throw cms::Exception(
"DDException") <<
"Going beyond the array boundary " 721 <<
" of etaTable from SimConstant";
724 etaSimValu.push_back(std::pair<int,int>(ef,ieta));
727 if (ieta <= hpar->
etaMax[0]) ietaHB =
i+1;
728 if (ieta <= hpar->
etaMin[1]) ietaHE =
i+1;
729 if (ieta <= hpar->etaMax[1]) ietaHEM=
i+1;
737 for (
unsigned int k=0;
k<4; ++
k)
nPhiBins.push_back(0);
743 int nphi = (
int)((CLHEP::twopi + 0.001)/dphi);
761 std::cout <<
"Modified eta/deltaphi table for " << nEta <<
" bins" << std::endl;
765 <<
" PhiBin[" <<
i <<
"] = " <<
phibin[
i]/CLHEP::deg <<std::endl;
791 int laymax0 = (imx > 16) ?
layerGroup(
i,16) : laymax;
794 std::cout <<
"HB " <<
i <<
" " << imx <<
" " << laymax <<
" " << laymax0 << std::endl;
800 std::cout <<
"HE " <<
i <<
" " << imx <<
" " << laymax << std::endl;
806 for (
int i=0;
i<4; ++
i)
814 for (
unsigned int i=0;
i<
hpar->
rHB.size(); ++
i) {
820 <<
" halves and " <<
gconsHB.size() <<
" layers" << std::endl;
827 for (
unsigned int i=0;
i<
hpar->
zHE.size(); ++
i) {
833 <<
" halves and " <<
gconsHE.size() <<
" layers" << std::endl;
851 std::cout <<
"Detector type and maximum depth for all RBX " 853 <<
" and for special RBX " <<
depthMaxSp_.first <<
":" 858 std::vector<int> phis;
862 int phi = (phis[0] > 0) ? phis[0] : -phis[0];
863 int zside = (phis[0] > 0) ? 1 : -1;
866 for (
int eta=etas.first;
eta<=etas.second; ++
eta) {
867 std::map<int,std::pair<int,int> > oldDep;
870 for (
int lay=0; lay<lymax; ++lay) {
873 if (depth != 0) oldDep[
depth] = std::pair<int,int>(lmin,lay-1);
878 if (depth != 0) oldDep[
depth] = std::pair<int,int>(lmin,lymax-1);
880 std::cout <<
"Eta|Phi|Zside " <<
eta <<
":" << phi <<
":" << zside
881 <<
" with " << oldDep.size() <<
" old Depths" << std::endl;
883 for (
std::map<
int,std::pair<int,int> >::const_iterator itr=oldDep.begin(); itr != oldDep.end(); ++itr,++
kk)
884 std::cout <<
"[" << kk <<
"] " << itr->first <<
" --> " 885 << itr->second.first <<
":" << itr->second.second <<
"\n";
888 for (
int ndepth=depths.first; ndepth<=depths.second; ++ndepth) {
894 std::vector<int>
count(oldDep.size(),0);
897 for (
int lay=layFront; lay<=layBack; ++lay) {
899 for (
std::map<
int,std::pair<int,int> >::iterator itr=oldDep.begin();
900 itr != oldDep.end(); ++itr,++
l) {
901 if (lay >= (itr->second).first && lay <= (itr->second).
second) {
906 int odepth(0), maxlay(0);
908 for (
std::map<
int,std::pair<int,int> >::iterator itr=oldDep.begin();
909 itr != oldDep.end(); ++itr,++
l) {
910 if (
count[l] > maxlay) {
916 std::cout <<
"New Depth " << ndepth <<
" old Depth " << odepth
917 <<
" max " << maxlay << std::endl;
919 for (
unsigned int k=0;
k<phis.size(); ++
k) {
920 zside = (phis[
k] > 0) ? 1 : -1;
921 phi = (phis[
k] > 0) ? phis[
k] : -phis[
k];
924 HcalDetId newId(subdet,zside*eta,phi,ndepth);
925 HcalDetId oldId(subdet,zside*eta,phi,odepth);
927 std::vector<HcalDetId> ids;
928 std::map<HcalDetId,std::vector<HcalDetId>>::iterator itr =
detIdSpR_.find(oldId);
929 if (itr !=
detIdSpR_.end()) ids = itr->second;
930 ids.push_back(newId);
937 std::cout <<
"Map for merging new channels to old channel IDs with " 938 <<
detIdSp_.size() <<
" entries" << std::endl;
940 for (std::map<HcalDetId,HcalDetId>::const_iterator itr=
detIdSp_.begin();
942 std::cout <<
"[" << l <<
"] Special " << itr->first <<
" Standard " 943 << itr->second << std::endl;
945 std::cout <<
"Reverse Map for mapping old to new IDs with " 946 <<
detIdSpR_.size() <<
" entries" << std::endl;
950 std::cout <<
"[" << l <<
"] Standard " << itr->first <<
" Special";
951 for (
unsigned int k=0;
k < itr->second.size(); ++
k)
963 if (it.layer == (
unsigned int)(eta + 1)) {
964 return it.layerGroup.size();
966 if (it.layer > (
unsigned int)(eta + 1))
break;
967 k = it.layerGroup.size();
976 if (it.layer == (
unsigned int)(eta + 1)) {
977 return it.layerGroup.at(i);
979 if (it.layer > (
unsigned int)(eta + 1))
break;
980 k = it.layerGroup.at(i);
void setPhi(std::vector< std::pair< int, double >> &phis, std::vector< int > &iphiMiss, double foff, double dphi, int unit)
std::pair< int, int > getMaxDepthDet(const int i) const
int findDepth(const int det, const int eta, const int phi, const int zside, const int lay) 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::vector< int > getDepth(const int det, const int phi, const int zside, const unsigned int eta) const
double getRZ(int subdet, int ieta, int depth) 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
std::pair< double, double > getPhiCons(const int det, const int ieta) const
HcalDetId mergedDepthDetId(const HcalDetId &id) const
Sin< T >::type sin(const T &t)
Geom::Theta< T > theta() const
int getMaxDepth(const int type) const
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
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
unsigned int numberOfCells(HcalSubdetector) const
int getLayerBack(const int subdet, const int ieta, const int iphi, const int zside, const int depth) const
void getLayerDepth(int ieta, std::map< int, int > &layers) const
std::vector< int > etaMax
std::vector< int > phiUnitS
int getDepthEta29M(const int i, const bool planOne) const
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 getMaxDepth(const int type) const
int validDet(std::vector< int > &phis) const
std::vector< std::pair< double, double > > gconsHE
std::vector< double > zHE
std::vector< double > phibin
std::vector< std::pair< int, double > > getPhis(int subdet, int ieta) const
const std::vector< double > & getRTableHF() const
void specialRBXHBHE(const std::vector< HcalDetId > &, std::vector< HcalDetId > &) const
int getMinDepth(const int itype, const int ieta, const int iphi, const int zside) const
unsigned int numberOfCells(HcalSubdetector) const
HcalDetId idFront(const HcalDetId &id) const
int getDepthEta29(const int phi, int zside, int i) const
HcalID getHCID(int subdet, int ieta, int iphi, int lay, int idepth) const
std::vector< double > dzHE
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
int getMinDepth(const int det, const int eta, const int phi, const int zside, bool partialOnly) const
int getDepthEta16(const int det, const int phi, const int zside) const
std::vector< HcalCellType > HcalCellTypes(HcalSubdetector) const
HcalDetId idBack(const HcalDetId &id) const
std::vector< HcalActiveLength > getThickActive(const int type) 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)
void unmergeDepthDetId(const HcalDetId &id, std::vector< HcalDetId > &ids) const
std::vector< double > phitable
int phiNumber(const int phi, const int unit) const
int getDepthEta16M(const int det) const
TString units(TString variable, Char_t axis)
std::vector< double > phibin
std::vector< LayerItem > layerGroupEtaRec
int unitPhi(const int det, const int etaR) const
std::vector< double > drHB
const HcalDDDSimConstants & hcons
std::pair< int, int > depthMaxDf_
const std::vector< HcalDetId > & getIdHF2QIE() const
std::vector< std::pair< double, double > > gconsHB
std::vector< int > maxDepth
std::vector< int > phigroup
std::pair< double, double > getEtaPhi(int subdet, int ieta, int iphi) const
static const int maxLayerHB_
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
std::vector< HcalEtaBin > getEtaBins(const int itype) const
const HcalLayerDepthMap * ldMap() const