CMS 3D CMS Logo

Static Public Member Functions

DDSolidFactory Struct Reference

Creates a box with side length 2*xHalf, 2*yHalf, 2*zHalf. More...

#include <DDSolid.h>

List of all members.

Static Public Member Functions

static DDSolid box (const DDName &name, double xHalf, double yHalf, double 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) //! Creates a polycone (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) //! Creates a polycone (refere to Geant3 or 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)

Detailed Description

Creates a box with side length 2*xHalf, 2*yHalf, 2*zHalf.

Definition at line 422 of file DDSolid.h.


Member Function Documentation

DDSolid DDSolidFactory::box ( const DDName name,
double  xHalf,
double  yHalf,
double  zHalf 
) [static]
DDSolid DDSolidFactory::cons ( const DDName name,
double  zhalf,
double  rInMinusZ,
double  rOutMinusZ,
double  rInPlusZ,
double  rOutPlusZ,
double  phiFrom,
double  deltaPhi 
) [static]
DDSolid DDSolidFactory::ellipsoid ( const DDName name,
double  xSemiAxis,
double  ySemiAxis,
double  zSemiAxis,
double  zBottomCut = 0,
double  zTopCut = 0 
) [static]

Definition at line 824 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 818 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 717 of file DDSolid.cc.

Referenced by DDLBooleanSolid::processElement(), and DDStreamer::solids_read().

{
  return DDSolid(name, new DDI::Intersection(a,b,t,r));
}
DDSolid DDSolidFactory::orb ( const DDName name,
double  radius 
) [static]

Definition at line 813 of file DDSolid.cc.

Referenced by DDLOrb::processElement().

{
  return DDSolid(name, new DDI::Orb(radius));
}                    
DDSolid DDSolidFactory::parallelepiped ( const DDName name,
double  xHalf,
double  yHalf,
double  zHalf,
double  alpha,
double  theta,
double  phi 
) [static]

Definition at line 841 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 659 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 668 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) //! Creates a polycone (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 676 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) //! Creates a polycone (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 688 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]
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 740 of file DDSolid.cc.

Referenced by DDLPseudoTrap::processElement().

{
   return DDSolid(name, new DDI::PseudoTrap(pDx1, pDx2, pDy1, pDy2, pDz, radius, atMinusZ));
}
DDSolid DDSolidFactory::reflection ( const DDName name,
const DDSolid s 
) [static]

Definition at line 855 of file DDSolid.cc.

Referenced by DDLReflectionSolid::processElement(), and DDStreamer::solids_read().

{
  return DDSolid(name, new DDI::Reflection(s));
}                                  
DDSolid DDSolidFactory::shapeless ( const DDName name) [static]

Definition at line 849 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 800 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]
DDSolid DDSolidFactory::torus ( const DDName name,
double  rMin,
double  rMax,
double  rTorus,
double  startPhi,
double  deltaPhi 
) [static]

Definition at line 781 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]
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 753 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]
DDSolid DDSolidFactory::unionSolid ( const DDName name,
const DDSolid a,
const DDSolid b,
const DDTranslation t,
const DDRotation r 
) [static]

Definition at line 699 of file DDSolid.cc.

Referenced by DDEcalPreshowerAlgo::doLadders(), DDLBooleanSolid::processElement(), and DDStreamer::solids_read().

{
  return DDSolid(name, new DDI::Union(a,b,t,r));
}