7#include "Identifier/Identifier.h"
9#include "GeoModelKernel/GeoDefinitions.h"
10#include "GaudiKernel/SystemOfUnits.h"
14#include "GeoModelKernel/GeoVPhysVol.h"
39#ifndef GEOVPIXELFACTORY_H
40#define GEOVPIXELFACTORY_H
64#ifndef GEOPIXELBARREL_H
65#define GEOPIXELBARREL_H
72 virtual GeoVPhysVol*
Build()
override;
76#ifndef GEOPIXELCABLE_H
77#define GEOPIXELCABLE_H
86 virtual GeoVPhysVol*
Build()
override;
100#define GEOPIXELCHIP_H
107 virtual GeoVPhysVol*
Build()
override;
112#ifndef GEOPIXELDISK_H
113#define GEOPIXELDISK_H
123 virtual GeoVPhysVol*
Build()
override;
134#ifndef GEOPIXELDISKSUPPORTS_H
135#define GEOPIXELDISKSUPPORTS_H
142 virtual GeoVPhysVol*
Build()
override;
155#ifndef GEOPIXELECCABLE_H
156#define GEOPIXELECCABLE_H
165 virtual GeoVPhysVol*
Build()
override;
173#ifndef GEOPIXELENDCAP_H
174#define GEOPIXELENDCAP_H
180 virtual GeoVPhysVol*
Build()
override;
185#ifndef GEOPIXELENVELOPE_H
186#define GEOPIXELENVELOPE_H
192 virtual GeoVPhysVol*
Build()
override;
197#ifndef GEOPIXELHYBRID_H
198#define GEOPIXELHYBRID_H
204 virtual GeoVPhysVol*
Build()
override;
209#ifndef GEOPIXELLADDER_H
210#define GEOPIXELLADDER_H
222 virtual GeoVPhysVol*
Build()
override;
231#ifndef GEOPIXELLADDERSTRUCT_H
232#define GEOPIXELLADDERSTRUCT_H
239 virtual GeoVPhysVol*
Build()
override;
244#ifndef GEOPIXELLAYER_H
245#define GEOPIXELLAYER_h
251 virtual GeoVPhysVol*
Build()
override;
256#ifndef GEOPIXELMODULE_H
257#define GEOPIXELMODULE_H
269 virtual GeoVPhysVol*
Build()
override;
282#ifndef GEOPIXELSERVICES_H
283#define GEOPIXELSERVICES_H
290 virtual GeoVPhysVol*
Build()
override;
306#ifndef GEOPIXELSICRYSTAL_H
307#define GEOPIXELSICRYSTAL_H
316 virtual GeoVPhysVol*
Build()
override;
330#ifndef GEOPIXELSUBDISK_H
331#define GEOPIXELSUBDISK_H
343 virtual GeoVPhysVol*
Build()
override;
354#ifndef GEOPIXELTUBECABLES_H
355#define GEOPIXELTUBECABLES_H
365 virtual GeoVPhysVol*
Build()
override;
374#ifndef PixelGeometryManager_H
375#define PixelGeometryManager_H
609#ifndef OraclePixelGeoManager_H
610#define OraclePixelGeoManager_H
816 virtual double*
PixelServiceR(std::string_view,
int )
override;
817 virtual double*
PixelServiceZ(std::string_view,
int )
override;
828 inline virtual double PixelRMin()
override;
829 inline virtual double PixelRMax()
override;
899 inline virtual double DesignPitchZ(
bool isBLayer)
override;
909 virtual double Voltage(
bool isBLayer)
override;
910 virtual double Temperature(
bool isBLayer)
override;
929 return (*
m_atls)[0]->getDouble(
"RMAX")*Gaudi::Units::cm;
934 return (*
m_atls)[0]->getDouble(
"RMIN")*Gaudi::Units::cm;
938 return (*
m_atls)[0]->getDouble(
"ZMAX")*Gaudi::Units::cm;
948 {
return static_cast<int>(((*m_PixelBarrelGeneral)[0]->getDouble(
"VERSION") -
PixelBarrelMajorVersion())*10 + 0.5);}
951 {
return static_cast<int>(((*m_PixelEndcapGeneral)[0]->getDouble(
"VERSION") -
PixelEndcapMajorVersion())*10 + 0.5);}
972 return (*
m_PixelStave)[0]->getDouble(
"SUPPORTHLENGTH")*Gaudi::Units::cm;
977 return (*
m_PixelStave)[0]->getDouble(
"SUPPORTWIDTH")*Gaudi::Units::cm;
1001 return (*
m_PixelStave)[0]->getDouble(
"MODULETILT")*Gaudi::Units::deg;
1006 return (*
m_PixelStave)[0]->getDouble(
"CENTRMODULESHIFT")*Gaudi::Units::cm;
1011 return (*
m_PixelStave)[0]->getDouble(
"MODULEDZ")*Gaudi::Units::cm*im;
1017 if(im == 0)
return 1.;
1024 if(im < 6)
return 1.;
1025 if(im > 6)
return -1.;
1032 return (*
m_PixelStave)[0]->getDouble(
"CABLEWIDTH")*Gaudi::Units::cm;
1036 return (*
m_PixelStave)[0]->getDouble(
"CABLETHICK")*Gaudi::Units::cm;
1040 return (*
m_PixelStave)[0]->getDouble(
"SUPPORTHLENGTH")*Gaudi::Units::cm;
1044 return (*
m_PixelStave)[0]->getDouble(
"CABLEZMIN")*Gaudi::Units::cm;
1048 return (*
m_PixelStave)[0]->getDouble(
"MODULEDZ")*Gaudi::Units::cm;
1097 return (*
m_pxbi)[0]->getDouble(
"DYACTIVE")*Gaudi::Units::cm;
1100 return (*
m_pxbi)[0]->getDouble(
"DZELEB")*Gaudi::Units::cm;
1104 if(isBLayer)
return (*
m_pxbd)[0]->getDouble(
"PITCHRP")*Gaudi::Units::cm;
1105 else return (*
m_pxbd)[1]->getDouble(
"PITCHRP")*Gaudi::Units::cm;
1112 pitchZ = 300 * Gaudi::Units::micrometer;
1114 pitchZ = (*m_pxbd)[0]->getDouble(
"PITCHZ") * Gaudi::Units::cm;
1117 pitchZ = (*m_pxbd)[1]->getDouble(
"PITCHZ") * Gaudi::Units::cm;
1123 return (*
m_pdch)[0]->getDouble(
"GAPRP")*Gaudi::Units::cm;
1127 return (*
m_pdch)[0]->getDouble(
"GAPZ")*Gaudi::Units::cm;
1139 return (*
m_pdch)[0]->getInt(
"NZCHIP");
Scalar eta() const
pseudorapidity method
Scalar phi() const
phi method
Definition of the abstract IRDBAccessSvc interface.
std::shared_ptr< IRDBRecordset > IRDBRecordset_ptr
Definition of the abstract IRDBRecord interface.
Definition of the abstract IRDBRecordset interface.
AthMessaging(IMessageSvc *msgSvc, const std::string &name)
Constructor.
Dedicated detector manager extending the functionality of the SiDetectorManager with dedicated pixel ...
Helper class to concentrate common items, such as the pointer to the IdHelper, the lorentzAngle tool ...
Base class for the detector design classes for Pixel and SCT.
virtual GeoVPhysVol * Build() override
GeoVPixelFactory(InDetDD::PixelDetectorManager *ddmgr, PixelGeometryManager *mgr)
void SetModuleNumber(int moduleNumber)
virtual GeoVPhysVol * Build() override
GeoPixelCable(InDetDD::PixelDetectorManager *ddmgr, PixelGeometryManager *mgr)
GeoVPixelFactory(InDetDD::PixelDetectorManager *ddmgr, PixelGeometryManager *mgr)
virtual GeoVPhysVol * Build() override
std::vector< double > m_zpos
std::vector< double > m_halflength
std::vector< double > m_rmin
virtual GeoVPhysVol * Build() override
GeoPixelDiskSupports(InDetDD::PixelDetectorManager *ddmgr, PixelGeometryManager *mgr)
std::vector< double > m_rmax
std::vector< std::string > m_material
virtual ~GeoPixelDisk()=default
virtual GeoVPhysVol * Build() override
GeoPixelDisk(const GeoPixelDisk &)=delete
GeoIntrusivePtr< GeoLogVol > m_theDisk
GeoPixelDisk(InDetDD::PixelDetectorManager *ddmgr, PixelGeometryManager *mgr)
GeoPixelDisk & operator=(const GeoPixelDisk &)=delete
GeoPixelECCable(InDetDD::PixelDetectorManager *ddmgr, PixelGeometryManager *mgr)
GeoPixelECCable & operator=(const GeoPixelECCable &)=delete
GeoPixelECCable(const GeoPixelECCable &)=delete
virtual GeoVPhysVol * Build() override
GeoIntrusivePtr< GeoLogVol > m_theECCable
virtual ~GeoPixelECCable()=default
GeoVPixelFactory(InDetDD::PixelDetectorManager *ddmgr, PixelGeometryManager *mgr)
virtual GeoVPhysVol * Build() override
virtual GeoVPhysVol * Build() override
GeoVPixelFactory(InDetDD::PixelDetectorManager *ddmgr, PixelGeometryManager *mgr)
virtual GeoVPhysVol * Build() override
GeoVPixelFactory(InDetDD::PixelDetectorManager *ddmgr, PixelGeometryManager *mgr)
virtual GeoVPhysVol * Build() override
GeoVPixelFactory(InDetDD::PixelDetectorManager *ddmgr, PixelGeometryManager *mgr)
GeoIntrusivePtr< GeoLogVol > m_theLadder
GeoPixelSiCrystal & m_theSensor
GeoPixelLadder(InDetDD::PixelDetectorManager *ddmgr, PixelGeometryManager *mgr, GeoPixelSiCrystal &theSensor)
virtual ~GeoPixelLadder()=default
virtual GeoVPhysVol * Build() override
GeoPixelLadder & operator=(const GeoPixelLadder &)=delete
GeoPixelLadder(const GeoPixelLadder &)=delete
virtual GeoVPhysVol * Build() override
GeoVPixelFactory(InDetDD::PixelDetectorManager *ddmgr, PixelGeometryManager *mgr)
GeoIntrusivePtr< GeoLogVol > m_theModule
virtual GeoVPhysVol * Build() override
GeoPixelModule & operator=(const GeoPixelModule &)=delete
virtual ~GeoPixelModule()=default
GeoPixelModule(const GeoPixelModule &)=delete
GeoPixelSiCrystal & m_theSensor
GeoPixelModule(InDetDD::PixelDetectorManager *ddmgr, PixelGeometryManager *mgr, GeoPixelSiCrystal &theSensor)
std::vector< double > m_halflength
std::vector< double > m_rmin
std::vector< std::string > m_material
std::vector< double > m_zpos
void initialize(const std::string &)
GeoPixelServices(InDetDD::PixelDetectorManager *ddmgr, PixelGeometryManager *mgr, const std::string &)
virtual GeoVPhysVol * Build() override
std::vector< double > m_rmax
virtual GeoVPhysVol * Build() override
GeoPixelSiCrystal(InDetDD::PixelDetectorManager *ddmgr, PixelGeometryManager *mgr, bool isBLayer)
const InDetDD::SiDetectorDesign * m_design
virtual GeoVPhysVol * Build() override
GeoIntrusivePtr< GeoLogVol > m_theSubDisk
GeoPixelSubDisk(InDetDD::PixelDetectorManager *ddmgr, PixelGeometryManager *mgr, GeoPixelSiCrystal &theSensor)
GeoPixelSubDisk(const GeoPixelSubDisk &)=delete
virtual ~GeoPixelSubDisk()=default
GeoPixelSiCrystal & m_theSensor
GeoPixelSubDisk & operator=(const GeoPixelSubDisk &)=delete
GeoIntrusivePtr< GeoLogVol > m_theBox
GeoPixelTubeCables & operator=(const GeoPixelTubeCables &)=delete
virtual GeoVPhysVol * Build() override
GeoPixelTubeCables(const GeoPixelTubeCables &)=delete
GeoPixelTubeCables(InDetDD::PixelDetectorManager *ddmgr, PixelGeometryManager *mgr)
virtual ~GeoPixelTubeCables()=default
virtual ~GeoVPixelFactory()
StoredMaterialManager * m_mat_mgr
PixelGeometryManager * m_gmt_mgr
GeoVPixelFactory(InDetDD::PixelDetectorManager *ddmgr, PixelGeometryManager *mgr)
InDetDD::PixelDetectorManager * m_DDmgr
virtual GeoVPhysVol * Build()=0
virtual double DesignPitchZ(bool isBLayer) override
IRDBRecordset_ptr m_PixelCommon
virtual void SetBarrel() override
virtual double Voltage(bool isBLayer) override
virtual double PixelLadderThickness() override
virtual double DesignRPActiveArea() override
IRDBRecordset_ptr m_PixelBarrelService
virtual int DesignDiodeColumnsPerCircuit(bool isBLayer) override
std::string m_blayerDesignName
std::string m_endcapDesignName
const PixelID * getIdHelper() override
IRDBRecordset_ptr m_PixelStave
std::string m_designsObjectName
virtual void SetNeg() override
virtual int PixelEndcapMajorVersion() override
virtual double PixelEndcapZMax() override
virtual void SetCurrentLD(int i) override
virtual double PixelChipWidth() override
virtual double PixelEndcapRMin() override
virtual double PixelCableZMax() override
virtual void SetDetElementName(std::string_view) override
virtual double GetATLSRmin() override
virtual double PixelECCablesRMin() override
virtual int PixelECNSectors1() override
virtual int DesignCircuitsPerColumn() override
virtual void SetDesignName(std::string_view) override
std::string m_barrelDesignName
virtual double PixelChipLength() override
virtual double PixelCableWidth() override
virtual void SetPhi(int phi) override
virtual int PixelEndcapNSupportFrames() override
virtual std::string GetDetElementName() override
virtual void SetEndcapModuleName(std::string_view) override
virtual bool DoServices() override
virtual double PixelECSiDz1() override
virtual double GetATLSRadius() override
virtual int PixelNModule() override
virtual double PixelHybridThickness() override
virtual double DesignPitchRP(bool isBLayer) override
virtual int DesignCellColumnsPerCircuit(bool isBLayer) override
virtual double PixelDiskRMin() override
virtual void SetBarrelModuleName(std::string_view) override
virtual double PixelBoardThickness() override
virtual double PixelChipThickness() override
virtual double DesignGapRP() override
std::string m_elementsObjectName
virtual double PixelLadderWidth() override
virtual double PixelBoardWidth() override
virtual void setCommonItems(InDetDD::SiCommonItems *commonItems) override
virtual int DesignCircuitsPerRow() override
IRDBRecordset_ptr m_PixelEndcapGeneral
virtual std::string GetLayer0ModuleName() override
virtual StoredMaterialManager * getMaterialManager() override
StoreGateSvc * m_pDetStore
virtual double PixelBoardLength() override
virtual int EmptyRowConnections(int index) override
virtual int PixelBarrelMajorVersion() override
virtual bool isLDPresent() override
virtual double PixelRMax() override
virtual std::string PixelServiceMaterial(std::string_view, int) override
virtual std::string versionTag() const override
virtual bool DC1Geometry() const override
bool m_g3CompatibleDigits
virtual double PixelECCarbonRMax(std::string) override
virtual double PixelRMin() override
virtual std::string GetEndcapModuleName() override
virtual int PixelBarrelNLayer() override
virtual void SetEta(int eta) override
virtual double PixelHalfLength() override
virtual int PixelServiceLD(std::string_view, int) override
virtual double PixelECCarbonRMin(std::string) override
IRDBRecordset_ptr m_PixelModule
virtual double PixelCableDeltaZ() override
virtual std::string GetBarrelModuleName() override
virtual void SetDC1Geometry(bool flag) override
virtual double PixelBalcony() override
virtual int GetLD() override
virtual int DesignCellRowsPerCircuit(bool isBLayer) override
double CalculateThickness(double, const std::string &)
virtual void SetLayer0ModuleName(std::string_view) override
virtual double * PixelServiceZ(std::string_view, int) override
virtual bool InitialLayout() const override
virtual bool isBarrel() override
virtual bool isEndcap() override
virtual double PixelCableThickness() override
virtual double PixelECSiDz2() override
virtual double PixelLayerRadius() override
virtual double PixelECCablesDistance() override
virtual double GetATLSLength() override
virtual double * PixelServiceR(std::string_view, int) override
virtual double PixelModuleDrDistance() override
virtual double PixelHybridLength() override
virtual void SetInitialLayout(bool flag) override
InDetDD::PixelDetectorManager * m_pDDmgr
IRDBRecordset_ptr m_PixelEndcapService
virtual bool G3CompatibleDigits() const override
IRDBRecordset_ptr m_PixelBarrelGeneral
virtual double PixelCableZMin() override
virtual int NumberOfEmptyRows() override
virtual double PixelModuleShiftFlag(int) override
virtual double DesignGapZ() override
InDetDD::SiCommonItems * m_commonItems
virtual void SetEndcap() override
virtual int PixelBarrelMinorVersion() override
IRDBRecordset_ptr m_PixelLayer
virtual int Phi() override
virtual double PixelBarrelHalfLength() override
int PixelEndcapNDisk() override
virtual double PixelECCarbonThickness(std::string) override
virtual double PixelModuleAngle() override
virtual double PixelBarrelRMax() override
virtual double PixelDiskPosition() override
IRDBRecordset_ptr m_PixelDisk
virtual int NPixelSectors() override
virtual void SetG3CompatibleDigits(bool flag) override
virtual double PixelECCablesThickness() override
virtual void SetAlignable(bool flag) override
virtual double PixelModuleAngleSign(int) override
virtual double PixelBoardActiveLen() override
virtual double PixelBarrelRMin() override
virtual InDetDD::SiCommonItems * commonItems() override
virtual double PixelLadderTilt() override
virtual int EmptyRows(int index) override
virtual double Temperature(bool isBLayer) override
virtual double PixelECCablesRMax() override
virtual void SetServices(bool isservice) override
virtual double PixelHybridWidth() override
virtual double PixelChipGap() override
virtual int Eta() override
virtual std::string PixelECCarbonMaterial(std::string) override
virtual int PixelEndcapMinorVersion() override
virtual std::string GetDesignName() override
virtual InDetDD::PixelDetectorManager * GetPixelDDManager() override
virtual double PixelEndcapZMin() override
virtual int DesignDiodeRowsPerCircuit(bool isBLayer) override
virtual double PixelLadderHalfLength() override
virtual int PixelECNSectors2() override
virtual double PixelEndcapRMax() override
virtual double PixelModulePosition(int) override
StoredMaterialManager * m_pMatMgr
virtual void SetPos() override
virtual double DesignZActiveArea() override
virtual int PixelServiceNFrame(std::string_view) override
virtual bool Alignable() const override
virtual int GetSide() override
virtual double * PixelServiceR(std::string_view, int)=0
virtual double PixelLadderThickness()=0
virtual double PixelECCarbonRMin(std::string)=0
virtual std::string PixelServiceMaterial(std::string_view, int)=0
virtual double PixelHybridWidth()=0
virtual InDetDD::PixelDetectorManager * GetPixelDDManager()=0
virtual int PixelEndcapNSupportFrames()=0
virtual void SetBarrelModuleName(std::string_view)=0
virtual double DesignPitchZ(bool isBLayer)=0
virtual double PixelChipLength()=0
virtual void SetPhi(int phi)=0
virtual int PixelServiceLD(std::string_view, int)=0
virtual void SetInitialLayout(bool flag)=0
virtual int PixelBarrelMajorVersion()=0
virtual double PixelChipGap()=0
virtual double PixelBarrelRMax()=0
virtual double PixelHybridThickness()=0
virtual bool DoServices()=0
virtual double PixelECCarbonThickness(std::string)=0
virtual double PixelCableThickness()=0
virtual int PixelBarrelNLayer()=0
virtual double PixelBoardWidth()=0
virtual double * PixelServiceZ(std::string_view, int)=0
virtual double PixelECSiDz2()=0
virtual double PixelBoardActiveLen()=0
virtual double PixelModuleAngle()=0
virtual std::string GetDesignName()=0
virtual void SetServices(bool isservice)=0
virtual void setCommonItems(InDetDD::SiCommonItems *commonItems)=0
virtual double PixelEndcapZMax()=0
virtual double PixelBoardLength()=0
virtual double PixelECSiDz1()=0
virtual int PixelEndcapMinorVersion()=0
virtual double PixelChipWidth()=0
virtual double PixelHybridLength()=0
virtual double PixelRMin()=0
virtual void SetDC1Geometry(bool flag)=0
virtual int PixelEndcapNDisk()=0
virtual void SetEndcapModuleName(std::string_view)=0
virtual double PixelChipThickness()=0
virtual double GetATLSRmin()=0
virtual double PixelECCablesRMin()=0
virtual int DesignCellColumnsPerCircuit(bool isBLayer)=0
virtual int PixelEndcapMajorVersion()=0
virtual double DesignGapZ()=0
virtual int NumberOfEmptyRows()=0
virtual double PixelModuleDrDistance()=0
virtual int DesignDiodeRowsPerCircuit(bool isBLayer)=0
virtual double PixelCableWidth()=0
virtual double PixelModuleAngleSign(int)=0
virtual bool InitialLayout() const =0
virtual bool G3CompatibleDigits() const =0
virtual double PixelRMax()=0
virtual double DesignGapRP()=0
virtual double PixelECCablesThickness()=0
virtual void SetBarrel()=0
virtual double PixelCableDeltaZ()=0
virtual bool isLDPresent()=0
virtual double GetATLSLength()=0
virtual bool isEndcap()=0
virtual int DesignDiodeColumnsPerCircuit(bool isBLayer)=0
virtual double PixelDiskPosition()=0
virtual bool isBarrel()=0
virtual bool DC1Geometry() const =0
virtual int PixelNModule()=0
virtual double PixelECCablesDistance()=0
virtual int EmptyRows(int index)=0
virtual std::string versionTag() const =0
virtual double PixelCableZMin()=0
virtual void SetAlignable(bool flag)=0
virtual double PixelLadderHalfLength()=0
virtual std::string GetDetElementName()=0
virtual double PixelBarrelHalfLength()=0
virtual int PixelBarrelMinorVersion()=0
virtual double DesignRPActiveArea()=0
virtual double PixelBarrelRMin()=0
virtual double PixelLadderWidth()=0
virtual int DesignCircuitsPerColumn()=0
virtual double PixelBalcony()=0
virtual double PixelDiskRMin()=0
virtual int EmptyRowConnections(int index)=0
virtual InDetDD::SiCommonItems * commonItems()=0
virtual int DesignCellRowsPerCircuit(bool isBLayer)=0
virtual std::string PixelECCarbonMaterial(std::string)=0
virtual std::string GetEndcapModuleName()=0
virtual double PixelEndcapZMin()=0
virtual double Temperature(bool isBLayer)=0
virtual double PixelModulePosition(int)=0
virtual int PixelServiceNFrame(std::string_view)=0
virtual double PixelEndcapRMax()=0
virtual void SetG3CompatibleDigits(bool flag)=0
virtual const PixelID * getIdHelper()=0
virtual int NPixelSectors()=0
virtual void SetDetElementName(std::string_view)=0
virtual double PixelBoardThickness()=0
virtual double Voltage(bool isBLayer)=0
virtual double GetATLSRadius()=0
virtual int PixelECNSectors1()=0
virtual void SetEndcap()=0
virtual void SetDesignName(std::string_view)=0
virtual int DesignCircuitsPerRow()=0
virtual double PixelEndcapRMin()=0
virtual double PixelCableZMax()=0
virtual double PixelECCarbonRMax(std::string)=0
virtual ~PixelGeometryManager()
virtual void SetEta(int eta)=0
virtual double PixelECCablesRMax()=0
virtual double DesignZActiveArea()=0
virtual bool Alignable() const =0
virtual int PixelECNSectors2()=0
virtual double PixelLadderTilt()=0
virtual double DesignPitchRP(bool isBLayer)=0
virtual std::string GetLayer0ModuleName()=0
virtual StoredMaterialManager * getMaterialManager()=0
virtual double PixelModuleShiftFlag(int)=0
virtual void SetCurrentLD(int i)=0
virtual const InDetDD::SiCommonItems * commonItems() const =0
virtual void SetLayer0ModuleName(std::string_view)=0
virtual double PixelHalfLength()=0
virtual double PixelLayerRadius()=0
virtual std::string GetBarrelModuleName()=0
This is an Identifier helper class for the Pixel subdetector.
The Athena Transient Store API.
This class holds one or more material managers and makes them storeable, under StoreGate.