DD4hep  1.30.0
Detector Description Toolkit for High Energy Physics
Public Member Functions | Private Member Functions | List of all members
dd4hep::VolumeMulti Class Reference

Implementation class extending the ROOT mulit-volumes (TGeoVolumeMulti) More...

#include <Volumes.h>

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

Public Member Functions

 VolumeMulti ()=default
 Default constructor. More...
 
 VolumeMulti (const VolumeMulti &v)=default
 Copy from handle. More...
 
 VolumeMulti (TGeoVolume *v)
 Copy from pointer as a result of Solid->Divide() More...
 
template<typename T >
 VolumeMulti (const Handle< T > &v)
 Copy from arbitrary Element. More...
 
 VolumeMulti (const std::string &name, Material material)
 Constructor to be used when creating a new multi-volume object. More...
 
VolumeMultioperator= (const VolumeMulti &a)=default
 Assignment operator (must match copy constructor) More...
 
- Public Member Functions inherited from dd4hep::Volume
 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...
 

Private Member Functions

void verifyVolumeMulti ()
 Import volume from pointer as a result of Solid->Divide() More...
 

Additional Inherited Members

- Public Types inherited from dd4hep::Volume
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...
 
- Static Public Member Functions inherited from dd4hep::Volume
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...
 
- Public Attributes inherited from dd4hep::Handle< TGeoVolume >
TGeoVolume * m_element
 Single and only data member: Reference to the actual element. More...
 

Detailed Description

Implementation class extending the ROOT mulit-volumes (TGeoVolumeMulti)

Handle describing a multi volume.

For any further documentation please see the following ROOT documentation:

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

Definition at line 727 of file Volumes.h.

Constructor & Destructor Documentation

◆ VolumeMulti() [1/5]

dd4hep::VolumeMulti::VolumeMulti ( )
default

Default constructor.

◆ VolumeMulti() [2/5]

dd4hep::VolumeMulti::VolumeMulti ( const VolumeMulti v)
default

Copy from handle.

◆ VolumeMulti() [3/5]

dd4hep::VolumeMulti::VolumeMulti ( TGeoVolume *  v)
inline

Copy from pointer as a result of Solid->Divide()

Definition at line 737 of file Volumes.h.

◆ VolumeMulti() [4/5]

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

Copy from arbitrary Element.

Definition at line 741 of file Volumes.h.

◆ VolumeMulti() [5/5]

VolumeMulti::VolumeMulti ( const std::string &  name,
Material  material 
)

Constructor to be used when creating a new multi-volume object.

Definition at line 1364 of file Volumes.cpp.

Member Function Documentation

◆ operator=()

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

Assignment operator (must match copy constructor)

◆ verifyVolumeMulti()

void VolumeMulti::verifyVolumeMulti ( )
private

Import volume from pointer as a result of Solid->Divide()

Definition at line 1369 of file Volumes.cpp.


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