25 using namespace DD4hep::Alignments;
26 using namespace DD4hep::Alignments::Interna;
34 AlignmentConditionObject::AlignmentConditionObject(
const string& nam,
const string& tit)
35 : ConditionObject(nam, tit), alignment_data(0)
72 if ( !
keys.insert(make_pair(hash,make_pair(hash,key_val))).second ) {
73 except(
"AlignmentContainer",
"++ Key[%08X]: %s already present. "
74 "Duplicate insertions inhibited!",hash, key_val.c_str());
82 if ( !
keys.insert(make_pair(key_hash,make_pair(val_hash,data_val))).second ) {
83 except(
"AlignmentContainer",
"++ Key[%08X]: %s already present. "
84 "Duplicate insertions inhibited!",key_hash, key_val.c_str());
92 Keys::const_iterator i=
keys.find(hash);
93 if ( i !=
keys.end() ) {
95 return loader.
get(k.first, iov);
98 return loader.
get(hash, iov);
104 Keys::const_iterator i=
keys.find(hash_key);
105 if ( i !=
keys.end() ) {
107 return loader.
get(k.first, iov);
110 return loader.
get(hash_key, iov);
117 Keys::const_iterator i=
keys.find(hash);
118 if ( i !=
keys.end() ) {
120 return loader.
get(k.first, pool);
123 return loader.
get(hash, pool);
129 Keys::const_iterator i=
keys.find(hash_key);
130 if ( i !=
keys.end() ) {
132 return loader.
get(k.first, pool);
135 return loader.
get(hash_key, pool);
Data & data()
Data accessor for the use of decorators.
The data class behind an alignments container handle.
The data class behind an alignments handle.
TGeoHMatrix detectorTrafo
Intermediate buffer to store the transformation to the parent detector element.
The data class behind a alignments container handle.
DD4HEP_INSTANTIATE_HANDLE_NAMED(AlignmentConditionObject)
static void decrement(T *)
Decrement count according to type information.
virtual ~AlignmentConditionObject()
Standard Destructor.
Main handle class to hold an alignment object.
DD4HEP_INSTANTIATE_HANDLE_UNNAMED(AlignmentData)
NodeList nodes
The list of TGeoNodes (physical placements)
Alignment get(const std::string &alignment_key, const iov_type &iov)
Access to alignment objects by key and IOV.
int except(const std::string &src, const std::string &fmt,...)
Calls the display action with ERROR and throws an std::runtime_error exception.
void addKey(const std::string &key_value)
Add a new key to the alignments access map.
Implementation of a named object.
virtual ~AlignmentContainer()
Default destructor.
Class describing the interval of validty.
virtual ~AlignmentsLoader()
Protected destructor.
DetElement detector
The hosting detector element.
Container::key_value key_value
Forward definition of the mapping type.
static key_type hashCode(const char *value)
Hash code generation from input string.
unsigned int hash(unsigned int initialSeed, unsigned int eventNumber, unsigned int runNumber)
calculate hash from initialSeed, eventID and runID
AlignmentContainer(Geometry::DetElementObject *parent)
Standard constructor.
static void increment(T *)
Increment count according to type information.
Main handle class to hold an alignment conditions object.
Container::key_type key_type
Forward defintion of the key type.
Transform3D trToWorld
Transformation from volume to the world.
Data class with properties of a detector element.
ROOT::Math::Transform3D Transform3D
virtual ~AlignmentNamedObject()
Default destructor.
virtual Alignment get(key_type key, const iov_type &iov)=0
Access the alignments loading mechanism.
Derived condition data-object definition.
Keys keys
Known keys of alignments in this container.
TGeoHMatrix worldTrafo
Intermediate buffer to store the transformation to the world coordination system. ...