CMS 3D CMS Logo

DDSolid.h File Reference

#include <stdexcept>
#include <iostream>
#include <vector>
#include <utility>
#include "DetectorDescription/Core/interface/DDName.h"
#include "DetectorDescription/Core/interface/DDBase.h"
#include "DetectorDescription/Core/interface/DDSolidShapes.h"
#include "DetectorDescription/Core/interface/DDTransform.h"
#include "DetectorDescription/Base/interface/DDTranslation.h"

Go to the source code of this file.

Namespaces

namespace  DDI

Classes

struct  Composites
class  DDBooleanSolid
class  DDBox
class  DDCons
class  DDIntersection
class  DDPolycone
class  DDPolyhedra
class  DDPolySolid
 Abstract class for DDPolycone and DDPolyhedra. Basically a common member function. More...
class  DDPseudoTrap
class  DDReflectionSolid
class  DDShapelessSolid
 This is simply a handle on the solid. More...
class  DDSolid
 A DDSolid represents the shape of a part. More...
struct  DDSolidFactory
 Creates a box with side length 2*xHalf, 2*yHalf, 2*zHalf. More...
class  DDSubtraction
class  DDTorus
class  DDTrap
 Interface to a Trapezoid. More...
class  DDTruncTubs
 A truncated tube section. More...
class  DDTubs
class  DDUnion

Functions

DDSolidDDcons (const DDName &name, double zhalf, double rInMinusZ, double rOutMinusZ, double rInPlusZ, double rOutPlusZ, double startPhi, double deltaPhi)
 Creates a cone or a cone-section (refere to Geant4 documentation).
DDSolidDDintersection (const DDName &name, const DDSolid &a, const DDSolid &b, const DDRotation &r=DDRotation(), const DDTranslation &t=DDTranslation())
 Creates a boolean solid - the intersection of 2 compound solids.
DDSolidDDshapeless (const DDName &name)
 Creates a shapeless solid.
DDSolidDDsubtraction (const DDName &name, const DDSolid &a, const DDSolid &b, const DDRotation &r=DDRotation(), const DDTranslation &t=DDTranslation())
 Creates a boolean solid - the union of 2 compound solids.
DDSolidDDtorus (const DDName &name, double rMin, double rMax, double rTorus, double startPhi, double deltaPhi)
 Creates a torus or a toroidal-section (refere to Geant4 documentation).
DDSolidDDtrap (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)
 Creates a trapezoid (refere to Geant3 or Geant4 documentation).
DDSolidDDtubs (const DDName &name, double zhalf, double rIn, double rOut, double startPhi, double deltaPhi)
 Creates a tube or a tube-section (refere to Geant4 documentation).
DDSolidDDunion (const DDName &name, const DDSolid &a, const DDSolid &b, const DDRotation &r=DDRotation(), const DDTranslation &t=DDTranslation())
 Creates a boolean solid - the union of 2 compound solids.
std::ostream & operator<< (std::ostream &, const DDSolid &)


Function Documentation

DDSolid* DDcons ( const DDName name,
double  zhalf,
double  rInMinusZ,
double  rOutMinusZ,
double  rInPlusZ,
double  rOutPlusZ,
double  startPhi,
double  deltaPhi 
)

Creates a cone or a cone-section (refere to Geant4 documentation).

The center of the cone or cone-section (for positioning) is the center of coordinates of its definition (x=y=z=0).

DDSolid* DDintersection ( const DDName name,
const DDSolid a,
const DDSolid b,
const DDRotation r = DDRotation(),
const DDTranslation t = DDTranslation() 
)

Creates a boolean solid - the intersection of 2 compound solids.

DDSolid* DDshapeless ( const DDName name  ) 

Creates a shapeless solid.

When used in a mother-volume this type of solid forms an assembly in the Geant4 sense

DDSolid* DDsubtraction ( const DDName name,
const DDSolid a,
const DDSolid b,
const DDRotation r = DDRotation(),
const DDTranslation t = DDTranslation() 
)

Creates a boolean solid - the union of 2 compound solids.

DDSolid* DDtorus ( const DDName name,
double  rMin,
double  rMax,
double  rTorus,
double  startPhi,
double  deltaPhi 
)

Creates a torus or a toroidal-section (refere to Geant4 documentation).

The center of the torus or toroidal-section (for positioning) is the center of coordinates of its definition (x=y=z=0).

DDSolid* DDtrap ( 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 
)

Creates a trapezoid (refere to Geant3 or Geant4 documentation).

The center of the tube or tube-section (for positioning) is the center of coordinates of its definition (x=y=z=0).

DDSolid* DDtubs ( const DDName name,
double  zhalf,
double  rIn,
double  rOut,
double  startPhi,
double  deltaPhi 
)

Creates a tube or a tube-section (refere to Geant4 documentation).

The center of the tube or tube-section (for positioning) is the center of coordinates of its definition (x=y=z=0).

DDSolid* DDunion ( const DDName name,
const DDSolid a,
const DDSolid b,
const DDRotation r = DDRotation(),
const DDTranslation t = DDTranslation() 
)

Creates a boolean solid - the union of 2 compound solids.

std::ostream& operator<< ( std::ostream &  ,
const DDSolid  
)

Definition at line 31 of file DDSolid.cc.

References DDBase< N, C >::isDefined(), DDSolidShapesName::name(), DDBase< N, C >::rep(), and DDSolid::shape().

00032 { 
00033   DDBase<DDName,DDI::Solid*>::def_type defined(solid.isDefined());
00034   if (defined.first) {
00035     os << *(defined.first) << " ";
00036     if (defined.second) {
00037       os << "  " << DDSolidShapesName::name(solid.shape()) << ": ";
00038       solid.rep().stream(os); 
00039     }
00040     else {
00041       os << "* solid not defined * ";  
00042     }
00043   }  
00044   else {
00045     os << "* solid not declared * ";  
00046   }  
00047   return os;
00048 }


Generated on Tue Jun 9 17:52:30 2009 for CMSSW by  doxygen 1.5.4