CMS 3D CMS Logo

List of all members | Static Public Member Functions
DDSolidFactory Struct Reference

#include <DDSolid.h>

Static Public Member Functions

static DDSolid assembly (const DDName &name)
 Creates an assembly. More...
 
static DDSolid box (const DDName &name, double xHalf, double yHalf, double zHalf)
 Creates a box with side length 2*xHalf, 2*yHalf, 2*zHalf. More...
 
static DDSolid cons (const DDName &name, double zhalf, double rInMinusZ, double rOutMinusZ, double rInPlusZ, double rOutPlusZ, double phiFrom, double deltaPhi)
 
static DDSolid cuttubs (const DDName &name, double zhalf, double rIn, double rOut, double startPhi, double deltaPhi, double lx, double ly, double lz, double tx, double ty, double tz)
 
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 extrudedpolygon (const DDName &name, const std::vector< double > &x, const std::vector< double > &y, const std::vector< double > &z, const std::vector< double > &zx, const std::vector< double > &zy, const std::vector< double > &zscale)
 
static DDSolid intersection (const DDName &name, const DDSolid &a, const DDSolid &b, const DDTranslation &t, const DDRotation &r)
 
static DDSolid multiUnionSolid (const DDName &name, const std::vector< DDSolid > &a, const std::vector< DDTranslation > &t, const std::vector< 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 > &r)
 Creates a polycone (refere to Geant4 documentation) More...
 
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) More...
 
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) More...
 
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) More...
 
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)
 

Detailed Description

Definition at line 400 of file DDSolid.h.

Member Function Documentation

◆ assembly()

DDSolid DDSolidFactory::assembly ( const DDName name)
static

Creates an assembly.

Definition at line 545 of file DDSolid.cc.

545 { return DDSolid(name, std::make_unique<DDI::Assembly>()); }

References Skims_PA_cff::name.

◆ box()

DDSolid DDSolidFactory::box ( const DDName name,
double  xHalf,
double  yHalf,
double  zHalf 
)
static

◆ cons()

DDSolid DDSolidFactory::cons ( const DDName name,
double  zhalf,
double  rInMinusZ,
double  rOutMinusZ,
double  rInPlusZ,
double  rOutPlusZ,
double  phiFrom,
double  deltaPhi 
)
static

Definition at line 650 of file DDSolid.cc.

657  {
658  return DDSolid(name,
659  std::make_unique<DDI::Cons>(zhalf, rInMinusZ, rOutMinusZ, rInPlusZ, rOutPlusZ, phiFrom, deltaPhi));
660 }

References SiPixelRawToDigiRegional_cfi::deltaPhi, and Skims_PA_cff::name.

Referenced by DDHCalFibreBundle::execute(), DDDividedConsRho::makeDDLogicalPart(), DDDividedConsPhi::makeDDLogicalPart(), DDDividedConsZ::makeDDLogicalPart(), DDDividedPolyconeZ::makeDDLogicalPart(), and DDLCone::processElement().

◆ cuttubs()

DDSolid DDSolidFactory::cuttubs ( const DDName name,
double  zhalf,
double  rIn,
double  rOut,
double  startPhi,
double  deltaPhi,
double  lx,
double  ly,
double  lz,
double  tx,
double  ty,
double  tz 
)
static

Definition at line 672 of file DDSolid.cc.

683  {
684  return DDSolid(name, std::make_unique<DDI::CutTubs>(zhalf, rIn, rOut, phiFrom, deltaPhi, lx, ly, lz, tx, ty, tz));
685 }

References SiPixelRawToDigiRegional_cfi::deltaPhi, and Skims_PA_cff::name.

Referenced by DDCutTubsFromPoints::execute(), and DDLTubs::processElement().

◆ ellipsoid()

static DDSolid DDSolidFactory::ellipsoid ( const DDName name,
double  xSemiAxis,
double  ySemiAxis,
double  zSemiAxis,
double  zBottomCut = 0.,
double  zTopCut = 0. 
)
static

◆ ellipticalTube()

DDSolid DDSolidFactory::ellipticalTube ( const DDName name,
double  xSemiAxis,
double  ySemiAxis,
double  zHeight 
)
static

Definition at line 698 of file DDSolid.cc.

698  {
699  return DDSolid(name, std::make_unique<DDI::EllipticalTube>(xSemiAxis, ySemiAxis, zHeight));
700 }

References Skims_PA_cff::name.

Referenced by DDLEllipticalTube::processElement().

◆ extrudedpolygon()

