5#ifndef HGTD_GEOMODEL_HGTD_DETECTORFACTORY_H
6#define HGTD_GEOMODEL_HGTD_DETECTORFACTORY_H
12#include "GeoModelKernel/GeoFullPhysVol.h"
80 virtual void create(GeoPhysVol* world)
override;
94 GeoVPhysVol*
build(
const GeoLogVol* logicalEnvelope,
bool bPos);
101 std::string
formModuleName(
int layer,
int quadrant,
unsigned int maxrows,
int row,
int mod,
102 const ModulePosition& module,
double & myx,
double & myy,
double & myrot,
Scalar eta() const
pseudorapidity method
Scalar phi() const
phi method
defines an "iterator" over instances of a given type in StoreGateSvc
std::array< std::vector< ModulePosition >, 21 > PositionsInQuadrant
GeoLogVol * buildEndcapLogicalVolume(bool isPositiveSide)
virtual void create(GeoPhysVol *world) override
InDetDD::HGTD_ModuleDesign * createHgtdDesign(double thickness)
PositionsInQuadrant prepareQuadrantsFromRows(int layer, unsigned int maxRow)
int reorderRows(PositionsInQuadrant *quadrant)
HGTD_DetectorFactory(HGTD_DetectorFactory &right)
HGTD_GeoModelAthenaComps * m_athComps
void setPrintIdentifierDict(bool)
PositionsInQuadrant mirrorModulesInQuadrant(const PositionsInQuadrant &)
std::vector< ModulePosition > prepareModulePositionsInRowTwoRing(int row, bool back=false)
std::vector< ModulePosition > prepareModulePositionsInRowThreeRing(int row, int back=0)
std::map< std::string, GeoBoxVolParams > m_boxVolPars
HGTD_DetectorManager * m_detectorManager
GeoVPhysVol * build(const GeoLogVol *logicalEnvelope, bool bPos)
void initializeGeoParameters()
std::unique_ptr< const InDetDD::SiCommonItems > m_commonItems
StoredMaterialManager * m_materialMgr
virtual ~HGTD_DetectorFactory()
std::string formModuleName(int layer, int quadrant, unsigned int maxrows, int row, int mod, const ModulePosition &module, double &myx, double &myy, double &myrot, int &phi, int &eta)
HGTD_DetectorFactory & operator=(HGTD_DetectorFactory &right)
virtual const HGTD_DetectorManager * getDetectorManager() const override
std::map< std::string, GeoCylVolParams > m_cylVolPars
HGTD_DetectorFactory(HGTD_GeoModelAthenaComps *athenaComps)
void mirrorPositionsAroundYaxis(std::array< PositionsInQuadrant, 4 > &arr)
std::array< PositionsInQuadrant, 4 > prepareLayersFromQuadrants(unsigned int)
The Detector manager has methods to retrieve the Identifier helper and methods to retrieve the detect...
Class to hold various Athena components.
Class used to describe the design of a module (diode segmentation and readout scheme)
Helper class to concentrate common items, such as the pointer to the IdHelper, the lorentzAngle tool ...
This class holds one or more material managers and makes them storeable, under StoreGate.
double rowBacksideOuterShift
double rowBacksideInnerShift