|
ATLAS Offline Software
|
#include <AlignableTrackingVolume.h>
|
| AlignableTrackingVolume () |
| Default Constructor. More...
|
|
| AlignableTrackingVolume (Amg::Transform3D *htrans, Amg::Transform3D *align, VolumeBounds *volbounds, const BinnedMaterial *matprop, int sampleID, const std::string &volumeName="undefined") |
| Constructor. More...
|
|
virtual | ~AlignableTrackingVolume () override |
| Destructor. 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< SharedObject< 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...
|
|
void | forceNavigationCheck () |
| force a navigation check More...
|
|
bool | redoNavigation () const |
| Boolean, if true navigation needs to be redone when hitting this volume. 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 | clear () |
| remove content More...
|
|
void | screenDump (MsgStream &msg) const |
|
virtual Volume * | clone () const |
| Pseudo-constructor. 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...
|
|
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 |
( |
| ) |
|
◆ AlignableTrackingVolume() [2/2]
◆ ~AlignableTrackingVolume()
Trk::AlignableTrackingVolume::~AlignableTrackingVolume |
( |
| ) |
|
|
overridevirtual |
◆ addMaterial()
void Trk::TrackingVolume::addMaterial |
( |
const Material & |
mat, |
|
|
float |
fact = 1. |
|
) |
| |
|
inherited |
add Material
Definition at line 911 of file TrackingVolume.cxx.
914 float flin =
pow(fact, 0.33);
916 double invX0 =
X0 > 0. ? 1. /
X0 : 0.;
917 double sum_invX0 = invX0 + flin / mprop.X0;
920 double invL0 =
L0 > 0. ? 1. /
L0 : 0.;
921 double sum_invL0 = invL0 + flin / mprop.L0;
925 rho += fact * mprop.rho;
927 float n1 =
Z > 0. ? rho1 /
Z : 0.;
928 float n2 = fact * mprop.rho / mprop.Z;
931 n1 =
A > 0. ? rho1 /
A : 0.;
932 n2 = fact * mprop.rho / mprop.A;
937 dEdX += flin * mprop.dEdX;
◆ alignedTrackingVolume()
◆ assocDetachedSubVolumes()
Return the associated detached subvolumes.
Definition at line 800 of file TrackingVolume.cxx.
803 auto currVols = std::vector<const Trk::DetachedTrackingVolume*>();
807 if (!detVols.empty()) {
808 for (
const auto *detVol : detVols) {
809 if (detVol->trackingVolume()->inside(gp, tol))
810 currVols.push_back(detVol);
◆ associatedLayer() [1/2]
Definition at line 586 of file TrackingVolume.cxx.
594 if (confinedArbitraryLayer->isOnLayer(gp)){
595 return confinedArbitraryLayer;
◆ associatedLayer() [2/2]
Return the associated Layer.
Definition at line 569 of file TrackingVolume.cxx.
577 if (confinedArbitraryLayer->isOnLayer(gp)){
578 return confinedArbitraryLayer;
◆ associatedSubVolume() [1/2]
Definition at line 734 of file TrackingVolume.cxx.
741 if (confinedDetachedVolume->trackingVolume()->inside(gp, 0.001)){
742 return confinedDetachedVolume->trackingVolume();
749 if (confinedDenseVolume->inside(gp, 0.001)){
750 return confinedDenseVolume;
◆ associatedSubVolume() [2/2]
Return the associated sub Volume, returns THIS if no subVolume exists.
Definition at line 710 of file TrackingVolume.cxx.
717 if (confinedDetachedVolume->trackingVolume()->inside(gp, 0.001)){
718 return confinedDetachedVolume->trackingVolume();
725 if (confinedDenseVolume->inside(gp, 0.001)){
726 return confinedDenseVolume;
◆ averageZ()
float Trk::Material::averageZ |
( |
| ) |
const |
|
inlineinherited |
Definition at line 227 of file Material.h.
227 {
return (*this).Z; }
◆ binnedMaterial()
◆ boundarySurface()
◆ boundarySurfaceAccessor()
Provide accessor for BoundarySurfaces.
Definition at line 100 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 86 of file Volume.h.
90 m_center.set(std::make_unique<Amg::Vector3D>(std::as_const(*m_transform).translation()));
◆ checkoutConfinedLayers()
Return the subLayerarray including the ownership.
Definition at line 1192 of file TrackingVolume.cxx.
1195 return checkoutLayers;
◆ clear()
void Trk::TrackingVolume::clear |
( |
| ) |
|
|
inherited |
remove content
Definition at line 542 of file TrackingVolume.cxx.
554 delete confinedDenseVolume;
561 delete confinedArbitraryLayer;
◆ clone()
◆ cloneTV()
clone at new position
Definition at line 1235 of file TrackingVolume.cxx.
1247 std::vector<Trk::SharedObject<Trk::Layer>> layerOrder;
1267 std::vector<Trk::Layer*>* unorderedLayers =
nullptr;
1270 if (!confArbLayers.empty()) {
1272 std::vector<Trk::Layer*> uLayers;
1273 for (
const auto *confArbLayer : confArbLayers) {
1286 uLayers.push_back(lay);
1290 uLayers.push_back(lay);
1291 }
else if (sclayer) {
1295 uLayers.push_back(lay);
1296 }
else if (clayer) {
1299 uLayers.push_back(lay);
1302 unorderedLayers =
new std::vector<Trk::Layer*>(uLayers);
1311 std::vector<Trk::SharedObject<TrackingVolume>> volOrder;
1312 for (
const auto *volume : volumes) {
1328 std::vector<Trk::TrackingVolume*>* newDenseVol =
nullptr;
1329 if (!confDenseVolumes.empty()) {
1330 std::vector<Trk::TrackingVolume*> newVol;
1332 for (
const auto *confDenseVolume : confDenseVolumes) {
1335 newVol.push_back(vol);
1337 newDenseVol =
new std::vector<Trk::TrackingVolume*>(newVol);
1342 if (!confArbLayers.empty() || !confDenseVolumes.empty()) {
1343 if (!confArbLayers.empty() && !confDenseVolumes.empty()) {
1345 *vol, unorderedLayers, newDenseVol, *
this,
volumeName());
1346 }
else if (!confArbLayers.empty()) {
1356 *vol, *
this, layerArray, volumeArray,
volumeName());
◆ closest()
Helper method - find closest of two layers.
Definition at line 1370 of file TrackingVolume.cxx.
1377 first.surfaceRepresentation().straightLineDistanceEstimate(
pos,
dir);
1379 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 628 of file TrackingVolume.cxx.
634 std::vector<const Layer*> layerCandidates;
639 for (
size_t ib = 0;
ib < bSurfaces.size(); ++
ib) {
640 if (bSurfaces[
ib]->surfaceRepresentation().materialLayer())
641 layerCandidates.push_back(
642 bSurfaces[
ib]->surfaceRepresentation().materialLayer());
659 if (previousMatLayer)
660 layerCandidates.push_back(previousMatLayer);
662 layerCandidates.push_back(nextMatLayer);
664 layerCandidates.push_back(assocLayer);
671 if (!layerCandidates.empty()) {
672 const Layer* cLayer =
nullptr;
674 for (
auto& lcIter : layerCandidates) {
680 (*lcIter).surfaceRepresentation().straightLineIntersection(
681 gp, dirScalor *
dir, forceDir, bchk);
684 (laySurfIntersection.pathLength * laySurfIntersection.pathLength)) {
685 laySurfIntersection = sfI;
695 &(cLayer->surfaceRepresentation()),
703 return (nVolume && nVolume !=
this)
706 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 1455 of file TrackingVolume.cxx.
1461 for (
const auto& clayIter :
layers) {
1462 if (&(*clayIter) !=
nullptr)
1463 clayIter->compactify(cSurfaces, tSurfaces);
1465 std::cout <<
"WARNING: Attempt to compactify nullptr layer in volume : "
1471 if (!confArbLayers.empty()) {
1472 for (
const auto& calayIter : confArbLayers) {
1473 if (calayIter !=
nullptr) {
1474 calayIter->compactify(cSurfaces, tSurfaces);
1476 std::cout <<
"WARNING: Attempt to compactify nullptr layer."
1486 for (
const auto& cVolumesIter : volumes) {
1487 cVolumesIter->compactify(cSurfaces, tSurfaces);
1493 if (!confDenseVolumes.empty())
1494 for (
const auto& cVolumesIter : (confDenseVolumes)) {
1495 cVolumesIter->compactify(cSurfaces, tSurfaces);
1501 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 1001 of file TrackingVolume.cxx.
1005 std::vector<Trk::SharedObject<Trk::BoundarySurface<Trk::TrackingVolume>>>();
1007 const std::vector<const Trk::Surface*>* surfaces =
1009 std::vector<const Trk::Surface*>::const_iterator surfIter = surfaces->begin();
1012 unsigned int sfCounter = 0;
1013 unsigned int sfNumber = surfaces->size();
1025 bool subtr = (subtrVol) ? 1 : 0;
1026 bool comb = (combVol) ? 1 : 0;
1028 if (!subtr && !comb) {
1033 for (; surfIter != surfaces->end(); ++surfIter) {
1046 if (spbVol && sfCounter == 1) {
1081 (sfCounter == 4 && sfNumber > 3) ?
nullptr :
this;
1086 inner, outer, *scsf)));
1092 (sfCounter == 4 && sfNumber > 3) ?
nullptr :
this;
1097 inner, outer, *csf)));
1104 const std::vector<bool> bOrient =
1107 for (; surfIter != surfaces->end(); ++surfIter) {
◆ createLayerAttemptsCalculator()
void Trk::TrackingVolume::createLayerAttemptsCalculator |
( |
| ) |
|
|
privateinherited |
◆ entryLayer()
◆ exitLayer()
◆ forceNavigationCheck()
void Trk::TrackingVolume::forceNavigationCheck |
( |
| ) |
|
|
inherited |
◆ 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 817 of file TrackingVolume.cxx.
828 if (layerptr && layerptr->layerIndex().value() < 0) {
831 layerptr->layerMaterialProperties()
834 :
Trk::LayerIndex(0);
836 layerptr->registerLayerIndex(layIndex);
843 for (
const auto& bsIter : bSurfaces) {
856 for (
const auto& volumesIter : volumes) {
858 volumesIter->indexContainedStaticLayers(geoSig,
offset);
◆ inside()
Inside() method for checks.
Definition at line 90 of file Volume.cxx.
◆ interlinkLayers()
void Trk::TrackingVolume::interlinkLayers |
( |
| ) |
|
|
privateinherited |
Register Next - Previous for Layers, set volumelink.
Definition at line 1156 of file TrackingVolume.cxx.
1163 for (; layerIter !=
layers.end(); ++layerIter) {
1169 (**layerIter).setPreviousLayer(lastLayer);
1171 (**layerIter).encloseTrackingVolume(*
this);
1173 lastLayer = (*layerIter);
1176 lastLayer =
nullptr;
1177 layerIter =
layers.end();
1179 for (;; --layerIter) {
1181 (**layerIter).setNextLayer(lastLayer);
1183 lastLayer = (*layerIter);
1184 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 1223 of file TrackingVolume.cxx.
1227 this->m_transform = std::make_unique<Amg::Transform3D>(transf);
1229 this->
m_transform = std::make_unique<Amg::Transform3D>(shift);
1232 std::make_unique<Amg::Vector3D>(
m_transform->translation()));
◆ nextLayer()
◆ nextSubVolume()
◆ nextVolume()
Return the next volume along the navigation stream.
Definition at line 760 of file TrackingVolume.cxx.
770 double pathLength = 10e10;
773 for (
size_t ib = 0;
ib < bSurfaces.size(); ++
ib) {
776 bSurfaces[
ib]->surfaceRepresentation().straightLineIntersection(
777 gp, cDir, forceDir,
true);
784 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
◆ redoNavigation()
bool Trk::TrackingVolume::redoNavigation |
( |
| ) |
const |
|
inherited |
Boolean, if true navigation needs to be redone when hitting this volume.
◆ 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 1199 of file TrackingVolume.cxx.
◆ scale()
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 941 of file TrackingVolume.cxx.
955 for (
const auto& volumesIter : volumes)
957 volumesIter->sign(geosign, geotype);
962 if (!confDetachedVolumes.empty()) {
963 for (
const auto& volumesIter : confDetachedVolumes) {
965 volumesIter->sign(geosign, geotype);
972 if (!confDenseVolumes.empty()) {
973 for (
const auto& volumesIter : confDenseVolumes) {
975 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 1427 of file TrackingVolume.cxx.
1434 if (clay->surfaceRepresentation().type() ==
1436 !(
center().isApprox(clay->surfaceRepresentation().center()))) {
1442 msgstream << MSG::WARNING
1443 <<
" ---> found 0 pointer to layer in Volume [ "
1449 for (
const auto& cVolumesIter : confVolumes->
arrayObjects())
1450 cVolumesIter->synchronizeLayers(msgstream, envelope);
◆ toString()
std::string Trk::Material::toString |
( |
| ) |
const |
|
inlineinherited |
spit out as a string
Definition at line 230 of file Material.h.
231 std::ostringstream sout;
232 sout << std::setiosflags(std::ios::fixed) << std::setprecision(4);
233 sout <<
"(" <<
X0 <<
" | " <<
L0 <<
" | " <<
A <<
" | " <<
Z <<
" | " <<
rho
◆ transform()
Return methods for geometry transform.
Definition at line 81 of file Volume.h.
83 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 226 of file Material.h.
226 {
return (*this).X0; }
◆ zOverAtimesRho()
float Trk::Material::zOverAtimesRho |
( |
| ) |
const |
|
inlineinherited |
access to members
Definition at line 225 of file Material.h.
225 {
return (*this).zOaTr; }
◆ composition
◆ dEdX
float Trk::Material::dEdX |
|
inherited |
◆ L0
◆ m_alignedTV
◆ m_alignment
◆ m_binnedMaterial
◆ m_boundarySurfaces
◆ m_center
center position of the surface
Definition at line 77 of file Volume.h.
◆ m_colorCode
unsigned int Trk::TrackingVolume::m_colorCode |
|
privateinherited |
◆ m_confinedArbitraryLayers
const std::vector<Layer*>* Trk::TrackingVolume::m_confinedArbitraryLayers |
|
privateinherited |
◆ m_confinedDenseVolumes
◆ m_confinedDetachedVolumes
Additionally, Unordered subvolumes (we ownd them)
Definition at line 460 of file TrackingVolume.h.
◆ m_confinedLayers
◆ m_confinedVolumes
◆ m_geometrySignature
◆ m_geometryType
◆ m_layerAttemptsCalculator
◆ m_motherVolume
mother volume of this volume
boundary Surfaces
Definition at line 451 of file TrackingVolume.h.
◆ m_name
std::string Trk::TrackingVolume::m_name |
|
privateinherited |
◆ m_outsideGlueVolumes
◆ m_redoNavigation
bool Trk::TrackingVolume::m_redoNavigation |
|
privateinherited |
Navigation boolean.
If true navigation needs to be redone when entering this volume
Definition at line 482 of file TrackingVolume.h.
◆ m_sampleID
int Trk::AlignableTrackingVolume::m_sampleID |
|
private |
◆ m_transform
HepGeom::Transform3D.
Definition at line 76 of file Volume.h.
◆ m_volumeBounds
the volumeBounds
Definition at line 78 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
TrackingVolumeArray * m_confinedVolumes
Detached subvolumes.
Material()
Default Constructor needed for POOL.
#define CXXUTILS_TRAPPING_FP
void createBoundarySurfaces()
Create Boundary Surface.
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 const BinUtility * binUtility() const =0
Return the BinUtility.
void moveVolume(Amg::Transform3D &shift)
move Volume
LayerAttemptsCalculator * m_layerAttemptsCalculator
The Signature done by the GeometryBuilder.
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.
CxxUtils::CachedUniquePtr< Amg::Vector3D > m_center
center position of the surface
std::vector< SharedObject< BoundarySurface< TrackingVolume > > > & boundarySurfaces()
Method to return the BoundarySurfaces.
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...
const TrackingVolume * m_alignedTV
const std::vector< TrackingVolume * > * m_confinedDenseVolumes
virtual T * object(const Amg::Vector2D &lp) const =0
Returns the pointer to the templated class object from the BinnedArray, it returns 0 if not defined,...
ArraySpan< DetachedTrackingVolume const *const > confinedDetachedVolumes() const
Return detached subVolumes - not the ownership.
virtual void moveLayer(Amg::Transform3D &shift) override final
move the Layer
LayerArray * m_confinedLayers
Array of Volumes inside the Volume.
Amg::Transform3D * m_alignment
#define TRKDETDESCR_GEOMETRYSIGNATUREWEIGHT
const std::vector< Layer * > * m_confinedArbitraryLayers
< Additionally, Unordered Layers inside the Volume (we own them)
const LayerArray * confinedLayers() const
Return the subLayer array.
const SurfaceArray * surfaceArray() const
Return the entire SurfaceArray, returns nullptr if no SurfaceArray.
const std::vector< DetachedTrackingVolume * > * m_confinedDetachedVolumes
Additionally, Unordered subvolumes (we ownd them)
TrackingVolume * cloneTV(Amg::Transform3D &transform) const
clone at new position
virtual const Surface & surfaceRepresentation() const =0
Transforms the layer into a Surface representation for extrapolation.
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
defines how the Extrapolator propagates through this
Eigen::Affine3d Transform3D
virtual Volume * clone() const
Pseudo-constructor.
const BinnedMaterial * m_binnedMaterial
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
const Trk::Layer * materialLayer() const
return the material Layer
virtual void moveLayer(Amg::Transform3D &shift) override final
move the Layer
int value() const
layerIndex expressed in an integer
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.
virtual BinnedArraySpan< T *const > arrayObjects()=0
Return all objects of the Array non-const we can still modify the T.
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
Eigen::Matrix< double, 3, 1 > Vector3D
virtual const std::vector< const Trk::Surface * > * decomposeToSurfaces(const Amg::Transform3D &transform)=0
Method to decompose the Bounds into Surfaces, the Volume can turn them into BoundarySurfaces.
std::shared_ptr< T > SharedObject
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::vector< bool > boundsOrientation() const
This method returns bounds orientation.
std::unique_ptr< Amg::Transform3D > m_transform
HepGeom::Transform3D.
virtual void moveLayer(Amg::Transform3D &shift) override final
move the Layer
Class extension to return the object, a represenation & the result.
SharedObject< VolumeBounds > m_volumeBounds
the volumeBounds
virtual void moveLayer(Amg::Transform3D &shift) override final
move the Layer
std::vector< bool > boundsOrientation() const
This method returns bounds orientation.
CxxUtils::CachedUniquePtrT< GlueVolumesDescriptor > m_outsideGlueVolumes
provided the number of layer attempts
std::vector< SharedObject< BoundarySurface< TrackingVolume > > > m_boundarySurfaces
const Layer * associatedLayer(const Amg::Vector3D &gp) const
Return the associated Layer.
std::span< T > BinnedArraySpan
const LayerIndex & layerIndex() const
get the layerIndex