ATLAS Offline Software
Loading...
Searching...
No Matches
MuonFixedIdUnpack.MuonFixedIdUnpack Class Reference
Collaboration diagram for MuonFixedIdUnpack.MuonFixedIdUnpack:

Public Member Functions

 __init__ (self, iid=None, setUnusedBits=True)
 stationNameIndex (self)
 stationName (self)
 stationNameString (self)
 stationPhiIndex (self)
 stationPhi (self)
 stationEtaIndex (self)
 stationEta (self)
 mdtMultilayerIndex (self)
 mdtMultilayer (self)
 mdtTubeLayerIndex (self)
 mdtTubeLayer (self)
 mdtTubeIndex (self)
 mdtTube (self)
 mapToOffline (self, station, phi, eta, ml=1, ly=1, tb=1)
 InitByParam (self, station, phi, eta, ml=1, ly=1, tb=1)

Static Public Attributes

tuple identifier = None
 online_re = re.compile(__stationRe + '(?P<eta>[0-8][AC])(?P<phi>[0-1][0-9])' + __mlRe)
 offline_re = re.compile(__stationRe + '_(?P<phi>[1-8])_(?P<eta>\\-*[0-8])_{0,1}' + __mlRe)
 numeric_re = re.compile('[0-9]{7,9}')
bool setUnusedBits = True

Static Private Attributes

str __stationRe = '(?P<station>[BE][IEMO][MESLRFG])'
str __mlRe = '[-_]{0,1}(?P<ml>[12]){0,1}[-_]{0,1}(?P<ly>[1234]){0,1}[-_]{0,1}(?P<tb>[1-9][0-9]{0,2}){0,1}'
int __kMdtMultilayerMask = 1
int __kMdtMultilayerShift = 9
int __kMdtMultilayerMin = 1
int __kMdtTubeLayerMask = 3
int __kMdtTubeLayerShift = 7
int __kMdtTubeLayerMin = 1
int __kMdtTubeMask = 127
int __kMdtTubeShift = 0
int __kMdtTubeMin = 1
int __kStationNameMask = 63
int __kStationNameShift = 24
int __kStationNameMin = 1
int __kStationEtaMask = 31
int __kStationEtaShift = 19
int __kStationEtaMin = -8
int __kStationPhiMask = 63
int __kStationPhiShift = 13
int __kStationPhiMin = 1
int __kUnusedBits = 7168
list __kStationNameStrings = [ "BIL", "BIS", "BML", "BMS", "BOL", "BOS", "BEE", "BIR", "BMF", "BOF", "BOG", "BME", "BIM", "EIC", "EIL", "EEL", "EES", "EMC", "EML", "EMS", "EOC", "EOL", "EOS", "EIS", "T1F", "T1E", "T2F", "T2E", "T3F", "T3E", "T4F", "T4E", "CSS", "CSL", "BMG" ]
dict __kStationNameStringsMap = { "BIL" : 0,"BIS" : 1,"BML" : 2,"BMS" : 3,"BOL" : 4, "BOS" : 5,"BEE" : 6,"BIR" : 7,"BMF" : 8,"BOF" : 9,"BOG" : 10,"BME" : 11,"BIM" : 12,"EIC" : 13,"EIL" : 14,"EEL" : 15,"EES" : 16,"EMC" : 17,"EML" : 18,"EMS" : 19,"EOC" : 20,"EOL" : 21,"EOS" : 22,"EIS" : 23,"T1F" : 24,"T1E" : 25,"T2F" : 26,"T2E" : 27,"T3F" : 28,"T3E" : 29,"T4F" : 30,"T4E" : 31,"CSS" : 32,"CSL" : 33, "BMG" : 34 }
dict __hardwareStationMaps = { "BOE" : "BOL" }
dict __BOFMAP = {1:1, 3:2, 5:3, 7:4}
dict __BOGMAP = {0:0, 2:1, 4:2, 6:3, 8:4}
dict __hardwareEtaMaps
dict __hardwareSideMap = { "A": "", "C": "-"}

Detailed Description

Definition at line 8 of file MuonFixedIdUnpack.py.

Constructor & Destructor Documentation

◆ __init__()

MuonFixedIdUnpack.MuonFixedIdUnpack.__init__ ( self,
iid = None,
setUnusedBits = True )

Definition at line 30 of file MuonFixedIdUnpack.py.

