DD4hep  1.30.0
Detector Description Toolkit for High Energy Physics
Public Types | Public Member Functions | Static Public Member Functions | List of all members

Handle class holding a placed volume (also called physical volume) More...

#include <Volumes.h>

Inheritance diagram for dd4hep::Volume:
dd4hep::Handle< TGeoVolume > dd4hep::Assembly dd4hep::VolumeMulti

Public Types

enum  { VETO_SIMU = 1, VETO_RECO = 2, VETO_DISPLAY = 3, REFLECTED = 10 }
 Flag bit numbers for special volume treatments. More...
 
enum  ReplicationAxis {
  REPLICATED = 1UL << 4, PARAMETERIZED = 1UL << 5, Undefined = 1UL << 7, X_axis = 1UL << 8,
  Y_axis = 1UL << 9, Z_axis = 1UL << 10, Rho_axis = 1UL << 11, Phi_axis = 1UL << 12
}
 
enum  g4_optimizations { NO_SMARTLESS_OPTIMIZATION = 0xFF }
 
typedef VolumeExtension Object
 
- Public Types inherited from dd4hep::Handle< TGeoVolume >
typedef TGeoVolume Object
 Extern accessible definition of the contained element type. More...
 
typedef Handle< TGeoVolume > Base
 Self type: used by sub-classes. More...
 

Public Member Functions

 Volume ()=default
 Default constructor. More...
 
 Volume (Volume &&v)=default
 Move from handle. More...
 
 Volume (const Volume &v)=default
 Copy from handle. More...
 
 Volume (const TGeoVolume *v)
 Copy from handle. More...
 
template<typename T >
 Volume (const Handle< T > &v)
 Copy from arbitrary Element. More...
 
 Volume (const std::string &name)
 Constructor to be used when creating a new geometry tree. More...
 
 Volume (const std::string &name, const std::string &title)
 Constructor to be used when creating a new geometry tree. Sets also title. More...
 
 Volume (const std::string &name, const Solid &s, const Material &m)
 Constructor to be used when creating a new geometry tree. Also sets materuial and solid attributes. More...
 
 Volume (const std::string &name, const std::string &title, const Solid &s, const Material &m)
 Constructor to be used when creating a new geometry tree. Also sets materuial and solid attributes. More...
 
Volumeoperator= (Volume &&a)=default
 Assignment operator (must match move constructor) More...
 
Volumeoperator= (const Volume &a)=default
 Assignment operator (must match copy constructor) More...
 
template<typename T >
bool operator== (const Handle< T > &e) const
 Equality operator. More...
 
template<typename T >
bool operator!= (const Handle< T > &e) const
 Non-Equality operator. More...
 
Objectdata () const
 Check if placement is properly instrumented. More...
 
const char * type () const
 Access the object type from the class information. More...
 
Volume reflect () const
 Create a reflected volume tree. The reflected volume has left-handed coordinates. More...
 
Volume reflect (SensitiveDetector sd) const
 Create a reflected volume tree. The reflected volume has left-handed coordinates. More...
 
Volumeimport ()
 If we import volumes from external sources, we have to attach the extensions to the tree. More...
 
Volume divide (const std::string &divname, int iaxis, int ndiv, double start, double step, int numed=0, const char *option="")
 Divide volume into subsections (See the ROOT manual for details) More...
 
PlacedVolume placeVolume (const Volume &volume) const
 Place daughter volume. The position and rotation are the identity. More...
 
PlacedVolume placeVolume (const Volume &volume, const Transform3D &tr) const
 Place daughter volume according to a generic Transform3D. More...
 
PlacedVolume placeVolume (const Volume &volume, const Position &pos) const
 Place un-rotated daughter volume at the given position. More...
 
PlacedVolume placeVolume (const Volume &volume, const RotationZYX &rot) const
 Place rotated daughter volume. The position is automatically the identity position. More...
 
PlacedVolume placeVolume (const Volume &volume, const Rotation3D &rot) const
 Place rotated daughter volume. The position is automatically the identity position. More...
 
PlacedVolume placeVolume (const Volume &volume, int copy_no) const
 Place daughter volume. The position and rotation are the identity. More...
 
PlacedVolume placeVolume (const Volume &volume, int copy_no, const Transform3D &tr) const
 Place daughter volume according to a generic Transform3D. More...
 
PlacedVolume placeVolume (const Volume &volume, int copy_no, const Position &pos) const
 Place un-rotated daughter volume at the given position. More...
 
