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

GlobalDetectorAlignment. DetElement Handle supporting alignment operations. More...

#include <GlobalDetectorAlignment.h>

Inheritance diagram for dd4hep::align::GlobalDetectorAlignment:
dd4hep::DetElement dd4hep::Handle< DetElementObject >

Public Member Functions

 GlobalDetectorAlignment (DetElement e)
 Initializing constructor. More...
 
 GlobalDetectorAlignment (DetElement &&e)
 Initializing constructor. More...
 
void collectNodes (std::vector< PlacedVolume > &nodes)
 Collect all placements from the detector element up to the world volume. More...
 
GlobalAlignment alignment () const
 Access to the alignment block. More...
 
std::vector< GlobalAlignment > & volumeAlignments ()
 Alignment entries for lower level volumes, which are NOT attached to daughter DetElements. More...
 
const std::vector< GlobalAlignment > & volumeAlignments () const
 Alignment entries for lower level volumes, which are NOT attached to daughter DetElements. More...
 
GlobalAlignment align (const Position &pos, bool check=false, double overlap=0.001)
 Align the PhysicalNode of the placement of the detector element (translation only) More...
 
GlobalAlignment align (const RotationZYX &rot, bool check=false, double overlap=0.001)
 Align the PhysicalNode of the placement of the detector element (rotation only) More...
 
GlobalAlignment align (const Position &pos, const RotationZYX &rot, bool check=false, double overlap=0.001)
 Align the PhysicalNode of the placement of the detector element (translation + rotation) More...
 
GlobalAlignment align (const Transform3D &tr, bool check=false, double overlap=0.001)
 Align the physical node according to a generic Transform3D. More...
 
GlobalAlignment align (TGeoHMatrix *matrix, bool check=false, double overlap=0.001)
 Align the physical node according to a generic TGeo matrix. More...
 
GlobalAlignment align (const std::string &volume_path, const Position &pos, bool check=false, double overlap=0.001)
 Align the PhysicalNode of the placement of the detector element (translation only) More...
 
GlobalAlignment align (const std::string &volume_path, const RotationZYX &rot, bool check=false, double overlap=0.001)
 Align the PhysicalNode of the placement of the detector element (rotation only) More...
 
GlobalAlignment align (const std::string &volume_path, const Position &pos, const RotationZYX &rot, bool check=false, double overlap=0.001)
 Align the PhysicalNode of the placement of the detector element (translation + rotation) More...
 
GlobalAlignment align (const std::string &volume_path, const Transform3D &tr, bool check=false, double overlap=0.001)
 Align the physical node according to a generic Transform3D. More...
 
GlobalAlignment align (const std::string &volume_path, TGeoHMatrix *matrix, bool check=false, double overlap=0.001)
 Align the physical node according to a generic TGeo matrix. More...
 
- Public Member Functions inherited from dd4hep::DetElement
void check (bool condition, const std::string &msg) const
 Internal assert function to check conditions. More...
 
 DetElement ()=default
 Default constructor. More...
 
 DetElement (DetElement &&e)=default
 Constructor to move handle. More...
 
 DetElement (const DetElement &e)=default
 Constructor to copy handle. More...
 
 DetElement (Object *obj)
 Constructor to hold handled object. More...
 
 DetElement (Object *obj, const std::string &name, const std::string &type)
 Clone constructor. More...
 
template<typename Q >
 DetElement (const Handle< Q > &e)
 Templated constructor for handle conversions. More...
 
 DetElement (NamedObject *obj)
 Constructor to hold handled object. More...
 
 DetElement (const std::string &name, const std::string &type, int id)
 Constructor for a new subdetector element. More...
 
 DetElement (const std::string &name, int id)
 Constructor for a new subdetector element. More...
 
 DetElement (DetElement parent, const std::string &name, int id)
 Constructor for a new subdetector element. More...
 
DetElementoperator= (DetElement &&sd)=default
 Assignment move operator. More...
 
DetElementoperator= (const DetElement &e)=default
 Assignment copy operator. More...
 
Object_data () const
 Additional data accessor. More...
 
bool operator< (const DetElement e) const
 Operator less to insert into a map. 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...
 
DetElement clone (int flag) const
 Clone (Deep copy) the DetElement structure. More...
 
