Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Acts::LayerCreator Class Reference

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

+ Collaboration diagram for Acts::LayerCreator:

Classes

struct  Config
 

Public Member Functions

 LayerCreator (const Config &lcConfig, std::unique_ptr< const Logger > logger=getDefaultLogger("LayerCreator", Logging::INFO))
 
 ~LayerCreator ()=default
 Destructor.
 
MutableLayerPtr cylinderLayer (const GeometryContext &gctx, std::vector< std::shared_ptr< const Surface >> surfaces, size_t binsPhi, size_t binsZ, std::optional< ProtoLayer > _protoLayer=std::nullopt, const Transform3 &transform=Transform3::Identity(), std::unique_ptr< ApproachDescriptor > ad=nullptr) const
 
MutableLayerPtr cylinderLayer (const GeometryContext &gctx, std::vector< std::shared_ptr< const Surface >> surfaces, BinningType bTypePhi, BinningType bTypeZ, std::optional< ProtoLayer > _protoLayer=std::nullopt, const Transform3 &transform=Transform3::Identity(), std::unique_ptr< ApproachDescriptor > ad=nullptr) const
 
MutableLayerPtr discLayer (const GeometryContext &gctx, std::vector< std::shared_ptr< const Surface >> surfaces, size_t binsR, size_t binsPhi, std::optional< ProtoLayer > _protoLayer=std::nullopt, const Transform3 &transform=Transform3::Identity(), std::unique_ptr< ApproachDescriptor > ad=nullptr) const
 
MutableLayerPtr discLayer (const GeometryContext &gctx, std::vector< std::shared_ptr< const Surface >> surfaces, BinningType bTypeR, BinningType bTypePhi, std::optional< ProtoLayer > _protoLayer=std::nullopt, const Transform3 &transform=Transform3::Identity(), std::unique_ptr< ApproachDescriptor > ad=nullptr) const
 
MutableLayerPtr planeLayer (const GeometryContext &gctx, std::vector< std::shared_ptr< const Surface >> surfaces, size_t bins1, size_t bins2, BinningValue bValue, std::optional< ProtoLayer > _protoLayer=std::nullopt, const Transform3 &transform=Transform3::Identity(), std::unique_ptr< ApproachDescriptor > ad=nullptr) const
 
void setConfiguration (const Config &lcConfig)
 
Config getConfiguration () const
 Access th configuration object.
 
void setLogger (std::unique_ptr< const Logger > newLogger)
 
void associateSurfacesToLayer (Layer &layer) const
 associate surfaces contained by this layer to this layer
 

Private Member Functions

bool checkBinning (const GeometryContext &gctx, const SurfaceArray &sArray) const
 
const Loggerlogger () const
 Private access method to the logger.
 

Private Attributes

Config m_cfg
 configuration object
 
std::unique_ptr< const Loggerm_logger
 logging instance
 

Detailed Description

The LayerCreator is able to build cylinder disc layers or plane layers from detector elements

Definition at line 40 of file LayerCreator.hpp.

View newest version in sPHENIX GitHub at line 40 of file LayerCreator.hpp

Constructor & Destructor Documentation

Acts::LayerCreator::LayerCreator ( const Config lcConfig,
std::unique_ptr< const Logger logger = getDefaultLogger("LayerCreator", Logging::INFO) 
)

Constructor

Parameters
lcConfigis the configuration object
loggerlogging instance

Definition at line 38 of file LayerCreator.cpp.

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

Acts::LayerCreator::~LayerCreator ( )
default

Destructor.

Member Function Documentation

void Acts::LayerCreator::associateSurfacesToLayer ( Layer layer) const

associate surfaces contained by this layer to this layer

Definition at line 409 of file LayerCreator.cpp.

View newest version in sPHENIX GitHub at line 409 of file LayerCreator.cpp

References Acts::Surface::associateLayer(), writeMapConfig::surface, Acts::Layer::surfaceArray(), and Acts::SurfaceArray::surfaces().

+ Here is the call graph for this function:

bool Acts::LayerCreator::checkBinning ( const GeometryContext gctx,
const SurfaceArray sArray 
) const
private

Validates that all the sensitive surfaces are actually accessible through the binning

Parameters
gctxGeometry context to work with
sArraySurfaceArray instance to check

Definition at line 420 of file LayerCreator.cpp.

View newest version in sPHENIX GitHub at line 420 of file LayerCreator.cpp

References ACTS_ERROR, Acts::ACTS_VERBOSE(), Acts::SurfaceArray::at(), KFPMath::b, Acts::binR, Acts::SurfaceArray::isValidBin(), Acts::VectorHelpers::perp(), ActsTests::PropagationDatasets::phi, size, Acts::SurfaceArray::size(), and Acts::SurfaceArray::surfaces().

+ Here is the call graph for this function:

Acts::MutableLayerPtr Acts::LayerCreator::cylinderLayer ( const GeometryContext gctx,
std::vector< std::shared_ptr< const Surface >>  surfaces,
size_t  binsPhi,
size_t  binsZ,
std::optional< ProtoLayer _protoLayer = std::nullopt,
const Transform3 transform = Transform3::Identity(),
std::unique_ptr< ApproachDescriptor ad = nullptr 
) const

returning a cylindrical layer

Parameters
gctxis the geometry context with which the geometry is built
surfacesis the vector of pointers to sensitive surfaces represented by this layer
Precondition
the pointers to the sensitive surfaces in the surfaces vectors all need to be valid, since no check is performed
Parameters
binsPhiis number of bins the sensitive surfaces are ordered in phi
binsZis number of bins the sensitive surfaces are ordered in Z
_protoLayer(optional) proto layer specifying the dimensions and envelopes
transformis the (optional) transform of the layer
adpossibility to hand over a specific ApproachDescriptor, which is needed for material mapping. Otherwise the default ApproachDescriptor will be taken used for this layer
Returns
shared pointer to a newly created layer

Definition at line 53 of file LayerCreator.cpp.

View newest version in sPHENIX GitHub at line 53 of file LayerCreator.cpp

References Acts::active, ACTS_ERROR, Acts::ACTS_VERBOSE(), Acts::binPhi, Acts::binR, Acts::binZ, Acts::CylinderLayer::create(), Acts::ProtoLayer::envelope, m_cfg(), Acts::ProtoLayer::max(), Acts::ProtoLayer::medium(), Acts::ProtoLayer::min(), testing::internal::move(), Acts::ProtoLayer::range(), and physmon_ckf_tracking::u.

+ Here is the call graph for this function:

Acts::MutableLayerPtr Acts::LayerCreator::cylinderLayer ( const GeometryContext gctx,
std::vector< std::shared_ptr< const Surface >>  surfaces,
BinningType  bTypePhi,
BinningType  bTypeZ,
std::optional< ProtoLayer _protoLayer = std::nullopt,
const Transform3 transform = Transform3::Identity(),
std::unique_ptr< ApproachDescriptor ad = nullptr 
) const

returning a cylindrical layer

Parameters
gctxis the geometry context with which the geometry is built
surfacesis the vector of pointers to sensitive surfaces represented by this layer
Precondition
the pointers to the sensitive surfaces in the surfaces vectors all need to be valid, since no check is performed
Parameters
bTypePhibinning type in phi (equidistant/arbitrary)
bTypeZbinning type in z (equidistant/arbitrary)
_protoLayer(optional) proto layer specifying the dimensions and envelopes
transformis the (optional) transform of the layer
adpossibility to hand over a specific ApproachDescriptor, which is needed for material mapping. Otherwise the default ApproachDescriptor will be taken used for this layer
Returns
shared pointer to a newly created layer

Definition at line 125 of file LayerCreator.cpp.

View newest version in sPHENIX GitHub at line 125 of file LayerCreator.cpp

References Acts::active, ACTS_ERROR, Acts::ACTS_VERBOSE(), Acts::binPhi, Acts::binR, Acts::binZ, Acts::CylinderLayer::create(), Acts::ProtoLayer::envelope, Acts::equidistant, m_cfg(), Acts::ProtoLayer::max(), Acts::ProtoLayer::medium(), Acts::ProtoLayer::min(), testing::internal::move(), Acts::ProtoLayer::range(), and physmon_ckf_tracking::u.

+ Here is the call graph for this function:

Acts::MutableLayerPtr Acts::LayerCreator::discLayer ( const GeometryContext gctx,
std::vector< std::shared_ptr< const Surface >>  surfaces,
size_t  binsR,
size_t  binsPhi,
std::optional< ProtoLayer _protoLayer = std::nullopt,
const Transform3 transform = Transform3::Identity(),
std::unique_ptr< ApproachDescriptor ad = nullptr 
) const

returning a disc layer

Parameters
gctxis the geometry context with which the geometry is built
surfacesis the vector of pointers to sensitive surfaces represented by this layer
Precondition
the pointers to the sensitive surfaces in the surfaces vectors all need to be valid, since no check is performed
Parameters
binsRis number of bins the sensitive surfaces are ordered in R
binsPhiis number of bins the sensitive surfaces are ordered in Phi
transformis the (optional) transform of the layer
_protoLayer(optional) proto layer specifying the dimensions and envelopes
adpossibility to hand over a specific ApproachDescriptor, which is needed for material mapping. Otherwise the default ApproachDescriptor will be taken used for this layer
Returns
shared pointer to a newly created layer

Definition at line 198 of file LayerCreator.cpp.

View newest version in sPHENIX GitHub at line 198 of file LayerCreator.cpp

References Acts::active, ACTS_ERROR, Acts::ACTS_VERBOSE(), Acts::binPhi, Acts::binR, Acts::binZ, Acts::DiscLayer::create(), Acts::ProtoLayer::envelope, m_cfg(), Acts::ProtoLayer::max(), Acts::ProtoLayer::medium(), Acts::ProtoLayer::min(), testing::internal::move(), Acts::ProtoLayer::range(), and physmon_ckf_tracking::u.

+ Here is the call graph for this function:

Acts::MutableLayerPtr Acts::LayerCreator::discLayer ( const GeometryContext gctx,
std::vector< std::shared_ptr< const Surface >>  surfaces,
BinningType  bTypeR,
BinningType  bTypePhi,
std::optional< ProtoLayer _protoLayer = std::nullopt,
const Transform3 transform = Transform3::Identity(),
std::unique_ptr< ApproachDescriptor ad = nullptr 
) const

returning a disc layer

Parameters
gctxis the geometry context with which the geometry is built
surfacesis the vector of pointers to sensitive surfaces represented by this layer
Precondition
the pointers to the sensitive surfaces in the surfaces vectors all need to be valid, since no check is performed
Parameters
bTypeRbinning type in r (equidistant/arbitrary)
bTypePhibinning type in phi (equidistant/arbitrary)
transformis the (optional) transform of the layer
_protoLayer(optional) proto layer specifying the dimensions and envelopes
adpossibility to hand over a specific ApproachDescriptor, which is needed for material mapping. Otherwise the default ApproachDescriptor will be taken used for this layer
Returns
shared pointer to a newly created layer

Definition at line 262 of file LayerCreator.cpp.

View newest version in sPHENIX GitHub at line 262 of file LayerCreator.cpp

References Acts::active, ACTS_ERROR, Acts::ACTS_VERBOSE(), Acts::binPhi, Acts::binR, Acts::binZ, Acts::DiscLayer::create(), Acts::ProtoLayer::envelope, m_cfg(), Acts::ProtoLayer::max(), Acts::ProtoLayer::medium(), Acts::ProtoLayer::min(), testing::internal::move(), Acts::ProtoLayer::range(), and physmon_ckf_tracking::u.

+ Here is the call graph for this function:

LayerCreator::Config Acts::LayerCreator::getConfiguration ( ) const
inline

Access th configuration object.

Definition at line 228 of file LayerCreator.hpp.

View newest version in sPHENIX GitHub at line 228 of file LayerCreator.hpp

References m_cfg.

const Logger& Acts::LayerCreator::logger ( ) const
inlineprivate

Private access method to the logger.

Definition at line 222 of file LayerCreator.hpp.

View newest version in sPHENIX GitHub at line 222 of file LayerCreator.hpp

References m_logger.

Acts::MutableLayerPtr Acts::LayerCreator::planeLayer ( const GeometryContext gctx,
std::vector< std::shared_ptr< const Surface >>  surfaces,
size_t  bins1,
size_t  bins2,
BinningValue  bValue,
std::optional< ProtoLayer _protoLayer = std::nullopt,
const Transform3 transform = Transform3::Identity(),
std::unique_ptr< ApproachDescriptor ad = nullptr 
) const

returning a plane layer

Parameters
gctxis the geometry context with which the geometry is built
[in]surfacesis the vector of pointers to sensitive surfaces represented by this layer
Precondition
the pointers to the sensitive surfaces in the surfaces vectors all need to be valid, since no check is performed
Parameters
[in]bins1is the number of bins in the orthogonal direction to bValue
[in]bins2is the number of bins in the orthogonal direction to bValue
[in]bValueDirection of the aligned surfaces
[in]transformis the (optional) transform of the layer
[in]_protoLayer(optional) proto layer specifying the dimensions and envelopes
[in]adpossibility to hand over a specific ApproachDescriptor, which is needed for material mapping. Otherwise the default ApproachDescriptor will be taken used for this layer
Returns
shared pointer to a newly created layer

Definition at line 323 of file LayerCreator.cpp.

View newest version in sPHENIX GitHub at line 323 of file LayerCreator.cpp

References Acts::active, ACTS_ERROR, Acts::ACTS_VERBOSE(), Acts::binX, Acts::binY, Acts::binZ, Acts::PlaneLayer::create(), Acts::ProtoLayer::envelope, m_cfg(), Acts::ProtoLayer::max(), Acts::ProtoLayer::min(), testing::internal::move(), and physmon_ckf_tracking::u.

+ Here is the call graph for this function:

void Acts::LayerCreator::setConfiguration ( const Config lcConfig)

Set the configuration object

Parameters
lcConfigis the configuration struct

Definition at line 42 of file LayerCreator.cpp.

View newest version in sPHENIX GitHub at line 42 of file LayerCreator.cpp

References m_cfg().

+ Here is the call graph for this function:

void Acts::LayerCreator::setLogger ( std::unique_ptr< const Logger newLogger)

set logging instance

Parameters
newLoggerthe logger instance

Definition at line 49 of file LayerCreator.cpp.

View newest version in sPHENIX GitHub at line 49 of file LayerCreator.cpp

References m_logger, and testing::internal::move().

+ Here is the call graph for this function:

Member Data Documentation

Config Acts::LayerCreator::m_cfg
private

configuration object

Definition at line 219 of file LayerCreator.hpp.

View newest version in sPHENIX GitHub at line 219 of file LayerCreator.hpp

Referenced by getConfiguration().

std::unique_ptr<const Logger> Acts::LayerCreator::m_logger
private

logging instance

Definition at line 225 of file LayerCreator.hpp.

View newest version in sPHENIX GitHub at line 225 of file LayerCreator.hpp

Referenced by logger().


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