14 #include "CLHEP/Units/GlobalSystemOfUnits.h"
16 #include <CLHEP/Geometry/Point3D.h>
17 #include <CLHEP/Geometry/Vector3D.h>
18 #include <CLHEP/Geometry/Transform3D.h>
29 #include "CLHEP/Geometry/Transform3D.h"
36 typedef HepGeom::Point3D<double>
Pt3D;
37 typedef HepGeom::Transform3D
Tf3D;
38 typedef HepGeom::ReflectZ3D
RfZ3D;
39 typedef HepGeom::Translate3D
Tl3D;
40 typedef HepGeom::Rotate3D
Ro3D;
41 typedef HepGeom::RotateZ3D
RoZ3D;
42 typedef HepGeom::RotateY3D
RoY3D;
43 typedef HepGeom::RotateX3D
RoX3D;
45 typedef CLHEP::Hep3Vector
Vec3;
46 typedef CLHEP::HepRotation
Rota;
425 void web(
unsigned int iWeb,
947 m_vecIlyPipeLength(),
963 m_IlyFanOutLength(0),
964 m_IlyFanOutHeight(0),
1005 m_BackSideLength(0),
1006 m_BackSideHeight(0),
1012 m_BackPlateName(
""),
1014 m_BackPlateLength(0),
1015 m_BackPlateThick(0),
1016 m_BackPlateWidth(0),
1018 m_BackPlate2Name(
""),
1019 m_BackPlate2Thick(0),
1020 m_BackPlate2Mat(
""),
1027 m_vecGrilleHeight(),
1029 m_GrEdgeSlotName(
""),
1030 m_GrEdgeSlotMat(
""),
1031 m_GrEdgeSlotHere(0),
1032 m_GrEdgeSlotHeight(0),
1033 m_GrEdgeSlotWidth(0),
1034 m_GrMidSlotName(
""),
1037 m_GrMidSlotWidth(0),
1039 m_vecGrMidSlotHeight(),
1042 m_vecBackPipeDiam(),
1043 m_vecBackPipeThick(),
1045 m_BackPipeWaterMat(
""),
1047 m_vecBackCoolName(),
1049 m_BackCoolBarHere(0),
1050 m_BackCoolBarWidth(0),
1051 m_BackCoolBarHeight(0),
1053 m_BackCoolBarName(
""),
1054 m_BackCoolBarThick(0),
1055 m_BackCoolBarMat(
""),
1056 m_BackCoolBarSSName(
""),
1057 m_BackCoolBarSSThick(0),
1058 m_BackCoolBarSSMat(
""),
1059 m_BackCoolBarWaName(
""),
1060 m_BackCoolBarWaThick(0),
1061 m_BackCoolBarWaMat(
""),
1062 m_BackCoolVFEHere(0),
1063 m_BackCoolVFEName(
""),
1064 m_BackCoolVFEMat(
""),
1067 m_vecBackVFELyrThick(),
1068 m_vecBackVFELyrName(),
1069 m_vecBackVFELyrMat(),
1070 m_vecBackCoolNSec(),
1071 m_vecBackCoolSecSep(),
1072 m_vecBackCoolNPerSec(),
1075 m_vecBackMiscThick(),
1076 m_vecBackMiscName(),
1079 m_PatchPanelHere(0),
1080 m_PatchPanelName(
""),
1081 m_vecPatchPanelThick(),
1082 m_vecPatchPanelNames(),
1083 m_vecPatchPanelMat(),
1084 m_BackCoolTankHere(0),
1085 m_BackCoolTankName(
""),
1086 m_BackCoolTankWidth(0),
1087 m_BackCoolTankThick(0),
1088 m_BackCoolTankMat(
""),
1089 m_BackCoolTankWaName(
""),
1090 m_BackCoolTankWaWidth(0),
1091 m_BackCoolTankWaMat(
""),
1092 m_BackBracketName(
""),
1093 m_BackBracketHeight(0),
1094 m_BackBracketMat(
""),
1096 m_DryAirTubeHere(0),
1097 m_DryAirTubeName(
""),
1099 m_DryAirTubeInnDiam(0),
1100 m_DryAirTubeOutDiam(0),
1101 m_DryAirTubeMat(
""),
1102 m_MBCoolTubeHere(0),
1103 m_MBCoolTubeName(
""),
1104 m_MBCoolTubeInnDiam(0),
1105 m_MBCoolTubeOutDiam(0),
1106 m_MBCoolTubeMat(
""),
1109 m_MBManifInnDiam(0),
1110 m_MBManifOutDiam(0),
1118 m_PincerRodName(
""),
1120 m_vecPincerRodAzimuth(),
1121 m_PincerEnvName(
""),
1123 m_PincerEnvWidth(0),
1124 m_PincerEnvHeight(0),
1125 m_PincerEnvLength(0),
1126 m_vecPincerEnvZOff(),
1127 m_PincerBlkName(
""),
1129 m_PincerBlkLength(0),
1130 m_PincerShim1Name(
""),
1131 m_PincerShimHeight(0),
1132 m_PincerShim2Name(
""),
1133 m_PincerShimMat(
""),
1134 m_PincerShim1Width(0),
1135 m_PincerShim2Width(0),
1136 m_PincerCutName(
""),
1138 m_PincerCutWidth(0),
1139 m_PincerCutHeight(0)
1143 edm::LogVerbatim(
"EcalGeom") <<
"DDEcalBarrelAlgo info: Creating an instance";
1183 m_SpmNPerHalf =
static_cast<unsigned int>(nArgs[
"SpmNPerHalf"]);
1234 m_NCryTypes =
static_cast<unsigned int>(nArgs[
"NCryTypes"]);
1359 m_NFawPerSupm =
static_cast<unsigned int>(nArgs[
"NFawPerSupm"]);
1525 edm::LogVerbatim(
"EcalGeom") <<
"******** DDEcalBarrelAlgo execute!" << std::endl;
1528 const unsigned int copyOne(1);
1529 const unsigned int copyTwo(2);
1580 const std::vector<double>& cutBoxParms(spmCutBox.
parameters());
1616 const std::vector<double>& sideParms(sideSolid.
parameters());
1621 for (
unsigned int icopy(1); icopy <= 2; ++icopy) {
1625 const Tl3D tr(tvec[0], tvec[1], tvec[2]);
1626 const RoZ3D ro(rang);
1635 const Tl3D trSide(tvec[0],
1636 tvec[1] + (1 == icopy ? 1. : -1.) * (cutBoxParms[1] + sideParms[1]) +
1639 const RoZ3D roSide(rang);
1650 << sideddtra <<
" with rotation";
1657 << ddtra <<
" with rotation";
1665 << spmCutBox.
name() <<
" at " << ddtra;
1679 const double dphi(360. * deg / (1. *
spmNPerHalf()));
1680 for (
unsigned int iphi(0); iphi < 2 *
spmNPerHalf(); ++iphi) {
1693 const unsigned int offr(4 * iphi);
1694 const unsigned int offt(3 * iphi);
1701 const Tf3D both(rotaExtra * rotaBase);
1707 DDTranslation myTran(both.getTranslation().x(), both.getTranslation().y(), both.getTranslation().z());
1711 << myTran <<
" with rotation";
1721 for (
unsigned int ilyx(0); ilyx !=
vecIlyThick().size(); ++ilyx) {
1728 edm::LogVerbatim(
"EBGeom") << ilyDDName <<
" Tubs " << ilyLength / 2 <<
":" << ilyRMin <<
":" << ilyRMin + ilyThick
1734 edm::LogVerbatim(
"EBGeomX") << ilyDDName <<
":" << copyOne <<
" positioned in " << spmLog.
name() <<
" at "
1735 <<
DDTranslation(0, 0, ilyLength / 2) <<
" with no rotation";
1740 for (
unsigned int iPipeType(0); iPipeType !=
vecIlyPipeLength().size(); ++iPipeType) {
1747 <<
":0:" <<
ilyPipeOD() / 2 <<
":0:360";
1756 <<
":0:" <<
ilyPipeID() / 2 <<
":0:360";
1762 edm::LogVerbatim(
"EBGeomX") << pWaName <<
":" << copyOne <<
" positioned in " << pName <<
" at "
1815 <<
" with no rotation";
1825 <<
" with no rotation";
1827 for (
unsigned int ily(0); ily !=
vecIlyThick().size(); ++ily) {
1828 const double ilyRMax(ilyRMin +
vecIlyThick()[ily]);
1833 edm::LogVerbatim(
"EBGeom") << xilyName <<
" Tubs " << ilyLength / 2 <<
":" << ilyRMin <<
":" << ilyRMax <<
":"
1845 unsigned int copyNum[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
1849 unsigned int ptmCopy(0);
1850 for (
unsigned int ilyPTM(0); ilyPTM !=
vecIlyPTMZ().size(); ++ilyPTM) {
1853 const double yy(radius *
sin(phi));
1854 const double xx(radius *
cos(phi));
1860 myrot(ilyPTMLog.
name().
name() +
"_rot" + std::to_string(ptmCopy), CLHEP::HepRotationZ(phi)));
1863 << ilyPTMLog.
name() <<
":" << ptmCopy <<
" positioned in " << xilyLog.
name() <<
" at "
1869 unsigned int fanOutCopy(0);
1870 for (
unsigned int ilyFO(0); ilyFO !=
vecIlyFanOutZ().size(); ++ilyFO) {
1873 const double yy(radius *
sin(phi));
1874 const double xx(radius *
cos(phi));
1880 myrot(ilyFanOutLog.
name().
name() +
"_rot" + std::to_string(fanOutCopy),
1881 CLHEP::HepRotationZ(phi) * CLHEP::HepRotationY(180 * deg)));
1884 << ilyFanOutLog.
name() <<
":" << fanOutCopy <<
" positioned in " << xilyLog.
name() <<
" at "
1888 unsigned int femCopy(0);
1889 for (
unsigned int ilyFEM(0); ilyFEM !=
vecIlyFEMZ().size(); ++ilyFEM) {
1892 const double yy(radius *
sin(phi));
1893 const double xx(radius *
cos(phi));
1899 myrot(ilyFEMLog.
name().
name() +
"_rot" + std::to_string(femCopy), CLHEP::HepRotationZ(phi)));
1902 << ilyFEMLog.
name() <<
":" << femCopy <<
" positioned in " << xilyLog.
name() <<
" at "
1907 for (
unsigned int iPipe(0); iPipe !=
vecIlyPipePhi().size(); ++iPipe) {
1912 for (
unsigned int ly(0); ly != 2; ++ly) {
1915 const double yy(radius *
sin(phi));
1916 const double xx(radius *
cos(phi));
1924 :
myrot(ilyPipeLog[type].
name().
name() +
"_rot" + std::to_string(copyNum[type]),
1925 Rota(
Vec3(xx, yy, 0), 90 * deg))));
1927 std::string rrr = (9 >
type) ?
" with no rotation" :
" with rotation";
1940 std::vector<double> cri;
1941 std::vector<double> cro;
1942 std::vector<double> czz;
1951 edm::LogVerbatim(
"EBGeom") << clyrName <<
" PolyCone from -9.5 to 9.5 with " << czz.size() <<
" points";
1952 for (
unsigned int k = 0;
k < czz.size(); ++
k)
1982 const double beta1(atan((BNom1 - bNom1) / LNom1));
1984 const double sinbeta1(
sin(beta1));
1986 const double tana_hawR((BNom1 - bNom1) / LNom1);
1990 const double a_hawR(bNom1 + sClr1 + 2 * sWrap1 + 2 * sWall1 - sinbeta1 * (fClr1 + fWrap1 + fWall1));
1991 const double B_hawR(a_hawR + H_hawR * tana_hawR);
1992 const double b_hawR(a_hawR + h_hawR * tana_hawR);
1995 const Trap trapHAWR(a_hawR / 2.,
2010 const double al1_fawR(atan((B_hawR - a_hawR) / H_hawR) +
M_PI_2);
2013 const Trap trapFAW(a_hawR,
2031 const double hawBoxClr(1 * mm);
2040 const std::vector<double>& hawBoxParms(hawCutBox.
parameters());
2043 const Pt3D b1(hawBoxParms[0], hawBoxParms[1], hawBoxParms[2]);
2044 const Pt3D b2(-hawBoxParms[0], hawBoxParms[1], hawBoxParms[2]);
2045 const Pt3D b3(-hawBoxParms[0], hawBoxParms[1], -hawBoxParms[2]);
2049 const Tf3D hawCutForm(b1,
2054 Pt3D(vHAW[0].
x() - hawBoxClr, vHAW[0].
y(), vHAW[0].
z() - zDel));
2061 hawCutForm.getTranslation().x(), hawCutForm.getTranslation().y(), hawCutForm.getTranslation().z()),
2062 myrot(hawCutName.
name() +
"R", hawCutForm.getRotation())));
2067 hawCutForm.getTranslation().y(),
2068 hawCutForm.getTranslation().z());
2076 edm::LogVerbatim(
"EBGeom") << fawCutName <<
" Box " << 2 * hawBoxParms[0] <<
":" << hawBoxParms[1] <<
":"
2080 const std::vector<double>& fawBoxParms(fawCutBox.
parameters());
2083 const Pt3D bb1(fawBoxParms[0], fawBoxParms[1], fawBoxParms[2]);
2084 const Pt3D bb2(-fawBoxParms[0], fawBoxParms[1], fawBoxParms[2]);
2085 const Pt3D bb3(-fawBoxParms[0], fawBoxParms[1], -fawBoxParms[2]);
2087 const Tf3D fawCutForm(bb1,
2090 vFAW[2] +
Pt3D(2 * hawBoxClr, -5 * mm, 0),
2091 vFAW[1] +
Pt3D(-2 * hawBoxClr, -5 * mm, 0),
2092 Pt3D(vFAW[1].
x() - 2 * hawBoxClr, vFAW[1].
y() - trapFAW.
h(), vFAW[1].z() - zDel));
2099 fawCutForm.getTranslation().x(), fawCutForm.getTranslation().y(), fawCutForm.getTranslation().z()),
2100 myrot(fawCutName.
name() +
"R", fawCutForm.getRotation())));
2104 fawCutForm.getTranslation().y(),
2105 fawCutForm.getTranslation().z());
2109 const Tf3D hawRform(vHAW[3],
2113 0.5 * (vFAW[0] + vFAW[3]),
2114 0.5 * (vFAW[1] + vFAW[2]));
2119 DDTranslation(hawRform.getTranslation().x(), hawRform.getTranslation().y(), hawRform.getTranslation().z()),
2122 edm::LogVerbatim(
"EBGeomX") << hawRLog.name() <<
":" << copyOne <<
" positioned in " << fawLog.name() <<
" at "
2124 hawRform.getTranslation().y(),
2125 hawRform.getTranslation().z())
2126 <<
" with rotation";
2132 DDTranslation(-hawRform.getTranslation().x(), -hawRform.getTranslation().y(), -hawRform.getTranslation().z()),
2134 CLHEP::HepRotationY(180 * deg) *
2135 CLHEP::HepRep3x3(1, 0, 0, 0, 1, 0, 0, 0, -1)));
2137 edm::LogVerbatim(
"EBGeomX") << hawRLog.name() <<
":" << copyTwo <<
" positioned in " << fawLog.name() <<
" at "
2139 -hawRform.getTranslation().y(),
2140 -hawRform.getTranslation().z())
2141 <<
" with rotation";
2152 for (
unsigned int iPhi(1); iPhi <=
nFawPerSupm(); ++iPhi) {
2162 DDTranslation(fawform.getTranslation().x(), fawform.getTranslation().y(), fawform.getTranslation().z()),
2163 myrot(
fawName().
name() +
"_Rot" + std::to_string(iPhi), fawform.getRotation()));
2165 edm::LogVerbatim(
"EBGeomX") << fawLog.name() <<
":" << iPhi <<
" positioned in " << spmLog.
name() <<
" at "
2167 fawform.getTranslation().y(),
2168 fawform.getTranslation().z())
2169 <<
" with rotation";
2179 const Trap trapGrid((B_hawR - h_Grid * (B_hawR - a_hawR) / H_hawR) / 2,
2180 (b_hawR - h_Grid * (B_hawR - a_hawR) / H_hawR) / 2,
2184 (L_hawR - 8 * cm) / 2.,
2195 const Tf3D gridForm(vGrid[4],
2198 vHAW[5] -
Pt3D(0, h_Grid, 0),
2207 DDTranslation(gridForm.getTranslation().x(), gridForm.getTranslation().y(), gridForm.getTranslation().z()),
2212 gridForm.getTranslation().y(),
2213 gridForm.getTranslation().z())
2214 <<
" with rotation";
2244 double theta(90 * deg);
2246 double side(0 * mm);
2247 double zeta(0 * deg);
2249 for (
unsigned int cryType(1); cryType <=
nCryTypes(); ++cryType) {
2261 const double alfCry(90 * deg + atan((bNom - bUnd - aNom + aUnd) / (hNom - hUnd)));
2263 const Trap trapCry((ANom - AUnd) / 2.,
2270 aNom - aUnd - ANom + AUnd,
2271 hNom - hUnd - HNom + HUnd
2279 const unsigned int copyCap(1);
2301 const unsigned int copySGL(1);
2313 unsigned int copyCER(0);
2325 const unsigned int copyBSi(1);
2337 const unsigned int copyATJ(1);
2349 const unsigned int copyAGL(1);
2361 const unsigned int copyAND(1);
2373 const unsigned int copyAPD(1);
2376 const double delta(atan((HNom - hNom) / LNom));
2378 const double sindelta(
sin(delta));
2380 const double gamma(atan((ANom - aNom) / LNom));
2382 const double singamma(
sin(gamma));
2384 const double beta(atan((BNom - bNom) / LNom));
2386 const double sinbeta(
sin(beta));
2389 const double alfClr(90 * deg + atan((bNom - aNom) / (hNom + sClr)));
2391 const Trap trapClr((ANom + sClr + rClr * singamma) / 2.,
2392 (aNom + sClr - fClr * singamma) / 2.,
2393 (bNom + sClr - fClr * sinbeta) / 2.,
2394 (HNom + sClr + rClr * sindelta) / 2.,
2395 (hNom + sClr - fClr * sindelta) / 2.,
2396 (LNom + fClr + rClr) / 2.,
2408 const double alfWrap(90 * deg + atan((bNom - aNom) / (hNom + sClr + 2 * sWrap)));
2410 const Trap trapWrap((trapClr.
A() + 2 * sWrap + rWrap * singamma) / 2,
2411 (trapClr.
a() + 2 * sWrap - fWrap * singamma) / 2,
2412 (trapClr.
b() + 2 * sWrap - fWrap * sinbeta) / 2,
2413 (trapClr.
H() + 2 * sWrap + rWrap * sindelta) / 2,
2414 (trapClr.
h() + 2 * sWrap - fWrap * sindelta) / 2,
2415 (trapClr.
L() + fWrap + rWrap) / 2.,
2417 aNom - ANom - (cryType > 9 ? 0 : 0.020 * mm),
2422 const DDSolid wrapSolid(
mytrap(wrapDDName.name(), trapWrap));
2427 const double alfWall(90 * deg + atan((bNom - aNom) / (hNom + sClr + 2 * sWrap + 2 * sWall)));
2429 const Trap trapWall((trapWrap.A() + 2 * sWall + rWall * singamma) / 2,
2430 (trapWrap.a() + 2 * sWall - fWall * singamma) / 2,
2431 (trapWrap.b() + 2 * sWall - fWall * sinbeta) / 2,
2432 (trapWrap.H() + 2 * sWall + rWall * sindelta) / 2,
2433 (trapWrap.h() + 2 * sWall - fWall * sindelta) / 2,
2434 (trapWrap.L() + fWall + rWall) / 2.,
2436 aNom - ANom - (cryType < 10 ? 0.150 * mm : 0.100 * mm),
2441 const DDSolid wallSolid(
mytrap(wallDDName.name(), trapWall));
2488 const Vec3 cryToClr(0, 0, (rClr - fClr) / 2);
2497 <<
DDTranslation(0, 0, (rClr - fClr) / 2) <<
" with no rotation";
2511 <<
" with no rotation";
2521 <<
" with no rotation";
2530 << atjLog.
name() <<
":" << copyATJ <<
" positioned in " << bsiLog.
name() <<
" at "
2532 <<
" with no rotation";
2544 for (
unsigned int ijkl(0); ijkl != 2; ++ijkl) {
2557 <<
" with no rotation";
2568 <<
" with no rotation";
2572 const Vec3 clrToWrap(0, 0, (rWrap - fWrap) / 2);
2581 <<
DDTranslation(0, 0, (rWrap - fWrap) / 2) <<
" with no rotation";
2585 const Vec3 wrapToWall1(0, 0, (rWall - fWall) / 2);
2586 const Vec3 wrapToWall(
Vec3((cryType > 9 ? 0 : 0.005 * mm), 0, 0) + wrapToWall1);
2596 <<
" with no rotation";
2601 const double sidePrime((trapWall.a() - trapCry.
a()) / 2);
2602 const double frontPrime(fWall + fWrap + fClr + LUnd / 2);
2623 for (
unsigned int etaAlv(1); etaAlv <=
nCryPerAlvEta(); ++etaAlv) {
2625 edm::LogVerbatim(
"EcalGeom") <<
"theta=" << theta / deg <<
", sidePrime=" << sidePrime
2626 <<
", frontPrime=" << frontPrime <<
", zeta=" << zeta <<
", delta=" << delta
2629 zee += 0.075 * mm + (side *
cos(zeta) + trapWall.h() - sidePrime) /
sin(theta);
2636 const Pt3D trap2(vCry[2] + cryToClr + clrToWrap + wrapToWall);
2638 const Pt3D trap3(trap2 +
Pt3D(0, -trapCry.
h(), 0));
2639 const Pt3D trap1(trap3 +
Pt3D(-trapCry.
a(), 0, 0));
2642 const Pt3D wedge2(wedge3 +
Pt3D(0, trapCry.
h() *
cos(theta), -trapCry.
h() *
sin(theta)));
2643 const Pt3D wedge1(wedge3 +
Pt3D(trapCry.
a(), 0, 0));
2645 const Tf3D tForm1(trap1, trap2, trap3, wedge1, wedge2, wedge3);
2647 const double xx(0.050 * mm);
2649 const Tf3D tForm(HepGeom::Translate3D(xx, 0, 0) * tForm1);
2654 DDTranslation(tForm.getTranslation().x(), tForm.getTranslation().y(), tForm.getTranslation().z()),
2655 myrot(wallLog.
name().
name() +
"_" + std::to_string(etaAlv), tForm.getRotation()));
2659 tForm.getTranslation().y(),
2660 tForm.getTranslation().z())
2661 <<
" with rotation";
2667 if (5 == cryType || 9 == cryType || 13 == cryType || 17 == cryType)
2669 const unsigned int webIndex(cryType / 4);
2718 const std::vector<double>& backPlateParms(backPlateSolid.
parameters());
2738 <<
" at " << backPlate2Tra <<
" with no rotation";
2743 outtra + backPlateTra,
2746 edm::LogVerbatim(
"EBGeomX") << backPlateLog.name() <<
":" << copyOne <<
" positioned in " <<
spmName() <<
" at "
2747 << (outtra + backPlateTra) <<
" with rotation";
2782 outtra + backSideTra1,
2783 myrot(
backSideName().
name() +
"Rot8", CLHEP::HepRotationX(180 * deg) * CLHEP::HepRotationZ(90 * deg)));
2786 << (outtra + backSideTra1) <<
" with rotation";
2792 outtra + backSideTra2,
2796 << (outtra + backSideTra2) <<
" with rotation";
2814 const double manifCut(2 * mm);
2826 mBManifWaName, backCoolWidth / 2. - manifCut, 0,
mBManifInnDiam() / 2, 0 * deg, 360 * deg));
2828 edm::LogVerbatim(
"EBGeom") << mBManifWaName <<
" Tubs " << backCoolWidth / 2. - manifCut
2849 const double deltaY(-5 * mm);
2859 unsigned int edgeSlotCopy(0);
2860 unsigned int midSlotCopy(0);
2877 const DDTranslation gTra(outtra + backPlateTra + grilleTra);
2880 if (0 == (iGr - 1) % 2) {
2890 cpv.
position(grMidSlotLog[(iGr - 1) / 2],
2897 edm::LogVerbatim(
"EBGeomX") << grMidSlotLog[(iGr - 1) / 2].
name() <<
":" << midSlotCopy <<
" positioned in "
2903 <<
" with no rotation";
2906 cpv.
position(grMidSlotLog[(iGr - 1) / 2],
2913 edm::LogVerbatim(
"EBGeomX") << grMidSlotLog[(iGr - 1) / 2].
name() <<
":" << midSlotCopy <<
" positioned in "
2919 <<
" with no rotation";
2932 edm::LogVerbatim(
"EBGeomX") << grEdgeSlotLog.
name() <<
":" << edgeSlotCopy <<
" positioned in " << gName
2937 <<
" with no rotation";
2947 edm::LogVerbatim(
"EBGeomX") << grEdgeSlotLog.
name() <<
":" << edgeSlotCopy <<
" positioned in " << gName
2952 <<
" with no rotation";
2959 << gTra <<
" with no rotation";
2975 <<
" with rotation";
2990 <<
" with rotation";
3026 <<
" at " << backCoolBarSSTra <<
" with no rotation";
3082 <<
" at " << (backVFELyrTra + offTra) <<
" with no rotation";
3084 offTra += 2 * backVFELyrTra;
3123 <<
" with no rotation";
3134 <<
" with rotation";
3147 unsigned int iCVFECopy(1);
3148 unsigned int iSep(0);
3149 unsigned int iNSec(0);
3151 for (
unsigned int iMod(0); iMod != 4; ++iMod) {
3154 const double pipeZPos(
vecGrilleZOff()[2 * iMod + 1] - pipeLength / 2 - 1.5 * mm);
3159 for (
unsigned int iMisc(0); iMisc != nMisc; ++iMisc) {
3163 for (
unsigned int iMB(0); iMB !=
vecMBLyrThick().size(); ++iMB) {
3172 edm::LogVerbatim(
"EBGeom") << backCName <<
" Box " << backCoolHeight / 2. <<
":" << backCoolWidth / 2. <<
":"
3185 <<
" at " << (outtra + backPlateTra + bCoolTra) <<
" with no rotation";
3191 const double halfZTank(halfZBCool - 5 * cm);
3198 <<
":" << halfZTank;
3205 DDTranslation(-backCoolHeight / 2 + backCoolTankHeight / 2. + bottomThick,
3210 edm::LogVerbatim(
"EBGeomX") << backCoolTankLog.
name() <<
":" << copyOne <<
" positioned in " << backCName
3212 <<
DDTranslation(-backCoolHeight / 2 + backCoolTankHeight / 2. + bottomThick,
3215 <<
" with no rotation";
3232 edm::LogVerbatim(
"EBGeomX") << backCoolTankWaLog.
name() <<
":" << copyOne <<
" positioned in " << bTankName
3253 edm::LogVerbatim(
"EBGeomX") << backBracketLog.
name() <<
":" << copyOne <<
" positioned in " << backCName
3259 <<
" with no rotation";
3273 for (
unsigned int j(0);
j != nMisc; ++
j)
3293 edm::LogVerbatim(
"EBGeomX") << bLog.
name() <<
":" << copyOne <<
" positioned in " << backCName <<
" at "
3294 << (bSumTra + bTra) <<
" with no rotation";
3297 bSumTra += 2 * bTra;
3319 edm::LogVerbatim(
"EBGeomX") << mLog.
name() <<
":" << copyOne <<
" positioned in " << backCName <<
" at "
3320 << mTra <<
" with no rotation";
3347 edm::LogVerbatim(
"EBGeomX") << mBWaLog.
name() <<
":" << copyOne <<
" positioned in " << mBName <<
" at "
3357 -backCoolHeight / 2.0 +
mBCoolTubeOutDiam() / 2., -bHalfWidth + (
j + 1) * bHalfWidth / 5, 0),
3363 -bHalfWidth + (
j + 1) * bHalfWidth / 5,
3365 <<
" with no rotation";
3409 <<
" at " << bPipeTra1 <<
" with no rotation";
3419 <<
" at " << bPipeTra2 <<
" with no rotation";
3423 edm::LogVerbatim(
"EBGeomX") << backInnerLog.
name() <<
":" << copyOne <<
" positioned in " << bPipeName
3455 <<
" at " << dryAirTubeTra1 <<
" with no rotation";
3461 dryAirTubeTra1.z());
3466 <<
" at " << dryAirTubeTra2 <<
" with no rotation";
3478 const unsigned int numSec(static_cast<unsigned int>(
vecBackCoolNSec()[iMod]));
3479 for (
unsigned int jSec(0); jSec != numSec; ++jSec) {
3481 for (
unsigned int iBar(0); iBar != nMax; ++iBar) {
3484 edm::LogVerbatim(
"EBGeomX") << backCoolVFELog.
name() <<
":" << iCVFECopy <<
" positioned in " << backCName
3485 <<
" at " << cTra <<
" with no rotation";
3490 if (jSec != numSec - 1)
3512 double patchHeight(0);
3526 const std::vector<double>& patchParms(patchSolid.
parameters());
3535 << patchTra <<
" with no rotation";
3555 << pTra <<
" with no rotation";
3589 const std::vector<double>& envParms(envSolid.
parameters());
3598 const std::vector<double>& blkParms(blkSolid.parameters());
3607 <<
" with no rotation";
3617 const std::vector<double>& cutParms(cutSolid.
parameters());
3629 -blkParms[1] + cutParms[1],
3631 <<
" with no rotation";
3641 const std::vector<double>& shim2Parms(shim2Solid.
parameters());
3645 DDTranslation(+cutParms[0] - shim2Parms[0], -cutParms[1] + shim2Parms[1], 0),
3650 <<
DDTranslation(+cutParms[0] - shim2Parms[0], -cutParms[1] + shim2Parms[1], 0)
3651 <<
" with no rotation";
3664 const std::vector<double>& shim1Parms(shim1Solid.
parameters());
3669 DDTranslation(+envParms[0] - shim1Parms[0], -envParms[1] + shim1Parms[1], -envParms[2] + shim1Parms[2]),
3675 -envParms[1] + shim1Parms[1],
3676 -envParms[2] + shim1Parms[2])
3677 <<
" with no rotation";
3690 <<
" with no rotation";
3711 edm::LogVerbatim(
"EBGeomX") << rodLog.
name() <<
":" << (1 + iRod) <<
" positioned in " << xilyName <<
" at "
3712 << rodTra <<
" with rotation";
3725 edm::LogVerbatim(
"EcalGeom") <<
"******** DDEcalBarrelAlgo test: end it...";
3733 std::make_unique<DDRotationMatrix>(r.xx(), r.xy(), r.xz(), r.yx(), r.yy(), r.yz(), r.zx(), r.zy(), r.zz()));
3739 const pair<std::string, std::string>
temp(
DDSplit(s));
3740 if (temp.second.empty()) {
3743 return DDName(temp.first, temp.second);
3750 << t.
h1() <<
":" << t.
bl1() <<
":" << t.
tl1() <<
":" << t.
alp1() / CLHEP::deg <<
":"
3751 << t.
h2() <<
":" << t.
bl2() <<
":" << t.
tl2() <<
":" << t.
alp2() / CLHEP::deg;
3754 ddname(s), t.
dz(), t.
theta(), t.
phi(), t.
h1(), t.
bl1(), t.
tl1(), t.
alp1(), t.
h2(), t.
bl2(), t.
tl2(), t.
alp2());
3762 const HepGeom::Point3D<double>& corner,
3769 const unsigned int copyOne(1);
3773 const double BWebx(bWeb + (BWeb - bWeb) * LWebx / LWeb);
3776 const Trap trapWebClr(BWebx / 2,
3790 const Trap trapWebPl(trapWebClr.
A() / 2,
3795 trapWebClr.
L() / 2.,
3797 trapWebClr.
b() - trapWebClr.
B(),
3801 const DDSolid webPlSolid(
mytrap(webPlDDName.fullname(), trapWebPl));
3810 edm::LogVerbatim(
"EBGeomX") << webPlLog.
name() <<
":" << copyOne <<
" positioned in " << webClrDDName <<
" at "
3815 zee += trapWebClr.
h() /
sin(theta);
3817 const double beta(theta + delta);
3819 const double zWeb(zee - front *
cos(beta) + side *
sin(beta));
3820 const double yWeb(front *
sin(beta) + side *
cos(beta));
3822 const Pt3D wedge3(corner +
Pt3D(0, -yWeb, zWeb));
3823 const Pt3D wedge2(wedge3 +
Pt3D(0, trapWebClr.
h() *
cos(theta), -trapWebClr.
h() *
sin(theta)));
3824 const Pt3D wedge1(wedge3 +
Pt3D(trapWebClr.
a(), 0, 0));
3827 edm::LogVerbatim(
"EcalGeom") <<
"trap1=" << vWeb[0] <<
", trap2=" << vWeb[2] <<
", trap3=" << vWeb[3];
3829 edm::LogVerbatim(
"EcalGeom") <<
"wedge1=" << wedge1 <<
", wedge2=" << wedge2 <<
", wedge3=" << wedge3;
3831 const Tf3D tForm(vWeb[0], vWeb[2], vWeb[3], wedge1, wedge2, wedge3);
3837 DDTranslation(tForm.getTranslation().x(), tForm.getTranslation().y(), tForm.getTranslation().z()),
3838 myrot(webClrLog.
name().
name() + std::to_string(iWeb), tForm.getRotation()));
3842 tForm.getTranslation().y(),
3843 tForm.getTranslation().z())
3844 <<
" with rotation";
DDMaterial grEdgeSlotMat() const
double spmExpYOff() const
const std::vector< double > & vecBackCoolNPerSec() const
std::string m_BackCoolBarMat
double backCoolBarThick() const
std::vector< double > m_vecPincerEnvZOff
std::vector< double > m_vecIlyFEMZ
std::vector< double > m_vecNomCryDimCF
DDMaterial backCoolBarMat() const
HepGeom::Transform3D Tf3D
Log< level::Info, true > LogVerbatim
double spmSideYOffM() const
double ilyFanOutHeight() const
double m_GrEdgeSlotHeight
double spmSideHigh() const
std::vector< std::string > m_vecBackVFELyrMat
const std::string & backCoolTankName() const
DDName ilyDiffName() const
std::vector< std::string > m_vecBackCoolName
std::vector< std::string > m_vecIlyMat
const std::vector< double > & parameters(void) const
Give the parameters of the solid.
double patchPanelHere() const
HepGeom::Point3D< double > Pt3D
DDMaterial ilyBndlMat() const
const std::string & webPlName() const
std::string m_BackPlate2Mat
std::vector< double > m_vecSpmZPts
double ilyPTMHeight() const
DDName backCoolBarWaName() const
double mBManifHere() const
DDMaterial wrapMat() const
DDMaterial backCoolBarSSMat() const
DDMaterial webClrMat() const
DDMaterial ilyPTMMat() const
DDMaterial mBManifMat() const
std::vector< double > vecPincerRodAzimuth() const
const std::vector< double > & vecGrilleHeight() const
double pincerCutHeight() const
std::string m_PincerEnvMat
const std::vector< double > & vecSpmCutTP() const
DDMaterial capMat() const
std::string m_PincerShim2Name
double backPlateHere() const
double backSideYOff1() const
std::string m_BackBracketMat
void position(const DDLogicalPart &self, const DDLogicalPart &parent, const std::string ©no, const DDTranslation &trans, const DDRotation &rot, const DDDivision *div=nullptr)
const std::vector< double > & vecIlyPipeZ() const
DDMaterial backCoolBarWaMat() const
std::vector< double > m_vecSpmBTran
void initialize(const DDNumericArguments &nArgs, const DDVectorArguments &vArgs, const DDMapArguments &mArgs, const DDStringArguments &sArgs, const DDStringVectorArguments &vsArgs) override
const std::string & backPipeName() const
std::string m_PincerCutName
double pincerEnvLength() const
DDMaterial pincerRodMat() const
const std::vector< std::string > & vecBackVFELyrMat() const
std::string m_BackPlate2Name
const std::vector< double > & vecGapAlvEta() const
const std::vector< double > & vecSpmCutTM() const
const std::vector< double > & vecBackCoolNSec() const
double backCoolBarHere() const
DDName pincerRodName() const
const std::vector< std::string > & vecPatchPanelMat() const
double spmSideYOffP() const
double backCoolBarSSThick() const
const std::vector< double > & vecNomCryDimAR() const
DDMaterial is used to define and access material information.
double backCoolHere() const
unsigned int nFawPerSupm() const
double grilleWidth() const
std::vector< double > m_vecBarTran
const std::vector< double > & vecBackPipeThick() const
double dryAirTubeHere() const
double mBCoolTubeInnDiam() const
std::string m_BackCoolTankMat
VertexList vertexList() const
double grEdgeSlotHeight() const
std::vector< double > m_vecBackMiscThick
std::string m_BackCoolTankName
std::vector< double > m_vecNomCryDimAR
const std::string & backBracketName() const
static DDSolid polycone(const DDName &name, double startPhi, double deltaPhi, const std::vector< double > &z, const std::vector< double > &rmin, const std::vector< double > &rmax)
Creates a polycone (refere to Geant3 or Geant4 documentation)
double m_PincerShim2Width
Sin< T >::type sin(const T &t)
double mBManifInnDiam() const
std::string m_GrMidSlotMat
DDMaterial apdMat() const
DDMaterial wallMat() const
unsigned int m_MBCoolTubeNum
const std::vector< double > & vecIlyFanOutZ() const
std::vector< double > m_vecIlyFanOutZ
Geom::Theta< T > theta() const
const std::vector< std::string > & vecMBLyrMat() const
std::string m_BackCoolTankWaName
double backPlateLength() const
double backSideLength() const
const std::string & ilyPipeName() const
DDName is used to identify DDD entities uniquely.
const std::vector< double > & vecMBLyrThick() const
std::vector< double > m_vecIlyFanOutPhi
DDName pincerBlkName() const
DDSolid mytrap(const std::string &s, const Trap &t) const
const std::vector< std::string > & vecBackCoolName() const
const std::string & dryAirTubeName() const
DDName ilyBndlName() const
const std::vector< double > & vecBarRMin() const
DDMaterial bsiMat() const
std::vector< std::string > m_vecBackMiscName
double ilyFanOutWidth() const
static std::string & ns()
double backCoolVFEHere() const
std::vector< double > m_vecBackCoolSecSep
std::vector< double > vecPincerEnvZOff() const
double grEdgeSlotHere() const
std::vector< double > m_vecBarRota2
double hawYOffCry() const
DDName backPlate2Name() const
double pincerCutWidth() const
double backPlateThick() const
const std::string & grMidSlotName() const
std::string m_IlyPipeName
double m_BackCoolBarHeight
DDMaterial backBracketMat() const
std::vector< double > m_vecNomCryDimBF
std::vector< double > m_vecWebClrTh
std::string m_BackCoolBarSSName
const std::vector< double > & vecNomCryDimCR() const
Compact representation of the geometrical detector hierarchy.
double m_BackCoolBarSSThick
DDRotation myrot(const std::string &s, const CLHEP::HepRotation &r) const
Create a DDRotation from a string converted to DDName and CLHEP::HepRotation converted to DDRotationM...
DDMaterial atjMat() const
DDMaterial backVFEMat() const
double backCoolBarWidth() const
DDName grEdgeSlotName() const
std::vector< double > m_vecBarRMin
unsigned int m_NCryPerAlvEta
DDMaterial backSideMat() const
std::vector< double > m_vecIlyPipePhi
DDName patchPanelName() const
std::string m_BackPlateName
double pincerShim1Width() const
double backPlate2Thick() const
std::vector< std::string > m_vecPatchPanelMat
A DDSolid represents the shape of a part.
std::string m_BackCoolMat
std::string m_PincerRodName
const std::vector< double > & vecSpmHere() const
std::vector< std::string > m_vecPatchPanelNames
const std::vector< double > & vecSpmZPts() const
double spmSideThick() const
Represents a uniquely identifyable rotation matrix.
DDName backSideName() const
double m_MBCoolTubeInnDiam
const std::vector< double > & vecBackMiscThick() const
double ilyDiffOff() const
std::string m_BackPipeName
std::vector< std::string > m_vecMBLyrName
std::vector< double > m_vecSpmBRota
DDName backCoolBarName() const
std::string m_BackSideMat
double ilyFEMHeight() const
double m_PincerShimHeight
std::vector< double > m_vecSpmRMax
double spmCutThick() const
const std::vector< double > & vecSpmTran() const
const std::vector< double > & vecBackCoolSecSep() const
const std::vector< double > & vecPatchPanelThick() const
const std::string & backCoolTankWaName() const
std::vector< double > m_vecPincerRodAzimuth
double ilyFEMWidth() const
const std::vector< double > & vecBackPipeDiam() const
std::string m_BackCoolTankWaMat
double m_BackCoolTankWidth
DDName spmCutName() const
std::vector< double > m_vecWebLength
std::string m_PincerShim1Name
std::string m_BackCoolBarWaMat
std::string m_BackCoolBarWaName
double mBCoolTubeOutDiam() const
DDMaterial spmSideMat() const
double mBManifOutDiam() const
std::vector< double > m_vecBarRota
const std::string & clrName() const
double backCoolTankWaWidth() const
EcalTrapezoidParameters Trap
double backCoolTankHere() const
std::vector< std::string > m_vecBackVFELyrName
DDMaterial sglMat() const
DDName spmSideName() const
std::string m_BackCoolBarName
double backCoolTankWidth() const
std::string m_BackPipeWaterMat
DDMaterial backPipeMat() const
double nomCryDimLZ() const
DDMaterial clrMat() const
DDMaterial ilyFanOutMat() const
double dryAirTubeInnDiam() const
std::string m_PincerBlkName
DDMaterial grMidSlotMat() const
DDMaterial aglMat() const
double ilyBndlOff() const
const std::vector< std::string > & vecIlyMat() const
const std::vector< std::string > & vecPatchPanelNames() const
DDName pincerEnvName() const
double m_BackCoolTankWaWidth
double ilyFEMLength() const
const std::vector< double > & vecGrMidSlotHeight() const
std::string m_PincerBlkMat
std::vector< double > m_vecNomCryDimCR
unsigned int m_NFawPerSupm
Cos< T >::type cos(const T &t)
std::string m_BackCoolVFEName
const std::vector< double > & vecWebLength() const
double backSideWidth() const
std::vector< double > m_vecNomCryDimBR
double ilyPipeHere() const
DDMaterial backPipeWaterMat() const
std::string m_DryAirTubeName
const std::vector< double > & vecIlyPipeType() const
double grilleThick() const
std::vector< std::string > m_vecBackMiscMat
A DDLogicalPart aggregates information concerning material, solid and sensitveness ...
const std::vector< double > & vecIlyFEMZ() const
std::vector< double > m_vecBackCoolNSec
double grMidSlotXOff() const
const std::vector< double > & vecBackVFELyrThick() const
DDMaterial backCoolVFEMat() const
double m_DryAirTubeInnDiam
const std::vector< double > & vecSpmRMax() const
double backPipeHere() const
const std::vector< double > & vecSpmBRota() const
double pincerRodHere() const
std::vector< double > m_vecIlyPipeType
const std::vector< std::string > & vecBackMiscName() const
static DDSolid tubs(const DDName &name, double zhalf, double rIn, double rOut, double startPhi, double deltaPhi)
const std::vector< double > & vecIlyFanOutPhi() const
DDMaterial mBCoolTubeMat() const
const std::string & mBCoolTubeName() const
const std::vector< std::string > & vecBackVFELyrName() const
DDMaterial backCoolTankWaMat() const
unsigned int nCryPerAlvEta() const
const std::vector< double > & vecIlyThick() const
DDName ilyFanOutName() const
double backCoolBarHeight() const
std::string m_BackSideName
const std::vector< double > & vecSpmRMin() const
static DDSolid trap(const DDName &name, double pDz, double pTheta, double pPhi, double pDy1, double pDx1, double pDx2, double pAlp1, double pDy2, double pDx3, double pDx4, double pAlp2)
DDName pincerShim1Name() const
double m_BackBracketHeight
void execute(DDCompactView &cpv) override
std::vector< double > m_vecPatchPanelThick
std::string m_PatchPanelName
std::string m_BackPipeMat
static DDSolid box(const DDName &name, double xHalf, double yHalf, double zHalf)
Creates a box with side length 2*xHalf, 2*yHalf, 2*zHalf.
std::vector< double > m_vecSpmCutTM
DDMaterial pincerEnvMat() const
DDName ilyFEMName() const
const std::vector< std::string > & vecBackMiscMat() const
std::vector< double > m_vecBarRMax
DDMaterial pincerCutMat() const
const std::string & webClrName() const
DDMaterial backPlateMat() const
double ilyBndlLength() const
std::string m_MBManifName
const std::string & idNameSpace() const
DDName backVFEName() const
double m_BackCoolTankHere
const std::vector< double > & vecNomCryDimBF() const
std::string m_BackCoolVFEMat
std::string m_GrEdgeSlotName
unsigned int nCryTypes() const
std::vector< std::string > m_vecMBLyrMat
std::vector< double > m_vecBarRota3
double ilyPTMLength() const
std::string m_BackPlateMat
CaloCellGeometry::Pt3D Pt3D
unsigned int spmNPerHalf() const
DDMaterial webPlMat() const
std::vector< double > m_vecIlyPTMPhi
std::vector< double > m_vecWebPlTh
double grilleHere() const
double m_PincerShim1Width
double backCoolBarWaThick() const
double pincerEnvHeight() const
const std::vector< double > & vecSpmBTran() const
const std::vector< double > & vecIlyPTMPhi() const
const std::string & ilyName() const
const std::vector< double > & vecIlyPTMZ() const
double grMidSlotHere() const
DDMaterial barMat() const
std::string m_idNameSpace
std::string m_PincerRodMat
DDName pincerShim2Name() const
std::vector< double > m_vecBackVFELyrThick
HepGeom::Translate3D Tl3D
const std::vector< double > & vecNomCryDimCF() const
DDMaterial pincerShimMat() const
double ilyPTMWidth() const
double ilyFanOutLength() const
double grilleZSpace() const
double backSideHeight() const
DDMaterial grilleMat() const
DDName backCoolVFEName() const
double backSideAngle() const
std::vector< double > m_vecGrMidSlotHeight
double pincerEnvWidth() const
std::vector< double > m_vecBackPipeDiam
HepGeom::ReflectZ3D RfZ3D
DDMaterial ilyFEMMat() const
std::vector< double > m_vecSpmTran
DDMaterial backCoolMat() const
static DDSolid subtraction(const DDName &name, const DDSolid &a, const DDSolid &b, const DDTranslation &t, const DDRotation &r)
double m_BackCoolBarWidth
DDMaterial spmMat() const
double m_BackCoolTankThick
double m_MBCoolTubeOutDiam
void web(unsigned int iWeb, double bWeb, double BWeb, double LWeb, double theta, const Pt3D &corner, const DDLogicalPart &logPar, double &zee, double side, double front, double delta, DDCompactView &cpv)
std::vector< double > m_vecGrilleHeight
double ilyPTMHere() const
DDMaterial ilyPipeMat() const
double backSideYOff2() const
DDMaterial cerMat() const
std::vector< double > m_vecGapAlvEta
DDMaterial andMat() const
DDName backPlateName() const
DDMaterial cryMat() const
~DDEcalBarrelNewAlgo() override
double dryAirTubeOutDiam() const
DDMaterial gridMat() const
const std::vector< double > & vecBarRMax() const
const std::vector< double > & vecSpmRota() const
DDMaterial backPlate2Mat() const
DDMaterial dryAirTubeMat() const
const std::vector< double > & vecBarRota2() const
std::vector< double > m_vecMBLyrThick
const std::vector< double > & vecIlyFEMPhi() const
std::vector< double > m_vecIlyPipeZ
double grEdgeSlotWidth() const
std::vector< double > m_vecIlyThick
double pincerShimHeight() const
std::vector< double > m_vecGrilleZOff
DDName pincerCutName() const
double mBCoolTubeNum() const
std::string m_SpmSideName
const std::string & grilleName() const
std::string m_GrMidSlotName
DDMaterial pincerBlkMat() const
std::string m_IlyDiffName
unsigned int m_SpmNPerHalf
std::vector< double > m_vecIlyPTMZ
double grMidSlotWidth() const
double spmExpThick() const
double spmExpWide() const
double backMiscHere() const
double backCoolTankThick() const
DDMaterial backCoolTankMat() const
std::vector< double > m_vecBarZPts
double mBCoolTubeHere() const
double m_DryAirTubeOutDiam
std::string m_PincerEnvName
const std::vector< double > & vecNomCryDimBR() const
double ilyFanOutHere() const
std::string m_MBCoolTubeMat
const std::vector< double > & vecWebPlTh() const
#define DEFINE_EDM_PLUGIN(factory, type, name)
const std::vector< double > & vecIlyPipePhi() const
double m_BackCoolBarThick
std::vector< double > m_vecSpmRota
double hawRCutDelY() const
double backSideHere() const
double backCBStdSep() const
double ilyDiffLength() const
DDMaterial ddmat(const std::string &s) const
const std::vector< double > & vecWebClrTh() const
const std::vector< std::string > & vecMBLyrName() const
DDName ddname(const std::string &s) const
const std::vector< double > & vecBarRota() const
DDName backCoolBarSSName() const
std::string m_IlyFanOutMat
static constexpr float b2
std::string m_IlyBndlName
const std::vector< double > & vecBarZPts() const
std::string m_PincerCutMat
std::vector< double > m_vecSpmCutTP
double pincerBlkLength() const
double backPlateWidth() const
std::string m_BackBracketName
const std::vector< double > & vecBarRota3() const
std::string m_BackVFEName
std::string m_PincerShimMat
const std::vector< double > & vecBarTran() const
std::pair< std::string, std::string > DDSplit(const std::string &n)
split into (name,namespace), separator = ':'
std::string m_GrEdgeSlotMat
double pincerShim2Width() const
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double > > DDTranslation
std::vector< double > m_vecIlyPipeLength
double backBracketHeight() const
std::string m_IlyFanOutName
CaloCellGeometry::Pt3DVec VertexList
const std::string & name() const
Returns the name.
tuple size
Write out results.
std::vector< double > m_vecSpmRMin
std::vector< double > m_vecBackPipeThick
std::string m_BackCoolBarSSMat
const std::string & cryName() const
std::string m_DryAirTubeMat
static constexpr float b1
const std::vector< double > & vecGrilleZOff() const
double m_BackCoolBarWaThick
std::string m_MBCoolTubeName
std::vector< double > m_vecIlyFEMPhi
DDName ilyPTMName() const
const std::string & wallName() const
std::vector< double > m_vecSpmHere
double nomCryDimAF() const
std::vector< double > m_vecBackCoolNPerSec
const std::string & wrapName() const
DDMaterial ilyDiffMat() const
const std::vector< double > & vecIlyPipeLength() const
DDName mBManifName() const