395 double hthick = 0.5 * thick;
402 <<
" of dimensions " << rmid <<
", " << rout <<
", " << hthick <<
", 0.0, 360.0";
404 cpv.
position(glog1, glog, 1, tran, rot);
407 <<
" at " << tran <<
" with no rotation";
409 double thickTot(0), zpos(-hthick);
417 edm::LogVerbatim(
"HGCalGeom") <<
"DDHGCalHEFileAlgo: Layer " << ly <<
":" << ii <<
" R " << rmid <<
":" << rout
425 double eta1 = -
log(
tan(0.5 * atan(rmid / zz)));
426 double eta2 = -
log(
tan(0.5 * atan(rout / zz)));
427 edm::LogVerbatim(
"HGCalGeom") << name <<
" z|rin|rout " << zz <<
":" << rmid <<
":" << rout <<
" eta " << eta1
429 edm::LogVerbatim(
"HGCalGeom") <<
"DDHGCalHEFileAlgo: " << solid.
name() <<
" Tubs made of " << matName
430 <<
" of dimensions " << rmid <<
", " << rout <<
", " << hthickl <<
", 0.0, 360.0";
436 edm::LogVerbatim(
"HGCalGeom") <<
"DDHGCalHEFileAlgo: Position " << glog2.
name() <<
" number " << copy <<
" in "
437 << glog1.
name() <<
" at " <<
r1 <<
" with no rotation";
443 if (thickTot > thick) {
444 edm::LogError(
"HGCalGeom") <<
"Thickness of the partition " << thick <<
" is smaller than " << thickTot
445 <<
": thickness of all its components in the top part **** ERROR ****";
447 edm::LogWarning(
"HGCalGeom") <<
"Thickness of the partition " << thick <<
" does not match with " << thickTot
448 <<
" of the components in top part";
453 name = nameM +
"Bottom";
458 <<
" of dimensions " << rin <<
", " << rmid <<
", " << hthick <<
", 0.0, 360.0";
460 cpv.
position(glog1, glog, 1, tran, rot);
463 <<
" at " << tran <<
" with no rotation";
474 edm::LogVerbatim(
"HGCalGeom") <<
"DDHGCalHEFileAlgo: Layer " << ly <<
":" << ii <<
" R " << rin <<
":" << rmid
482 double eta1 = -
log(
tan(0.5 * atan(rin / zz)));
483 double eta2 = -
log(
tan(0.5 * atan(rmid / zz)));
484 edm::LogVerbatim(
"HGCalGeom") << name <<
" z|rin|rout " << zz <<
":" << rin <<
":" << rmid <<
" eta " << eta1 <<
":"
486 edm::LogVerbatim(
"HGCalGeom") <<
"DDHGCalHEFileAlgo: " << solid.
name() <<
" Tubs made of " << matName
487 <<
" of dimensions " << rin <<
", " << rmid <<
", " << hthickl <<
", 0.0, 360.0";
493 edm::LogVerbatim(
"HGCalGeom") <<
"DDHGCalHEFileAlgo: Position " << glog2.
name() <<
" number " << copy <<
" in "
494 << glog1.
name() <<
" at " <<
r1 <<
" with no rotation";
498 edm::LogVerbatim(
"HGCalGeom") <<
"DDHGCalHEFileAlgo: z " << (zz + zpos) <<
" Center " << copy <<
":"
507 if (thickTot > thick) {
508 edm::LogError(
"HGCalGeom") <<
"Thickness of the partition " << thick <<
" is smaller than " << thickTot
509 <<
": thickness of all its components in the top part **** ERROR ****";
511 edm::LogWarning(
"HGCalGeom") <<
"Thickness of the partition " << thick <<
" does not match with " << thickTot
512 <<
" of the components in top part";
Log< level::Info, true > LogVerbatim
static std::vector< std::string > checklist log
void position(const DDLogicalPart &self, const DDLogicalPart &parent, const std::string ©no, const DDTranslation &trans, const DDRotation &rot, const DDDivision *div=nullptr)
DDMaterial is used to define and access material information.
DDName is used to identify DDD entities uniquely.
std::vector< std::string > materialsTop_
std::string to_string(const V &value)
std::vector< int > layerTypeTop_
Log< level::Error, false > LogError
A DDSolid represents the shape of a part.
Represents a uniquely identifyable rotation matrix.
U second(std::pair< T, U > const &p)
std::vector< std::string > namesTop_
Tan< T >::type tan(const T &t)
Abs< T >::type abs(const T &t)
A DDLogicalPart aggregates information concerning material, solid and sensitveness ...
static DDSolid tubs(const DDName &name, double zhalf, double rIn, double rOut, double startPhi, double deltaPhi)
std::vector< double > layerThickTop_
std::vector< int > layerTypeBot_
std::vector< std::string > materialsBot_
std::vector< int > copyNumberTop_
void positionSensitive(const DDLogicalPart &glog, double rin, double rout, double zpos, int layertype, int layer, DDCompactView &cpv)
std::vector< int > copyNumberBot_
std::vector< int > layerCenter_
std::vector< int > layerSenseBot_
static constexpr double tol2_
Log< level::Warning, false > LogWarning
std::vector< std::string > namesBot_
std::pair< std::string, std::string > DDSplit(const std::string &n)
split into (name,namespace), separator = ':'
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double > > DDTranslation
std::vector< double > layerThickBot_