30 def __init__(self, iid=None, setUnusedBits=True):
31 self.setUnusedBits = setUnusedBits
32 if iid is None:
33 return
34 if (self.numeric_re.match(str(iid)) is not None):
35 self.identifier=int(iid)
36 else:
37 idmatch = self.offline_re.match(str(iid))
38 if (idmatch is not None):
39 # default to 1 for groups not participating in match (same as method defaults if last three arguments not provided)
40 idgroups = idmatch.groupdict(1)
41 self.InitByParam(idgroups['station'], idgroups['phi'], idgroups['eta'],idgroups['ml'],idgroups['ly'],idgroups['tb'])
42 else:
43 idmatch = self.online_re.match(str(iid))
44 if(idmatch is not None):
45 idgroups = idmatch.groupdict(1)
46 swid = self.mapToOffline(idgroups['station'],idgroups['phi'], idgroups['eta'],idgroups['ml'],idgroups['ly'],idgroups['tb'])
47 self.InitByParam(swid['station'],swid['phi'], swid['eta'], swid['ml'],swid['ly'],swid['tb'])
48 else:
49 raise MdtIdError("MDT id format does not match any known type")
50
if(febId1==febId2)
bool match(std::string s1, std::string s2)
match the individual directories of two strings
Definition hcg.cxx:357

Member Function Documentation

◆ InitByParam()

MuonFixedIdUnpack.MuonFixedIdUnpack.InitByParam ( self,
station,
phi,
eta,
ml = 1,
ly = 1,
tb = 1 )

Definition at line 143 of file MuonFixedIdUnpack.py.

143 def InitByParam(self, station, phi, eta, ml=1, ly=1, tb=1):
144 loc_station=station
145 if isinstance(station, str):
146 loc_station = self.__kStationNameStringsMap[station] + 1
147 loc_station -= self.__kStationNameMin
148 loc_station &= self.__kStationNameMask
149 loc_eta = (int(eta) - self.__kStationEtaMin) & self.__kStationEtaMask
150 loc_phi = (int(phi) - self.__kStationPhiMin) & self.__kStationPhiMask
151 loc_ml = (int(ml) - self.__kMdtMultilayerMin) & self.__kMdtMultilayerMask
152 loc_ly = (int(ly) - self.__kMdtTubeLayerMin) & self.__kMdtTubeLayerMask
153 loc_tb = (int(tb) - self.__kMdtTubeMin) & self.__kMdtTubeMask
154 self.identifier = (loc_station << self.__kStationNameShift) | (loc_eta << self.__kStationEtaShift) | (loc_phi << self.__kStationPhiShift) | (loc_ml << self.__kMdtMultilayerShift) | (loc_ly << self.__kMdtTubeLayerShift) | (loc_tb << self.__kMdtTubeShift)
155 if self.setUnusedBits:
156 self.identifier = self.identifier | self.__kUnusedBits
157
158
159

◆ mapToOffline()

MuonFixedIdUnpack.MuonFixedIdUnpack.mapToOffline ( self,
station,
phi,
eta,
ml = 1,
ly = 1,
tb = 1 )

Definition at line 121 of file MuonFixedIdUnpack.py.

121 def mapToOffline(self,station,phi,eta,ml=1, ly=1, tb=1):
122 swconv = {}
123
124 try:
125 swconv['station'] = self.__hardwareStationMaps[station]
126 except KeyError:
127 swconv['station'] = station
128
129 etasign = self.__hardwareSideMap[eta[1]]
130 swconv['phi'] = int(math.ceil(float(phi) / float(2)))
131
132 try:
133 swconv['eta'] = int(etasign + str(self.__hardwareEtaMaps[station][int(phi)][int(eta[0])]))
134 except KeyError:
135 swconv['eta'] = int(etasign + eta[0])
136
137 swconv['ml'] = int(ml)
138 swconv['ly'] = int(ly)
139 swconv['tb'] = int(tb)
140 return swconv
141

◆ mdtMultilayer()

MuonFixedIdUnpack.MuonFixedIdUnpack.mdtMultilayer ( self)

Definition at line 94 of file MuonFixedIdUnpack.py.

94 def mdtMultilayer(self):
95 if self.identifier:
96 return self.mdtMultilayerIndex() + self.__kMdtMultilayerMin
97
98

◆ mdtMultilayerIndex()

MuonFixedIdUnpack.MuonFixedIdUnpack.mdtMultilayerIndex ( self)

Definition at line 90 of file MuonFixedIdUnpack.py.

