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

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

+ Collaboration diagram for Acts::ProtoLayer:

Public Types

using Range = std::pair< double, double >
 The envelope parameters.
 

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
 
double min (BinningValue bval, bool addenv=true) const
 
double max (BinningValue bval, bool addenv=true) const
 
double medium (BinningValue bval, bool addenv=true) const
 
double range (BinningValue bval, bool addenv=true) const
 
std::ostream & toStream (std::ostream &sl) const
 
const std::vector< const
Surface * > & 
surfaces () const
 Give access to the surfaces used/assigned to the ProtoLayer.
 
void add (const GeometryContext &gctx, const Surface &surface)
 

Public Attributes

Extent extent
 The extent of the ProtoLayer.
 
std::vector< Rangeenvelope {(int)binValues, {0., 0.}}
 

Private Member Functions

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

Private Attributes

std::vector< const Surface * > m_surfaces = {}
 Store the list of surfaces used for this proto layer.
 

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 26 of file ProtoLayer.hpp.

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

Member Typedef Documentation

using Acts::ProtoLayer::Range = std::pair<double, double>

The envelope parameters.

Definition at line 32 of file ProtoLayer.hpp.

View newest version in sPHENIX GitHub at line 32 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 25 of file ProtoLayer.cpp.

View newest version in sPHENIX GitHub at line 25 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 31 of file ProtoLayer.cpp.

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

References m_surfaces, and measure().

+ Here is the call graph for this function:

Acts::ProtoLayer::ProtoLayer ( )
default

Member Function Documentation

void Acts::ProtoLayer::add ( const GeometryContext gctx,
const Surface surface 
)

Add a surface, this will also increase the extent

Parameters
gctxThe current geometry context object, e.g. alignment
surfaceThe surface which is added to the ProtoLayer

Definition at line 88 of file ProtoLayer.cpp.

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

References m_surfaces, and measure().

+ Here is the call graph for this function:

double Acts::ProtoLayer::max ( BinningValue  bval,
bool  addenv = true 
) const
Parameters
bvalThe accessed binning value
addenvThe steering if enevlope is added or not

Definition at line 45 of file ProtoLayer.cpp.

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

References envelope, extent, and Acts::Extent::max().

Referenced by Acts::DD4hepLayerBuilder::centralLayers(), Acts::SurfaceArrayCreator::createEquidistantAxis(), Acts::SurfaceArrayCreator::createVariableAxis(), Acts::LayerCreator::cylinderLayer(), Acts::LayerCreator::discLayer(), Acts::DD4hepLayerBuilder::endcapLayers(), medium(), Acts::LayerCreator::planeLayer(), and range().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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 66 of file ProtoLayer.cpp.

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

References Acts::Extent::extend(), extent, thickness, and Acts::DetectorElementBase::thickness().

Referenced by add(), and ProtoLayer().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

double Acts::ProtoLayer::medium ( BinningValue  bval,
bool  addenv = true 
) const
Parameters
bvalThe accessed binning value
addenvThe steering if enevlope is added or not

Definition at line 52 of file ProtoLayer.cpp.

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

References max(), and min().

Referenced by Acts::TGeoLayerBuilder::buildLayers(), Acts::LayerCreator::cylinderLayer(), Acts::LayerCreator::discLayer(), Acts::SurfaceArrayCreator::surfaceArrayOnCylinder(), and Acts::SurfaceArrayCreator::surfaceArrayOnDisc().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

double Acts::ProtoLayer::min ( BinningValue  bval,
bool  addenv = true 
) const

Get the parameters : min

Parameters
bvalThe accessed binning value
addenvThe steering if enevlope is added or not

Definition at line 38 of file ProtoLayer.cpp.

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

References envelope, extent, and Acts::Extent::min().

Referenced by Acts::DD4hepLayerBuilder::centralLayers(), Acts::SurfaceArrayCreator::createEquidistantAxis(), Acts::SurfaceArrayCreator::createVariableAxis(), Acts::LayerCreator::cylinderLayer(), Acts::LayerCreator::discLayer(), Acts::DD4hepLayerBuilder::endcapLayers(), medium(), Acts::LayerCreator::planeLayer(), and range().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

double Acts::ProtoLayer::range ( BinningValue  bval,
bool  addenv = true 
) const
Parameters
bvalThe accessed binning value
addenvThe steering if enevlope is added or not

Definition at line 56 of file ProtoLayer.cpp.

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

References kdfinder::abs(), max(), and min().

Referenced by Acts::LayerCreator::cylinderLayer(), and Acts::LayerCreator::discLayer().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

const std::vector< const Surface * > & Acts::ProtoLayer::surfaces ( ) const
inline

Give access to the surfaces used/assigned to the ProtoLayer.

Definition at line 103 of file ProtoLayer.hpp.

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

References m_surfaces.

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

Output to ostream

Parameters
slthe input ostream

Definition at line 60 of file ProtoLayer.cpp.

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

References extent, and Acts::Extent::toStream().

+ Here is the call graph for this function:

Member Data Documentation

Extent Acts::ProtoLayer::extent

The extent of the ProtoLayer.

Definition at line 29 of file ProtoLayer.hpp.

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

Referenced by Acts::Test::BOOST_FIXTURE_TEST_CASE(), Acts::DD4hepLayerBuilder::centralLayers(), Acts::DD4hepLayerBuilder::endcapLayers(), max(), measure(), min(), and toStream().

std::vector<const Surface*> Acts::ProtoLayer::m_surfaces = {}
private

Store the list of surfaces used for this proto layer.

Definition at line 100 of file ProtoLayer.hpp.

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

Referenced by add(), ProtoLayer(), and surfaces().


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