#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 | |
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). | |
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. | |
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). | |
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). | |
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). | |
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 &) |
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.
name
unique name a
first compound of the intersection b
second comound of the intersection r
relative rotation of b
towards a
t
relative translation of b
towards a
The resulting solid is the common volume of a
and b
. 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.
name
unique name a
first compound of the subtraction b
second comound of the subtraction r
relative rotation of b
towards a
t
relative translation of b
towards a
b
is subtracted from a
. 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.
name
unique name a
first compound of the union b
second comound of the union r
relative rotation of b
towards a
t
relative translation of b
towards a
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 }