 |
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
#define CXXUTILS_TRAPPING_FP
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.
CalibratedSpacePoint::Covariance_t inverse(const CalibratedSpacePoint::Covariance_t &mat)
Inverts the parsed matrix.
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