13 #ifndef DD4HEP_ALIGNMENT_ALIGNMENTSTACK_H
14 #define DD4HEP_ALIGNMENT_ALIGNMENTSTACK_H
26 namespace Alignments {
94 typedef std::map<std::string, StackEntry*>
Stack;
126 std::vector<const StackEntry*>
entries()
const;
StackEntry & operator=(const StackEntry &e)
Assignment operator.
virtual ~StackEntry()
Default destructor.
bool overlapDefined() const
Check if the overlap flag checking is enabled.
bool add(dd4hep_ptr< StackEntry > &new_entry)
Add a new entry to the cache. The key is the placement path.
bool insert(const std::string &full_path, dd4hep_ptr< StackEntry > &new_entry)
Add a new entry to the cache. The key is the placement path.
bool checkFlag(unsigned int mask) const
Check a given flag.
enum DD4hep::Alignments::AlignmentStack::@15 Flags
DetElement detector
Reference to the detector element.
std::map< std::string, StackEntry * > Stack
virtual ~AlignmentStack()
Default destructor. Careful with this one:
Delta delta
Delta transformation to be applied.
Out version of the std auto_ptr implementation base either on auto_ptr or unique_ptr.
double overlap
Parameter for overlap checking.
void release()
Clear data content and remove the slignment stack.
DD4hep::Geometry::DetElement DetElement
static bool exists()
Check existence of alignment stack.
bool hasMatrix() const
Check if this alignment entry has a non unitary transformation matrix.
size_t size() const
Access size of the alignment stack.
bool needsReset() const
Check flag if the node location should be reset.
StackEntry & setReset(bool new_value=true)
Set flag to reset the entry to it's ideal geometrical position.
Class describing an condition to re-adjust an alignment.
std::string path
Path to the misaligned volume.
StackEntry & setOverlapPrecision(double precision=0.001)
Set the precision for the overlap check (otherwise the default is 0.001 cm)
bool checkOverlap() const
Check if the overlap flag checking is enabled.
Stack m_stack
The subdetector specific map of alignments caches.
StackEntry & setOverlapCheck(bool new_value=true)
Set flag to check overlaps.
std::vector< const StackEntry * > entries() const
Get all path entries to be aligned. Note: transient!
StackEntry & setResetChildren(bool new_value=true)
Set flag to reset the entry's children to their ideal geometrical position.
bool resetChildren() const
Check flag if the node location and all children should be reset.
StackEntry(DetElement p, const std::string &placement, const Delta &t, double ov)
Fully initializing constructor.
bool overlapValue() const
Check if the overalp value is present.
static void create()
Create an alignment stack instance. The creation of a second instance will be refused.
AlignmentStack()
Default constructor.
Alignment Stack object definition.
dd4hep_ptr< StackEntry > pop()
Retrieve an alignment entry of the current stack.