ATLAS Offline Software
StripGmxInterface.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 STRIPGEOMODELXML_STRIPGMXINTERFACE_H
6 #define STRIPGEOMODELXML_STRIPGMXINTERFACE_H
7 
9 #include <GeoModelXml/GmxInterface.h>
10 
11 #include <map>
12 #include <string>
13 
14 class IRDBAccessSvc;
15 class WaferTree;
16 
17 namespace GeoModelIO{
18  class ReadGeoModel;
19 }
20 
21 namespace InDetDD{
22  class SCT_DetectorManager;
23  class SCT_ModuleSideDesign;
24  class SiCommonItems;
25  class SiDetectorDesign;
26 
27  namespace ITk{
28 
29  class StripGmxInterface : public GmxInterface, public AthMessaging{
30  public:
31  StripGmxInterface(SCT_DetectorManager *detectorManager,
32  SiCommonItems *commonItems,
33  WaferTree *waferTree);
34 
35  virtual int sensorId(std::map<std::string, int> &index) const override final;
36  // For "artificially" adding to Identifiers; specify the field (e.g. "eta_module") and the value to add
37  virtual int splitSensorId(std::map<std::string, int> &index,
38  std::pair<std::string, int> &extraIndex,
39  std::map<std::string, int> &updatedIndex) const override final;
40  virtual void addSensorType(const std::string& clas,
41  const std::string& typeName,
42  const std::map<std::string, std::string>& parameters) override final;
43  void addSensor(const std::string& typeName,
44  std::map<std::string, int> &index,
45  int sequentialId,
46  GeoVFullPhysVol *fpv) override final;
47  void addSplitSensor(const std::string& typeName,
48  std::map<std::string, int> &index,
49  std::pair<std::string, int> &extraIndex,
50  int sequentialId,
51  GeoVFullPhysVol *fpv,
52  int splitLevel) override final;
53  virtual void addAlignable(int level,
54  std::map<std::string, int> &index,
55  GeoVFullPhysVol *fpv,
56  GeoAlignableTransform *transform) override final;
57 
58  void buildReadoutGeometryFromSqlite(IRDBAccessSvc * rdbAccessSvc, GeoModelIO::ReadGeoModel* sqlreader);
59 
60  private:
61  void makeSiStripBox(const std::string& typeName,
62  const std::map<std::string, std::string> &parameters);
63  void makeStereoAnnulus(const std::string& typeName,
64  const std::map<std::string, std::string> &parameters);
65 
66  std::map<std::string, const SiDetectorDesign *> m_geometryMap;
67  std::map<std::string, const SCT_ModuleSideDesign *> m_motherMap;
71  };
72  } // namespace ITk
73 } // namespace InDetDD
74 
75 #endif // STRIPGEOMODELXML_STRIPGMXINTERFACE_H
InDetDD::SCT_DetectorManager
Definition: SCT_DetectorManager.h:49
InDetDD::ITk::StripGmxInterface::m_geometryMap
std::map< std::string, const SiDetectorDesign * > m_geometryMap
Definition: StripGmxInterface.h:66
index
Definition: index.py:1
InDetDD::ITk::StripGmxInterface::makeStereoAnnulus
void makeStereoAnnulus(const std::string &typeName, const std::map< std::string, std::string > &parameters)
Definition: StripGmxInterface.cxx:275
InDetDD::ITk::StripGmxInterface::addAlignable
virtual void addAlignable(int level, std::map< std::string, int > &index, GeoVFullPhysVol *fpv, GeoAlignableTransform *transform) override final
Definition: StripGmxInterface.cxx:618
InDetDD::ITk::StripGmxInterface
Definition: StripGmxInterface.h:29
python.iconfTool.models.loaders.level
level
Definition: loaders.py:20
InDetDD::ITk::StripGmxInterface::makeSiStripBox
void makeSiStripBox(const std::string &typeName, const std::map< std::string, std::string > &parameters)
Definition: StripGmxInterface.cxx:125
InDetDD::ITk::StripGmxInterface::m_motherMap
std::map< std::string, const SCT_ModuleSideDesign * > m_motherMap
Definition: StripGmxInterface.h:67
IRDBAccessSvc
IRDBAccessSvc is an abstract interface to the athena service that provides the following functionalit...
Definition: IRDBAccessSvc.h:45
InDetDD::ITk::StripGmxInterface::m_waferTree
WaferTree * m_waferTree
Definition: StripGmxInterface.h:70
Amg::transform
Amg::Vector3D transform(Amg::Vector3D &v, Amg::Transform3D &tr)
Transform a point from a Trasformation3D.
Definition: GeoPrimitivesHelpers.h:156
InDetDD::ITk::StripGmxInterface::buildReadoutGeometryFromSqlite
void buildReadoutGeometryFromSqlite(IRDBAccessSvc *rdbAccessSvc, GeoModelIO::ReadGeoModel *sqlreader)
Definition: StripGmxInterface.cxx:670
AthMessaging
Class to provide easy MsgStream access and capabilities.
Definition: AthMessaging.h:55
InDetDD::ITk::StripGmxInterface::splitSensorId
virtual int splitSensorId(std::map< std::string, int > &index, std::pair< std::string, int > &extraIndex, std::map< std::string, int > &updatedIndex) const override final
Definition: StripGmxInterface.cxx:70
ITk
Definition: ITkPixelOfflineCalibCondAlg.cxx:14
GeoModelIO
Definition: IGeoDbTagSvc.h:12
InDetDD::SiCommonItems
Definition: SiCommonItems.h:45
InDetDD::ITk::StripGmxInterface::m_detectorManager
SCT_DetectorManager * m_detectorManager
Definition: StripGmxInterface.h:68
InDetDD::ITk::StripGmxInterface::StripGmxInterface
StripGmxInterface(SCT_DetectorManager *detectorManager, SiCommonItems *commonItems, WaferTree *waferTree)
Definition: StripGmxInterface.cxx:37
InDetDD::ITk::StripGmxInterface::addSplitSensor
void addSplitSensor(const std::string &typeName, std::map< std::string, int > &index, std::pair< std::string, int > &extraIndex, int sequentialId, GeoVFullPhysVol *fpv, int splitLevel) override final
Definition: StripGmxInterface.cxx:476
InDetDD
Message Stream Member.
Definition: FakeTrackBuilder.h:8
InDetDD::ITk::StripGmxInterface::addSensor
void addSensor(const std::string &typeName, std::map< std::string, int > &index, int sequentialId, GeoVFullPhysVol *fpv) override final
Definition: StripGmxInterface.cxx:552
InDetDD::ITk::StripGmxInterface::m_commonItems
SiCommonItems * m_commonItems
Definition: StripGmxInterface.h:69
AthMessaging.h
physics_parameters.parameters
parameters
Definition: physics_parameters.py:144
ReadCalibFromCool.typeName
typeName
Definition: ReadCalibFromCool.py:477
InDetDD::ITk::StripGmxInterface::sensorId
virtual int sensorId(std::map< std::string, int > &index) const override final
Definition: StripGmxInterface.cxx:47
InDetDD::ITk::StripGmxInterface::addSensorType
virtual void addSensorType(const std::string &clas, const std::string &typeName, const std::map< std::string, std::string > &parameters) override final
Definition: StripGmxInterface.cxx:108
WaferTree
Definition: WaferTree.h:74