GeoModel - GeoModelCore
GeoAlignableTransform.h
1 /*
2  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef GEOMODELKERNEL_GEOALIGNABLETRANSFORM_H
6 #define GEOMODELKERNEL_GEOALIGNABLETRANSFORM_H
7 
8 #include "GeoModelKernel/GeoTransform.h"
9 #include <vector>
10 
11 class GeoVAlignmentStore;
12 
13 class GeoAlignableTransform final : public GeoTransform
14 {
15  public:
16  GeoAlignableTransform(const GeoTrf::Transform3D &transform);
17 
19  virtual GeoTrf::Transform3D getTransform(const GeoVAlignmentStore* store=nullptr) const override;
20 
22  void setDelta(const GeoTrf::Transform3D& delta, GeoVAlignmentStore* store=nullptr);
23 
25  // To Do: This method will become obsolete once we migrate LAr to the Alignment Store.
26  // At that point thie method should be dropped
27  void clearDelta(GeoVAlignmentStore* store=nullptr);
28 
34  virtual void dockTo(GeoVPhysVol* parent) override;
35 
36  protected:
37  virtual ~GeoAlignableTransform() override;
38 
39  private:
41  GeoAlignableTransform & operator=(const GeoAlignableTransform &right);
42 
43  // Pointer to an alignment correction. Until some
44  // alignment correction is set, this pointer is nullptr and
45  // the memory is unallocated.
46  GeoTrf::Transform3D* m_delta;
47 
48  // A list of parents who use this alignable target. They
49  // must all be notified when the alignment changes!
50  std::vector<GeoGraphNode*> m_parentList;
51 };
52 
53 #endif
Abstract base class for GeoModel alignment stores The interface allows to store/retrieve transformati...
void clearDelta(GeoVAlignmentStore *store=nullptr)
Clears the alignment delta.
virtual GeoTrf::Transform3D getTransform(const GeoVAlignmentStore *store=nullptr) const override
Gets the total transform, including the alignment correction.
virtual void dockTo(GeoVPhysVol *parent) override
A basic geometrical (Euclidean) transform. Can return a GeoTrf::Transform3D. Reference counted...
Definition: GeoTransform.h:22
void setDelta(const GeoTrf::Transform3D &delta, GeoVAlignmentStore *store=nullptr)
Sets an alignment delta.