PlacedVolume placeVolume (const Volume &volume, int copy_no, const RotationZYX &rot) const
 Place rotated daughter volume. The position is automatically the identity position. More...
 
PlacedVolume placeVolume (const Volume &volume, int copy_no, const Rotation3D &rot) const
 Place rotated daughter volume. The position is automatically the identity position. More...
 
PlacedVolume placeVolume (const Volume &volume, TGeoMatrix *tr) const
 Place daughter volume with generic TGeo matrix. More...
 
PlacedVolume placeVolume (const Volume &volume, int copy_nr, TGeoMatrix *tr) const
 Place daughter volume with generic TGeo matrix. More...
 
PlacedVolume replicate (const Volume entity, ReplicationAxis axis, size_t count, double inc, double start=0e0)
 1D volume replication implementation More...
 
PlacedVolume paramVolume1D (const Transform3D &start, Volume entity, size_t count, const Transform3D &inc)
 1D Parameterised volume implementation More...
 
PlacedVolume paramVolume1D (Volume entity, size_t count, const Transform3D &trafo)
 1D Parameterised volume implementation More...
 
PlacedVolume paramVolume1D (Volume entity, size_t count, const Position &inc)
 1D Parameterised volume implementation More...
 
PlacedVolume paramVolume1D (Volume entity, size_t count, const RotationZYX &inc)
 1D Parameterised volume implementation More...
 
PlacedVolume paramVolume2D (Volume entity, size_t count_1, const Transform3D &inc_1, size_t count_2, const Transform3D &inc_2)
 2D Parameterised volume implementation More...
 
PlacedVolume paramVolume2D (const Transform3D &start, Volume entity, size_t count_1, const Position &inc_1, size_t count_2, const Position &inc_2)
 Constructor to be used when creating a new parameterised volume object. More...
 
PlacedVolume paramVolume2D (Volume entity, size_t count_1, const Position &inc_1, size_t count_2, const Position &inc_2)
 Constructor to be used when creating a new parameterised volume object. More...
 
PlacedVolume paramVolume2D (const Transform3D &start, Volume entity, size_t count_1, const Transform3D &inc_1, size_t count_2, const Transform3D &inc_2)
 2D Parameterised volume implementation More...
 
PlacedVolume paramVolume3D (Volume entity, size_t count_1, const Transform3D &inc_1, size_t count_2, const Transform3D &inc_2, size_t count_3, const Transform3D &inc_3)
 3D Parameterised volume implementation More...
 
PlacedVolume paramVolume3D (const Transform3D &start, Volume entity, size_t count_1, const Transform3D &inc_1, size_t count_2, const Transform3D &inc_2, size_t count_3, const Transform3D &inc_3)
 3D Parameterised volume implementation More...
 
PlacedVolume paramVolume3D (Volume entity, size_t count_1, const Position &inc_1, size_t count_2, const Position &inc_2, size_t count_3, const Position &inc_3)
 3D Parameterised volume implementation More...
 
PlacedVolume paramVolume3D (const Transform3D &start, Volume entity, size_t count_1, const Position &inc_1, size_t count_2, const Position &inc_2, size_t count_3, const Position &inc_3)
 3D Parameterised volume implementation More...
 
void setFlagBit (unsigned int bit)
 Set user flags in bit-field. More...
 
bool testFlagBit (unsigned int bit) const
 Test the user flag bit. More...
 
bool isReflected () const
 Test if this volume was reflected. More...
 
bool isAssembly () const
 Test if this volume is an assembly structure. More...
 
unsigned char setSmartlessValue (unsigned char value)
 Set the smartless option for G4 voxelization. Returns previous value. More...
 
unsigned char smartlessValue () const
 access the smartless option for G4 voxelization More...
 
const VolumesetOption (const std::string &opt) const
 Set the volume's option value. More...
 
std::string option () const
 Access the volume's option value. More...
 
const VolumesetAttributes (const Detector &description, const std::string &region, const std::string &limits, const std::string &vis) const
 Attach attributes to the volume. More...
 
const VolumesetRegion (const Detector &description, const std::string &name) const
 Set the regional attributes to the volume. Note: If the name string is empty, the action is ignored. More...
 
const VolumesetRegion (const Region &obj) const
 Set the regional attributes to the volume. More...
 
Region region () const
 Access to the handle to the region structure. More...
 
const VolumesetLimitSet (const Detector &description, const std::string &name) const
 Set the limits to the volume. Note: If the name string is empty, the action is ignored. More...
 
const VolumesetLimitSet (const LimitSet &obj) const
 Set the limits to the volume. More...
 
