48 int idet = 0, lay = -1;
49 int nsiz =
static_cast<int>(
copy.size());
51 lay =
copy[nsiz - 1] / 10;
53 idet =
copy[nsiz - 2] / 1000;
57 double dx = 0,
dy = 0,
dz = 0, dx1 = 0, dx2 = 0;
81 edm::LogVerbatim(
"HCalGeom") <<
"HB " <<
sol.name() <<
" Shape " <<
sol.shape() <<
" Layer " << lay <<
" R " 87 if (
thkb_[lay] <= 0) {
95 for (
double k :
rxb_) {
105 php.
dyHB.emplace_back(2. *
dy);
106 php.
dxHB.emplace_back(2. *
dz);
107 php.
layHB.emplace_back(lay);
112 int iz =
copy[nsiz - 5];
113 int fi =
copy[nsiz - 4];
115 if (it1 ==
izb_.size())
116 izb_.emplace_back(iz);
118 if (it2 ==
phib_.size())
119 phib_.emplace_back(fi);
122 int ifi = -1, ich = -1;
124 ifi =
copy[nsiz - 3];
126 ich =
copy[nsiz - 4];
131 if (ifi == 1 && ich == 4) {
138 for (
unsigned int kk = 0;
kk < php.
zHO.size();
kk++) {
143 php.
zHO.resize(php.
zHO.size() + 2);
144 for (
unsigned int kz = php.
zHO.size() - 1; kz >
kk + 1; kz = kz - 2) {
145 php.
zHO[kz] = php.
zHO[kz - 2];
146 php.
zHO[kz - 1] = php.
zHO[kz - 3];
155 php.
zHO.emplace_back(z1);
156 php.
zHO.emplace_back(
z2);
159 edm::LogVerbatim(
"HCalGeom") <<
"Detector " << idet <<
" Lay " << lay <<
" fi " << ifi <<
" " << ich <<
" z " 164 }
else if (idet == 4) {
167 edm::LogVerbatim(
"HCalGeom") <<
"HE " <<
sol.name() <<
" Shape " <<
sol.shape() <<
" Layer " << lay <<
" Z " 180 for (
double k : php.
zxHE) {
192 php.
dx1HE.emplace_back(-dx1);
193 php.
dx2HE.emplace_back(-dx2);
194 php.
layHE.emplace_back(lay);
198 int iz =
copy[nsiz - 7];
199 int fi =
copy[nsiz - 5];
201 if (it1 ==
ize_.size())
202 ize_.emplace_back(iz);
204 if (it2 ==
phie_.size())
205 phie_.emplace_back(fi);
207 }
else if (idet == 5) {
210 const std::vector<double>& paras =
sol.parameters();
213 << paras.size() <<
" Parameters";
214 for (
unsigned j = 0;
j < paras.size();
j++)
218 int nz = (
int)(paras.size()) - 3;
228 edm::LogVerbatim(
"HCalGeom") <<
"Unknown Detector " << idet <<
" for " <<
sol.name() <<
" Shape " <<
sol.shape()
229 <<
" R " <<
t.Rho() <<
" Z " <<
t.z();
Log< level::Info, true > LogVerbatim
std::vector< double > zHO
nav_type copyNumbers() const
return the stack of copy numbers
std::vector< double > rhoxHB
std::vector< double > thke_
static const int maxLayer_
double halfZ(void) const
half of the z-Axis
std::vector< double > dx2HE
static const int kHELayer1_
A DDSolid represents the shape of a part.
std::vector< double > rxb_
std::vector< double > rhoxHE
std::vector< double > zxHE
static constexpr double k_ScaleFromDDDToG4
static const int kHELayer2_
double x3(void) const
Half-length along x of the side at y=-pDy2 of the face at +pDz.
std::vector< double > dyHE
std::vector< double > zxHB
std::vector< double > rminHE_
bool next()
set current node to the next node in the filtered tree
std::vector< double > dx1HE
unsigned find(int element, std::vector< int > &array) const
Cos< T >::type cos(const T &t)
void loadfinal(HcalParameters &php)
Interface to a Trapezoid.
Abs< T >::type abs(const T &t)
double y2(void) const
Half-length along y of the face at +pDz.
static const double tan10deg
std::vector< double > rb_
double x4(void) const
Half-length along x of the side at y=+pDy2 of the face at +pDz.
const DDLogicalPart & logicalPart() const
The logical-part of the current node in the filtered-view.
std::vector< double > dyHB
double x2(void) const
Half-length along x of the side at y=+pDy1 of the face at -pDz.
double alpha1(void) const
Angle with respect to the y axis from the centre of the side at y=-pDy1 to the centre at y=+pDy1 of t...
const DDSolid & solid(void) const
Returns a reference object of the solid being the shape of this LogicalPart.
double alpha2(void) const
Angle with respect to the y axis from the centre of the side at y=-pDy2 to the centre at y=+pDy2 of t...
std::vector< double > dxHB
std::vector< double > ze_
double y1(void) const
Half-length along y of the face at -pDz.
std::vector< double > thkb_
std::vector< double > rmaxHE_
const DDTranslation & translation() const
The absolute translation of the current node.
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double > > DDTranslation
void clear(HcalParameters &php)
double x1(void) const
Half-length along x of the side at y=-pDy1 of the face at -pDz.