|  | ATLAS Offline Software
    | 
 
 
 
#include <AlignableTrackingVolume.h>
|  | 
|  | AlignableTrackingVolume ()=default | 
|  | Default Constructor.  More... 
 | 
|  | 
| virtual | ~AlignableTrackingVolume () override=default | 
|  | 
|  | AlignableTrackingVolume (std::unique_ptr< Amg::Transform3D > htrans, std::shared_ptr< VolumeBounds > volbounds, const BinnedMaterial &matprop, int sampleID, const std::string &volumeName="undefined") | 
|  | Constructor.  More... 
 | 
|  | 
| const TrackingVolume * | alignedTrackingVolume () const | 
|  | returns the alignedTrackingVolume  More... 
 | 
|  | 
| int | identify () const | 
|  | returns the id  More... 
 | 
|  | 
| const BinnedMaterial * | binnedMaterial () const | 
|  | access to binned material  More... 
 | 
|  | 
| virtual bool | isAlignable () const override final | 
|  | 
| const Layer * | associatedLayer (const Amg::Vector3D &gp) const | 
|  | Return the associated Layer.  More... 
 | 
|  | 
| Layer * | associatedLayer (const Amg::Vector3D &gp) | 
|  | 
| const Layer * | nextLayer (const Amg::Vector3D &gp, const Amg::Vector3D &mom, bool asres=true, bool skipNavLayer=false) const | 
|  | Return the next Layer if existing, NULL if no next layer corresponds.  More... 
 | 
|  | 
| const Layer * | entryLayer (const Amg::Vector3D &gp, const Amg::Vector3D &dir) const | 
|  | Return the entry Layer to a TrackingVolume depending on the entry point.  More... 
 | 
|  | 
| const Layer * | exitLayer (const Amg::Vector3D &gp, const Amg::Vector3D &dir) const | 
|  | Return the exit Layer from a TrackingVolume.  More... 
 | 
|  | 
| template<class T > | 
| std::vector< LayerIntersection< T > > | materialLayersOrdered (const Layer *sLayer, const Layer *eLayer, const T ¶meters, PropDirection pDir=alongMomentum, const BoundaryCheck &bchk=true, bool resolveSubSurfaces=false) const | 
|  | Return the material layers ordered based on straight line intersections:  More... 
 | 
|  | 
| LayerIntersection< Amg::Vector3D > | closestMaterialLayer (const Amg::Vector3D &gp, const Amg::Vector3D &dir, PropDirection pDir=alongMomentum, const BoundaryCheck &bchk=true) const | 
|  | Return the closest layer with material description.  More... 
 | 
|  | 
| const TrackingVolume * | associatedSubVolume (const Amg::Vector3D &gp) const | 
|  | Return the associated sub Volume, returns THIS if no subVolume exists.  More... 
 | 
|  | 
| TrackingVolume * | associatedSubVolume (const Amg::Vector3D &gp) | 
|  | 
| const TrackingVolume * | nextVolume (const Amg::Vector3D &gp, const Amg::Vector3D &dir, PropDirection pDir=alongMomentum) const | 
|  | Return the next volume along the navigation stream.  More... 
 | 
|  | 
| const TrackingVolume * | nextSubVolume (const Amg::Vector3D &gp, const Amg::Vector3D &dir) const | 
|  | Return the next sub Volume if existing, returns THIS if no subVolume exists.  More... 
 | 
|  | 
| std::vector< const DetachedTrackingVolume * > | assocDetachedSubVolumes (const Amg::Vector3D &gp, double tol) const | 
|  | Return the associated detached subvolumes.  More... 
 | 
|  | 
| unsigned int | layerAttempts (BoundarySurfaceFace exitFace) const | 
|  | Layer attempts - as provided by the LayerAttemptCreator.  More... 
 | 
|  | 
| unsigned int | maxLayerAttempts () const | 
|  | Layer attempts - as provided by the LayerAttemptCreator.  More... 
 | 
|  | 
| const LayerArray * | confinedLayers () const | 
|  | Return the subLayer array.  More... 
 | 
|  | 
| LayerArray * | confinedLayers () | 
|  | Return the subLayer array.  More... 
 | 
|  | 
| ArraySpan< Layer const *const  > | confinedArbitraryLayers () const | 
|  | Return the confined subLayer array.  More... 
 | 
|  | 
| ArraySpan< Layer *const  > | confinedArbitraryLayers () | 
|  | Return the confined subLayer array.  More... 
 | 
|  | 
| const LayerArray * | checkoutConfinedLayers () const | 
|  | Return the subLayerarray including the ownership.  More... 
 | 