DetElement clone (const std::string &new_name) const
 Clone (Deep copy) the DetElement structure with a new name. More...
 
DetElement clone (const std::string &new_name, int new_id) const
 Clone (Deep copy) the DetElement structure with a new name and new identifier. More...
 
std::pair< DetElement, Volumereflect (const std::string &new_name) const
 Reflect (Deep copy) the DetElement structure with a new name. More...
 
std::pair< DetElement, Volumereflect (const std::string &new_name, int new_id) const
 Reflect (Deep copy) the DetElement structure with a new name and new identifier. More...
 
std::pair< DetElement, Volumereflect (const std::string &new_name, int new_id, SensitiveDetector sd) const
 Reflect (Deep copy) the DetElement structure with a new name and new identifier and new sensitive detector. More...
 
void * addExtension (ExtensionEntry *entry) const
 Add an extension object to the detector element. More...
 
void * extension (unsigned long long int key, bool alert) const
 Access an existing extension object from the detector element. More...
 
template<typename IFACE , typename CONCRETE >
IFACE * addExtension (CONCRETE *c) const
 Extend the detector element with an arbitrary structure accessible by the type. More...
 
template<typename IFACE >
IFACE * extension () const
 Access extension element by the type. More...
 
template<typename IFACE >
IFACE * extension (bool alert) const
 Access extension element by the type. More...
 
template<typename Q , typename T >
void callAtUpdate (unsigned int typ, Q *pointer, void(T::*pmf)(unsigned long typ, DetElement &det, void *opt_par)) const
 Extend the detector element with an arbitrary callback. More...
 
void removeAtUpdate (unsigned int type, void *pointer) const
 Remove callback from object. More...
 
int id () const
 Get the detector identifier. More...
 
DetElementsetCombineHits (bool value, SensitiveDetector &sens)
 Setter: Combine hits attribute. More...
 
bool combineHits () const
 Getter: Combine hits attribute. More...
 
std::string type () const
 Access detector type (structure, tracker, calorimeter, etc.). More...
 
DetElementsetType (const std::string &typ)
 Set detector type (structure, tracker, calorimeter, etc.). More...
 
unsigned int typeFlag () const
 Access the type of the sensitive detector. More...
 
DetElementsetTypeFlag (unsigned int types)
 Set the flag word encoding detector types ( ideally use dd4hep::DetType for encoding ) More...
 
unsigned int key () const
 Access hash key of this detector element (Only valid once geometry is closed!) More...
 
int level () const
 Access the hierarchical level of the detector element (Only valid once geometry is closed!) More...
 
const std::string & path () const
 Path of the detector element (not necessarily identical to placement path!) More...
 
const std::string & placementPath () const
 Access to the full path to the placed object. More...
 
DetElementsetAttributes (const Detector &description, const Volume &volume, const std::string &region, const std::string &limits, const std::string &vis)
 Set all attributes in one go. More...
 
DetElementsetVisAttributes (const Detector &description, const std::string &name, const Volume &volume)
 Set Visualization attributes to the detector element. More...
 
DetElementsetRegion (const Detector &description, const std::string &name, const Volume &volume)
 Set the regional attributes to the detector element. More...
 
DetElementsetLimitSet (const Detector &description, const std::string &name, const Volume &volume)
 Set the limits to the detector element. More...
 
Volume volume () const
 Access to the logical volume of the detector element's placement. More...
 
Solid solid () const
 Access to the shape of the detector element's placement. More...
 
PlacedVolume placement () const
 Access to the physical volume of this detector element. More...
 
PlacedVolume idealPlacement () const
 Access to the ideal physical volume of this detector element. More...
 
DetElementsetPlacement (const PlacedVolume &volume)
 Set the physical volumes of the detector element. More...
 
VolumeID volumeID () const
 The cached VolumeID of this subdetector element. More...
 
DetElementadd (DetElement sub_element)
 Add new child to the detector structure. More...
 
const Childrenchildren () const
 Access to the list of children. More...
 
DetElement child (const std::string &name) const
 Access to individual children by name. More...
 
DetElement child (const std::string &child_name, bool throw_if_not_found) const
 Access to individual children by name. Have option to not throw an exception. More...
 
DetElement parent () const
 Access to the detector elements's parent. More...
 