LimitSet limitSet () const
 Access to the limit set. More...
 
const VolumesetVisAttributes (const VisAttr &obj) const
 Set Visualization attributes to the volume. More...
 
const VolumesetVisAttributes (const Detector &description, const std::string &name) const
 Set Visualization attributes to the volume. Note: If the name string is empty, the action is ignored. More...
 
VisAttr visAttributes () const
 Access the visualisation attributes. More...
 
const VolumesetSensitiveDetector (const SensitiveDetector &obj) const
 Assign the sensitive detector structure. More...
 
Handle< NamedObjectsensitiveDetector () const
 Access to the handle to the sensitive detector. More...
 
bool isSensitive () const
 Accessor if volume is sensitive (ie. is attached to a sensitive detector) More...
 
const VolumesetSolid (const Solid &s) const
 Set the volume's solid shape. More...
 
Solid solid () const
 Access to Solid (Shape) More...
 
Box boundingBox () const
 Access the bounding box of the volume (if available) More...
 
const VolumesetMaterial (const Material &m) const
 Set the volume's material. More...
 
Material material () const
 Access to the Volume material. More...
 
bool hasProperties () const
 Check for existence of properties. More...
 
void addProperty (const std::string &nam, const std::string &val) const
 Add Volume property (name-value pair) More...
 
std::string getProperty (const std::string &nam, const std::string &default_val="") const
 Access property value. Returns default_value if the property is not present. More...
 
 operator TGeoVolume * () const
 Auto conversion to underlying ROOT object. More...
 
- Public Member Functions inherited from dd4hep::Handle< TGeoVolume >
 Handle ()=default
 Default constructor. More...
 
 Handle (Handle< TGeoVolume > &&element)=default
 Copy constructor. More...
 
 Handle (const Handle< TGeoVolume > &element)=default
 Copy constructor. More...
 
 Handle (TGeoVolume *element)
 Initializing constructor from pointer. More...
 
 Handle (Q *element)
 Initializing constructor from unrelated pointer with type checking. More...
 
 Handle (const Handle< Q > &element)
 Initializing constructor from unrelated handle with type checking. More...
 
Handle< TGeoVolume > & operator= (Handle< TGeoVolume > &&element)=default
 Assignment move operator. More...
 
Handle< TGeoVolume > & operator= (const Handle< TGeoVolume > &element)=default
 Assignment copy operator. More...
 
bool operator== (const Handle< TGeoVolume > &element) const
 Boolean operator == used for RB tree insertions. More...
 
bool operator< (const Handle< TGeoVolume > &element) const
 Boolean operator < used for RB tree insertions. More...
 
bool operator> (const Handle< TGeoVolume > &element) const
 Boolean operator > used for RB tree insertions. More...
 
bool isValid () const
 Check the validity of the object held by the handle. More...
 
bool operator! () const
 Check the validity of the object held by the handle. More...
 
Handle< TGeoVolume > & clear ()
 Release the object held by the handle. More...
 
TGeoVolume * operator-> () const
 Access the held object using the -> operator. More...
 
 operator TGeoVolume & () const
 Automatic type conversion to an object references. More...
 
TGeoVolume & operator* () const
 Access the held object using the * operator. More...
 
TGeoVolume * ptr () const
 Access to the held object. More...
 
Q * _ptr () const
 Access to an unrelated object type. More...
 
Q * data () const
 Access to an unrelated object type. More...
 
Q & object () const
 Access to an unrelated object type. More...
 
TGeoVolume * access () const
 Checked object access. Throws invalid handle runtime exception if invalid handle. More...
 
const char * name () const
 Access the object name (or "" if not supported by the object) More...
 
const char * name () const
 
const char * name () const
 
void assign (Object *n, const std::string &nam, const std::string &title)
 Assign a new named object. Note: object references must be managed by the user. More...
 
void assign (_Segmentation *s, const std::string &n, const std::string &)
 
void assign (NamedObject *p, const std::string &n, const std::string &t)
 
void destroy ()
 Destroy the underlying object (be careful here: things are not reference counted)! More...
 

Static Public Member Functions

static void enableCopyNumberCheck (bool value)
 Set flag to enable copy number checks when inserting new nodes. More...
 
- Static Public Member Functions inherited from dd4hep::Handle< TGeoVolume >
static void bad_assignment (const std::type_info &from, const std::type_info &to)
 Helper routine called when unrelated types are assigned. More...
 

Additional Inherited Members