|  | 
| const TrackingVolumeArray * | confinedVolumes () const | 
|  | Return the subLayer array.  More... 
 | 
|  | 
| TrackingVolumeArray * | confinedVolumes () | 
|  | Return the subLayer array.  More... 
 | 
|  | 
| ArraySpan< DetachedTrackingVolume const *const  > | confinedDetachedVolumes () const | 
|  | Return detached subVolumes - not the ownership.  More... 
 | 
|  | 
| ArraySpan< DetachedTrackingVolume *const  > | confinedDetachedVolumes () | 
|  | 
| ArraySpan< TrackingVolume const *const  > | confinedDenseVolumes () const | 
|  | Return unordered subVolumes - not the ownership.  More... 
 | 
|  | 
| ArraySpan< TrackingVolume *const  > | confinedDenseVolumes () | 
|  | 
| const std::string & | volumeName () const | 
|  | Returns the VolumeName - for debug reason, might be depreciated later.  More... 
 | 
|  | 
| std::vector< std::shared_ptr< BoundarySurface< TrackingVolume > > > & | boundarySurfaces () | 
|  | Method to return the BoundarySurfaces.  More... 
 | 
|  | 
| ConstSharedPtrSpan< BoundarySurface< TrackingVolume > > | boundarySurfaces () const | 
|  | 
| template<class T > | 
| std::vector< BoundaryIntersection< T > > | boundarySurfacesOrdered (const T ¶meters, PropDirection pDir=alongMomentum, bool startOffBoundary=false) const | 
|  | Returns the boundary surfaces ordered in probability to hit them based on straight line intersection.  More... 
 | 
|  | 
| const BoundarySurface< TrackingVolume > * | boundarySurface (const ObjectAccessor::value_type &oa) const | 
|  | Get the BoundarySurface to the appointed Accessor state.  More... 
 | 
|  | 
| template<class T > | 
| bool | onVolumeBoundary (const T &pars) const | 
|  | show if you are on a boundary surface  More... 
 | 
|  | 
| void | registerOutsideGlueVolumes (GlueVolumesDescriptor *gvd) | 
|  | Register the outside glue volumes - ordering is in the TrackingVolume Frame:  More... 
 | 
|  | 
| GlueVolumesDescriptor & | glueVolumesDescriptor () | 
|  | 
| const GlueVolumesDescriptor & | glueVolumesDescriptor () const | 
|  | 
| void | sign (GeometrySignature signat, GeometryType gtype=Static) | 
|  | sign the volume - the geometry builder has to do that  More... 
 | 
|  | 
| GeometrySignature | geometrySignature () const | 
|  | return the Signature  More... 
 | 
|  | 
| GeometryType | geometryType () const | 
|  | return the Signature  More... 
 | 
|  | 
| void | registerColorCode (unsigned int icolor) | 
|  | Register the color code.  More... 
 | 
|  | 
| unsigned int | colorCode () const | 
|  | Get the color code.  More... 
 | 
|  | 
| const TrackingVolume * | getMotherVolume () const | 
|  | Return the MotherVolume - if it exists.  More... 
 | 
|  | 
| void | setMotherVolume (const TrackingVolume *mvol) | 
|  | set the MotherVolume  More... 
 | 
|  | 
| void | moveVolume (Amg::Transform3D &shift) | 
|  | move Volume  More... 
 | 
|  | 
| void | addMaterial (const Material &mat, float fact=1.) | 
|  | add Material  More... 
 | 
|  | 
| void | screenDump (MsgStream &msg) const | 
|  | 
| virtual Volume * | clone () const | 
|  | polymorpic deep copy  More... 
 | 
|  | 
| const Amg::Transform3D & | transform () const | 
|  | Return methods for geometry transform.  More... 
 | 
|  | 
| const Amg::Vector3D & | center () const | 
|  | returns the center of the volume  More... 
 | 
|  | 
| const VolumeBounds & | volumeBounds () const | 
|  | returns the volumeBounds()  More... 
 | 
|  | 
| VolumeBounds & | volumeBounds () | 
|  | 
| bool | inside (const Amg::Vector3D &gp, double tol=0.) const | 
|  | Inside() method for checks.  More... 
 | 
|  | 
| ObjectAccessor | boundarySurfaceAccessor (const Amg::Vector3D &gp, const Amg::Vector3D &mom, bool forceInside=false) const | 
|  | Provide accessor for BoundarySurfaces.  More... 
 | 
|  | 
| std::unique_ptr< Material > | scale (float sf) const | 
|  | scaling method  More... 
 | 
|  | 
| float | zOverAtimesRho () const | 
|  | access to members  More... 
 | 
