ATLAS Offline Software
Loading...
Searching...
No Matches
MuonAGDDToolHelper Class Reference

#include <MuonAGDDToolHelper.h>

Collaboration diagram for MuonAGDDToolHelper:

Public Member Functions

 MuonAGDDToolHelper ()
std::vector< std::string > ReadAGDDFlags ()
void SetNSWComponents ()
std::string GetAGDD (const bool dumpIt, const std::string &tableName, const std::string &outFileName)
void setAGDDtoGeoSvcName (const std::string &name)

Static Public Member Functions

static bool BuildMScomponents ()

Private Attributes

IRDBAccessSvcm_rdbAccessSvc {nullptr}
IGeoModelSvcm_geoModelSvc {nullptr}
std::string m_svcName {"AGDDtoGeoSvc"}

Detailed Description

Definition at line 19 of file MuonAGDDToolHelper.h.

Constructor & Destructor Documentation

◆ MuonAGDDToolHelper()

MuonAGDDToolHelper::MuonAGDDToolHelper ( )

Definition at line 45 of file MuonAGDDToolHelper.cxx.

46{
47 SmartIF<IGeoModelSvc> geomodel{Gaudi::svcLocator()->service("GeoModelSvc")};
48 if(!geomodel.isValid()) throw std::runtime_error("MuonAGDDToolHelper failed to access GeoModelSvc");
49 SmartIF<IRDBAccessSvc> rdbaccess{Gaudi::svcLocator()->service("RDBAccessSvc")};
50 if(!rdbaccess.isValid()) throw std::runtime_error("MuonAGDDToolHelper failed to access RDBAccessSvc");
51
52 m_geoModelSvc = geomodel.get();
53 m_rdbAccessSvc = rdbaccess.get();
54}
IRDBAccessSvc * m_rdbAccessSvc
IGeoModelSvc * m_geoModelSvc

Member Function Documentation

◆ BuildMScomponents()

bool MuonAGDDToolHelper::BuildMScomponents ( )
static

Definition at line 117 of file MuonAGDDToolHelper.cxx.

118{
119 SmartIF<StoreGateSvc> pDetStore{Gaudi::svcLocator()->service("DetectorStore")};
120 if (!pDetStore.isValid()) return false;
121 MuonGM::MuonDetectorManager* muonMgr=nullptr;
122 if (pDetStore->retrieve(muonMgr).isFailure()) return false;
124}
static bool BuildReadoutGeometry(MuonGM::MuonDetectorManager *mgr)

◆ GetAGDD()

std::string MuonAGDDToolHelper::GetAGDD ( const bool dumpIt,
const std::string & tableName,
const std::string & outFileName )

Definition at line 85 of file MuonAGDDToolHelper.cxx.

86{
87 std::string AtlasVersion = m_geoModelSvc->atlasVersion();
88 std::string MuonVersion = m_geoModelSvc->muonVersionOverride();
89
90 std::string detectorKey = MuonVersion.empty() ? AtlasVersion : MuonVersion;
91 std::string detectorNode = MuonVersion.empty() ? "ATLAS" : "MuonSpectrometer";
92 if ( MuonVersion == "CUSTOM"){
93 detectorKey = AtlasVersion ;
94 detectorNode = "ATLAS" ;
95 }
96
97 IRDBRecordset_ptr recordsetAGDD = m_rdbAccessSvc->getRecordsetPtr(tableName,detectorKey,detectorNode);
98 if(!recordsetAGDD) return "";
99
100 const IRDBRecord *recordAGDD = (*recordsetAGDD)[0];
101 if(!recordAGDD) return "";
102 std::string AgddString = recordAGDD->getString("DATA");
103
104 size_t pos=AgddString.find("AGDD.dtd");
105 if (pos!=std::string::npos) AgddString.replace(pos-21,32,"-- Reference to AGDD.dtd automatically removed -->");
106 std::ofstream GeneratedFile;
107 if (dumpIt)
108 {
109 std::ofstream GeneratedFile;
110 GeneratedFile.open(outFileName);
111 GeneratedFile<<AgddString;
112 GeneratedFile.close();
113 }
114 return AgddString;
115}
std::shared_ptr< IRDBRecordset > IRDBRecordset_ptr
virtual const std::string & getString(const std::string &fieldName) const =0
Get string field value.