DDSolid DDSolidFactory::extrudedpolygon ( const DDName name,
const std::vector< double > &  x,
const std::vector< double > &  y,
const std::vector< double > &  z,
const std::vector< double > &  zx,
const std::vector< double > &  zy,
const std::vector< double > &  zscale 
)
static

Definition at line 584 of file DDSolid.cc.

590  {
591  return DDSolid(name, std::make_unique<DDI::ExtrudedPolygon>(x, y, z, zx, zy, zscale));
592 }

References Skims_PA_cff::name, x, y, and z.

Referenced by DDHGCalCell::execute(), DDHGCalWafer8::execute(), DDHGCalWaferF::execute(), DDHGCalWaferP::execute(), and DDLPgonGenerator::processElement().

◆ intersection()

DDSolid DDSolidFactory::intersection ( const DDName name,
const DDSolid a,
const DDSolid b,
const DDTranslation t,
const DDRotation r 
)
static

Definition at line 604 of file DDSolid.cc.

605  {
606  return DDSolid(name, std::make_unique<DDI::Intersection>(a, b, t, r));
607 }

References a, b, Skims_PA_cff::name, alignCSCRings::r, and submitPVValidationJobs::t.

Referenced by DDLBooleanSolid::processElement().

◆ multiUnionSolid()

static DDSolid DDSolidFactory::multiUnionSolid ( const DDName name,
const std::vector< DDSolid > &  a,
const std::vector< DDTranslation > &  t,
const std::vector< DDRotation > &  r 
)
static

◆ orb()

static DDSolid DDSolidFactory::orb ( const DDName name,
double  radius 
)
static

◆ parallelepiped()

static DDSolid DDSolidFactory::parallelepiped ( const DDName name,
double  xHalf,
double  yHalf,
double  zHalf,
double  alpha,
double  theta,
double  phi 
)
static

◆ polycone() [1/2]

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 560 of file DDSolid.cc.

561  {
562  return DDSolid(name, std::make_unique<DDI::Polycone>(startPhi, deltaPhi, z, r));
563 }

References SiPixelRawToDigiRegional_cfi::deltaPhi, Skims_PA_cff::name, alignCSCRings::r, and z.

◆ polycone() [2/2]

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 551 of file DDSolid.cc.

556  {
557  return DDSolid(name, std::make_unique<DDI::Polycone>(startPhi, deltaPhi, z, rmin, rmax));
558 }

References SiPixelRawToDigiRegional_cfi::deltaPhi, Skims_PA_cff::name, and z.

Referenced by DDTIDAxialCableAlgo::execute(), DDTOBRadCableAlgo::execute(), DDEcalBarrelAlgo::execute(), DDEcalBarrelNewAlgo::execute(), DDDividedPolyconeRho::makeDDLogicalPart(), DDDividedPolyconePhi::makeDDLogicalPart(), and DDLPolyGenerator::processElement().

◆ polyhedra() [1/2]

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 575 of file DDSolid.cc.

580  {
581  return DDSolid(name, std::make_unique<DDI::Polyhedra>(sides, startPhi, deltaPhi, z, r));
582 }

References SiPixelRawToDigiRegional_cfi::deltaPhi, Skims_PA_cff::name, alignCSCRings::r, and z.

◆ polyhedra() [2/2]

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

◆ pseudoTrap()

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

Parameters
pDx1Half-length along x at the surface positioned at -dz
pDx2Half-length along x at the surface positioned at +dz
pDy1Half-length along y at the surface positioned at -dz
pDy2Half-length along y at the surface positioned at +dz
pDzHalf of the height of the pseudo trapezoid along z
radiusradius of the cut-out (negative sign) or rounding (pos. sign)
atMinusZif true, the cut-out or rounding is applied at -dz, else at +dz

Definition at line 625 of file DDSolid.cc.

633  {
634  return DDSolid(name, std::make_unique<DDI::PseudoTrap>(pDx1, pDx2, pDy1, pDy2, pDz, radius, atMinusZ));
635 }

References Skims_PA_cff::name, and CosmicsPD_Skims::radius.

Referenced by DDLPseudoTrap::processElement().

◆ reflection()

static DDSolid DDSolidFactory::reflection ( const DDName name,
const DDSolid s 
)
static

◆ shapeless()

DDSolid DDSolidFactory::shapeless ( const DDName name)
static

Definition at line 702 of file DDSolid.cc.

702 { return DDSolid(name, std::make_unique<DDI::Shapeless>()); }

References Skims_PA_cff::name.

Referenced by DDLAssembly::processElement(), DDLShapelessSolid::processElement(), and regressionTest_setup().

◆ sphere()

