|
ATLAS Offline Software
|
Go to the documentation of this file.
107 #include "GaudiKernel/PhysicalConstants.h"
116 GeoModelIO::ReadGeoModel* sqliteReader,
117 std::shared_ptr<std::map<std::string, GeoFullPhysVol*>> mapFPV,
118 std::shared_ptr<std::map<std::string, GeoAlignableTransform*>> mapAX,
121 m_pixServBuilder(nullptr),
122 m_servMatBuilder(nullptr),
136 double pixelRmin, pixelRmax, pixelZmax;
141 pixZone =
new InDetDD::TubeZone(
"Pixel",-pixelZmax,pixelZmax,pixelRmin,pixelRmax);
160 topZone.
add(pixZone);
176 if (endcapAPresent || endcapCPresent)
initialize(
"endcap");
216 }
else if (
a==
"barrel") {
219 }
else if (
a==
"endcap") {
243 for(
int ii = 0; ii < numServices; ii++) {
276 bool needsRotation =
false;
280 if (!shapeType.empty() && shapeType !=
"TUBE") {
289 if (shapeType ==
"BOX" || shapeType ==
"ROD" || shapeType ==
"ROD2" || shapeType ==
"TRAP") {
296 if (rmin2 <= 0) rmin2 = param.
rmin();
297 if (rmax2 <= 0) rmax2 = param.
rmax();
298 if (repeat == 0) repeat = 1;
300 if (shapeType ==
"PGON" || shapeType ==
"PGON2" ||
301 shapeType ==
"CONE" || shapeType ==
"CONS" ||
302 shapeType ==
"PGON3" || shapeType ==
"PGON31" || shapeType ==
"PGON4") {
303 if ((rmin2 != param.
rmin()) || (rmax2 != param.
rmax())) {
304 needsRotation =
true;
310 if (shapeType ==
"PGON" || shapeType ==
"PGON2" ||
311 shapeType ==
"PGON3" || shapeType ==
"PGON31" || shapeType ==
"PGON4") {
318 if (shapeType.empty() || shapeType ==
"TUBE" || shapeType ==
"CONE") {
337 if(std::abs(param.
zmin()) < 0.000001) {
343 if(envNum>0)
label=
"Env";
344 else if (
a ==
"barrel")
label =
"Brl";
345 else if (
a ==
"endcap")
label =
"EC";
346 else if (
a ==
"simple")
label =
"Svc";
void setRmin2(double rmin2)
virtual double PixelServiceZMin(const std::string &, int)=0
void setEnvelopeNum(int num)
virtual double PixelEnvelopeRMax(int i)=0
virtual int PixelServiceShift(const std::string &type, int index)=0
virtual double PixelLayerGlobalShift()=0
virtual double PixelServiceZMax(const std::string &, int)=0
virtual int PixelServiceEnvelopeNum(const std::string &type, int index)=0
virtual std::string PixelServiceShape(const std::string &a, int _n)=0
IInDetServMatBuilderTool * serviceBuilderTool()
void setZmax(double zmax)
virtual double PixelEndcapZMax()=0
virtual double PixelBarrelRMin()=0
MsgStream & msg(MSG::Level lvl) const
virtual IRDBRecordset_ptr getPixelServiceRecordset(const std::string &type)=0
void setZShift(double shift)
virtual bool PixelSimpleEnvelope()=0
virtual double PixelServiceWidth(const std::string &a, int _n)=0
virtual double PixelServiceRMin(const std::string &, int)=0
constexpr std::initializer_list< unsigned int > sides
void setLabel(const std::string &name, int volId)
virtual double PixelEndcapRMin()=0
void setMaterial(const std::string &mat)
void setPhiWidth(double phiWidth)
void setMaterialManager(InDetMaterialManager *matManager)
void setZsymm(bool zsymm)
void setPhiLoc(double phiLoc)
void initialize(const std::string &)
unsigned int numElements() const
virtual int PixelServiceParentEnvelopeNum(const std::string &type, int index)=0
virtual int PixelServiceFrameNum(const std::string &, int)=0
virtual double PixelBarrelRMax()=0
PixelGeometryManager * m_gmt_mgr
virtual double PixelHalfLength()=0
virtual double PixelServiceRMax2(const std::string &, int)=0
virtual std::string PixelServiceMaterial(const std::string &, int)=0
PixelGeoModelAthenaComps * athenaComps()
ServiceVolume * make(int index)
virtual double PixelRMax()=0
InDetDD::VolumeBuilder * m_servMatBuilder
void setRmin(double rmin)
std::vector< double > m_layerShift
void setParentEnvelope(int num)
virtual double PixelEnvelopeZ(int i)=0
virtual double PixelBarrelHalfLength()=0
void setRmax2(double rmax2)
std::shared_ptr< IRDBRecordset > IRDBRecordset_ptr
void setZmin(double zmin)
virtual GeoVPhysVol * Build() override
virtual double PixelServicePhiLoc(const std::string &a, int _n)=0
void setNeedsRotation(bool flag)
void initializeOld(const std::string &)
virtual double PixelEndcapRMax()=0
virtual std::string PixelServiceName(const std::string &, int)=0
virtual void SetCurrentLD(int i)=0
virtual int PixelBarrelNLayer()=0
InDetMaterialManager * m_mat_mgr
void setRmax(double rmax)
virtual double PixelEndcapZMin()=0
virtual int PixelServiceElements(const std::string &)=0
virtual double PixelServiceRMax(const std::string &, int)=0
std::vector< const InDetDD::ServiceVolume * > m_services
void setVolName(const std::string &name)
void setShapeType(const std::string &shapeType)
This is the base class for all the pieces of the Pixel detector.
GeoPixelServices(InDetDD::PixelDetectorManager *ddmgr, PixelGeometryManager *mgr, GeoModelIO::ReadGeoModel *sqliteReader, std::shared_ptr< std::map< std::string, GeoFullPhysVol * >> mapFPV, std::shared_ptr< std::map< std::string, GeoAlignableTransform * >> mapAX, InDetDD::Zone *envelopeZone=0)
virtual double PixelRMin()=0
virtual int PixelServiceRepeat(const std::string &a, int _n)=0
virtual double PixelEnvelopeRMin(int i)=0
virtual bool PixelServiceZsymm(const std::string &, int)=0
InDetDD::VolumeBuilder * m_pixServBuilder
virtual bool partPresent(const std::string &partName) const =0
virtual double PixelServiceRMin2(const std::string &, int)=0