DD4hep
1.30.0
Detector Description Toolkit for High Energy Physics
|
GlobalDetectorAlignment. DetElement Handle supporting alignment operations. More...
#include <GlobalDetectorAlignment.h>
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... | |
DetElement & | operator= (DetElement &&sd)=default |
Assignment move operator. More... | |
DetElement & | operator= (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, Volume > | reflect (const std::string &new_name) const |
Reflect (Deep copy) the DetElement structure with a new name. More... | |
std::pair< DetElement, Volume > | reflect (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, Volume > | reflect (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... | |
DetElement & | setCombineHits (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... | |
DetElement & | setType (const std::string &typ) |
Set detector type (structure, tracker, calorimeter, etc.). More... | |
unsigned int | typeFlag () const |
Access the type of the sensitive detector. More... | |
DetElement & | setTypeFlag (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... | |
DetElement & | setAttributes (const Detector &description, const Volume &volume, const std::string ®ion, const std::string &limits, const std::string &vis) |
Set all attributes in one go. More... | |
DetElement & | setVisAttributes (const Detector &description, const std::string &name, const Volume &volume) |
Set Visualization attributes to the detector element. More... | |
DetElement & | setRegion (const Detector &description, const std::string &name, const Volume &volume) |
Set the regional attributes to the detector element. More... | |
DetElement & | setLimitSet (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... | |
DetElement & | setPlacement (const PlacedVolume &volume) |
Set the physical volumes of the detector element. More... | |
VolumeID | volumeID () const |
The cached VolumeID of this subdetector element. More... | |
DetElement & | add (DetElement sub_element) |
Add new child to the detector structure. More... | |
const Children & | children () 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... | |
DetElementObject * | operator-> () const |
Access the held object using the -> operator. More... | |
operator DetElementObject & () const | |
Automatic type conversion to an object references. More... | |
DetElementObject & | operator* () const |
Access the held object using the * operator. More... | |
DetElementObject * | 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... | |
DetElementObject * | 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 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, DetElement > | Children |
Public Types inherited from dd4hep::Handle< DetElementObject > | |
typedef DetElementObject | Object |
Extern accessible definition of the contained element type. More... | |
typedef Handle< DetElementObject > | Base |
Self type: used by sub-classes. More... | |
Public Attributes inherited from dd4hep::Handle< DetElementObject > | |
DetElementObject * | m_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... | |
GlobalDetectorAlignment. DetElement Handle supporting alignment operations.
Definition at line 35 of file GlobalDetectorAlignment.h.
GlobalDetectorAlignment::GlobalDetectorAlignment | ( | DetElement | e | ) |
Initializing constructor.
Definition at line 180 of file GlobalDetectorAlignment.cpp.
GlobalDetectorAlignment::GlobalDetectorAlignment | ( | DetElement && | e | ) |
Initializing constructor.
Definition at line 186 of file GlobalDetectorAlignment.cpp.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
GlobalAlignment GlobalDetectorAlignment::alignment | ( | ) | const |
Access to the alignment block.
Definition at line 209 of file GlobalDetectorAlignment.cpp.
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.
|
static |
Access debugging flag.
Definition at line 192 of file GlobalDetectorAlignment.cpp.
|
static |
Set debugging flag.
Definition at line 197 of file GlobalDetectorAlignment.cpp.
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.
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.