DetElement world () const
 Access to the world object. Only possible once the geometry is closed. More...
 
Alignment nominal () const
 Access to the constant ideal (nominal) alignment information. More...
 
Alignment survey () const
 Access to the constant survey alignment information. More...
 
- Public Member Functions inherited from dd4hep::Handle< DetElementObject >
 Handle ()=default
 Default constructor. More...
 
 Handle (Handle< DetElementObject > &&element)=default
 Copy constructor. More...
 
 Handle (const Handle< DetElementObject > &element)=default
 Copy constructor. More...
 
 Handle (DetElementObject *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< DetElementObject > & operator= (Handle< DetElementObject > &&element)=default
 Assignment move operator. More...
 
Handle< DetElementObject > & operator= (const Handle< DetElementObject > &element)=default
 Assignment copy operator. More...
 
bool operator== (const Handle< DetElementObject > &element) const
 Boolean operator == used for RB tree insertions. More...
 
bool operator< (const Handle< DetElementObject > &element) const
 Boolean operator < used for RB tree insertions. More...
 
bool operator> (const Handle< DetElementObject > &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< DetElementObject > & clear ()
 Release the object held by the handle. More...
 
DetElementObjectoperator-> () const
 Access the held object using the -> operator. More...
 
 operator DetElementObject & () const
 Automatic type conversion to an object references. More...
 
DetElementObjectoperator* () const
 Access the held object using the * operator. More...
 
DetElementObjectptr () 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...
 
DetElementObjectaccess () 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 bool debug ()
 Access debugging flag. More...
 
static bool debug (bool value)
 Set debugging flag. More...
 
- Static Public Member Functions inherited from dd4hep::Handle< DetElementObject >
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 Types inherited from dd4hep::DetElement
enum  CopyParameters {
  COPY_NONE = 0, COPY_PLACEMENT = 1 << 0, COPY_PARENT = 1 << 1, COPY_ALIGNMENT = 1 << 2,
  PROPAGATE_PARENT_ID = 1 << 3, LAST
}
 
enum  UpdateParam {
  CONDITIONS_CHANGED = 1<<0, PLACEMENT_CHANGED = 1<<1, SOMETHING_CHANGED = 1<<2, PLACEMENT_ELEMENT = 1<<20,
  PLACEMENT_HIGHEST = 1<<21, PLACEMENT_DETECTOR = 1<<22, PLACEMENT_NONE
}
 
typedef std::map< std::string, DetElementChildren
 
- Public Types inherited from dd4hep::Handle< DetElementObject >
typedef DetElementObject Object
 Extern accessible definition of the contained element type. More...
 
typedef Handle< DetElementObjectBase
 Self type: used by sub-classes. More...
 
- Public Attributes inherited from dd4hep::Handle< DetElementObject >
DetElementObjectm_element
 Single and only data member: Reference to the actual element. More...
 
- Protected Member Functions inherited from dd4hep::DetElement
void i_addUpdateCall (unsigned int callback_type, const Callback &callback) const
 Internal call to extend the detector element with an arbitrary structure accessible by the type. More...
 

Detailed Description

GlobalDetectorAlignment. DetElement Handle supporting alignment operations.

Author
M.Frank
Version
1.0

Definition at line 35 of file GlobalDetectorAlignment.h.

Constructor & Destructor Documentation

◆ GlobalDetectorAlignment() [1/2]

GlobalDetectorAlignment::GlobalDetectorAlignment ( DetElement  e)

Initializing constructor.

Definition at line 180 of file GlobalDetectorAlignment.cpp.

◆ GlobalDetectorAlignment() [2/2]

GlobalDetectorAlignment::GlobalDetectorAlignment ( DetElement &&  e)

Initializing constructor.

Definition at line 186 of file GlobalDetectorAlignment.cpp.

Member Function Documentation

◆ align() [1/10]

GlobalAlignment GlobalDetectorAlignment::align ( const Position pos,
bool  check = false,
double  overlap = 0.001 
)

Align the PhysicalNode of the placement of the detector element (translation only)

@DetElement alignment: Calls to align the detector element itself

Definition at line 226 of file GlobalDetectorAlignment.cpp.

◆ align() [2/10]

GlobalAlignment GlobalDetectorAlignment::align ( const Position pos,
const RotationZYX rot,
bool  check = false,
double  overlap = 0.001 
)

Align the PhysicalNode of the placement of the detector element (translation + rotation)

Definition at line 236 of file GlobalDetectorAlignment.cpp.

◆ align() [3/10]

GlobalAlignment GlobalDetectorAlignment::align ( const RotationZYX rot,
bool  check = false,
double  overlap = 0.001 
)

Align the PhysicalNode of the placement of the detector element (rotation only)

Definition at line 231 of file GlobalDetectorAlignment.cpp.

◆ align() [4/10]

GlobalAlignment GlobalDetectorAlignment::align ( const std::string &  volume_path,
const Position pos,
bool  check = false,
double  overlap = 0.001 
)

Align the PhysicalNode of the placement of the detector element (translation only)

@Volume alignment: Calls to align the volumes within on detector element

Definition at line 251 of file GlobalDetectorAlignment.cpp.

◆ align() [5/10]

GlobalAlignment GlobalDetectorAlignment::align ( const std::string &  volume_path,
const Position pos,
const RotationZYX rot,
bool  check = false,
double  overlap = 0.001 
)

Align the PhysicalNode of the placement of the detector element (translation + rotation)

Definition at line 262 of file GlobalDetectorAlignment.cpp.

◆ align() [6/10]

GlobalAlignment GlobalDetectorAlignment::align ( const std::string &  volume_path,
const RotationZYX rot,
bool  check = false,
double  overlap = 0.001 
)

Align the PhysicalNode of the placement of the detector element (rotation only)

Definition at line 256 of file GlobalDetectorAlignment.cpp.

◆ align() [7/10]

GlobalAlignment GlobalDetectorAlignment::align ( const std::string &  volume_path,
const Transform3D tr,
bool  check = false,
double  overlap = 0.001 
)

Align the physical node according to a generic Transform3D.

Definition at line 267 of file GlobalDetectorAlignment.cpp.

◆ align() [8/10]

GlobalAlignment GlobalDetectorAlignment::align ( const std::string &  volume_path,
TGeoHMatrix *  matrix,
bool  check = false,
double  overlap = 0.001 
)

Align the physical node according to a generic TGeo matrix.

Definition at line 272 of file GlobalDetectorAlignment.cpp.

◆ align() [9/10]

GlobalAlignment GlobalDetectorAlignment::align ( const Transform3D tr,
bool  check = false,
double  overlap = 0.001 
)

Align the physical node according to a generic Transform3D.

Definition at line 241 of file GlobalDetectorAlignment.cpp.

◆ align() [10/10]

GlobalAlignment GlobalDetectorAlignment::align ( TGeoHMatrix *  matrix,
bool  check = false,
double  overlap = 0.001 
)

Align the physical node according to a generic TGeo matrix.

Definition at line 246 of file GlobalDetectorAlignment.cpp.

◆ alignment()

GlobalAlignment GlobalDetectorAlignment::alignment ( ) const

Access to the alignment block.

Definition at line 209 of file GlobalDetectorAlignment.cpp.

◆ collectNodes()

void GlobalDetectorAlignment::collectNodes ( std::vector< PlacedVolume > &  nodes)

Collect all placements from the detector element up to the world volume.

Definition at line 204 of file GlobalDetectorAlignment.cpp.

◆ debug() [1/2]

bool GlobalDetectorAlignment::debug ( )
static

Access debugging flag.

Definition at line 192 of file GlobalDetectorAlignment.cpp.

◆ debug() [2/2]

bool GlobalDetectorAlignment::debug ( bool  value)
static

Set debugging flag.

Definition at line 197 of file GlobalDetectorAlignment.cpp.

◆ volumeAlignments() [1/2]

std::vector< GlobalAlignment > & GlobalDetectorAlignment::volumeAlignments ( )

Alignment entries for lower level volumes, which are NOT attached to daughter DetElements.

Definition at line 214 of file GlobalDetectorAlignment.cpp.

◆ volumeAlignments() [2/2]

const std::vector< GlobalAlignment > & GlobalDetectorAlignment::volumeAlignments ( ) const

Alignment entries for lower level volumes, which are NOT attached to daughter DetElements.

Definition at line 220 of file GlobalDetectorAlignment.cpp.


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