36 if (geom->
parMgr() ==
nullptr)
53 if (geom->
parMgr() ==
nullptr)
70 std::cout <<
"HcalDDDGeometryLoader::fill gets " << hcalCells.size() <<
" cells for subdetector " << subdet
75 std::vector<HcalDetId> hcalIds;
76 for (
auto& hcalCell : hcalCells) {
77 int etaRing = hcalCell.etaBin();
78 int iside = hcalCell.zside();
79 int depthBin = hcalCell.depthSegment();
80 double dphi = hcalCell.phiBinWidth();
81 std::vector<std::pair<int, double> > phis = hcalCell.phis();
83 std::cout <<
"HcalDDDGeometryLoader: Subdet " << subdet <<
" side " << iside <<
" eta " << etaRing <<
" depth "
84 << depthBin <<
" with " << phis.size() <<
"modules:" << std::endl;
88 for (
auto&
phi : phis) {
90 std::cout <<
"HcalDDDGeometryLoader::fill Cell " << i <<
" eta " << iside * etaRing <<
" phi " <<
phi.first <<
"("
91 <<
phi.second / CLHEP::deg <<
", " << dphi / CLHEP::deg <<
") depth " << depthBin << std::endl;
95 hcalIds.emplace_back(
id);
100 edm::LogInfo(
"HCalGeom") <<
"Number of HCAL DetIds made for " << subdet <<
" is " << hcalIds.size();
110 double deta = (eta2 -
eta1);
111 double theta = 2.0 * atan(
exp(-eta));
125 thickness = (hcalCell.
depthMax() -
r) * cosh(eta);
129 r0 = 0.5 * (r1 +
r2);
133 thickness = 2. * hcalCell.
halfSize();
137 r1 = z / sinh(
std::abs(eta) + 0.5 * deta);
138 r2 = z / sinh(
std::abs(eta) - 0.5 * deta);
142 std::cout <<
"HcalDDDGeometryLoader::makeCell SubDet " << subdet <<
" eta = " << eta <<
" theta = " << theta
143 <<
" r = " << r <<
" thickness = " << thickness <<
" r0-r2 (" << r0 <<
":" << r1 <<
":" << r2 <<
")"
156 r1 = z / sinh(
std::abs(eta) + 0.5 * deta);
157 r2 = z / sinh(
std::abs(eta) - 0.5 * deta);
158 std::cout <<
"HcalDDDGeometryLoader::makeCell SubDet " << subdet <<
" eta = " << eta <<
" theta = " << theta
159 <<
" z = " << z <<
" r = " << r <<
" thickness = " << thickness <<
" r0-r2 (" << r0 <<
":" << r1 <<
":"
160 << r2 <<
")" << std::endl;
164 double x = r *
cos(phi);
165 double y = r *
sin(phi);
169 std::cout <<
"HcalDDDGeometryLoader::makeCell for " << detId <<
" Point " << point <<
" deta = " << deta
170 <<
" dphi = " << dphi <<
" thickness = " << thickness <<
" isBarrel = " << isBarrel <<
" " << rzType
174 std::vector<CCGFloat> hp;
178 hp.emplace_back(deta / 2.);
179 hp.emplace_back(dphi / 2.);
180 hp.emplace_back(thickness / 2.);
182 const double sign(isBarrel ? 1 : -1);
183 hp.emplace_back(deta / 2.);
184 hp.emplace_back(dphi / 2.);
185 hp.emplace_back(sign * thickness / 2.);
uint16_t *__restrict__ id
constexpr int zside() const
get the z-side of the cell (1/-1)
Sin< T >::type sin(const T &t)
Geom::Theta< T > theta() const
Exp< T >::type exp(const T &t)
void allocatePar(ParVec::size_type n, unsigned int m)
void fill(HcalSubdetector, HcalDDDGeometry *)
HcalDDDGeometryLoader()=delete
void newCellFast(const GlobalPoint &f1, const GlobalPoint &f2, const GlobalPoint &f3, const CCGFloat *parm, const DetId &detId)
constexpr HcalSubdetector subdet() const
get the subdetector
unsigned int numberOfCells(HcalSubdetector) const
int insertCell(std::vector< HcalCellType > const &)
void increaseReserve(unsigned int extra)
Cos< T >::type cos(const T &t)
Tan< T >::type tan(const T &t)
Abs< T >::type abs(const T &t)
CaloCellGeometry::CCGFloat CCGFloat
static const CCGFloat * getParmPtr(const std::vector< CCGFloat > &vd, ParMgr *mgr, ParVecVec &pvv)
ReturnType load(const HcalTopology &topo, DetId::Detector, int)
std::vector< HcalCellType > HcalCellTypes(HcalSubdetector) const
const HcalDDDRecConstants * hcalConstants_
Log< level::Info, false > LogInfo
void makeCell(const HcalDetId &, const HcalCellType &, double, double, HcalDDDGeometry *geom) const
double etaMax() const
cell edge, always positive & greater than etaMin
CaloCellGeometry::CornersMgr * cornersMgr()
double etaMin() const
lower cell edge. Always positive
virtual ~HcalDDDGeometryLoader()
void allocateCorners(CaloCellGeometry::CornersVec::size_type n)
*vegas h *****************************************************used in the default bin number in original ***version of VEGAS is ***a higher bin number might help to derive a more precise ***grade subtle point