- Public Attributes inherited from dd4hep::Handle< TGeoVolume >
TGeoVolume * m_element
 Single and only data member: Reference to the actual element. More...
 

Detailed Description

Handle class holding a placed volume (also called physical volume)

Handle describing a Volume

One note about divisions:

Since dd4hep requires Volumes (aka TGeoVolume) and PlacedVolumes (aka TGeoNode) to be enhaced with the user extension mechanism shape divisions MUST be done using the division mechanism of the dd4hep shape or volume wrapper. Otherwise the enhancements are not added and you shall get exception when dd4hep is closing the geometry. The same argument holds when a division is made from a Volume. Unfortunately there is no reasonable way to intercept this call to the TGeo objects - except to sub-class each of them, which is not really acceptable either.

For any further documentation please see the following ROOT documentation:

See also
http://root.cern.ch/root/html/TGeoVolume.html
Author
M.Frank
Version
1.0

Definition at line 370 of file Volumes.h.

Member Typedef Documentation

◆ Object

Definition at line 372 of file Volumes.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum

Flag bit numbers for special volume treatments.

Enumerator
VETO_SIMU 
VETO_RECO 
VETO_DISPLAY 
REFLECTED 

Definition at line 374 of file Volumes.h.

◆ g4_optimizations

Enumerator
NO_SMARTLESS_OPTIMIZATION 

Definition at line 390 of file Volumes.h.

◆ ReplicationAxis

Enumerator
REPLICATED 
PARAMETERIZED 
Undefined 
X_axis 
Y_axis 
Z_axis 
Rho_axis 
Phi_axis 

Definition at line 380 of file Volumes.h.

Constructor & Destructor Documentation

◆ Volume() [1/9]

dd4hep::Volume::Volume ( )
default

Default constructor.

◆ Volume() [2/9]

dd4hep::Volume::Volume ( Volume &&  v)
default

Move from handle.

◆ Volume() [3/9]

dd4hep::Volume::Volume ( const Volume v)
default

Copy from handle.

◆ Volume() [4/9]

dd4hep::Volume::Volume ( const TGeoVolume *  v)
inline

Copy from handle.

Definition at line 401 of file Volumes.h.

◆ Volume() [5/9]

template<typename T >
dd4hep::Volume::Volume ( const Handle< T > &  v)
inline

Copy from arbitrary Element.

Definition at line 403 of file Volumes.h.

◆ Volume() [6/9]

Volume::Volume ( const std::string &  name)

Constructor to be used when creating a new geometry tree.

Definition at line 630 of file Volumes.cpp.

◆ Volume() [7/9]

Volume::Volume ( const std::string &  name,
const std::string &  title 
)

Constructor to be used when creating a new geometry tree. Sets also title.

Constructor to be used when creating a new geometry tree.

Definition at line 635 of file Volumes.cpp.

◆ Volume() [8/9]

Volume::Volume ( const std::string &  name,
const Solid s,
const Material m 
)

Constructor to be used when creating a new geometry tree. Also sets materuial and solid attributes.

Definition at line 641 of file Volumes.cpp.

◆ Volume() [9/9]

Volume::Volume ( const std::string &  name,
const std::string &  title,
const Solid s,
const Material m 
)

Constructor to be used when creating a new geometry tree. Also sets materuial and solid attributes.

Definition at line 646 of file Volumes.cpp.

Member Function Documentation

◆ addProperty()

void Volume::addProperty ( const std::string &  nam,
const std::string &  val 
) const

Add Volume property (name-value pair)

Definition at line 1332 of file Volumes.cpp.

◆ boundingBox()

Box Volume::boundingBox ( ) const

Access the bounding box of the volume (if available)

Definition at line 1257 of file Volumes.cpp.

◆ data()

Volume::Object * Volume::data ( ) const

Check if placement is properly instrumented.

Definition at line 657 of file Volumes.cpp.

◆ divide()

Volume Volume::divide ( const std::string &  divname,
int  iaxis,
int  ndiv,
double  start,
double  step,
int  numed = 0,
const char *  option = "" 
)

Divide volume into subsections (See the ROOT manual for details)

Divide volume into subsections (See the ROOT manuloa for details)

Definition at line 741 of file Volumes.cpp.

◆ enableCopyNumberCheck()

void Volume::enableCopyNumberCheck ( bool  value)
static

Set flag to enable copy number checks when inserting new nodes.

By default checks are enabled. If you want to disable, call this function

Definition at line 652 of file Volumes.cpp.

◆ getProperty()

