![]() |
ATLAS Offline Software
|
Assembly tool to produce the Acts envolpe volumes around the muon stations & also to construct the spectrometer envelope volumes. More...
#include <ChamberAssembleTool.h>
Public Types | |
| using | VolBounds_t = Acts::VolumeBounds |
| Abrivation of the volume bounds. | |
| using | VolBoundPtr_t = std::shared_ptr<VolBounds_t> |
| Abrivation of the Volume bound ptr. | |
| using | SurfBoundPtr_t = std::shared_ptr<const Acts::PlanarBounds> |
| Abrivation of the surface bounds. | |
| using | TrfWithBounds = std::tuple<Acts::Transform3, VolBoundPtr_t, SurfBoundPtr_t> |
| Abrivation of the volume transform together with a set of volume & surface bounds. | |
Public Member Functions | |
| virtual StatusCode | buildReadOutElements (MuonDetectorManager &mgr) override final |
Private Types | |
| using | ChamberPtr = SpectrometerSector::ChamberPtr |
Private Member Functions | |
| template<typename ReObjType> requires (Acts::PointerConcept<ReObjType>) | |
| TrfWithBounds | boundingBox (const ActsTrk::GeometryContext &gctx, const std::vector< ReObjType > &constituents, const Acts::Transform3 &globToLoc, Acts::VolumeBoundFactory &volBoundSet, Acts::SurfaceBoundFactory &surfBoundSet, const double margin) const |
| builds the bounding box trapezoidal volume bounds from the set of readout elements Returns a pair of the volume bounds & the transformation to center the volume | |
Static Private Member Functions | |
| static SurfBoundPtr_t | surfaceBounds (const VolBounds_t &volBounds, Acts::SurfaceBoundFactory &surfBoundSet) |
| Construct surface bounds which measure equal sizes in halfXlow/halfXhigh & halfY as the parsed volume bounds. | |
Private Attributes | |
| ServiceHandle< Muon::IMuonIdHelperSvc > | m_idHelperSvc {this, "IdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"} |
| Gaudi::Property< bool > | m_isRun4 {this, "run4Layout", false} |
| Toggling whether the layout is a R3 or R4 layout. | |
Assembly tool to produce the Acts envolpe volumes around the muon stations & also to construct the spectrometer envelope volumes.
Definition at line 27 of file ChamberAssembleTool.h.
Definition at line 61 of file ChamberAssembleTool.h.
| using MuonGMR4::ChamberAssembleTool::SurfBoundPtr_t = std::shared_ptr<const Acts::PlanarBounds> |
Abrivation of the surface bounds.
Definition at line 39 of file ChamberAssembleTool.h.
| using MuonGMR4::ChamberAssembleTool::TrfWithBounds = std::tuple<Acts::Transform3, VolBoundPtr_t, SurfBoundPtr_t> |
Abrivation of the volume transform together with a set of volume & surface bounds.
Definition at line 41 of file ChamberAssembleTool.h.
| using MuonGMR4::ChamberAssembleTool::VolBoundPtr_t = std::shared_ptr<VolBounds_t> |
Abrivation of the Volume bound ptr.
Definition at line 37 of file ChamberAssembleTool.h.
| using MuonGMR4::ChamberAssembleTool::VolBounds_t = Acts::VolumeBounds |
Abrivation of the volume bounds.
Definition at line 35 of file ChamberAssembleTool.h.
|
private |
builds the bounding box trapezoidal volume bounds from the set of readout elements Returns a pair of the volume bounds & the transformation to center the volume
| gctx | Geometry context holding the alignment & global transformations |
| constituents | List of readout elements around which the bounding box shall be built |
| globToLoc | Transformation to go from the global -> local chamber's frame |
| volBoundSet | Factory to create the volume bounds & share them across equivalent volumes |
| surfBoundSet | Factory to create the surface bounds representing the material surfaces & share them across mutliple surfaces |
| margin | Extra margin by which the returned volume bounds are enlarged |
Definition at line 56 of file ChamberAssembleTool.cxx.
|
finaloverridevirtual |
TGC T4E chambers & Mdt EIL chambers are glued together
Group chambers by sectors && station layer.
Check that the two readout elements are on the same side. Exception BOG eta 0 -> attributes to positive sectors
The two readout elements shall be located in the same sector
into a single chamber
If no chamber has been found, then create a new one
Find the chamber middle and create the geometry from that
Define the spectrometer sector
Define the chamber envelopes
Sort the readout elements by common parent volume
The BIS 7/8 chamber needs to be comparted into 4 subvolumes, each containing a single readout element to minimize the impact from the overlap between BIS78 & EIL-4 (TGC)
We need to ensure that the EIL 4/5 are split into a separate volume w.r.t. the New Small Wheel
Temporarily use the CSC to avoid reporting issues with the alignment algorithms
now, build simplified 2D representations of the sorted chambers we collected.
Now construct the sector volume from the chamber envelopes
Definition at line 84 of file ChamberAssembleTool.cxx.
|
staticprivate |
Construct surface bounds which measure equal sizes in halfXlow/halfXhigh & halfY as the parsed volume bounds.
| volBounds | Bounds which are mapped to surface bounds |
| surfBoundSet | Bound factory to assign equivalent bounds to multiple surfaces |
Definition at line 45 of file ChamberAssembleTool.cxx.
|
private |
Definition at line 69 of file ChamberAssembleTool.h.
|
private |
Toggling whether the layout is a R3 or R4 layout.
If true, the BIS eta: -7 chambers are split into the individual readout elements.
Definition at line 72 of file ChamberAssembleTool.h.