DDSolid DDSolidFactory::sphere ( const DDName name,
double  innerRadius,
double  outerRadius,
double  startPhi,
double  deltaPhi,
double  startTheta,
double  deltaTheta 
)
static

Definition at line 687 of file DDSolid.cc.

693  {
694  return DDSolid(name,
695  std::make_unique<DDI::Sphere>(innerRadius, outerRadius, startPhi, deltaPhi, startTheta, deltaTheta));
696 }

References SiPixelRawToDigiRegional_cfi::deltaPhi, interestingEgammaIsoDetIdsSequence_cff::innerRadius, Skims_PA_cff::name, and interestingEgammaIsoDetIdsSequence_cff::outerRadius.

Referenced by DDLSphere::processElement().

◆ subtraction()

DDSolid DDSolidFactory::subtraction ( const DDName name,
const DDSolid a,
const DDSolid b,
const DDTranslation t,
const DDRotation r 
)
static

◆ torus()

DDSolid DDSolidFactory::torus ( const DDName name,
double  rMin,
double  rMax,
double  rTorus,
double  startPhi,
double  deltaPhi 
)
static

Definition at line 662 of file DDSolid.cc.

663  {
664  return DDSolid(name, std::make_unique<DDI::Torus>(rMin, rMax, rTorus, startPhi, deltaPhi));
665 }

References SiPixelRawToDigiRegional_cfi::deltaPhi, Skims_PA_cff::name, photonAnalyzer_cfi::rMax, and photonAnalyzer_cfi::rMin.

Referenced by DDTOBRadCableAlgo::execute(), and DDLTorus::processElement().

◆ trap()

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

◆ truncTubs()

DDSolid DDSolidFactory::truncTubs ( const DDName name,
double  zHalf,
double  rIn,
double  rOut,
double  startPhi,
double  deltaPhi,
double  cutAtStart,
double  cutAtDelta,
bool  cutInside 
)
static
Parameters
zHalfhalf-length of the z-axis
rIninner radius of the tube-section
rOutouter radius of the tube-section
startPhistarting angle of the tube-section
deltaPhispanning angle of the tube-section
cutAtStarttructation
cutAtDeltatruncation at deltaPhi side

Definition at line 637 of file DDSolid.cc.

645  {
646  return DDSolid(
647  name, std::make_unique<DDI::TruncTubs>(zHalf, rIn, rOut, startPhi, deltaPhi, cutAtStart, cutAtDelta, cutInside));
648 }

References SiPixelRawToDigiRegional_cfi::deltaPhi, and Skims_PA_cff::name.

Referenced by DDLTubs::processElement().

◆ tubs()

DDSolid DDSolidFactory::tubs ( const DDName name,
double  zhalf,
double  rIn,
double  rOut,
double  startPhi,
double  deltaPhi 
)
static

◆ unionSolid()

DDSolid DDSolidFactory::unionSolid ( const DDName name,
const DDSolid a,
const DDSolid b,
const DDTranslation t,
const DDRotation r 
)
static

Definition at line 594 of file DDSolid.cc.

595  {
596  return DDSolid(name, std::make_unique<DDI::Union>(a, b, t, r));
597 }

References a, b, Skims_PA_cff::name, alignCSCRings::r, and submitPVValidationJobs::t.

Referenced by DDEcalPreshowerAlgo::doLadders(), DDEcalPreshowerAlgo::doLayers(), DDCutTubsFromPoints::execute(), and DDLBooleanSolid::processElement().

DDAxes::y
photonAnalyzer_cfi.rMax
rMax
Definition: photonAnalyzer_cfi.py:91
interestingEgammaIsoDetIdsSequence_cff.outerRadius
outerRadius
Definition: interestingEgammaIsoDetIdsSequence_cff.py:14
DDAxes::x
SiPixelRawToDigiRegional_cfi.deltaPhi
deltaPhi
Definition: SiPixelRawToDigiRegional_cfi.py:9
DDAxes::z
b
double b
Definition: hdecay.h:118
a
double a
Definition: hdecay.h:119
interestingEgammaIsoDetIdsSequence_cff.innerRadius
innerRadius
Definition: interestingEgammaIsoDetIdsSequence_cff.py:15
alignCSCRings.r
r
Definition: alignCSCRings.py:93
CosmicsPD_Skims.radius
radius
Definition: CosmicsPD_Skims.py:135
Skims_PA_cff.name
name
Definition: Skims_PA_cff.py:17
DDSolid
A DDSolid represents the shape of a part.
Definition: DDSolid.h:39
photonAnalyzer_cfi.rMin
rMin
Definition: photonAnalyzer_cfi.py:90
submitPVValidationJobs.t
string t
Definition: submitPVValidationJobs.py:644