std::string Volume::getProperty ( const std::string &  nam,
const std::string &  default_val = "" 
) const

Access property value. Returns default_value if the property is not present.

Definition at line 1348 of file Volumes.cpp.

◆ hasProperties()

bool Volume::hasProperties ( ) const

Check for existence of properties.

Definition at line 1327 of file Volumes.cpp.

◆ import()

Volume & Volume::import ( )

If we import volumes from external sources, we have to attach the extensions to the tree.

Definition at line 689 of file Volumes.cpp.

◆ isAssembly()

bool Volume::isAssembly ( ) const

Test if this volume is an assembly structure.

Definition at line 723 of file Volumes.cpp.

◆ isReflected()

bool Volume::isReflected ( ) const

Test if this volume was reflected.

Definition at line 718 of file Volumes.cpp.

◆ isSensitive()

bool Volume::isSensitive ( ) const

Accessor if volume is sensitive (ie. is attached to a sensitive detector)

Definition at line 1322 of file Volumes.cpp.

◆ limitSet()

LimitSet Volume::limitSet ( ) const

Access to the limit set.

Definition at line 1304 of file Volumes.cpp.

◆ material()

Material Volume::material ( ) const

Access to the Volume material.

Definition at line 1151 of file Volumes.cpp.

◆ operator TGeoVolume *()

dd4hep::Volume::operator TGeoVolume * ( ) const
inline

Auto conversion to underlying ROOT object.

Definition at line 711 of file Volumes.h.

◆ operator!=()

template<typename T >
bool dd4hep::Volume::operator!= ( const Handle< T > &  e) const
inline

Non-Equality operator.

Definition at line 425 of file Volumes.h.

◆ operator=() [1/2]

Volume& dd4hep::Volume::operator= ( const Volume a)
default

Assignment operator (must match copy constructor)

◆ operator=() [2/2]

Volume& dd4hep::Volume::operator= ( Volume &&  a)
default

Assignment operator (must match move constructor)

◆ operator==()

template<typename T >
bool dd4hep::Volume::operator== ( const Handle< T > &  e) const
inline

Equality operator.

Definition at line 421 of file Volumes.h.

◆ option()

std::string Volume::option ( ) const

Access the volume's option value.

Definition at line 1133 of file Volumes.cpp.

◆ paramVolume1D() [1/4]

PlacedVolume Volume::paramVolume1D ( const Transform3D start,
Volume  entity,
size_t  count,
const Transform3D inc 
)

1D Parameterised volume implementation

Constructor to be used when creating a new parameterised volume object.

Embedding parameterised daughter placements in a mother volume

Parameters
startstart transormation for the first placement
entityDaughter volume to be placed
countNumber of entities to be placed
incTransformation increment for each iteration

Definition at line 935 of file Volumes.cpp.

◆ paramVolume1D() [2/4]

PlacedVolume Volume::paramVolume1D ( Volume  entity,
size_t  count,
const Position inc 
)

1D Parameterised volume implementation

Constructor to be used when creating a new parameterised volume object.

Embedding parameterised daughter placements in a mother volume

Parameters
entityDaughter volume to be placed
countNumber of entities to be placed
incTransformation increment for each iteration

Definition at line 920 of file Volumes.cpp.

◆ paramVolume1D() [3/4]

PlacedVolume Volume::paramVolume1D ( Volume  entity,
size_t  count,
const RotationZYX inc 
)

1D Parameterised volume implementation

Constructor to be used when creating a new parameterised volume object.

Embedding parameterised daughter placements in a mother volume

Parameters
entityDaughter volume to be placed
countNumber of entities to be placed
incTransformation increment for each iteration

Definition at line 925 of file Volumes.cpp.

◆ paramVolume1D() [4/4]

PlacedVolume Volume::paramVolume1D ( Volume  entity,
size_t  count,
const Transform3D trafo 
)

1D Parameterised volume implementation

Constructor to be used when creating a new parameterised volume object.

Embedding parameterised daughter placements in a mother volume

Parameters
entityDaughter volume to be placed
countNumber of entities to be placed
incTransformation increment for each iteration

Definition at line 930 of file Volumes.cpp.

◆ paramVolume2D() [1/4]

PlacedVolume Volume::paramVolume2D ( const Transform3D start,
Volume  entity,
size_t  count_1,
const Position inc_1,
size_t  count_2,
const Position inc_2 
)

Constructor to be used when creating a new parameterised volume object.

Embedding parameterised daughter placements in a mother volume

