#include <DDSolid.h>
Static Public Member Functions | |
static DDSolid | box (const DDName &name, double xHalf, double yHalf, double zHalf) |
Creates a box with side length 2*xHalf, 2*yHalf, 2*zHalf. | |
static DDSolid | cons (const DDName &name, double zhalf, double rInMinusZ, double rOutMinusZ, double rInPlusZ, double rOutPlusZ, double phiFrom, double deltaPhi) |
static DDSolid | ellipsoid (const DDName &name, double xSemiAxis, double ySemiAxis, double zSemiAxis, double zBottomCut=0., double zTopCut=0.) |
static DDSolid | ellipticalTube (const DDName &name, double xSemiAxis, double ySemiAxis, double zHeight) |
static DDSolid | intersection (const DDName &name, const DDSolid &a, const DDSolid &b, const DDTranslation &t, const DDRotation &r) |
static DDSolid | orb (const DDName &name, double radius) |
static DDSolid | parallelepiped (const DDName &name, double xHalf, double yHalf, double zHalf, double alpha, double theta, double phi) |
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) | |
static DDSolid | polycone (const DDName &name, double startPhi, double deltaPhi, const std::vector< double > &z, const std::vector< double > &r) |
Creates a polycone (refere to Geant4 documentation) | |
static DDSolid | polyhedra (const DDName &name, int sides, double startPhi, double deltaPhi, const std::vector< double > &z, const std::vector< double > &rmin, const std::vector< double > &rmax) |
Creates a polyhedra (refere to Geant3 or Geant4 documentation) | |
static DDSolid | polyhedra (const DDName &name, int sides, double startPhi, double deltaPhi, const std::vector< double > &z, const std::vector< double > &r) |
Creates a polyhedra (refere to Geant4 documentation) | |
static DDSolid | pseudoTrap (const DDName &name, double pDx1, double pDx2, double pDy1, double pDy2, double pDz, double radius, bool atMinusZ) |
static DDSolid | reflection (const DDName &name, const DDSolid &s) |
static DDSolid | shapeless (const DDName &name) |
static DDSolid | sphere (const DDName &name, double innerRadius, double outerRadius, double startPhi, double deltaPhi, double startTheta, double deltaTheta) |
static DDSolid | subtraction (const DDName &name, const DDSolid &a, const DDSolid &b, const DDTranslation &t, const DDRotation &r) |
static DDSolid | torus (const DDName &name, double rMin, double rMax, double rTorus, double startPhi, double deltaPhi) |
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 | truncTubs (const DDName &name, double zHalf, double rIn, double rOut, double startPhi, double deltaPhi, double cutAtStart, double cutAtDelta, bool cutInside) |
static DDSolid | tubs (const DDName &name, double zhalf, double rIn, double rOut, double startPhi, double deltaPhi) |
static DDSolid | unionSolid (const DDName &name, const DDSolid &a, const DDSolid &b, const DDTranslation &t, const DDRotation &r) |
DDSolid DDSolidFactory::box | ( | const DDName & | name, |
double | xHalf, | ||
double | yHalf, | ||
double | zHalf | ||
) | [static] |
Creates a box with side length 2*xHalf, 2*yHalf, 2*zHalf.
name
unique name identifying the box xHalf
half length in x yHalf
half length in y zHalf
helf length in z The center of the box (for positioning) is the center of gravity. Definition at line 519 of file DDSolid.cc.
Referenced by DDHCalBarrelAlgo::constructInsideDetectors(), DDHCalBarrelAlgo::constructInsideLayers(), DDEcalPreshowerAlgo::doLadders(), DDEcalPreshowerAlgo::doLayers(), DDEcalPreshowerAlgoTB::doLayers(), DDTBH4Algo::execute(), DDHCalTBCableAlgo::execute(), DDTIBLayerAlgo_MTCC::execute(), DDEcalBarrelNewAlgo::execute(), DDEcalBarrelAlgo::execute(), DDTIDModuleAlgo::execute(), DDTECModuleAlgo::execute(), DDEcalAPDAlgo::execute(), DDEcalEndcapAlgo::execute(), DDHCalForwardAlgo::execute(), DDDividedBoxX::makeDDLogicalPart(), DDDividedBoxZ::makeDDLogicalPart(), DDDividedBoxY::makeDDLogicalPart(), DDLBox::processElement(), regressionTest_first(), and regressionTest_setup().
DDSolid DDSolidFactory::cons | ( | const DDName & | name, |
double | zhalf, | ||
double | rInMinusZ, | ||
double | rOutMinusZ, | ||
double | rInPlusZ, | ||
double | rOutPlusZ, | ||
double | phiFrom, | ||
double | deltaPhi | ||
) | [static] |
Definition at line 763 of file DDSolid.cc.
Referenced by DDHCalFibreBundle::execute(), DDDividedConsRho::makeDDLogicalPart(), DDDividedConsZ::makeDDLogicalPart(), DDDividedConsPhi::makeDDLogicalPart(), DDDividedPolyconeZ::makeDDLogicalPart(), and DDLCone::processElement().
DDSolid DDSolidFactory::ellipsoid | ( | const DDName & | name, |
double | xSemiAxis, | ||
double | ySemiAxis, | ||
double | zSemiAxis, | ||
double | zBottomCut = 0. , |
||
double | zTopCut = 0. |
||
) | [static] |
Definition at line 821 of file DDSolid.cc.
Referenced by DDLEllipsoid::processElement().
{ return DDSolid(name, new DDI::Ellipsoid( xSemiAxis, ySemiAxis, zSemiAxis, zBottomCut, zTopCut )); }
DDSolid DDSolidFactory::ellipticalTube | ( | const DDName & | name, |
double | xSemiAxis, | ||
double | ySemiAxis, | ||
double | zHeight | ||
) | [static] |
Definition at line 815 of file DDSolid.cc.
Referenced by DDLEllipticalTube::processElement().
{ return DDSolid(name, new DDI::EllipticalTube(xSemiAxis, ySemiAxis, zHeight)); }
DDSolid DDSolidFactory::intersection | ( | const DDName & | name, |
const DDSolid & | a, | ||
const DDSolid & | b, | ||
const DDTranslation & | t, | ||
const DDRotation & | r | ||
) | [static] |
Definition at line 714 of file DDSolid.cc.
{ return DDSolid(name, new DDI::Intersection(a,b,t,r)); }
Definition at line 810 of file DDSolid.cc.
Referenced by DDLOrb::processElement().
DDSolid DDSolidFactory::parallelepiped | ( | const DDName & | name, |
double | xHalf, | ||
double | yHalf, | ||
double | zHalf, | ||
double | alpha, | ||
double | theta, | ||
double | phi | ||
) | [static] |
Definition at line 838 of file DDSolid.cc.
Referenced by DDLParallelepiped::processElement().
{ return DDSolid(name, new DDI::Parallelepiped(xHalf, yHalf, zHalf, alpha, theta, phi)); }
DDSolid DDSolidFactory::polycone | ( | const DDName & | name, |
double | startPhi, | ||
double | deltaPhi, | ||
const std::vector< double > & | z, | ||
const std::vector< double > & | rmin, | ||
const std::vector< double > & | rmax | ||
) | [static] |
Creates a polycone (refere to Geant3 or Geant4 documentation)
The center of the polycone (for positioning) is the center of coordinates of the polycone definition (x=y=z=0)
Definition at line 656 of file DDSolid.cc.
Referenced by DDTECAxialCableAlgo::execute(), DDTOBRadCableAlgo::execute(), DDEcalBarrelNewAlgo::execute(), DDEcalBarrelAlgo::execute(), DDTIDAxialCableAlgo::execute(), DDTIBRadCableAlgo_MTCC::execute(), DDDividedPolyconePhi::makeDDLogicalPart(), DDDividedPolyconeRho::makeDDLogicalPart(), and DDLPolyGenerator::processElement().
{ return DDSolid(name, new DDI::Polycone(startPhi, deltaPhi, z, rmin, rmax)); }
DDSolid DDSolidFactory::polycone | ( | const DDName & | name, |
double | startPhi, | ||
double | deltaPhi, | ||
const std::vector< double > & | z, | ||
const std::vector< double > & | r | ||
) | [static] |
Creates a polycone (refere to Geant4 documentation)
The center of the polycone (for positioning) is the center of coordinates of the polycone definition (x=y=z=0)
Definition at line 665 of file DDSolid.cc.
{ return DDSolid(name, new DDI::Polycone(startPhi, deltaPhi, z, r)); }
DDSolid DDSolidFactory::polyhedra | ( | const DDName & | name, |
int | sides, | ||
double | startPhi, | ||
double | deltaPhi, | ||
const std::vector< double > & | z, | ||
const std::vector< double > & | rmin, | ||
const std::vector< double > & | rmax | ||
) | [static] |
Creates a polyhedra (refere to Geant3 or Geant4 documentation)
The center of the polyhedra (for positioning) is the center of coordinates of the polyhedra definition (x=y=z=0)
Definition at line 673 of file DDSolid.cc.
Referenced by DDHCalEndcapAlgo::constructGeneralVolume(), DDHCalBarrelAlgo::constructGeneralVolume(), DDHCalEndcapAlgo::constructInsideSector(), DDHCalBarrelAlgo::constructInsideSector(), DDHCalBarrelAlgo::constructMidLayer(), DDHCalBarrelAlgo::constructSideLayer(), DDHCalTBCableAlgo::execute(), DDDividedPolyhedraPhi::makeDDLogicalPart(), DDDividedPolyhedraRho::makeDDLogicalPart(), DDDividedPolyhedraZ::makeDDLogicalPart(), and DDLPolyGenerator::processElement().
{ return DDSolid(name, new DDI::Polyhedra(sides, startPhi, deltaPhi, z, rmin,rmax)); }
DDSolid DDSolidFactory::polyhedra | ( | const DDName & | name, |
int | sides, | ||
double | startPhi, | ||
double | deltaPhi, | ||
const std::vector< double > & | z, | ||
const std::vector< double > & | r | ||
) | [static] |
Creates a polyhedra (refere to Geant4 documentation)
The center of the polyhedra (for positioning) is the center of coordinates of the polyhedra definition (x=y=z=0)
Definition at line 685 of file DDSolid.cc.
{ return DDSolid(name, new DDI::Polyhedra(sides, startPhi, deltaPhi, z, r)); }
DDSolid DDSolidFactory::pseudoTrap | ( | const DDName & | name, |
double | pDx1, | ||
double | pDx2, | ||
double | pDy1, | ||
double | pDy2, | ||
double | pDz, | ||
double | radius, | ||
bool | atMinusZ | ||
) | [static] |
if true, the cut-out or rounding is applied at -dz, else at +dz
pDx1 | Half-length along x at the surface positioned at -dz |
pDx2 | Half-length along x at the surface positioned at +dz |
pDy1 | Half-length along y at the surface positioned at -dz |
pDy2 | Half-length along y at the surface positioned at +dz |
pDz | Half of the height of the pseudo trapezoid along z |
radius | radius of the cut-out (negative sign) or rounding (pos. sign) |
atMinusZ | if true, the cut-out or rounding is applied at -dz, else at +dz |
Definition at line 737 of file DDSolid.cc.
Referenced by DDLPseudoTrap::processElement().
{ return DDSolid(name, new DDI::PseudoTrap(pDx1, pDx2, pDy1, pDy2, pDz, radius, atMinusZ)); }
Definition at line 852 of file DDSolid.cc.
Referenced by DDLReflectionSolid::processElement(), and DDStreamer::solids_read().
{ return DDSolid(name, new DDI::Reflection(s)); }
Definition at line 846 of file DDSolid.cc.
Referenced by DDLShapelessSolid::processElement(), and regressionTest_setup().
{ return DDSolid(name, new DDI::Shapeless()); }
DDSolid DDSolidFactory::sphere | ( | const DDName & | name, |
double | innerRadius, | ||
double | outerRadius, | ||
double | startPhi, | ||
double | deltaPhi, | ||
double | startTheta, | ||
double | deltaTheta | ||
) | [static] |
Definition at line 797 of file DDSolid.cc.
Referenced by DDLSphere::processElement().
{ return DDSolid(name, new DDI::Sphere(innerRadius, outerRadius, startPhi, deltaPhi, startTheta, deltaTheta)); }
DDSolid DDSolidFactory::subtraction | ( | const DDName & | name, |
const DDSolid & | a, | ||
const DDSolid & | b, | ||
const DDTranslation & | t, | ||
const DDRotation & | r | ||
) | [static] |
Definition at line 705 of file DDSolid.cc.
Referenced by DDEcalPreshowerAlgo::doLayers(), DDEcalEndcapAlgo::EECreateSC(), DDEcalBarrelNewAlgo::execute(), DDTIDModuleAlgo::execute(), DDEcalBarrelAlgo::execute(), DDLBooleanSolid::processElement(), and DDStreamer::solids_read().
{ return DDSolid(name, new DDI::Subtraction(a,b,t,r)); }
DDSolid DDSolidFactory::torus | ( | const DDName & | name, |
double | rMin, | ||
double | rMax, | ||
double | rTorus, | ||
double | startPhi, | ||
double | deltaPhi | ||
) | [static] |
Definition at line 778 of file DDSolid.cc.
Referenced by DDTOBRadCableAlgo::execute(), and DDLTorus::processElement().
{ return DDSolid(name, new DDI::Torus(rMin, rMax, rTorus, startPhi, deltaPhi)); }
DDSolid DDSolidFactory::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] |
Definition at line 723 of file DDSolid.cc.
Referenced by DDHCalEndcapAlgo::constructInsideModule(), DDHCalEndcapAlgo::constructInsideModule0(), DDHCalEndcapAlgo::constructScintLayer(), DDEcalPreshowerAlgo::doLadders(), DDEcalEndcapAlgo::EECreateCR(), DDEcalEndcapAlgo::EECreateSC(), DDPixBarStackLayerAlgo::execute(), DDHCalTBCableAlgo::execute(), DDPixBarLayerAlgo::execute(), DDTIDModuleAlgo::execute(), DDTECModuleAlgo::execute(), DDPixBarTPGStackLayerAlgo::execute(), DDPixBarLayerUpgradeAlgoCoverage::execute(), DDDividedTrdZ::makeDDLogicalPart(), DDDividedTrdY::makeDDLogicalPart(), DDDividedTrdX::makeDDLogicalPart(), DDEcalBarrelNewAlgo::mytrap(), DDEcalBarrelAlgo::mytrap(), and DDLTrapezoid::processElement().
DDSolid DDSolidFactory::truncTubs | ( | const DDName & | name, |
double | zHalf, | ||
double | rIn, | ||
double | rOut, | ||
double | startPhi, | ||
double | deltaPhi, | ||
double | cutAtStart, | ||
double | cutAtDelta, | ||
bool | cutInside | ||
) | [static] |
zHalf | half-length of the z-axis |
rIn | inner radius of the tube-section |
rOut | outer radius of the tube-section |
startPhi | starting angle of the tube-section |
deltaPhi | spanning angle of the tube-section |
cutAtStart | tructation |
cutAtDelta | truncation at deltaPhi side |
Definition at line 750 of file DDSolid.cc.
Referenced by DDLTubs::processElement().
{ return DDSolid(name, new DDI::TruncTubs(zHalf,rIn,rOut,startPhi,deltaPhi,cutAtStart,cutAtDelta,cutInside)); }
DDSolid DDSolidFactory::tubs | ( | const DDName & | name, |
double | zhalf, | ||
double | rIn, | ||
double | rOut, | ||
double | startPhi, | ||
double | deltaPhi | ||
) | [static] |
Definition at line 788 of file DDSolid.cc.
Referenced by DDEcalPreshowerAlgo::doLayers(), DDTBH4Algo::execute(), DDPixBarStackLayerAlgo::execute(), DDTOBRadCableAlgo::execute(), DDTIBLayerAlgo_MTCC::execute(), DDEcalBarrelNewAlgo::execute(), DDPixBarLayerAlgo::execute(), DDEcalBarrelAlgo::execute(), DDTIDAxialCableAlgo::execute(), DDTIBLayerAlgo::execute(), DDPixBarTPGStackLayerAlgo::execute(), DDTOBAxCableAlgo::execute(), DDPixBarStackTrigLayerAlgo::execute(), DDPixBarLayerUpgradeAlgoCoverage::execute(), DDTIBRadCableAlgo_MTCC::execute(), DDPixBarLayerUpgradeAlgo::execute(), DDDividedTubsPhi::makeDDLogicalPart(), DDDividedTubsRho::makeDDLogicalPart(), DDDividedTubsZ::makeDDLogicalPart(), and DDLTubs::processElement().
DDSolid DDSolidFactory::unionSolid | ( | const DDName & | name, |
const DDSolid & | a, | ||
const DDSolid & | b, | ||
const DDTranslation & | t, | ||
const DDRotation & | r | ||
) | [static] |
Definition at line 696 of file DDSolid.cc.
Referenced by DDEcalPreshowerAlgo::doLadders(), DDLBooleanSolid::processElement(), and DDStreamer::solids_read().
{ return DDSolid(name, new DDI::Union(a,b,t,r)); }