◆ ReadAGDDFlags()

std::vector< std::string > MuonAGDDToolHelper::ReadAGDDFlags ( )

Definition at line 56 of file MuonAGDDToolHelper.cxx.

57{
58 std::vector<std::string> structuresFromFlags;
59 std::string agdd2geoVersion = m_rdbAccessSvc->getChildTag("AGDD2GeoSwitches",m_geoModelSvc->muonVersion(),"MuonSpectrometer");
60
61 if(!agdd2geoVersion.empty())
62 {
63 std::string TheKEYNAME;
64 int TheKEYVALUE;
65 IRDBRecordset_ptr pIRDBRecordset = m_rdbAccessSvc->getRecordsetPtr("AGDD2GeoSwitches",m_geoModelSvc->muonVersion(),"MuonSpectrometer");
66 for(unsigned int i=0; i<pIRDBRecordset->size(); i++)
67 {
68 const IRDBRecord* record = (*pIRDBRecordset)[i];
69 TheKEYNAME = record->getString("KEYNAME");
70 TheKEYVALUE = record->getInt("KEYVALUE");
71 if ( TheKEYVALUE == 1 )
72 {
73 structuresFromFlags.push_back(TheKEYNAME);
74 }
75 }
76 }
77 else
78 {
79 std::cout<<"MuonAGDDToolHelper\tagdd2geoVersion is empty " <<std::endl;
80 }
81 return structuresFromFlags;
82}
virtual int getInt(const std::string &fieldName) const =0
Get int field value.
virtual unsigned int size() const =0

◆ setAGDDtoGeoSvcName()

void MuonAGDDToolHelper::setAGDDtoGeoSvcName ( const std::string & name)

Definition at line 146 of file MuonAGDDToolHelper.cxx.

◆ SetNSWComponents()

void MuonAGDDToolHelper::SetNSWComponents ( )

Definition at line 126 of file MuonAGDDToolHelper.cxx.

127{
128 SmartIF<IAGDDtoGeoSvc> agddsvc{Gaudi::svcLocator()->service(m_svcName)};
129 if(!agddsvc.isValid()) {
130 throw std::runtime_error("MuonAGDDToolHelper::SetNSWComponents() - Could not retrieve "
131 + m_svcName + " from ServiceLocator");
132 }
133
134 IAGDDtoGeoSvc::LockedController c = agddsvc->getController();
135
136 agddsvc->addHandler(new micromegasHandler("micromegas", *c));
137 agddsvc->addHandler(new mm_TechHandler("mm_Tech", *c));
138 agddsvc->addHandler(new sTGCHandler("sTGC", *c));
139 agddsvc->addHandler(new sTGC_readoutHandler("sTGC_readout", *c));
140 agddsvc->addHandler(new sTGC_TechHandler("sTGC_Tech", *c));
141 agddsvc->addHandler(new mmSpacerHandler("mmSpacer", *c));
142 agddsvc->addHandler(new mmSpacer_TechHandler("mmSpacer_Tech", *c));
143 agddsvc->addHandler(new mm_readoutHandler("mm_readout", *c));
144}
CxxUtils::LockedPointer< AGDDController > LockedController

Member Data Documentation

◆ m_geoModelSvc

IGeoModelSvc* MuonAGDDToolHelper::m_geoModelSvc {nullptr}
private

Definition at line 37 of file MuonAGDDToolHelper.h.

37{nullptr};

◆ m_rdbAccessSvc

IRDBAccessSvc* MuonAGDDToolHelper::m_rdbAccessSvc {nullptr}
private

Definition at line 36 of file MuonAGDDToolHelper.h.

36{nullptr};

◆ m_svcName

std::string MuonAGDDToolHelper::m_svcName {"AGDDtoGeoSvc"}
private

Definition at line 38 of file MuonAGDDToolHelper.h.

38{"AGDDtoGeoSvc"};

The documentation for this class was generated from the following files: