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

#include <sTGCDetectorHelper.h>

Collaboration diagram for sTGCDetectorHelper:

Public Member Functions

 sTGCDetectorHelper ()
sTGCIterator sTGC_begin ()
sTGCIterator sTGC_end ()
sTGCDetectorDescriptionGet_sTGCDetector (char type, int ieta, int iphi, int layer=1, char side='A')
sTGCDetectorDescriptionGet_sTGCDetectorType (const std::string &type)
sTGCDetectorDescriptionGet_sTGCDetectorSubType (const std::string &type)
sTGCDetectorDescriptionGet_sTGCDetectorType (std::string_view type)
sTGCDetectorDescriptionGet_sTGCDetectorSubType (std::string_view type)
AGDDPositionedDetector Get_sTGCPositionedDetector (char type, int ieta, int iphi, int layer=1, char side='A')
IAGDDtoGeoSvc::LockedController Get_Controller ()

Private Attributes

sTGCMap m_sTGCList
sTGCMapSubType m_sTGCListSubType
ServiceHandle< IAGDDtoGeoSvcm_svc {"AGDDtoGeoSvc", "MMDetectorHelper"}

Detailed Description

Definition at line 24 of file sTGCDetectorHelper.h.

Constructor & Destructor Documentation

◆ sTGCDetectorHelper()

sTGCDetectorHelper::sTGCDetectorHelper ( )

Definition at line 16 of file sTGCDetectorHelper.cxx.

17{
18 if (m_svc.retrieve().isFailure()) {
19 std::abort();
20 }
21 IAGDDtoGeoSvc::LockedController c = m_svc->getController();
22 detectorList vl= c->GetDetectorStore().GetDetectorList();
23
24 for ( const auto& vl_iter: vl)
25 {
26 sTGCDetectorDescription* st=dynamic_cast<sTGCDetectorDescription*>(vl_iter.second);
27 if (st) {
28 m_sTGCList[vl_iter.first]=st;
29 m_sTGCListSubType[vl_iter.second->subType()]=st;
30 }
31 }
32
33}
std::map< std::string, AGDDDetector * > detectorList
CxxUtils::LockedPointer< AGDDController > LockedController
sTGCMapSubType m_sTGCListSubType
ServiceHandle< IAGDDtoGeoSvc > m_svc

Member Function Documentation

◆ Get_Controller()

IAGDDtoGeoSvc::LockedController sTGCDetectorHelper::Get_Controller ( )

Definition at line 135 of file sTGCDetectorHelper.cxx.

136{
137 return m_svc->getController();
138}

◆ Get_sTGCDetector()

sTGCDetectorDescription * sTGCDetectorHelper::Get_sTGCDetector ( char type,
int ieta,
int iphi,
int layer = 1,
char side = 'A' )

Definition at line 35 of file sTGCDetectorHelper.cxx.

36{
37 sTGCDetectorDescription* tgc=nullptr;
38
39 IAGDDtoGeoSvc::LockedController c = m_svc->getController();
40 AGDDPositionerStore& ps = c->GetPositionerStore();
41 for (unsigned int i=0;i<ps.size();i++)
42 {
43 AGDDDetectorPositioner* dp=dynamic_cast<AGDDDetectorPositioner*>(ps[i]);
44 if (dp)
45 {
46 if (dp->ID.detectorType != "sTGC") continue;
47 std::string_view dad=dp->ID.detectorAddress;
48
49 char dtype=dad[3];
50 char dctype='L';
51 if (dtype=='3') dctype='S';
52 if (dctype!=type) continue;
53 int deta=myatoi(dad.substr(5,1));
54 if (deta!=ieta) continue;
55 int dphi=myatoi(dad.substr(12,1));
56 if (dphi!=iphi) continue;
57 int dlayer=myatoi(dad.substr(7,1));
58 if (dlayer!=layer) continue;
59 char dside=dad[13];
60 if (dside!=side) continue;
61
62 tgc=dynamic_cast<sTGCDetectorDescription*>(dp->theDetector);
63 }
64 if(tgc) break;
65 }
66 if (!tgc) std::cout<<" could not find a positioned sTGC!!!! "<<std::endl;
67 return tgc;
68}
int myatoi(std::string_view str)

◆ Get_sTGCDetectorSubType() [1/2]

sTGCDetectorDescription * sTGCDetectorHelper::Get_sTGCDetectorSubType ( const std::string & type)

Definition at line 113 of file sTGCDetectorHelper.cxx.

114{
115 if (auto itr = m_sTGCListSubType.find(type); itr != m_sTGCListSubType.end()) return itr->second;
116 return nullptr;
117}

◆ Get_sTGCDetectorSubType() [2/2]

sTGCDetectorDescription * sTGCDetectorHelper::Get_sTGCDetectorSubType ( std::string_view type)

Definition at line 127 of file sTGCDetectorHelper.cxx.

128{
129 for(const auto &pair : m_sTGCListSubType){
130 if(pair.first == type) return pair.second;
131 }
132 return nullptr;
133}

◆ Get_sTGCDetectorType() [1/2]

sTGCDetectorDescription * sTGCDetectorHelper::Get_sTGCDetectorType ( const std::string & type)

Definition at line 107 of file sTGCDetectorHelper.cxx.

108{
109 if (auto itr = m_sTGCList.find(type); itr != m_sTGCList.end()) return itr->second;
110 return nullptr;
111}

◆ Get_sTGCDetectorType() [2/2]

sTGCDetectorDescription * sTGCDetectorHelper::Get_sTGCDetectorType ( std::string_view type)

Definition at line 119 of file sTGCDetectorHelper.cxx.

120{
121 for(const auto &pair : m_sTGCList){
122 if(pair.first == type) return pair.second;
123 }
124 return nullptr;
125}

◆ Get_sTGCPositionedDetector()

AGDDPositionedDetector sTGCDetectorHelper::Get_sTGCPositionedDetector ( char type,
int ieta,
int iphi,
int layer = 1,
char side = 'A' )

Definition at line 70 of file sTGCDetectorHelper.cxx.

71{
72 sTGCDetectorDescription* tgc=nullptr;
73 AGDDDetectorPositioner* dp=nullptr;
74
75 IAGDDtoGeoSvc::LockedController c = m_svc->getController();
76 AGDDPositionerStore& ps = c->GetPositionerStore();
77 for (unsigned int i=0;i<ps.size();i++)
78 {
79 dp=dynamic_cast<AGDDDetectorPositioner*>(ps[i]);
80 if (dp)
81 {
82 if (dp->ID.detectorType != "sTGC") continue;
83 std::string_view dad=dp->ID.detectorAddress;
84
85 char dtype=dad[3];
86 char dctype='L';
87 if (dtype=='3') dctype='S';
88 if (dctype!=type) continue;
89 int deta=myatoi(dad.substr(5,1));
90 if (deta!=ieta) continue;
91 int dphi=myatoi(dad.substr(12,1));
92 if (dphi!=iphi) continue;
93 int dlayer=myatoi(dad.substr(7,1));
94 if (dlayer!=layer) continue;
95 char dside=dad[13];
96 if (dside!=side) continue;
97
98 tgc=dynamic_cast<sTGCDetectorDescription*>(dp->theDetector);
99 }
100 if(tgc) break;
101 }
102 if (!tgc) std::cout<<" could not find a positioned sTGC!!!! "<<std::endl;
103 AGDDPositionedDetector p_sTGC(tgc,dp);
104 return p_sTGC;
105}
std::pair< sTGCDetectorDescription *, AGDDDetectorPositioner * > AGDDPositionedDetector

◆ sTGC_begin()

sTGCIterator sTGCDetectorHelper::sTGC_begin ( )
inline

Definition at line 27 of file sTGCDetectorHelper.h.

27{return m_sTGCList.begin();}

◆ sTGC_end()

sTGCIterator sTGCDetectorHelper::sTGC_end ( )
inline

Definition at line 28 of file sTGCDetectorHelper.h.

28{return m_sTGCList.end();}

Member Data Documentation

◆ m_sTGCList

sTGCMap sTGCDetectorHelper::m_sTGCList
private

Definition at line 40 of file sTGCDetectorHelper.h.

◆ m_sTGCListSubType

sTGCMapSubType sTGCDetectorHelper::m_sTGCListSubType
private

Definition at line 41 of file sTGCDetectorHelper.h.

◆ m_svc

ServiceHandle<IAGDDtoGeoSvc> sTGCDetectorHelper::m_svc {"AGDDtoGeoSvc", "MMDetectorHelper"}
private

Definition at line 42 of file sTGCDetectorHelper.h.

42{"AGDDtoGeoSvc", "MMDetectorHelper"};

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