90 def mdtMultilayerIndex(self):
91 if self.identifier:
92 return (self.identifier >> self.__kMdtMultilayerShift) & self.__kMdtMultilayerMask
93

◆ mdtTube()

MuonFixedIdUnpack.MuonFixedIdUnpack.mdtTube ( self)

Definition at line 114 of file MuonFixedIdUnpack.py.

114 def mdtTube(self):
115 if self.identifier:
116 return self.mdtTubeIndex() + self.__kMdtTubeMin
117
118

◆ mdtTubeIndex()

MuonFixedIdUnpack.MuonFixedIdUnpack.mdtTubeIndex ( self)

Definition at line 110 of file MuonFixedIdUnpack.py.

110 def mdtTubeIndex(self):
111 if self.identifier:
112 return (self.identifier >> self.__kMdtTubeShift) & self.__kMdtTubeMask
113

◆ mdtTubeLayer()

MuonFixedIdUnpack.MuonFixedIdUnpack.mdtTubeLayer ( self)

Definition at line 104 of file MuonFixedIdUnpack.py.

104 def mdtTubeLayer(self):
105 if self.identifier:
106 return self.mdtTubeLayerIndex() + self.__kMdtTubeLayerMin
107
108

◆ mdtTubeLayerIndex()

MuonFixedIdUnpack.MuonFixedIdUnpack.mdtTubeLayerIndex ( self)

Definition at line 100 of file MuonFixedIdUnpack.py.

100 def mdtTubeLayerIndex(self):
101 if self.identifier:
102 return (self.identifier >> self.__kMdtTubeLayerShift) & self.__kMdtTubeLayerMask
103

◆ stationEta()

MuonFixedIdUnpack.MuonFixedIdUnpack.stationEta ( self)

Definition at line 84 of file MuonFixedIdUnpack.py.

84 def stationEta(self):
85 if self.identifier:
86 return self.stationEtaIndex() + self.__kStationEtaMin
87
88

◆ stationEtaIndex()

MuonFixedIdUnpack.MuonFixedIdUnpack.stationEtaIndex ( self)

Definition at line 80 of file MuonFixedIdUnpack.py.

80 def stationEtaIndex(self):
81 if self.identifier:
82 return (self.identifier >> self.__kStationEtaShift) & self.__kStationEtaMask
83

◆ stationName()

MuonFixedIdUnpack.MuonFixedIdUnpack.stationName ( self)

Definition at line 56 of file MuonFixedIdUnpack.py.

56 def stationName(self):
57 if self.identifier:
58 return self.stationNameIndex() + self.__kStationNameMin
59
60

◆ stationNameIndex()

MuonFixedIdUnpack.MuonFixedIdUnpack.stationNameIndex ( self)

Definition at line 52 of file MuonFixedIdUnpack.py.

52 def stationNameIndex(self):
53 if self.identifier:
54 return (self.identifier >> self.__kStationNameShift) & self.__kStationNameMask
55

◆ stationNameString()

MuonFixedIdUnpack.MuonFixedIdUnpack.stationNameString ( self)

Definition at line 61 of file MuonFixedIdUnpack.py.

61 def stationNameString(self):
62 if self.identifier:
63 idx=self.stationName() - 1
64 if idx >= len(self.__kStationNameStrings):
65 return "XXX"
66 return self.__kStationNameStrings[ idx ]
67
68

◆ stationPhi()

MuonFixedIdUnpack.MuonFixedIdUnpack.stationPhi ( self)

Definition at line 74 of file MuonFixedIdUnpack.py.

74 def stationPhi(self):
75 if self.identifier:
76 return self.stationPhiIndex() + self.__kStationPhiMin
77
78

◆ stationPhiIndex()

MuonFixedIdUnpack.MuonFixedIdUnpack.stationPhiIndex ( self)

Definition at line 70 of file MuonFixedIdUnpack.py.

70 def stationPhiIndex(self):
71 if self.identifier:
72 return (self.identifier >> self.__kStationPhiShift) & self.__kStationPhiMask
73

Member Data Documentation

◆ __BOFMAP

dict MuonFixedIdUnpack.MuonFixedIdUnpack.__BOFMAP = {1:1, 3:2, 5:3, 7:4}
staticprivate

Definition at line 194 of file MuonFixedIdUnpack.py.

◆ __BOGMAP

dict MuonFixedIdUnpack.MuonFixedIdUnpack.__BOGMAP = {0:0, 2:1, 4:2, 6:3, 8:4}
staticprivate