|  | 
| float | x0 () const | 
|  | 
| float | averageZ () const | 
|  | 
| std::string | toString () const | 
|  | spit out as a string  More... 
 | 
|  | 
Base Class for a navigation object (active) in the Calo realm. Takes BinnedMaterial as an argument ( can be dummy )
- Author
- Sarka.nosp@m..Tod.nosp@m.orova.nosp@m.@cer.nosp@m.n.ch 
Definition at line 36 of file AlignableTrackingVolume.h.
◆ AlignableTrackingVolume() [1/2]
  
  | 
        
          | Trk::AlignableTrackingVolume::AlignableTrackingVolume | ( |  | ) |  |  | default | 
 
 
◆ ~AlignableTrackingVolume()
  
  | 
        
          | virtual Trk::AlignableTrackingVolume::~AlignableTrackingVolume | ( |  | ) |  |  | overridevirtualdefault | 
 
 
◆ AlignableTrackingVolume() [2/2]
◆ addMaterial()
  
  | 
        
          | void Trk::TrackingVolume::addMaterial | ( | const Material & | mat, |  
          |  |  | float | fact = 1. |  
          |  | ) |  |  |  | inherited | 
 
add Material 
Definition at line 736 of file TrackingVolume.cxx.
  739   float flin = 
pow(fact, 0.33);
 
  741   double invX0 = 
X0 > 0. ? 1. / 
X0 : 0.;
 
  742   double sum_invX0 = invX0 + flin / mprop.X0;
 
  745   double invL0 = 
L0 > 0. ? 1. / 
L0 : 0.;
 
  746   double sum_invL0 = invL0 + flin / mprop.L0;
 
  750   rho += fact * mprop.rho;
 
  752   float n1 = 
Z > 0. ? rho1 / 
Z : 0.;
 
  753   float n2 = fact * mprop.rho / mprop.Z;
 
  756   n1 = 
A > 0. ? rho1 / 
A : 0.;
 
  757   n2 = fact * mprop.rho / mprop.A;
 
  762   dEdX += flin * mprop.dEdX;
 
 
 
 