Parameters
startstart transormation for the first placement
entityDaughter volume to be placed
count_1Number of entities to be placed in dimension 1
inc_1Transformation increment for each iteration in dimension 1
count_2Number of entities to be placed in dimension 2
inc_2Transformation increment for each iteration in dimension 2

Definition at line 979 of file Volumes.cpp.

◆ paramVolume2D() [2/4]

PlacedVolume Volume::paramVolume2D ( const Transform3D start,
Volume  entity,
size_t  count_1,
const Transform3D inc_1,
size_t  count_2,
const Transform3D inc_2 
)

2D Parameterised volume implementation

Constructor to be used when creating a new parameterised volume object.

Embedding parameterised daughter placements in a mother volume

Parameters
startstart transormation for the first placement
entityDaughter volume to be placed
count_1Number of entities to be placed in dimension 1
inc_1Transformation increment for each iteration in dimension 1
count_2Number of entities to be placed in dimension 2
inc_2Transformation increment for each iteration in dimension 2

Definition at line 1000 of file Volumes.cpp.

◆ paramVolume2D() [3/4]

PlacedVolume Volume::paramVolume2D ( Volume  entity,
size_t  count_1,
const Position inc_1,
size_t  count_2,
const Position inc_2 
)

Constructor to be used when creating a new parameterised volume object.

Embedding parameterised daughter placements in a mother volume

Parameters
startstart transormation for the first placement
entityDaughter volume to be placed
count_1Number of entities to be placed in dimension 1
inc_1Transformation increment for each iteration in dimension 1
count_2Number of entities to be placed in dimension 2
inc_2Transformation increment for each iteration in dimension 2

Definition at line 990 of file Volumes.cpp.

◆ paramVolume2D() [4/4]

PlacedVolume Volume::paramVolume2D ( Volume  entity,
size_t  count_1,
const Transform3D inc_1,
size_t  count_2,
const Transform3D inc_2 
)

2D Parameterised volume implementation

Constructor to be used when creating a new parameterised volume object.

Embedding parameterised daughter placements in a mother volume

Parameters
entityDaughter volume to be placed
count_1Number of entities to be placed in dimension 1
inc_1Transformation increment for each iteration in dimension 1
count_2Number of entities to be placed in dimension 2
inc_2Transformation increment for each iteration in dimension 2

Definition at line 969 of file Volumes.cpp.

◆ paramVolume3D() [1/4]

PlacedVolume Volume::paramVolume3D ( const Transform3D start,
Volume  entity,
size_t  count_1,
const Position inc_1,
size_t  count_2,
const Position inc_2,
size_t  count_3,
const Position inc_3 
)

3D Parameterised volume implementation

Constructor to be used when creating a new parameterised volume object.

Embedding parameterised daughter placements in a mother volume

Parameters
startstart transormation for the first placement
entityDaughter volume to be placed
count_1Number of entities to be placed in dimension 1
inc_1Transformation increment for each iteration in dimension 1
count_2Number of entities to be placed in dimension 2
inc_2Transformation increment for each iteration in dimension 2
count_3Number of entities to be placed in dimension 3
inc_3Transformation increment for each iteration in dimension 3

Definition at line 1043 of file Volumes.cpp.

◆ paramVolume3D() [2/4]

PlacedVolume Volume::paramVolume3D ( const Transform3D start,
Volume  entity,
size_t  count_1,
const Transform3D inc_1,
size_t  count_2,
const Transform3D inc_2,
size_t  count_3,
const Transform3D inc_3 
)

3D Parameterised volume implementation

Constructor to be used when creating a new parameterised volume object.

Embedding parameterised daughter placements in a mother volume

Parameters
startstart transormation for the first placement
entityDaughter volume to be placed
count_1Number of entities to be placed in dimension 1
inc_1Transformation increment for each iteration in dimension 1
count_2Number of entities to be placed in dimension 2
inc_2Transformation increment for each iteration in dimension 2
count_3Number of entities to be placed in dimension 3
inc_3Transformation increment for each iteration in dimension 3

Definition at line 1074 of file Volumes.cpp.

◆ paramVolume3D() [3/4]

PlacedVolume Volume::paramVolume3D ( Volume  entity,
size_t  count_1,
const Position inc_1,
size_t  count_2,
const Position inc_2,
size_t  count_3,
const Position inc_3 
)

3D Parameterised volume implementation

Constructor to be used when creating a new parameterised volume object.

Embedding parameterised daughter placements in a mother volume