Definition at line 195 of file MuonFixedIdUnpack.py.

◆ __hardwareEtaMaps

dict MuonFixedIdUnpack.MuonFixedIdUnpack.__hardwareEtaMaps
staticprivate
Initial value:
= {
"EEL" : { 5 : { 2:1 } },
"BML" : { 13 : { 5:4, 6:5 } },
"BOE" : { 13: { 3:7 } },
"BME" : { 13 : { 4:1 } },
"BOF" : { 12 : __BOFMAP, 14 : __BOFMAP },
"BOG" : { 12 : __BOGMAP, 14 : __BOGMAP }
}

Definition at line 197 of file MuonFixedIdUnpack.py.

◆ __hardwareSideMap

dict MuonFixedIdUnpack.MuonFixedIdUnpack.__hardwareSideMap = { "A": "", "C": "-"}
staticprivate

Definition at line 205 of file MuonFixedIdUnpack.py.

◆ __hardwareStationMaps

dict MuonFixedIdUnpack.MuonFixedIdUnpack.__hardwareStationMaps = { "BOE" : "BOL" }
staticprivate

Definition at line 193 of file MuonFixedIdUnpack.py.

◆ __kMdtMultilayerMask

int MuonFixedIdUnpack.MuonFixedIdUnpack.__kMdtMultilayerMask = 1
staticprivate

Definition at line 160 of file MuonFixedIdUnpack.py.

◆ __kMdtMultilayerMin

int MuonFixedIdUnpack.MuonFixedIdUnpack.__kMdtMultilayerMin = 1
staticprivate

Definition at line 162 of file MuonFixedIdUnpack.py.

◆ __kMdtMultilayerShift

MuonFixedIdUnpack.MuonFixedIdUnpack.__kMdtMultilayerShift = 9
staticprivate

Definition at line 161 of file MuonFixedIdUnpack.py.

◆ __kMdtTubeLayerMask

int MuonFixedIdUnpack.MuonFixedIdUnpack.__kMdtTubeLayerMask = 3
staticprivate

Definition at line 164 of file MuonFixedIdUnpack.py.

◆ __kMdtTubeLayerMin

int MuonFixedIdUnpack.MuonFixedIdUnpack.__kMdtTubeLayerMin = 1
staticprivate

Definition at line 166 of file MuonFixedIdUnpack.py.

◆ __kMdtTubeLayerShift

MuonFixedIdUnpack.MuonFixedIdUnpack.__kMdtTubeLayerShift = 7
staticprivate

Definition at line 165 of file MuonFixedIdUnpack.py.

◆ __kMdtTubeMask

int MuonFixedIdUnpack.MuonFixedIdUnpack.__kMdtTubeMask = 127
staticprivate

Definition at line 168 of file MuonFixedIdUnpack.py.

◆ __kMdtTubeMin

int MuonFixedIdUnpack.MuonFixedIdUnpack.__kMdtTubeMin = 1
staticprivate

Definition at line 170 of file MuonFixedIdUnpack.py.

◆ __kMdtTubeShift

MuonFixedIdUnpack.MuonFixedIdUnpack.__kMdtTubeShift = 0
staticprivate

Definition at line 169 of file MuonFixedIdUnpack.py.

◆ __kStationEtaMask

int MuonFixedIdUnpack.MuonFixedIdUnpack.__kStationEtaMask = 31
staticprivate

Definition at line 176 of file MuonFixedIdUnpack.py.

◆ __kStationEtaMin

int MuonFixedIdUnpack.MuonFixedIdUnpack.__kStationEtaMin = -8
staticprivate

Definition at line 178 of file MuonFixedIdUnpack.py.

◆ __kStationEtaShift

MuonFixedIdUnpack.MuonFixedIdUnpack.__kStationEtaShift = 19
staticprivate

Definition at line 177 of file MuonFixedIdUnpack.py.

◆ __kStationNameMask

int MuonFixedIdUnpack.MuonFixedIdUnpack.__kStationNameMask = 63
staticprivate

Definition at line 172 of file MuonFixedIdUnpack.py.

◆ __kStationNameMin

int MuonFixedIdUnpack.MuonFixedIdUnpack.__kStationNameMin = 1
staticprivate

Definition at line 174 of file MuonFixedIdUnpack.py.

◆ __kStationNameShift

MuonFixedIdUnpack.MuonFixedIdUnpack.__kStationNameShift = 24
staticprivate

