350 LogDebug(
"TECGeom") <<
"==>> Constructing DDTECModuleAlgo...";
356 double xpos, ypos, zpos;
390 dxdif = dxtop - dxbot;
405 solid =
DDSolidFactory::trap(
DDName(
name,
idNameSpace),
dz, thet, 0, h1, bl1, bl1, 0, h1, bl2, bl2, 0);
406 LogDebug(
"TECGeom") <<
"DDTECModuleAlgo test:\t" << solid.
name() <<
" Trap made of " << matname <<
" of dimensions " 407 <<
dz <<
", " << thet <<
", 0, " << h1 <<
", " << bl1 <<
", " << bl1 <<
", 0, " << h1 <<
", " 408 << bl2 <<
", " << bl2 <<
", 0";
413 zpos = topFrameEndZ -
dz;
417 xpos -= 2 *
tan(fabs(thet)) *
dz;
440 solid =
DDSolidFactory::trap(
DDName(
name,
idNameSpace),
dz, thet, 0, h1, bl1, bl1, 0, h1, bl2, bl2, 0);
441 LogDebug(
"TECGeom") <<
"DDTECModuleAlgo test:\t" << solid.
name() <<
" Trap made of " << matname <<
" of dimensions " 442 <<
dz <<
", " << thet <<
", 0, " << h1 <<
", " << bl1 <<
", " << bl1 <<
", 0, " << h1 <<
", " 443 << bl2 <<
", " << bl2 <<
", 0";
448 zpos = topFrameEndZ -
dz;
451 xpos += 2 *
tan(fabs(thet)) *
dz;
476 solid =
DDSolidFactory::trap(
DDName(
name,
idNameSpace),
dz, thet, 0, h1, bl1, bl1, 0, h1, bl2, bl2, 0);
477 LogDebug(
"TECGeom") <<
"DDTECModuleAlgo test:\t" << solid.
name() <<
" Trap made of " << matname <<
" of dimensions " 478 <<
dz <<
", 0, 0, " << h1 <<
", " << bl1 <<
", " << bl1 <<
", 0, " << h1 <<
", " << bl2 <<
", " 509 LogDebug(
"TECGeom") <<
"DDTECModuleAlgo test:\t" << solid.
name() <<
" Box made of " << matname <<
" of dimensions " 510 <<
dx <<
", " <<
dy <<
", " <<
dz;
528 solid =
DDSolidFactory::trap(
DDName(
name,
idNameSpace),
dz, 0, 0, h1, bl1, bl1, 0, h1, bl2, bl2, 0);
529 LogDebug(
"TECGeom") <<
"DDTECModuleAlgo test:\t" << solid.
name() <<
" Trap made of " << matname <<
" of dimensions " 530 <<
dz <<
", 0, 0, " << h1 <<
", " << bl1 <<
", " << bl1 <<
", 0, " << h1 <<
", " << bl2 <<
", " 554 solid =
DDSolidFactory::trap(
DDName(
name,
idNameSpace),
dz, 0, 0, h1, bl2, bl1, 0, h1, bl2, bl1, 0);
555 LogDebug(
"TECGeom") <<
"DDTECModuleAlgo test:\t" << solid.
name() <<
" Trap made of " << matname <<
" of dimensions " 556 <<
dz <<
", 0, 0, " << h1 <<
", " << bl2 <<
", " << bl1 <<
", 0, " << h1 <<
", " << bl2 <<
", " 586 solid =
DDSolidFactory::trap(
DDName(
name,
idNameSpace),
dz, 0, 0, h1, bl2, bl1, 0, h1, bl2, bl1, 0);
587 LogDebug(
"TECGeom") <<
"DDTECModuleAlgo test:\t" << solid.
name() <<
" Trap made of " << matname <<
" of dimensions " 588 <<
dz <<
", 0, 0, " << h1 <<
", " << bl2 <<
", " << bl1 <<
", 0, " << h1 <<
", " << bl2 <<
", " 593 inactive, active, 1, ypos, 0, 0,
"NULL", cpv);
605 LogDebug(
"TECGeom") <<
"DDTECModuleAlgo test:\t" << solid.
name() <<
" Box made of " << matname <<
" of dimensions " 606 <<
dx <<
", " <<
dy <<
", " <<
dz;
612 double thet = atan((bl1 - bl2) / (2. *
dz));
613 solid =
DDSolidFactory::trap(
DDName(
name,
idNameSpace),
dz, thet, 0, h1, bl1, bl1, 0, h1, bl2, bl2, 0);
614 LogDebug(
"TECGeom") <<
"DDTECModuleAlgo test:\t" << solid.
name() <<
" Trap made of " << matname <<
" of dimensions " 615 <<
dz <<
", " << thet / CLHEP::deg <<
", 0, " << h1 <<
", " << bl1 <<
", " << bl1 <<
", 0, " 616 << h1 <<
", " << bl2 <<
", " << bl2 <<
", 0";
630 doPos(pa, xpos, ypos, zpos,
"NULL", cpv);
645 solid =
DDSolidFactory::trap(
DDName(
name,
idNameSpace),
dz, 0, 0, h1, bl1, bl1, 0, h1, bl2, bl2, 0);
646 LogDebug(
"TECGeom") <<
"DDTECModuleAlgo test:\t" << solid.
name() <<
" Trap made of " << matname <<
" of dimensions " 647 <<
dz <<
", 0, 0, " << h1 <<
", " << bl1 <<
", " << bl1 <<
", 0, " << h1 <<
", " << bl2 <<
", " 658 double thet = atan((bl1 - bl2) / (2. *
dz));
660 solid =
DDSolidFactory::trap(
DDName(
name,
idNameSpace),
dz, thet, 0, h1, bl1, bl1, 0, h1, bl2, bl2, 0);
661 LogDebug(
"TECGeom") <<
"DDTECModuleAlgo test:\t" << solid.
name() <<
" Trap made of " << matname <<
" of dimensions " 662 <<
dz <<
", " << thet / CLHEP::deg <<
", 0, " << h1 <<
", " << bl1 <<
", " << bl1 <<
", 0, " 663 << h1 <<
", " << bl2 <<
", " << bl2 <<
", 0";
673 doPos(topFrame, 0, ypos, zpos,
"NULL", cpv);
691 solid =
DDSolidFactory::trap(
DDName(
name,
idNameSpace),
dz, 0, 0, h1, bl1, bl1, 0, h1, bl2, bl2, 0);
692 LogDebug(
"TECGeom") <<
"DDTECModuleAlgo test:\t" << solid.
name() <<
" Trap made of " << matname <<
" of dimensions " 693 <<
dz <<
", 0, 0, " << h1 <<
", " << bl1 <<
", " << bl1 <<
", 0, " << h1 <<
", " << bl2 <<
", " 722 solid =
DDSolidFactory::trap(
DDName(
name,
idNameSpace),
dz, 0, 0, h1, bl1, bl1, 0, h1, bl2, bl2, 0);
723 LogDebug(
"TECGeom") <<
"DDTECModuleAlgo test:\t" << solid.
name() <<
" Trap made of " << matname <<
" of dimensions " 724 <<
dz <<
", 0, 0, " << h1 <<
", " << bl1 <<
", " << bl1 <<
", 0, " << h1 <<
", " << bl2 <<
", " 733 LogDebug(
"TECGeom") <<
"DDTECModuleAlgo test:\t" << solid.
name() <<
" Box made of " << matname <<
" of dimensions " 734 << bl1 <<
", " << h1 <<
", " <<
dz;
737 LogDebug(
"TECGeom") <<
"DDTECModuleAlgo test: " << bridgeGap.name() <<
" number 1 positioned in " << bridge.name()
738 <<
" at (0,0,0) with no rotation";
741 LogDebug(
"TECGeom") <<
"<<== End of DDTECModuleAlgo construction ...";
vector< double > siReenforceYPos
void position(const DDLogicalPart &self, const DDLogicalPart &parent, const std::string ©no, const DDTranslation &trans, const DDRotation &rot, const DDDivision *div=nullptr)
double sideFrameLWidthLow
DDMaterial is used to define and access material information.
Sin< T >::type sin(const T &t)
DDName is used to identify DDD entities uniquely.
A DDSolid represents the shape of a part.
static std::string to_string(const XMLCh *ch)
Represents a uniquely identifyable rotation matrix.
U second(std::pair< T, U > const &p)
const std::string & name() const
Returns the name.
Cos< T >::type cos(const T &t)
Tan< T >::type tan(const T &t)
A DDLogicalPart aggregates information concerning material, solid and sensitveness ...
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)
static DDSolid box(const DDName &name, double xHalf, double yHalf, double zHalf)
Creates a box with side length 2*xHalf, 2*yHalf, 2*zHalf.
double sideFrameRWidthLow
vector< double > siFrSuppBoxWidth
vector< double > siReenforceWidth
vector< double > siReenforceHeight
void doPos(const DDLogicalPart &toPos, const DDLogicalPart &mother, int copyNr, double x, double y, double z, const string &rotName, DDCompactView &cpv)
vector< double > siFrSuppBoxYPos
std::pair< std::string, std::string > DDSplit(const std::string &n)
split into (name,namespace), separator = ':'
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double > > DDTranslation
vector< double > siFrSuppBoxHeight