13 #ifndef DD4HEP_DDALIGN_ALIGNMENTMANAGER_H
14 #define DD4HEP_DDALIGN_ALIGNMENTMANAGER_H
25 namespace Conditions {
27 class ConditionDependency;
28 class ConditionUpdateContext;
29 class ConditionsDependencyCollection;
33 namespace Alignments {
37 class AlignmentsManager;
38 class AlignmentsManagerObject;
130 void compute(UserPool& user_pool)
const;
void destroy()
Delete the manager. Be careful: this affects all referencing handles!
Conditions::ConditionsDependencyCollection Dependencies
Alignments re-use conditions dependency container def from the conditions manager.
Collection of condition dependencies.
const char * name() const
Access the object name (or "" if not supported by the object)
AlignmentsManager(const Handle< Object > &e)
Constructor to be used for proper handles.
Conditions::ConditionDependency Dependency
Alignments re-use conditions dependency definition from the conditions manager.
virtual ~AlignmentsManagerObject()
Default destructor.
Out version of the std auto_ptr implementation base either on auto_ptr or unique_ptr.
bool adoptDependency(Dependency *dependency) const
Adopy alignment dependency for later recalculation.
const Dependencies & knownDependencies() const
Access all known dependencies.
DD4hep::Geometry::DetElement DetElement
AlignmentsManager & operator=(const AlignmentsManager &mgr)=default
Assignment operator.
Condition dependency definition.
Alignment manager instance to handle alignment dependencies.
Implementation of a named object.
AlignmentsManager::Dependencies Dependencies
ConditionUpdateContext class used by the derived conditions calculation mechanism.
Dependencies * dependencies
Full list of alignment dependencies.
void compute(AlignContext &new_alignments, UserPool &pool, DetElement child) const
Compute all alignment conditions of the lower levels.
AlignmentsManager(const Handle< Q > &e)
Constructor to be used for proper handles.
AlignmentsManagerObject()
Initializing constructor.
static AlignmentsManager from(T &host)
Static accessor if installed as an extension.
static void newEntry(const Context ¶meter, DetElement &det, const Dependency *dep, AlignmentCondition &con)
Register new updated derived alignment during the computation step.
void compute(dd4hep_ptr< UserPool > &user_pool) const
Compute all alignment conditions of the internal dependency list.
AlignmentsManagerObject Object
Standard object type.
AlignmentsManager()=default
Default constructor.
Handle: a templated class like a shared pointer, which allows specialized access to tgeometry objects...
Main handle class to hold an alignment conditions object.
Conditions::ConditionUpdateContext Context
Conditions derivation context.
AlignContext * all_alignments
References to all alignment possibilities known.
void to_world(AlignContext &new_alignments, UserPool &pool, DetElement det, TGeoHMatrix &mat) const
Compute the transformation from the closest detector element of the alignment to the world system...