Definition at line 173 of file MuonFixedIdUnpack.py.

◆ __kStationNameStrings

list MuonFixedIdUnpack.MuonFixedIdUnpack.__kStationNameStrings = [ "BIL", "BIS", "BML", "BMS", "BOL", "BOS", "BEE", "BIR", "BMF", "BOF", "BOG", "BME", "BIM", "EIC", "EIL", "EEL", "EES", "EMC", "EML", "EMS", "EOC", "EOL", "EOS", "EIS", "T1F", "T1E", "T2F", "T2E", "T3F", "T3E", "T4F", "T4E", "CSS", "CSL", "BMG" ]
staticprivate

Definition at line 186 of file MuonFixedIdUnpack.py.

◆ __kStationNameStringsMap

dict MuonFixedIdUnpack.MuonFixedIdUnpack.__kStationNameStringsMap = { "BIL" : 0,"BIS" : 1,"BML" : 2,"BMS" : 3,"BOL" : 4, "BOS" : 5,"BEE" : 6,"BIR" : 7,"BMF" : 8,"BOF" : 9,"BOG" : 10,"BME" : 11,"BIM" : 12,"EIC" : 13,"EIL" : 14,"EEL" : 15,"EES" : 16,"EMC" : 17,"EML" : 18,"EMS" : 19,"EOC" : 20,"EOL" : 21,"EOS" : 22,"EIS" : 23,"T1F" : 24,"T1E" : 25,"T2F" : 26,"T2E" : 27,"T3F" : 28,"T3E" : 29,"T4F" : 30,"T4E" : 31,"CSS" : 32,"CSL" : 33, "BMG" : 34 }
staticprivate

Definition at line 188 of file MuonFixedIdUnpack.py.

◆ __kStationPhiMask

int MuonFixedIdUnpack.MuonFixedIdUnpack.__kStationPhiMask = 63
staticprivate

Definition at line 180 of file MuonFixedIdUnpack.py.

◆ __kStationPhiMin

int MuonFixedIdUnpack.MuonFixedIdUnpack.__kStationPhiMin = 1
staticprivate

Definition at line 182 of file MuonFixedIdUnpack.py.

◆ __kStationPhiShift

MuonFixedIdUnpack.MuonFixedIdUnpack.__kStationPhiShift = 13
staticprivate

Definition at line 181 of file MuonFixedIdUnpack.py.

◆ __kUnusedBits

int MuonFixedIdUnpack.MuonFixedIdUnpack.__kUnusedBits = 7168
staticprivate

Definition at line 184 of file MuonFixedIdUnpack.py.

◆ __mlRe

str MuonFixedIdUnpack.MuonFixedIdUnpack.__mlRe = '[-_]{0,1}(?P<ml>[12]){0,1}[-_]{0,1}(?P<ly>[1234]){0,1}[-_]{0,1}(?P<tb>[1-9][0-9]{0,2}){0,1}'
staticprivate

Definition at line 16 of file MuonFixedIdUnpack.py.

◆ __stationRe

str MuonFixedIdUnpack.MuonFixedIdUnpack.__stationRe = '(?P<station>[BE][IEMO][MESLRFG])'
staticprivate

Definition at line 15 of file MuonFixedIdUnpack.py.

◆ identifier

tuple MuonFixedIdUnpack.MuonFixedIdUnpack.identifier = None
static

Definition at line 12 of file MuonFixedIdUnpack.py.

◆ numeric_re

MuonFixedIdUnpack.MuonFixedIdUnpack.numeric_re = re.compile('[0-9]{7,9}')
static

Definition at line 21 of file MuonFixedIdUnpack.py.

◆ offline_re

MuonFixedIdUnpack.MuonFixedIdUnpack.offline_re = re.compile(__stationRe + '_(?P<phi>[1-8])_(?P<eta>\\-*[0-8])_{0,1}' + __mlRe)
static

Definition at line 20 of file MuonFixedIdUnpack.py.

◆ online_re

MuonFixedIdUnpack.MuonFixedIdUnpack.online_re = re.compile(__stationRe + '(?P<eta>[0-8][AC])(?P<phi>[0-1][0-9])' + __mlRe)
static

Definition at line 19 of file MuonFixedIdUnpack.py.

◆ setUnusedBits

bool MuonFixedIdUnpack.MuonFixedIdUnpack.setUnusedBits = True
static

Definition at line 28 of file MuonFixedIdUnpack.py.


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