ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Acts::ProtoLayer Struct Reference

#include <acts/blob/master/Core/include/Acts/Geometry/ProtoLayer.hpp>

Public Member Functions

 ProtoLayer (const GeometryContext &gctx, const std::vector< const Surface * > &surfaces)
 
 ProtoLayer (const GeometryContext &gctx, const std::vector< std::shared_ptr< const Surface >> &surfaces)
 
 ProtoLayer ()=default
 
std::ostream & toStream (std::ostream &sl) const
 
double radialDistance (const Vector3D &pos1, const Vector3D &pos2) const
 

Public Attributes

double maxX
 
double minX
 
double maxY
 
double minY
 
double maxZ
 
double minZ
 
double maxR
 
double minR
 
double maxPhi
 
double minPhi
 
std::pair< double, double > envX = {0, 0}
 
std::pair< double, double > envY = {0, 0}
 
std::pair< double, double > envZ = {0, 0}
 
std::pair< double, double > envR = {0, 0}
 
std::pair< double, double > envPhi = {0, 0}
 

Private Member Functions

void measure (const GeometryContext &gctx, const std::vector< const Surface * > &surfaces)
 

Detailed Description

Encapsulates min/max boundaries that will be turned into a layer. The struct allows this information to be obtained in a consistent way, or be caller provided.

Definition at line 24 of file ProtoLayer.hpp.

View newest version in sPHENIX GitHub at line 24 of file ProtoLayer.hpp

Constructor & Destructor Documentation

Acts::ProtoLayer::ProtoLayer ( const GeometryContext gctx,
const std::vector< const Surface * > &  surfaces 
)

Constructor

Loops over a provided vector of surface and calculates the various min/max values in one go. Also takes into account the thickness of an associated DetectorElement, if it exists.

Parameters
gctxThe current geometry context object, e.g. alignment
surfacesThe vector of surfaces to consider

Definition at line 24 of file ProtoLayer.cpp.

View newest version in sPHENIX GitHub at line 24 of file ProtoLayer.cpp

References measure().

+ Here is the call graph for this function:

Acts::ProtoLayer::ProtoLayer ( const GeometryContext gctx,
const std::vector< std::shared_ptr< const Surface >> &  surfaces 
)

Constructor

Loops over a provided vector of surface and calculates the various min/max values in one go. Also takes into account the thickness of an associated DetectorElement, if it exists.

Parameters
gctxThe current geometry context object, e.g. alignment
surfacesThe vector of surfaces to consider

Definition at line 29 of file ProtoLayer.cpp.

View newest version in sPHENIX GitHub at line 29 of file ProtoLayer.cpp

References measure(), and Acts::unpack_shared_vector().

+ Here is the call graph for this function:

Acts::ProtoLayer::ProtoLayer ( )
default

Member Function Documentation

void Acts::ProtoLayer::measure ( const GeometryContext gctx,
const std::vector< const Surface * > &  surfaces 
)
private

Helper method which performs the actual min/max calculation

Parameters
gctxThe current geometry context object, e.g. alignment
surfacesThe surfaces to build this protolayer out of

Definition at line 72 of file ProtoLayer.cpp.

View newest version in sPHENIX GitHub at line 72 of file ProtoLayer.cpp

References Acts::CylinderSurface::bounds(), Acts::Surface::center(), Acts::CylinderBounds::eAveragePhi, Acts::CylinderBounds::eHalfLengthZ, Acts::CylinderBounds::eHalfPhiSector, envPhi, envR, envX, envY, envZ, Acts::CylinderBounds::eR, Acts::Polyhedron::faces, Acts::CylinderBounds::get(), max, maxPhi, maxR, maxX, maxY, maxZ, min, minPhi, minR, minX, minY, minZ, Acts::VectorHelpers::perp(), phi, Acts::AnnulusBounds::phiMax(), Acts::AnnulusBounds::phiMin(), Acts::CylinderSurface::polyhedronRepresentation(), r, radialDistance(), Acts::AnnulusBounds::rMax(), Acts::AnnulusBounds::rMin(), thickness, Acts::DetectorElementBase::thickness(), Acts::Surface::transform(), Acts::UnitConstants::u, Acts::PlanarBounds::vertices(), Acts::Polyhedron::vertices, and z.

