ATLAS Offline Software
Loading...
Searching...
No Matches
ZDC_DetFactory.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef ZDC_DETFACTORY_H
6#define ZDC_DETFACTORY_H
7
8#include "GeoModelKernel/GeoVDetectorFactory.h"
9#include "GeoModelKernel/GeoDefinitions.h"
11//compiler needs to know ZDC_DetManager return type derives from GeoVDetectorManager
12//to avoid "invalid covariant return type" warning
13#include "ZDC_DetManager.h"
14#include "ZDC_ModuleBase.h"
15
16#include <string>
17#include <vector>
18#include <array>
19
20class StoreGateSvc;
21class ZdcID;
23
24class ZDC_DetFactory : public GeoVDetectorFactory,
25 public AthMessaging
26{
27
28public:
31
32 virtual void create(GeoPhysVol *world) override;
33 //note: baseclass returns GeoVDetectorManager *
34 virtual const ZDC_DetManager *getDetectorManager() const override;
35 void buildMaterials(StoredMaterialManager *materialManager);
36
37 inline void addModule(std::unique_ptr<ZDC_ModuleBase> module) { m_modules.push_back(std::move(module) ); }
38 void setTANSlot(uint iside, double width, double height, double depth, const GeoTrf::Transform3D trf, const std::string& name);
39
40private:
41
44 const ZdcID *m_zdcID{};
45 std::vector< std::unique_ptr<ZDC_ModuleBase> > m_modules;
46 std::array<GeoTrf::Transform3D, 2> m_tanSlotTransform;
47 std::array<double, 2> m_tanW, m_tanH, m_tanD;
48 std::array<std::string, 2> m_tanSlotName;
49};
50
51
52#endif
unsigned int uint
const double width
AthMessaging(IMessageSvc *msgSvc, const std::string &name)
Constructor.
The Athena Transient Store API.
This class holds one or more material managers and makes them storeable, under StoreGate.
std::vector< std::unique_ptr< ZDC_ModuleBase > > m_modules
const ZdcID * m_zdcID
virtual void create(GeoPhysVol *world) override
std::array< std::string, 2 > m_tanSlotName
ZDC_DetFactory(StoreGateSvc *)
std::array< GeoTrf::Transform3D, 2 > m_tanSlotTransform
void setTANSlot(uint iside, double width, double height, double depth, const GeoTrf::Transform3D trf, const std::string &name)
void addModule(std::unique_ptr< ZDC_ModuleBase > module)
std::array< double, 2 > m_tanD
std::array< double, 2 > m_tanH
std::array< double, 2 > m_tanW
StoreGateSvc * m_detectorStore
virtual const ZDC_DetManager * getDetectorManager() const override
void buildMaterials(StoredMaterialManager *materialManager)
ZDC_DetManager * m_detectorManager
Definition ZdcID.h:25
std::string depth
tag string for intendation
Definition fastadd.cxx:46