Parameters
entityDaughter volume to be placed
count_1Number of entities to be placed in dimension 1
inc_1Transformation increment for each iteration in dimension 1
count_2Number of entities to be placed in dimension 2
inc_2Transformation increment for each iteration in dimension 2
count_3Number of entities to be placed in dimension 3
inc_3Transformation increment for each iteration in dimension 3

Definition at line 1059 of file Volumes.cpp.

◆ paramVolume3D() [4/4]

PlacedVolume dd4hep::Volume::paramVolume3D ( Volume  entity,
size_t  count_1,
const Transform3D inc_1,
size_t  count_2,
const Transform3D inc_2,
size_t  count_3,
const Transform3D inc_3 
)

3D Parameterised volume implementation

Embedding parameterised daughter placements in a mother volume

Parameters
entityDaughter volume to be placed
count_1Number of entities to be placed in dimension 1
inc_1Transformation increment for each iteration in dimension 1
count_2Number of entities to be placed in dimension 2
inc_2Transformation increment for each iteration in dimension 2
count_3Number of entities to be placed in dimension 3
inc_3Transformation increment for each iteration in dimension 3

◆ placeVolume() [1/12]

PlacedVolume Volume::placeVolume ( const Volume volume) const

Place daughter volume. The position and rotation are the identity.

Daughter placements with auto-generated copy number for the daughter volume

Definition at line 859 of file Volumes.cpp.

◆ placeVolume() [2/12]

PlacedVolume Volume::placeVolume ( const Volume volume,
const Position pos 
) const

Place un-rotated daughter volume at the given position.

Definition at line 864 of file Volumes.cpp.

◆ placeVolume() [3/12]

PlacedVolume Volume::placeVolume ( const Volume volume,
const Rotation3D rot 
) const

Place rotated daughter volume. The position is automatically the identity position.

Definition at line 874 of file Volumes.cpp.

◆ placeVolume() [4/12]

PlacedVolume Volume::placeVolume ( const Volume volume,
const RotationZYX rot 
) const

Place rotated daughter volume. The position is automatically the identity position.

Definition at line 869 of file Volumes.cpp.

◆ placeVolume() [5/12]

PlacedVolume Volume::placeVolume ( const Volume volume,
const Transform3D tr 
) const

Place daughter volume according to a generic Transform3D.

Place daughter volume according to generic Transform3D.

Definition at line 854 of file Volumes.cpp.

◆ placeVolume() [6/12]

PlacedVolume Volume::placeVolume ( const Volume volume,
int  copy_no 
) const

Place daughter volume. The position and rotation are the identity.

Daughter placements with user supplied copy number for the daughter volume

Definition at line 884 of file Volumes.cpp.

◆ placeVolume() [7/12]

PlacedVolume Volume::placeVolume ( const Volume volume,
int  copy_no,
const Position pos 
) const

Place un-rotated daughter volume at the given position.

Definition at line 889 of file Volumes.cpp.

◆ placeVolume() [8/12]

PlacedVolume Volume::placeVolume ( const Volume volume,
int  copy_no,
const Rotation3D rot 
) const

Place rotated daughter volume. The position is automatically the identity position.

Definition at line 899 of file Volumes.cpp.

◆ placeVolume() [9/12]

PlacedVolume Volume::placeVolume ( const Volume volume,
int  copy_no,
const RotationZYX rot 
) const

Place rotated daughter volume. The position is automatically the identity position.

Definition at line 894 of file Volumes.cpp.

◆ placeVolume() [10/12]

PlacedVolume Volume::placeVolume ( const Volume volume,
int  copy_no,
const Transform3D tr 
) const

Place daughter volume according to a generic Transform3D.

Place daughter volume according to generic Transform3D.

Definition at line 879 of file Volumes.cpp.

◆ placeVolume() [11/12]

PlacedVolume Volume::placeVolume ( const Volume volume,
int  copy_nr,
TGeoMatrix *  tr 
) const

Place daughter volume with generic TGeo matrix.

Definition at line 849 of file Volumes.cpp.

◆ placeVolume() [12/12]

PlacedVolume Volume::placeVolume ( const Volume volume,
TGeoMatrix *  tr 
) const

Place daughter volume with generic TGeo matrix.

Definition at line 844 of file Volumes.cpp.

◆ reflect() [1/2]

Volume Volume::reflect ( ) const

Create a reflected volume tree. The reflected volume has left-handed coordinates.

Definition at line 668 of file Volumes.cpp.

◆ reflect() [2/2]

Volume Volume::reflect ( SensitiveDetector  sd) const

Create a reflected volume tree. The reflected volume has left-handed coordinates.