Referenced by ProtoLayer().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

double Acts::ProtoLayer::radialDistance ( const Vector3D pos1,
const Vector3D pos2 
) const

Calculates the closest radial distance of a line

Parameters
pos1is the first position on the line
pos2is the second position on the line
Returns
is the closest distance

Definition at line 35 of file ProtoLayer.cpp.

View newest version in sPHENIX GitHub at line 35 of file ProtoLayer.cpp

References e, f, L, max, min, and norm.

Referenced by Acts::Test::Layers::BOOST_AUTO_TEST_CASE(), and measure().

+ Here is the caller graph for this function:

std::ostream & Acts::ProtoLayer::toStream ( std::ostream &  sl) const

Definition at line 60 of file ProtoLayer.cpp.

View newest version in sPHENIX GitHub at line 60 of file ProtoLayer.cpp

References envPhi, envR, envZ, maxPhi, maxR, maxZ, minPhi, minR, and minZ.

Member Data Documentation

std::pair<double, double> Acts::ProtoLayer::envPhi = {0, 0}

Definition at line 45 of file ProtoLayer.hpp.

View newest version in sPHENIX GitHub at line 45 of file ProtoLayer.hpp

Referenced by measure(), and toStream().

std::pair<double, double> Acts::ProtoLayer::envX = {0, 0}

Definition at line 41 of file ProtoLayer.hpp.

View newest version in sPHENIX GitHub at line 41 of file ProtoLayer.hpp

Referenced by measure().

std::pair<double, double> Acts::ProtoLayer::envY = {0, 0}

Definition at line 42 of file ProtoLayer.hpp.

View newest version in sPHENIX GitHub at line 42 of file ProtoLayer.hpp

Referenced by measure().

double Acts::ProtoLayer::maxPhi

Definition at line 38 of file ProtoLayer.hpp.

View newest version in sPHENIX GitHub at line 38 of file ProtoLayer.hpp

Referenced by Acts::SurfaceArrayCreator::createEquidistantAxis(), Acts::LayerCreator::cylinderLayer(), Acts::LayerCreator::discLayer(), measure(), and toStream().

double Acts::ProtoLayer::maxX

Definition at line 26 of file ProtoLayer.hpp.

View newest version in sPHENIX GitHub at line 26 of file ProtoLayer.hpp

Referenced by Acts::SurfaceArrayCreator::createEquidistantAxis(), measure(), and Acts::LayerCreator::planeLayer().

double Acts::ProtoLayer::maxY

Definition at line 29 of file ProtoLayer.hpp.

View newest version in sPHENIX GitHub at line 29 of file ProtoLayer.hpp

Referenced by Acts::SurfaceArrayCreator::createEquidistantAxis(), measure(), and Acts::LayerCreator::planeLayer().

double Acts::ProtoLayer::minPhi

Definition at line 39 of file ProtoLayer.hpp.

View newest version in sPHENIX GitHub at line 39 of file ProtoLayer.hpp

Referenced by Acts::SurfaceArrayCreator::createEquidistantAxis(), Acts::LayerCreator::cylinderLayer(), Acts::LayerCreator::discLayer(), measure(), and toStream().

double Acts::ProtoLayer::minX

Definition at line 27 of file ProtoLayer.hpp.

View newest version in sPHENIX GitHub at line 27 of file ProtoLayer.hpp

Referenced by Acts::SurfaceArrayCreator::createEquidistantAxis(), measure(), and Acts::LayerCreator::planeLayer().

double Acts::ProtoLayer::minY

Definition at line 30 of file ProtoLayer.hpp.

View newest version in sPHENIX GitHub at line 30 of file ProtoLayer.hpp

Referenced by Acts::SurfaceArrayCreator::createEquidistantAxis(), measure(), and Acts::LayerCreator::planeLayer().


The documentation for this struct was generated from the following files: