18 std::unique_ptr<Trk::TrackingVolume> volume)
25 std::unique_ptr<Trk::TrackingVolume> volume,
26 std::unique_ptr<Trk::Layer> lay,
27 std::unique_ptr<
const std::vector<Trk::Layer*>> multilay)
52 layer->moveLayer(shift);
61 auto newTV = std::make_unique<TrackingVolume>(*(this->
trackingVolume()), shift);
63 LayerArray* confinedLayers= newTV->confinedLayers();
68 std::unique_ptr<Trk::PlaneLayer> newLay =
nullptr;
70 std::unique_ptr<std::vector<Trk::Layer*>> newMulti =
nullptr;
73 newLay = std::make_unique<Trk::PlaneLayer>(*pl);
74 newLay->moveLayer(shift);
76 newMulti = std::make_unique<std::vector<Trk::Layer*>>();
82 newMulti->push_back(newPl);
84 std::cout <<
"WARNING Trk::DetachedTrackingVolume::clone() "
85 "dynamic cast to 'const Trk::PlaneLayer* mpl' failed!"
91 std::cout <<
"WARNING Trk::DetachedTrackingVolume::clone() dynamic "
92 "cast to 'const Trk::PlaneLayer* pl' failed!"
101 if (confinedVolumes) {
102 std::span<Trk::TrackingVolume * const> vols = confinedVolumes->
arrayObjects();
103 for (
auto *vol : vols) {
107 std::span<Trk::Layer* const> lays = layAr->
arrayObjects();
108 for (
auto *lay : lays) {
109 lay->encloseDetachedTrackingVolume(*newStat);
112 if (!alays.empty()) {
113 for (
auto *alay : alays) {
114 alay->encloseDetachedTrackingVolume(*newStat);
119 if (confinedLayers) {
120 std::span<Trk::Layer* const> lays = confinedLayers->
arrayObjects();
121 for (
auto *lay : lays){
122 lay->encloseDetachedTrackingVolume(*newStat);
125 if (!confinedArbitraryLayers.empty()) {
126 for (
auto *alay : confinedArbitraryLayers) {
127 alay->encloseDetachedTrackingVolume(*newStat);
153 if ((*mLayerIter).surfaceRepresentation().owner() ==
Trk::noOwn) {
154 (*mLayerIter).surfaceRepresentation().setOwner(
Trk::TGOwn);
static const Attributes_t empty
virtual std::span< T *const > arrayObjects()=0
Return all objects of the Array non-const we can still modify the T.
Base Class for a navigation object (active/passive) in the Tracking realm.
std::unique_ptr< Layer > m_layerRepresentation
void move(Amg::Transform3D &shift)
moving object around
DetachedTrackingVolume * clone(const std::string &name, Amg::Transform3D &shift) const
clone with transform
GeometrySignature geometrySignature() const
return the Signature
DetachedTrackingVolume()
Default Constructor.
void sign(GeometrySignature signat, GeometryType geotype)
sign the volume - the geometry builder has to do that
const std::string & name() const
returns the Name
GeometryType geometryType() const
return the Type
const Layer * layerRepresentation() const
returns layer representation
std::unique_ptr< Amg::Transform3D > m_baseTransform
std::unique_ptr< const std::vector< Layer * > > m_multilayerRepresentation
const TrackingVolume * trackingVolume() const
returns the TrackingVolume
void setBaseTransform(std::unique_ptr< Amg::Transform3D > transf=nullptr)
alignment methods: set base transform / default argument to current transform
std::unique_ptr< TrackingVolume > m_trkVolume
~DetachedTrackingVolume()
Destructor.
void compactify(size_t &cSurfaces, size_t &tSurfaces)
Compactify – set TG as owner to surfaces.
std::span< Layer const *const > multilayerRepresentation() const
returns (multi)layer representation
Class to describe a planar detector layer for tracking, it inhertis from both, Layer base class and P...
virtual void moveLayer(Amg::Transform3D &shift) override final
move the Layer
Eigen::Affine3d Transform3D
BinnedArray< Layer > LayerArray
simply for the eye
BinnedArray< TrackingVolume > TrackingVolumeArray
simply for the eye