Swap the sensitive detector - if valid - on all sensitive sub-volumes

Definition at line 673 of file Volumes.cpp.

◆ region()

Region Volume::region ( ) const

Access to the handle to the region structure.

Definition at line 1285 of file Volumes.cpp.

◆ replicate()

PlacedVolume Volume::replicate ( const Volume  entity,
ReplicationAxis  axis,
size_t  count,
double  inc,
double  start = 0e0 
)

1D volume replication implementation

Embedding parameterised daughter placements in a mother volume

Parameters
entityDaughter volume to be placed
axisReplication axis direction in the frame of the mother
countNumber of entities to be placed
incTransformation increment for each iteration
startstart transormation for the first placement

Definition at line 904 of file Volumes.cpp.

◆ sensitiveDetector()

Ref_t Volume::sensitiveDetector ( ) const

Access to the handle to the sensitive detector.

Definition at line 1316 of file Volumes.cpp.

◆ setAttributes()

const Volume & Volume::setAttributes ( const Detector description,
const std::string &  region,
const std::string &  limits,
const std::string &  vis 
) const

Attach attributes to the volume.

Definition at line 1229 of file Volumes.cpp.

◆ setFlagBit()

void Volume::setFlagBit ( unsigned int  bit)

Set user flags in bit-field.

Definition at line 700 of file Volumes.cpp.

◆ setLimitSet() [1/2]

const Volume & Volume::setLimitSet ( const Detector description,
const std::string &  name 
) const

Set the limits to the volume. Note: If the name string is empty, the action is ignored.

Set the limits to the volume.

Definition at line 1290 of file Volumes.cpp.

◆ setLimitSet() [2/2]

const Volume & Volume::setLimitSet ( const LimitSet obj) const

Set the limits to the volume.

Definition at line 1298 of file Volumes.cpp.

◆ setMaterial()

const Volume & Volume::setMaterial ( const Material m) const

Set the volume's material.

Definition at line 1138 of file Volumes.cpp.

◆ setOption()

const Volume & Volume::setOption ( const std::string &  opt) const

Set the volume's option value.

Definition at line 1124 of file Volumes.cpp.

◆ setRegion() [1/2]

const Volume & Volume::setRegion ( const Detector description,
const std::string &  name 
) const

Set the regional attributes to the volume. Note: If the name string is empty, the action is ignored.

Set the regional attributes to the volume.

Definition at line 1271 of file Volumes.cpp.

◆ setRegion() [2/2]

const Volume & Volume::setRegion ( const Region obj) const

Set the regional attributes to the volume.

Definition at line 1279 of file Volumes.cpp.

◆ setSensitiveDetector()

const Volume & Volume::setSensitiveDetector ( const SensitiveDetector obj) const

Assign the sensitive detector structure.

Definition at line 1309 of file Volumes.cpp.

◆ setSmartlessValue()

unsigned char Volume::setSmartlessValue ( unsigned char  value)

Set the smartless option for G4 voxelization. Returns previous value.

Definition at line 728 of file Volumes.cpp.

◆ setSolid()

const Volume & Volume::setSolid ( const Solid s) const

Set the volume's solid shape.

Definition at line 1246 of file Volumes.cpp.

◆ setVisAttributes() [1/2]

const Volume & Volume::setVisAttributes ( const Detector description,
const std::string &  name 
) const

Set Visualization attributes to the volume. Note: If the name string is empty, the action is ignored.

Set Visualization attributes to the volume.

Definition at line 1220 of file Volumes.cpp.

◆ setVisAttributes() [2/2]

const Volume & Volume::setVisAttributes ( const VisAttr obj) const

Set Visualization attributes to the volume.

Definition at line 1156 of file Volumes.cpp.

◆ smartlessValue()

unsigned char Volume::smartlessValue ( ) const

access the smartless option for G4 voxelization

Definition at line 736 of file Volumes.cpp.

◆ solid()

Solid Volume::solid ( ) const

Access to Solid (Shape)

Definition at line 1252 of file Volumes.cpp.

◆ testFlagBit()

bool Volume::testFlagBit ( unsigned int  bit) const

Test the user flag bit.

Definition at line 709 of file Volumes.cpp.

◆ type()

const char * Volume::type ( ) const

Access the object type from the class information.

Definition at line 663 of file Volumes.cpp.

◆ visAttributes()

VisAttr Volume::visAttributes ( ) const

Access the visualisation attributes.

Definition at line 1239 of file Volumes.cpp.


The documentation for this class was generated from the following files: