Analysis Software
Documentation for sPHENIX simulation software
|
TGeoITkModuleSplitter. More...
Classes | |
struct | Config |
Nested configuration struct. More... | |
Public Types | |
using | SplitRange = std::pair< double, double > |
Public Member Functions | |
TGeoITkModuleSplitter (const Config &cfg, std::unique_ptr< const Acts::Logger > logger=Acts::getDefaultLogger("TGeoITkModuleSplitter", Acts::Logging::INFO)) | |
~TGeoITkModuleSplitter () override=default | |
std::vector< std::shared_ptr < const Acts::TGeoDetectorElement > > | split (const Acts::GeometryContext &gctx, std::shared_ptr< const Acts::TGeoDetectorElement > detElement) const override |
If applicable, returns a split detector element. | |
Public Member Functions inherited from Acts::ITGeoDetectorElementSplitter | |
virtual | ~ITGeoDetectorElementSplitter ()=default |
virtual std::vector < std::shared_ptr< const Acts::TGeoDetectorElement > > | split (const GeometryContext &gctx, std::shared_ptr< const Acts::TGeoDetectorElement > tgde) const =0 |
Private Member Functions | |
void | initSplitCategories () |
std::vector< std::shared_ptr < const Acts::TGeoDetectorElement > > | splitBarrelModule (const Acts::GeometryContext &gctx, const std::shared_ptr< const Acts::TGeoDetectorElement > &detElement, unsigned int nSegments) const |
If applicable, returns a split detector element. | |
std::vector< std::shared_ptr < const Acts::TGeoDetectorElement > > | splitDiscModule (const Acts::GeometryContext &gctx, const std::shared_ptr< const Acts::TGeoDetectorElement > &detElement, const std::vector< SplitRange > &splitRanges) const |
If applicable, returns a split detector element. | |
const Acts::Logger & | logger () const |
Private access to the logger. | |
Private Attributes | |
Config | m_cfg |
Contains the splitting parameters, sorted by sensor type. | |
std::vector< std::tuple < std::regex, std::string, bool > > | m_splitCategories |
regular expressions to match sensors for barrel or disk module splits | |
std::unique_ptr< const Acts::Logger > | m_logger |
Logging instance. | |
Split Itk modules into submodules, depending on the sensor type
Definition at line 34 of file TGeoITkModuleSplitter.hpp.
View newest version in sPHENIX GitHub at line 34 of file TGeoITkModuleSplitter.hpp
using ActsExamples::TGeoITkModuleSplitter::SplitRange = std::pair<double, double> |
Definition at line 36 of file TGeoITkModuleSplitter.hpp.
View newest version in sPHENIX GitHub at line 36 of file TGeoITkModuleSplitter.hpp
ActsExamples::TGeoITkModuleSplitter::TGeoITkModuleSplitter | ( | const Config & | cfg, |
std::unique_ptr< const Acts::Logger > | logger = Acts::getDefaultLogger("TGeoITkModuleSplitter", Acts::Logging::INFO) |
||
) |
Constructor
cfg | the configuration struct |
logger | the logging object |
Definition at line 23 of file TGeoITkModuleSplitter.cpp.
View newest version in sPHENIX GitHub at line 23 of file TGeoITkModuleSplitter.cpp
References initSplitCategories().
|
overridedefault |
|
private |
Categorise module split patterns as barrel or disc module splits
Mark the split pattern as either barrel or disc module split depending on whether the split category is found in the barrel or disc map, and compile the regular expression.
Definition at line 30 of file TGeoITkModuleSplitter.cpp.
View newest version in sPHENIX GitHub at line 30 of file TGeoITkModuleSplitter.cpp
References ACTS_ERROR, m_cfg(), and std::tr1::make_tuple().
Referenced by TGeoITkModuleSplitter().
|
inlineprivate |
Private access to the logger.
Definition at line 117 of file TGeoITkModuleSplitter.hpp.
View newest version in sPHENIX GitHub at line 117 of file TGeoITkModuleSplitter.hpp
References m_logger.
|
inlineoverride |
If applicable, returns a split detector element.
Take a geometry context and TGeoElement and find the correct splitting method for the module type.
gctx | is a geometry context object |
detElement | is a TGeoDetectorElement that is eventually split |
Definition at line 54 of file TGeoITkModuleSplitter.cpp.
View newest version in sPHENIX GitHub at line 54 of file TGeoITkModuleSplitter.cpp
References ACTS_DEBUG, m_cfg(), splitBarrelModule(), and splitDiscModule().
|
inlineprivate |
If applicable, returns a split detector element.
Take a geometry context and TGeoElement in the Itk barrel region and split it into sub elements.
gctx | is a geometry context object |
detElement | is a TGeoDetectorElement that should be split |
nSegments | is the number of submodules |
Definition at line 87 of file TGeoITkModuleSplitter.cpp.
View newest version in sPHENIX GitHub at line 87 of file TGeoITkModuleSplitter.cpp
References ACTS_DEBUG, ACTS_WARNING, bounds, Acts::Surface::bounds(), fixGDML::element, Acts::RectangleBounds::eMaxX, Acts::RectangleBounds::eMaxY, Acts::RectangleBounds::eMinX, Acts::RectangleBounds::eMinY, Acts::SurfaceBounds::eRectangle, i, identifier, Acts::Surface::localToGlobal(), testing::internal::move(), step, writeMapConfig::surface, thickness, to_string(), Acts::Test::transform, Acts::Surface::transform(), Acts::SurfaceBounds::type(), physmon_ckf_tracking::u, and Acts::SurfaceBounds::values().
Referenced by split().
|
inlineprivate |
If applicable, returns a split detector element.
Take a geometry context and TGeoElement in the Itk disks and split it into sub elements.
gctx | is a geometry context object |
detElement | is a TGeoDetectorElement that should be split |
splitRanges | are the ranges in r for the submodules |
Definition at line 144 of file TGeoITkModuleSplitter.cpp.
View newest version in sPHENIX GitHub at line 144 of file TGeoITkModuleSplitter.cpp
References ACTS_DEBUG, ACTS_WARNING, bounds, Acts::Surface::bounds(), Acts::SurfaceBounds::eAnnulus, fixGDML::element, Acts::AnnulusBounds::eMaxR, Acts::AnnulusBounds::eMinR, Acts::AnnulusBounds::eSize, i, identifier, testing::internal::move(), out, writeMapConfig::surface, thickness, to_string(), Acts::Test::transform, Acts::Surface::transform(), Acts::SurfaceBounds::type(), Acts::SurfaceBounds::values(), and Acts::Test::values.
Referenced by split().
|
private |
Contains the splitting parameters, sorted by sensor type.
Definition at line 111 of file TGeoITkModuleSplitter.hpp.
View newest version in sPHENIX GitHub at line 111 of file TGeoITkModuleSplitter.hpp
|
private |
Logging instance.
Definition at line 120 of file TGeoITkModuleSplitter.hpp.
View newest version in sPHENIX GitHub at line 120 of file TGeoITkModuleSplitter.hpp
Referenced by logger().
|
private |
regular expressions to match sensors for barrel or disk module splits
Definition at line 114 of file TGeoITkModuleSplitter.hpp.
View newest version in sPHENIX GitHub at line 114 of file TGeoITkModuleSplitter.hpp