◆ alignedTrackingVolume()
returns the alignedTrackingVolume 
 
 
◆ assocDetachedSubVolumes()
Return the associated detached subvolumes. 
Definition at line 624 of file TrackingVolume.cxx.
  627   auto currVols = std::vector<const Trk::DetachedTrackingVolume*>();
 
  631   if (!detVols.empty()) {
 
  632     for (
const auto *detVol : detVols) {
 
  633       if (detVol->trackingVolume()->inside(gp, tol)){
 
  634         currVols.push_back(detVol);
 
 
 
 
◆ associatedLayer() [1/2]
Definition at line 400 of file TrackingVolume.cxx.
  409       if (confinedArbitraryLayer->isOnLayer(gp)){
 
  410         return confinedArbitraryLayer;
 
 
 
 
◆ associatedLayer() [2/2]
Return the associated Layer. 
Definition at line 382 of file TrackingVolume.cxx.
  391       if (confinedArbitraryLayer->isOnLayer(gp)){
 
  392         return confinedArbitraryLayer;
 
 
 
 
◆ associatedSubVolume() [1/2]
Definition at line 556 of file TrackingVolume.cxx.
  564       if (confinedDetachedVolume->trackingVolume()->inside(gp, 0.001)){
 
  565         return confinedDetachedVolume->trackingVolume();
 
  572       if (confinedDenseVolume->inside(gp, 0.001)){
 
  573         return confinedDenseVolume;
 
 
 
 
◆ associatedSubVolume() [2/2]
Return the associated sub Volume, returns THIS if no subVolume exists. 
Definition at line 530 of file TrackingVolume.cxx.
  538       if (confinedDetachedVolume->trackingVolume()->inside(gp, 0.001)){
 
  539         return confinedDetachedVolume->trackingVolume();
 
  546       if (confinedDenseVolume->inside(gp, 0.001)){
 
  547         return confinedDenseVolume;
 
 
 
 
◆ averageZ()
  
  | 
        
          | float Trk::Material::averageZ | ( |  | ) | const |  | inlineinherited | 
 
Definition at line 228 of file Material.h.
  228 { 
return (*this).Z; }
 
 
 
◆ binnedMaterial()
◆ boundarySurface()
◆ boundarySurfaceAccessor()
Provide accessor for BoundarySurfaces. 
Definition at line 82 of file Volume.cxx.
 
 
◆ boundarySurfaces() [1/2]
◆ boundarySurfaces() [2/2]
◆ boundarySurfacesOrdered()
Returns the boundary surfaces ordered in probability to hit them based on straight line intersection. 
 
 
◆ center()
returns the center of the volume 
Definition at line 90 of file Volume.h.
 
 
◆ checkoutConfinedLayers()
Return the subLayerarray including the ownership. 
Definition at line 1003 of file TrackingVolume.cxx.
 1006   return checkoutLayers;
 
 
 
 
◆ clone()
polymorpic deep copy 
Definition at line 60 of file Volume.cxx.
 
 
◆ closest()
Helper method - find closest of two layers. 
Definition at line 1046 of file TrackingVolume.cxx.
 1053     first.surfaceRepresentation().straightLineDistanceEstimate(
pos, 
dir);
 
 1055     second.surfaceRepresentation().straightLineDistanceEstimate(
pos, 
dir);
 
 
 
 
◆ closestMaterialLayer()
Return the closest layer with material description. 
- it assumes to be on lowest navigation level
- does not step down to eventually confined TrackingVolumes
- navigates to the next trackign volume IF PropDirection == mappingMode 
Definition at line 445 of file TrackingVolume.cxx.
  451   std::vector<const Layer*> layerCandidates;
 
  456     for (
size_t ib = 0; 
ib < bSurfaces.size(); ++
ib) {
 
  457       if (bSurfaces[
ib]->surfaceRepresentation().materialLayer()){
 
  458         layerCandidates.push_back(bSurfaces[
ib]->surfaceRepresentation().materialLayer());
 
  476       if (previousMatLayer){
 
  477         layerCandidates.push_back(previousMatLayer);
 
  480         layerCandidates.push_back(nextMatLayer);
 
  483       layerCandidates.push_back(assocLayer);
 
  490   if (!layerCandidates.empty()) {
 
  491     const Layer* cLayer = 
nullptr;
 
  493     for (
auto& lcIter : layerCandidates) {
 
  499         (*lcIter).surfaceRepresentation().straightLineIntersection(
 
  500           gp, dirScalor * 
dir, forceDir, bchk);
 
  503             (laySurfIntersection.pathLength * laySurfIntersection.pathLength)) {
 
  504         laySurfIntersection = sfI;
 
  514         &(cLayer->surfaceRepresentation()),
 
  523   return (nVolume && nVolume != 
this)
 
  526                laySurfIntersection, 
nullptr, 
nullptr, 
nullptr, pDir);
 
 
 
 
◆ colorCode()
  
  | 
        
          | unsigned int Trk::TrackingVolume::colorCode | ( |  | ) | const |  | inherited | 
 
 
◆ compactify()
  
  | 
        
          | void Trk::TrackingVolume::compactify | ( | size_t & | rSurfaces, |  
          |  |  | size_t & | tSurfaces |  
          |  | ) |  |  |  | privateinherited | 
 
compactify the memory usage in the event by setting ownership to TackingGeometry the referenced types are the number of registered surfaces & total surfaces 
Definition at line 1131 of file TrackingVolume.cxx.
 1137     for (
const auto& clayIter : 
layers) {
 
 1138       if (&(*clayIter) != 
nullptr){
 
 1139         clayIter->compactify(cSurfaces, tSurfaces);
 
 1142         std::cout << 
"WARNING: Attempt to compactify nullptr layer in volume : " 
 1149   if (!confArbLayers.empty()) {
 
 1150     for (
const auto& calayIter : confArbLayers) {
 
 1151       if (calayIter != 
nullptr) {
 
 1152         calayIter->compactify(cSurfaces, tSurfaces);
 
 1154         std::cout << 
"WARNING: Attempt to compactify nullptr layer." 
 1162     std::span<Trk::TrackingVolume* const> volumes =
 
 1164     for (
const auto& cVolumesIter : volumes) {
 
 1165       cVolumesIter->compactify(cSurfaces, tSurfaces);
 
 1170   if (!confDenseVolumes.empty()){
 
 1171     for (
const auto& cVolumesIter : (confDenseVolumes)) {
 
 1172       cVolumesIter->compactify(cSurfaces, tSurfaces);
 
 1179       cdVolumesIter->compactify(cSurfaces, tSurfaces);
 
 
 
 
◆ confinedArbitraryLayers() [1/2]
Return the confined subLayer array. 
Layers are not const 
 
 
◆ confinedArbitraryLayers() [2/2]
Return the confined subLayer array. 
 
 
◆ confinedDenseVolumes() [1/2]
◆ confinedDenseVolumes() [2/2]
Return unordered subVolumes - not the ownership. 
 
 
◆ confinedDetachedVolumes() [1/2]
◆ confinedDetachedVolumes() [2/2]
Return detached subVolumes - not the ownership. 
 
 
◆ confinedLayers() [1/2]
  
  | 
        
          | LayerArray* Trk::TrackingVolume::confinedLayers | ( |  | ) |  |  | inherited | 
 
Return the subLayer array. 
 
 
◆ confinedLayers() [2/2]
Return the subLayer array. 
 
 
◆ confinedVolumes() [1/2]
Return the subLayer array. 
 
 
◆ confinedVolumes() [2/2]
Return the subLayer array. 
 
 
◆ createBoundarySurfaces()
  
  | 
        
          | void Trk::TrackingVolume::createBoundarySurfaces | ( |  | ) |  |  | privateinherited | 
 
Create Boundary Surface. 
Definition at line 828 of file TrackingVolume.cxx.
  832     std::vector<std::shared_ptr<Trk::BoundarySurface<Trk::TrackingVolume>>>();
 
  834   std::vector<std::unique_ptr<Trk::Surface>> surfaces =
 
  836   auto surfIter = surfaces.begin();
 
  839   unsigned int sfCounter = 0;
 
  840   unsigned int sfNumber = surfaces.size();
 
  852   bool subtr = (subtrVol) ? 1 : 0;
 
  853   bool comb = (combVol) ? 1 : 0;
 
  855   if (!subtr && !comb) {
 
  860     for (; surfIter != surfaces.end(); ++surfIter) {
 
  873         if (spbVol && sfCounter == 1) {
 
  902           (sfCounter == 4 && sfNumber > 3) ? 
nullptr : 
this;
 
  910           (sfCounter == 4 && sfNumber > 3) ? 
nullptr : 
this;
 
  914               inner, outer, *csf));
 
  920     const std::vector<bool> bOrient =
 
  923     for (; surfIter != surfaces.end(); ++surfIter) {
 
 
 
 
◆ createLayerAttemptsCalculator()
  
  | 
        
          | void Trk::TrackingVolume::createLayerAttemptsCalculator | ( |  | ) |  |  | privateinherited | 
 
 
◆ entryLayer()
◆ exitLayer()
◆ geometrySignature()
◆ geometryType()
◆ getMotherVolume()
Return the MotherVolume - if it exists. 
 
 
◆ glueVolumesDescriptor() [1/2]
◆ glueVolumesDescriptor() [2/2]
◆ identify()
  
  | 
        
          | int Trk::AlignableTrackingVolume::identify | ( |  | ) | const |  | inline | 
 
 
◆ indexContainedMaterialLayers()
  
  | 
        
          | void Trk::TrackingVolume::indexContainedMaterialLayers | ( | GeometrySignature | geoSig, |  
          |  |  | int & | offset |  
          |  | ) |  |  |  | privateinherited | 
 
 
◆ indexContainedStaticLayers()
  
  | 
        
          | void Trk::TrackingVolume::indexContainedStaticLayers | ( | GeometrySignature | geoSig, |  
          |  |  | int & | offset |  
          |  | ) |  |  |  | privateinherited | 
 
reIndex the static layers of the TrackingVolume 
Definition at line 642 of file TrackingVolume.cxx.
  653       if (layerptr && layerptr->layerIndex().value() < 0) {
 
  656           layerptr->layerMaterialProperties()
 
  661         layerptr->registerLayerIndex(layIndex);
 
  668   for (
const auto& bsIter : bSurfaces) {
 
  681     for (
const auto& volumesIter : volumes) {
 
  683         volumesIter->indexContainedStaticLayers(geoSig, 
offset);
 
 
 
 
◆ inside()
Inside() method for checks. 
Definition at line 72 of file Volume.cxx.
 
 
◆ interlinkLayers()
  
  | 
        
          | void Trk::TrackingVolume::interlinkLayers | ( |  | ) |  |  | privateinherited | 
 
Register Next - Previous for Layers, set volumelink. 
Definition at line 967 of file TrackingVolume.cxx.
  974     for (; layerIter != 
layers.end(); ++layerIter) {
 
  980         (**layerIter).setPreviousLayer(lastLayer);
 
  982         (**layerIter).encloseTrackingVolume(*
this);
 
  984       lastLayer = (*layerIter);
 
  990     for (;; --layerIter) {
 
  992         (**layerIter).setNextLayer(lastLayer);
 
  994       lastLayer = (*layerIter);
 
  995       if (layerIter == 
layers.begin()) {
 
 
 
 
◆ isAlignable()
  
  | 
        
          | bool Trk::AlignableTrackingVolume::isAlignable | ( |  | ) | const |  | inlinefinaloverridevirtual | 
 
 
◆ layerAttempts()
Layer attempts - as provided by the LayerAttemptCreator. 
 
 
◆ materialLayersOrdered()
Return the material layers ordered based on straight line intersections: 
- startLayer and endLayer are included in the list 
 
 
◆ maxLayerAttempts()
  
  | 
        
          | unsigned int Trk::TrackingVolume::maxLayerAttempts | ( |  | ) | const |  | inherited | 
 
Layer attempts - as provided by the LayerAttemptCreator. 
 
 
◆ moveTV()
◆ moveVolume()
move Volume 
Definition at line 1034 of file TrackingVolume.cxx.
 1038     this->m_transform = std::make_unique<Amg::Transform3D>(transf);
 
 1040     this->
m_transform = std::make_unique<Amg::Transform3D>(shift);
 
 
 
 
◆ nextLayer()
◆ nextSubVolume()
◆ nextVolume()
Return the next volume along the navigation stream. 
Definition at line 583 of file TrackingVolume.cxx.
  593   double pathLength = 10e10;
 
  596   for (
size_t ib = 0; 
ib < bSurfaces.size(); ++
ib) {
 
  599       bSurfaces[
ib]->surfaceRepresentation().straightLineIntersection(
 
  600         gp, cDir, forceDir, 
true);
 
  607       nVolume = bSurfaces[
ib]->attachedVolume(gp, cDir, attachedDir);
 
 
 
 
◆ onVolumeBoundary()
template<class T > 
  
  | 
        
          | bool Trk::TrackingVolume::onVolumeBoundary | ( | const T & | pars | ) | const |  | inherited | 
 
show if you are on a boundary surface 
 
 
◆ registerColorCode()
  
  | 
        
          | void Trk::TrackingVolume::registerColorCode | ( | unsigned int | icolor | ) |  |  | inherited | 
 
 
◆ registerOutsideGlueVolumes()
Register the outside glue volumes - ordering is in the TrackingVolume Frame: 
- negativeFaceXY
- (faces YZ, ZY, radial faces)
- positiveFaceXY 
Definition at line 1010 of file TrackingVolume.cxx.
 
 
◆ scale()
  
  | 
        
          | std::unique_ptr< Material > Trk::Material::scale | ( | float | sf | ) | const |  | inlineinherited | 
 
 
◆ screenDump()
  
  | 
        
          | void Trk::TrackingVolume::screenDump | ( | MsgStream & | msg | ) | const |  | inherited | 
 
 
◆ setMotherVolume()
◆ sign()
sign the volume - the geometry builder has to do that 
Definition at line 766 of file TrackingVolume.cxx.
  778     std::span<Trk::TrackingVolume* const> volumes =
 
  780     for (
const auto& volumesIter : volumes){
 
  782         volumesIter->sign(geosign, geotype);
 
  789   if (!confDetachedVolumes.empty()) {
 
  790     for (
const auto& volumesIter : confDetachedVolumes) {
 
  792         volumesIter->sign(geosign, geotype);
 
  799   if (!confDenseVolumes.empty()) {
 
  800     for (
const auto& volumesIter : confDenseVolumes) {
 
  802         volumesIter->sign(geosign, geotype);
 
 
 
 
◆ synchronizeLayers()
  
  | 
        
          | void Trk::TrackingVolume::synchronizeLayers | ( | MsgStream & | msgstream, |  
          |  |  | double | envelope = 1. |  
          |  | ) |  |  |  | privateinherited | 
 
method to synchronize the layers with potentially updated volume bounds: 
- adapts the layer dimensions to the new volumebounds + envelope
- adapts entry layer position where necessary to the new volumebounds 
Definition at line 1103 of file TrackingVolume.cxx.
 1110         if (clay->surfaceRepresentation().type() ==
 
 1112             !(
center().isApprox(clay->surfaceRepresentation().center()))) {
 
 1118         msgstream << MSG::WARNING
 
 1119                   << 
"  ---> found 0 pointer to layer in Volume [ " 
 1125     for (
const auto& cVolumesIter : confVolumes->
arrayObjects())
 
 1126       cVolumesIter->synchronizeLayers(msgstream, envelope);
 
 
 
 
◆ toString()
  
  | 
        
          | std::string Trk::Material::toString | ( |  | ) | const |  | inlineinherited | 
 
spit out as a string 
Definition at line 231 of file Material.h.
  232     std::ostringstream sout;
 
  233     sout << std::setiosflags(std::ios::fixed) << std::setprecision(4);
 
  234     sout << 
"(" << 
X0 << 
" | " << 
L0 << 
" | " << 
A << 
" | " << 
Z << 
" | " << 
rho 
 
 
 
◆ transform()
Return methods for geometry transform. 
Definition at line 83 of file Volume.h.
   87       return Trk::s_idTransform;
 
 
 
 
◆ volumeBounds() [1/2]
◆ volumeBounds() [2/2]
◆ volumeName()
  
  | 
        
          | const std::string& Trk::TrackingVolume::volumeName | ( |  | ) | const |  | inherited | 
 
Returns the VolumeName - for debug reason, might be depreciated later. 
 
 
◆ x0()
  
  | 
        
          | float Trk::Material::x0 | ( |  | ) | const |  | inlineinherited | 
 
Definition at line 227 of file Material.h.
  227 { 
return (*this).X0; }
 
 
 
◆ zOverAtimesRho()
  
  | 
        
          | float Trk::Material::zOverAtimesRho | ( |  | ) | const |  | inlineinherited | 
 
access to members 
Definition at line 226 of file Material.h.
  226 { 
return (*this).zOaTr; }
 
 
 
◆ composition
◆ dEdX
  
  | 
        
          | float Trk::Material::dEdX |  | inherited | 
 
 
◆ L0
◆ m_alignment
  
  | 
        
          | std::unique_ptr<Amg::Transform3D> Trk::AlignableTrackingVolume::m_alignment = nullptr |  | private | 
 
 
◆ m_binnedMaterial
◆ m_boundarySurfaces
◆ m_center
center position of the surface 
Definition at line 79 of file Volume.h.
 
 
◆ m_colorCode
  
  | 
        
          | unsigned int Trk::TrackingVolume::m_colorCode {20} |  | privateinherited | 
 
 
◆ m_confinedArbitraryLayers
  
  | 
        
          | std::unique_ptr<const std::vector<Layer*> > Trk::TrackingVolume::m_confinedArbitraryLayers {nullptr} |  | privateinherited | 
 
 
◆ m_confinedDenseVolumes
  
  | 
        
          | std::unique_ptr<const std::vector<TrackingVolume*> > Trk::TrackingVolume::m_confinedDenseVolumes {nullptr} |  | privateinherited | 
 
 
◆ m_confinedDetachedVolumes
Additionally, Unordered subvolumes (we own the elements) 
Definition at line 444 of file TrackingVolume.h.
 
 
◆ m_confinedLayers
  
  | 
        
          | std::unique_ptr<LayerArray> Trk::TrackingVolume::m_confinedLayers {nullptr} |  | privateinherited | 
 
 
◆ m_confinedVolumes
Detached subvolumes. 
Note that we do not own the volumes/elements 
Definition at line 442 of file TrackingVolume.h.
 
 
◆ m_geometrySignature
◆ m_geometryType
◆ m_layerAttemptsCalculator
◆ m_motherVolume
boundary Surfaces, they can be shared between volumes 
Definition at line 436 of file TrackingVolume.h.
 
 
◆ m_name
  
  | 
        
          | std::string Trk::TrackingVolume::m_name {"undefined"} |  | privateinherited | 
 
 
◆ m_outsideGlueVolumes
◆ m_sampleID
  
  | 
        
          | int Trk::AlignableTrackingVolume::m_sampleID {} |  | private | 
 
 
◆ m_transform
Transform3D (optional) 
Definition at line 78 of file Volume.h.
 
 
◆ m_volumeBounds
  
  | 
        
          | std::shared_ptr<VolumeBounds> Trk::Volume::m_volumeBounds = nullptr |  | protectedinherited | 
 
the volumeBounds 
Definition at line 80 of file Volume.h.
 
 
◆ rho
◆ X0
◆ zOaTr
  
  | 
        
          | float Trk::Material::zOaTr |  | inherited | 
 
 
The documentation for this class was generated from the following files:
 
JetConstituentVector::iterator iterator
LayerIndex
enum to classify the different layers in the muon spectrometer
const Trk::MaterialLayer * materialLayer() const
return the material Layer
std::unique_ptr< const std::vector< DetachedTrackingVolume * > > m_confinedDetachedVolumes
Additionally, Unordered subvolumes (we own the elements)
const std::vector< bool > & boundsOrientation() const
This method returns bounds orientation.
const Layer * nextLayer(const Amg::Vector3D &gp, const Amg::Vector3D &mom, bool asres=true, bool skipNavLayer=false) const
Return the next Layer if existing, NULL if no next layer corresponds.
virtual std::vector< std::unique_ptr< Trk::Surface > > decomposeToSurfaces(const Amg::Transform3D &transform)=0
Method to decompose the Bounds into Surfaces, the Volume can turn them into BoundarySurfaces.
void moveVolume(Amg::Transform3D &shift)
move Volume
LayerIntersection< Amg::Vector3D > closestMaterialLayer(const Amg::Vector3D &gp, const Amg::Vector3D &dir, PropDirection pDir=alongMomentum, const BoundaryCheck &bchk=true) const
Return the closest layer with material description.
virtual T * nextObject(const Amg::Vector3D &gp, const Amg::Vector3D &mom, bool associatedResult=true) const =0
Returns the pointer to the templated class object from the BinnedArray, takes 3D position & direction...
std::shared_ptr< VolumeBounds > m_volumeBounds
the volumeBounds
ArraySpan< DetachedTrackingVolume const *const  > confinedDetachedVolumes() const
Return detached subVolumes - not the ownership.
std::vector< std::shared_ptr< BoundarySurface< TrackingVolume > > > m_boundarySurfaces
std::unique_ptr< const std::vector< TrackingVolume * > > m_confinedDenseVolumes
Additionally, Unordered Layers inside the Volume (we own the elements)
virtual const Surface & surfaceRepresentation() const override=0
Transforms the layer into a Surface representation for extrapolation.
std::unique_ptr< LayerArray > m_confinedLayers
Array of Volumes inside the Volume.
std::unique_ptr< const std::vector< Layer * > > m_confinedArbitraryLayers
std::unique_ptr< TrackingVolumeArray > m_confinedVolumes
Detached subvolumes.
const std::vector< bool > & boundsOrientation() const
This method returns bounds orientation.
#define TRKDETDESCR_GEOMETRYSIGNATUREWEIGHT
const BinnedMaterial m_binnedMaterial
const LayerArray * confinedLayers() const
Return the subLayer array.
const SurfaceArray * surfaceArray() const
Return the entire SurfaceArray, returns nullptr if no SurfaceArray.
ArraySpan< Layer const *const  > confinedArbitraryLayers() const
Return the confined subLayer array.
ArraySpan< TrackingVolume const *const  > confinedDenseVolumes() const
Return unordered subVolumes - not the ownership.
GeometrySignature m_geometrySignature
Eigen::Affine3d Transform3D
const Layer * nextLayer(const Amg::Vector3D &gp, const Amg::Vector3D &udir) const
getting the next/previous Layer if registered - unit for direction vector required
const Amg::Vector3D & center() const
returns the center of the volume
std::vector< std::shared_ptr< BoundarySurface< TrackingVolume > > > & boundarySurfaces()
Method to return the BoundarySurfaces.
int value() const
layerIndex expressed in an integer
virtual std::span< T *const  > arrayObjects()=0
Return all objects of the Array non-const we can still modify the T.
ObjectAccessor boundarySurfaceAccessor(const Amg::Vector3D &gp, const Amg::Vector3D &mom, bool forceInside=false) const
Provide accessor for BoundarySurfaces.
BinningValue binningValue(size_t ba=0) const
The type/value of the binning.
void registerLayerIndex(const LayerIndex &lIdx)
Ensure that the ATLAS eigen extensions are properly loaded.
const std::string & volumeName() const
Returns the VolumeName - for debug reason, might be depreciated later.
double absClosest() const
Absolute Distance to closest solution.
void moveTV(Amg::Transform3D &transform)
move the Tracking Volume
const Amg::Transform3D & transform() const
Return methods for geometry transform.
GeometryType m_geometryType
The Signature done by the GeometryBuilder.
Eigen::Matrix< double, 3, 1 > Vector3D
const TrackingVolume * nextVolume(const Amg::Vector3D &gp, const Amg::Vector3D &dir, PropDirection pDir=alongMomentum) const
Return the next volume along the navigation stream.
const TrackingVolumeArray * confinedVolumes() const
Return the subLayer array.
const Layer * previousLayer(bool skipNavLayer=false) const
getting what's stored to be the previous Layer, boolean to skip navigation layers
const VolumeBounds & volumeBounds() const
returns the volumeBounds()
const LayerMaterialProperties * layerMaterialProperties() const
getting the LayerMaterialProperties including full/pre/post update
std::unique_ptr< LayerAttemptsCalculator > m_layerAttemptsCalculator
defines how the Extrapolator propagates through this
std::unique_ptr< Amg::Transform3D > m_transform
Transform3D (optional)
Class extension to return the object, a represenation & the result.
CxxUtils::CachedUniquePtrT< GlueVolumesDescriptor > m_outsideGlueVolumes
provided the number of layer attempts
constexpr int pow(int base, int exp) noexcept
const Layer * associatedLayer(const Amg::Vector3D &gp) const
Return the associated Layer.
const LayerIndex & layerIndex() const
get the layerIndex
Amg::Vector3D m_center
center position of the surface