def makeFeeCableMap::getRpcIds | ( | ) |
Definition at line 32 of file makeFeeCableMap.py.
00032 : 00033 "Return a list of the RPC Detectors" 00034 global RpcIds 00035 return RpcIds 00036 def getRpcSensorIds():
def makeFeeCableMap::getRpcSensorIds | ( | ) |
Definition at line 37 of file makeFeeCableMap.py.
00037 : 00038 "Return a map of the RPC sensors by detector" 00039 RpcRows = range(1,10) 00040 NearRpcColumns = range(1,7) 00041 FarRpcColumns = range(1,10) 00042 RpcLayers = range(1,5) 00043 RpcStrips = range(1,9) 00044 NearRpcSensors= [ [row, column, layer, strip] for row in RpcRows for column in NearRpcColumns for layer in RpcLayers for strip in RpcStrips ] 00045 FarRpcSensors= [ [row, column, layer, strip] for row in RpcRows for column in FarRpcColumns for layer in RpcLayers for strip in RpcStrips ] 00046 00047 RpcSensorIds = {} 00048 for detector in getRpcIds(): 00049 rpcSensors = [] 00050 if detector.site() == Site.kFar: 00051 rpcSensors = FarRpcSensors 00052 else: 00053 rpcSensors = NearRpcSensors 00054 RpcSensorIds[detector] = [ RpcSensor(row, column, layer, strip, 00055 detector.site(), 00056 detector.detectorId()) 00057 for [row, column, layer, strip] in rpcSensors] 00058 return RpcSensorIds 00059 def getFecChannelIds():
def makeFeeCableMap::getFecChannelIds | ( | ) |
Definition at line 60 of file makeFeeCableMap.py.
00060 : 00061 "Return a list of the FEC channel IDs" 00062 nFecConnectorsPerBoard = 32 00063 #nFeeBoardsAd = 13 00064 #nFeeBoardsNearIws = 8 00065 #nFeeBoardsNearOws = 11 00066 #nFeeBoardsFarIws = 10 00067 #nFeeBoardsFarOws = 14 00068 00069 fecIds = {} 00070 detectors = getRpcIds() 00071 rpcIds = getRpcSensorIds() 00072 for detector in detectors: 00073 nBoards = int(math.ceil( len(rpcIds[detector]) 00074 / float(nFecConnectorsPerBoard) ) ) 00075 fecIds[detector] = [FecChannelId(board, connector, 00076 detector.site(), 00077 detector.detectorId()) 00078 for board in range(1,nBoards+1) 00079 for connector in range(1,nFecConnectorsPerBoard+1)] 00080 00081 return fecIds 00082 RpcIds = [ Detector(Site.kDayaBay, DetectorId.kRPC),
def makeFeeCableMap::getAdIds | ( | ) |
Definition at line 103 of file makeFeeCableMap.py.
00103 : 00104 "Return a list of the AD Detectors" 00105 global AdIds 00106 return AdIds 00107 def getAdPmtIds():
def makeFeeCableMap::getAdPmtIds | ( | ) |
Definition at line 108 of file makeFeeCableMap.py.
00108 : 00109 "Return a map of the AD PMTs by detector" 00110 AdRings = range(1,9) 00111 AdColumns = range(1,25) 00112 AdPmts8Inch = [ [ring, column] for ring in AdRings for column in AdColumns ] 00113 nCalibPmts = 6 00114 AdPmts2Inch = [ [0, calibIndex] for calibIndex in range(1,nCalibPmts + 1) ] 00115 AdPmts = AdPmts8Inch + AdPmts2Inch 00116 00117 AdPmtIds = {} 00118 for detector in getAdIds(): 00119 AdPmtIds[detector] = [ AdPmtSensor(ring, column, 00120 detector.site(), 00121 detector.detectorId()) 00122 for [ring,column] in AdPmts] 00123 return AdPmtIds 00124 def getWaterVetoIds():
def makeFeeCableMap::getWaterVetoIds | ( | ) |
Definition at line 125 of file makeFeeCableMap.py.
00125 : 00126 "Return a list of the Water Veto Detectors" 00127 global WaterVetoIds 00128 return WaterVetoIds 00129 def getWaterVetoPmtIds():
def makeFeeCableMap::getWaterVetoPmtIds | ( | ) |
Definition at line 130 of file makeFeeCableMap.py.
00130 : 00131 "Return a map of the Water Veto PMTs by detector" 00132 # Taken from: 00133 # dybgaudi/Detector/XmlDetDesc/python/XmlDetDescGen/PoolPmtStructure/gen.py 00134 wallcounts = [9, 9, 8] 00135 nearInFin = [10,8,24,8,10,8,24,8,20] 00136 nearOutFin = [8,8,16,8,8,8,16,8,29] 00137 nearOutFout = [4,8,12,8,4,8,12,8] 00138 farInFin = [24,8,24,8,24,8,24,8,32] 00139 farOutFin = [16,8,16,8,16,8,16,8,32] 00140 farOutFout = [16,8,16,8,16,8,16,8] 00141 00142 nearIwsPmts = [] 00143 for wallNumber in range(1, wallcounts[0]+1): 00144 for wallSpot in range(1, nearInFin[wallNumber-1]+1): 00145 nearIwsPmts.append( [wallSpot, wallNumber, 1] ) 00146 00147 nearOwsPmts = [] 00148 for wallNumber in range(1, wallcounts[1]+1): 00149 for wallSpot in range(1, nearOutFin[wallNumber-1]+1): 00150 nearOwsPmts.append( [wallSpot, wallNumber, 1] ) 00151 for wallNumber in range(1, wallcounts[2]+1): 00152 for wallSpot in range(1, nearOutFout[wallNumber-1]+1): 00153 nearOwsPmts.append( [wallSpot, wallNumber, 0] ) 00154 00155 farIwsPmts = [] 00156 for wallNumber in range(1, wallcounts[0]+1): 00157 for wallSpot in range(1, farInFin[wallNumber-1]+1): 00158 farIwsPmts.append( [wallSpot, wallNumber, 1] ) 00159 00160 farOwsPmts = [] 00161 for wallNumber in range(1, wallcounts[1]+1): 00162 for wallSpot in range(1, farOutFin[wallNumber-1]+1): 00163 farOwsPmts.append( [wallSpot, wallNumber, 1] ) 00164 for wallNumber in range(1, wallcounts[2]+1): 00165 for wallSpot in range(1, farOutFout[wallNumber-1]+1): 00166 farOwsPmts.append( [wallSpot, wallNumber, 0] ) 00167 00168 PoolPmtIds = {} 00169 for detector in getWaterVetoIds(): 00170 poolPmts = [] 00171 if detector.site() == Site.kFar: 00172 if detector.detectorId() == DetectorId.kIWS: 00173 poolPmts = farIwsPmts 00174 else: 00175 poolPmts = farOwsPmts 00176 else: 00177 if detector.detectorId() == DetectorId.kIWS: 00178 poolPmts = nearIwsPmts 00179 else: 00180 poolPmts = nearOwsPmts 00181 PoolPmtIds[detector] = [ PoolPmtSensor(wallNumber, 00182 wallSpot, 00183 inwardFacing, 00184 detector.site(), 00185 detector.detectorId()) 00186 for [wallSpot, wallNumber, inwardFacing] in poolPmts] 00187 return PoolPmtIds 00188 def getAllPmtIds():
def makeFeeCableMap::getAllPmtIds | ( | ) |
Definition at line 189 of file makeFeeCableMap.py.
00189 : 00190 "Return all PMT IDs" 00191 pmtIds = {} 00192 pmtIds.update(getAdPmtIds()) 00193 pmtIds.update(getWaterVetoPmtIds()) 00194 return pmtIds 00195 def getFeeChannelIds():
def makeFeeCableMap::getFeeChannelIds | ( | ) |
Definition at line 196 of file makeFeeCableMap.py.
00196 : 00197 "Return a list of the FEE channel IDs" 00198 nFeeConnectorsPerBoard = 16 00199 #nFeeBoardsAd = 13 00200 #nFeeBoardsNearIws = 8 00201 #nFeeBoardsNearOws = 11 00202 #nFeeBoardsFarIws = 10 00203 #nFeeBoardsFarOws = 14 00204 00205 feeIds = {} 00206 detectors = getAdIds() + getWaterVetoIds() 00207 pmtIds = getAllPmtIds() 00208 for detector in detectors: 00209 nBoards = int(math.ceil( len(pmtIds[detector]) 00210 / float(nFeeConnectorsPerBoard) ) ) 00211 feeIds[detector] = [FeeChannelId(board, connector, 00212 detector.site(), 00213 detector.detectorId()) 00214 for board in range(1,nBoards+1) 00215 for connector in range(1,nFeeConnectorsPerBoard+1)] 00216 00217 return feeIds 00218 def pmtDescription(pmtId):
def makeFeeCableMap::pmtDescription | ( | pmtId | ) |
Definition at line 219 of file makeFeeCableMap.py.
00219 : 00220 "Return a string representation of PMT ID" 00221 if pmtId.detectorId() == DetectorId.kIWS: 00222 return "%s-wall%d-spot%d" % (pmtId.detName(), 00223 pmtId.wallNumber(), 00224 pmtId.wallSpot()) 00225 elif pmtId.detectorId() == DetectorId.kOWS: 00226 facing = None 00227 if pmtId.inwardFacing(): facing = "in" 00228 else: facing = "out" 00229 return "%s-wall%d-spot%d-%s" % (pmtId.detName(), 00230 pmtId.wallNumber(), 00231 pmtId.wallSpot(), 00232 facing) 00233 else: 00234 return "%s-ring%02d-column%02d" % (pmtId.detName(), 00235 pmtId.ring(), 00236 pmtId.column()) 00237 def rpcDescription(rpcId):
def makeFeeCableMap::rpcDescription | ( | rpcId | ) |
Definition at line 238 of file makeFeeCableMap.py.
00238 : 00239 "Return a string representation of RPC ID" 00240 return "%s-row%02d-column%02d-layer%02d-strip-%02d" % (rpcId.detName(), 00241 rpcId.panelRow(), 00242 rpcId.panelColumn(), 00243 rpcId.layer(), 00244 rpcId.strip()) 00245 def channelDescription(channelId):
def makeFeeCableMap::channelDescription | ( | channelId | ) |
Definition at line 246 of file makeFeeCableMap.py.
00246 : 00247 "Return a string representation of FEE/FEC channel ID" 00248 return "%s-board%02d-connector%02d" % (channelId.detName(), 00249 channelId.board(), 00250 channelId.connector()) 00251 def hardwareDescription(hardwareId):
def makeFeeCableMap::hardwareDescription | ( | hardwareId | ) |
Definition at line 252 of file makeFeeCableMap.py.
00252 : 00253 "Return a string representation of the hardware ID" 00254 if hardwareId.type() == Hardware.kFee: 00255 return "%s-%d" % (Hardware.AsString(hardwareId.type()), 00256 hardwareId.boardId()) 00257 else: 00258 return "%s-%d" % (Hardware.AsString(hardwareId.type()), 00259 hardwareId.id()) 00260 def printCableMap():
def makeFeeCableMap::printCableMap | ( | ) |
Definition at line 261 of file makeFeeCableMap.py.
00261 : 00262 "Print a map of the cable connections" 00263 detectors = getAdIds() + getWaterVetoIds() 00264 pmtIds = getAllPmtIds() 00265 channelIds = getFeeChannelIds() 00266 pmt8inchHardwareIndex = 1 00267 pmt2inchHardwareIndex = 1 00268 boardHardwareNumber = {} 00269 nextFeeBoardNumber = 1 00270 print "# ChannelID Description ElecHardwareId Description SensorID Description SensorHardwareID Description" 00271 for detector in detectors: 00272 pmtIndex = 0 00273 currentPmts = pmtIds[detector] 00274 nPmts = len(currentPmts) 00275 for channelId in channelIds[detector]: 00276 pmtId = None 00277 pmtHardwareId = None 00278 if pmtIndex < nPmts: 00279 pmtId = currentPmts[pmtIndex] 00280 if pmtId.detName().find("AD")>0 and pmtId.ring() == 0: 00281 pmtHardwareId = PmtHardwareId(pmt2inchHardwareIndex, 00282 Hardware.kPmt2inch) 00283 pmt2inchHardwareIndex += 1 00284 else: 00285 pmtHardwareId = PmtHardwareId(pmt8inchHardwareIndex, 00286 Hardware.kPmt8inch) 00287 pmt8inchHardwareIndex += 1 00288 else: 00289 pmtId = AdPmtSensor() 00290 pmtHardwareId = HardwareId() 00291 boardId = channelId.boardId().fullPackedData() 00292 if not boardHardwareNumber.has_key( boardId ): 00293 boardHardwareNumber[boardId] = nextFeeBoardNumber 00294 nextFeeBoardNumber += 1 00295 feeHardwareId = FeeHardwareId(boardHardwareNumber[boardId], 00296 channelId.connector()) 00297 print "%12d %30s %14d %11s %12d %33s %16d %13s" % ( 00298 channelId.fullPackedData(), 00299 channelDescription(channelId), 00300 feeHardwareId.fullPackedData(), 00301 hardwareDescription(feeHardwareId), 00302 pmtId.fullPackedData(), 00303 pmtDescription(pmtId), 00304 pmtHardwareId.fullPackedData(), 00305 hardwareDescription(pmtHardwareId)) 00306 pmtIndex += 1 00307 def printFecCableMap():
def makeFeeCableMap::printFecCableMap | ( | ) |
Definition at line 308 of file makeFeeCableMap.py.
00308 : 00309 "Print a map of the cable connections" 00310 detectors = getRpcIds() 00311 rpcIds = getRpcSensorIds() 00312 channelIds = getFecChannelIds() 00313 boardHardwareNumber = {} 00314 nextFecBoardNumber = 1 00315 # print "# ChannelID Description ElecHardwareId Description SensorID Description SensorHardwareID Description" 00316 for detector in detectors: 00317 rpcIndex = 0 00318 currentRpcs = rpcIds[detector] 00319 nRpcs = len(currentRpcs) 00320 for channelId in channelIds[detector]: 00321 rpcId = None 00322 rpcHardwareId = None 00323 if rpcIndex < nRpcs: 00324 rpcId = currentRpcs[rpcIndex] 00325 iPanel = int(math.ceil(len(channelIds)/32)) 00326 rpcHardwareId = RpcHardwareId(iPanel, rpcId.layer(), rpcId.strip()) 00327 else: 00328 rpcId = RpcSensor() 00329 rpcHardwareId = HardwareId() 00330 boardId = channelId.boardId().fullPackedData() 00331 if not boardHardwareNumber.has_key( boardId ): 00332 boardHardwareNumber[boardId] = nextFecBoardNumber 00333 nextFecBoardNumber += 1 00334 fecHardwareId = FecHardwareId(boardHardwareNumber[boardId], 00335 channelId.connector()) 00336 # print channelId.fullPackedData(), rpcId.fullPackedData() 00337 print "%12d %30s %14d %11s %12d %33s %16d %13s" % ( 00338 channelId.fullPackedData(), 00339 channelDescription(channelId), 00340 fecHardwareId.fullPackedData(), 00341 hardwareDescription(fecHardwareId), 00342 rpcId.fullPackedData(), 00343 rpcDescription(rpcId), 00344 rpcHardwareId.fullPackedData(), 00345 hardwareDescription(rpcHardwareId)) 00346 rpcIndex += 1 if __name__ == "__main__":
makeFeeCableMap::Detector = gbl.DayaBay.Detector [static] |
Definition at line 14 of file makeFeeCableMap.py.
makeFeeCableMap::Site = gbl.Site [static] |
Definition at line 15 of file makeFeeCableMap.py.
makeFeeCableMap::DetectorId = gbl.DetectorId [static] |
Definition at line 16 of file makeFeeCableMap.py.
Definition at line 17 of file makeFeeCableMap.py.
Definition at line 18 of file makeFeeCableMap.py.
Definition at line 19 of file makeFeeCableMap.py.
Definition at line 20 of file makeFeeCableMap.py.
Definition at line 21 of file makeFeeCableMap.py.
Definition at line 22 of file makeFeeCableMap.py.
makeFeeCableMap::Hardware = gbl.DayaBay.Hardware [static] |
Definition at line 23 of file makeFeeCableMap.py.
Definition at line 26 of file makeFeeCableMap.py.
Definition at line 27 of file makeFeeCableMap.py.
makeFeeCableMap::RpcSensor = gbl.DayaBay.RpcSensor [static] |
Definition at line 28 of file makeFeeCableMap.py.
Definition at line 29 of file makeFeeCableMap.py.
Definition at line 30 of file makeFeeCableMap.py.
list makeFeeCableMap::RpcIds [static] |
Initial value:
[ Detector(Site.kDayaBay, DetectorId.kRPC), Detector(Site.kLingAo, DetectorId.kRPC), Detector(Site.kFar, DetectorId.kRPC) ]
Definition at line 83 of file makeFeeCableMap.py.
list makeFeeCableMap::AdIds [static] |
Initial value:
[ Detector(Site.kDayaBay, DetectorId.kAD1), Detector(Site.kDayaBay, DetectorId.kAD2), Detector(Site.kLingAo, DetectorId.kAD1), Detector(Site.kLingAo, DetectorId.kAD2), Detector(Site.kFar, DetectorId.kAD1), Detector(Site.kFar, DetectorId.kAD2), Detector(Site.kFar, DetectorId.kAD3), Detector(Site.kFar, DetectorId.kAD4) ]
Definition at line 87 of file makeFeeCableMap.py.
list makeFeeCableMap::WaterVetoIds [static] |
Initial value:
[ Detector(Site.kDayaBay, DetectorId.kIWS), Detector(Site.kDayaBay, DetectorId.kOWS), Detector(Site.kLingAo, DetectorId.kIWS), Detector(Site.kLingAo, DetectorId.kOWS), Detector(Site.kFar, DetectorId.kIWS), Detector(Site.kFar, DetectorId.kOWS) ]
Definition at line 96 of file makeFeeCableMap.py.