3 from copy 
import deepcopy
 
   22 flatCableBIS78 = [0, 4, 8, 12, 16, 20, 24, 28, 1, 5, 9, 13, 17, 21, 25, 29, 2, 6, 10, 14, 18, 22, 26, 30, 3, 7, 11, 15, 19, 23, 27, 31] 
 
   23 flatCableBIS78inv = [31, 27, 23, 19, 15, 11, 7, 3, 30, 26, 22, 18, 14, 10, 6, 2, 29, 25, 21, 17, 13, 9, 5, 1, 28, 24, 20, 16, 12, 8, 4, 0] 
 
   27     "pinAssignment" :  [(p+1,t) 
for t, p  
in enumerate(flatCableBIS78)]
 
   31     "pinAssignment" : [(s,t) 
for s, t 
in enumerate([ 0, 8, 16, 24,  1,  9, 17, 25],1)]
 
   35     "pinAssignment" : [(s,t) 
for s,t 
in enumerate([4,12,20,28,5,13,  21,  29,   6,  14,  22,  30,   7,  15,  23,  31],1)]
 
   39     "pinAssignment" :  [(p+1,t) 
for t, p  
in enumerate(flatCableBIS78inv)]
 
   47 for sector 
in range(1, 9):  
 
   50             for gasGap 
in [0, 1, 2]:
 
   53                     "station": station_name,
 
   56                     "doubletR" : doubletR,
 
   58                     "doubletPhi": doubletPhi,
 
   62                     "subDetector": sub_detector,
 
   63                     "boardSector" : sector+16, 
 
   69                         cabling_data[
"firstStrip"] = 1
 
   71                         cabling_data["lastStrip"] = 32  # Standard: 32 eta strips for BIS7 -> special case: BIS7 with 40 eta strips added below 
   72                         cabling_data["firstTdcChan"] = 0 
   73                         cabling_data["lastTdcChan"] = 31  # Standard: 32 channels per TDC 
   75                         cabling_data[
"board"] = gasGap
 
   77                         cabling_data[
"firstStrip"] = 1  
 
   79                         cabling_data["lastStrip"] = 16  # Standard: 16 eta strips for BIS8 cabled on the second half of the TDC (that means the strips 1-16) 
   80                         cabling_data["firstTdcChan"] = 16 
   81                         cabling_data["lastTdcChan"] = 31  # Last 16 TDC channels 
   83                         cabling_data[
"board"] = gasGap + 9
 
   84                         cabling_data[
"flatCableId"] = 1
 
   85                     idTranslateDict.append(deepcopy(cabling_data))
 
   89                         cabling_data[
"firstStrip"] = 33
 
   91                         cabling_data["lastStrip"] = 64  # Total 64 phi strips for BIS7 -> First half 
   92                         cabling_data["firstTdcChan"] = 0 
   93                         cabling_data["lastTdcChan"] = 31  # Standard: 32 channels per TDC 
   95                         cabling_data[
"board"] = gasGap + 3
 
   96                         cabling_data[
"flatCableId"] = 3
 
   98                         cabling_data[
"firstStrip"] = 33
 
  100                         cabling_data["lastStrip"] = 64  # Total 64 phi strips for BIS7 -> First half 
  101                         cabling_data["firstTdcChan"] = 0 
  102                         cabling_data["lastTdcChan"] = 31  # Standard: 32 channels per TDC 
  104                         cabling_data[
"board"] = gasGap + 12
 
  105                         cabling_data[
"flatCableId"] = 3
 
  106                     idTranslateDict.append(deepcopy(cabling_data))
 
  108                         cabling_data[
"firstStrip"] = 1
 
  110                         cabling_data["lastStrip"] = 32  # Total 64 phi strips for BIS7 -> Second half 
  111                         cabling_data["firstTdcChan"] = 0 
  112                         cabling_data["lastTdcChan"] = 31  # Standard: 32 channels per TDC 
  114                         cabling_data[
"board"] = gasGap + 6
 
  115                         cabling_data[
"flatCableId"] = 3
 
  117                         cabling_data[
"firstStrip"] = 1
 
  119                         cabling_data["lastStrip"] = 32  # Total 64 phi strips for BIS7 -> Second half 
  120                         cabling_data["firstTdcChan"] = 0 
  121                         cabling_data["lastTdcChan"] = 31  # Standard: 32 channels per TDC 
  123                         cabling_data[
"board"] = gasGap + 15
 
  124                         cabling_data[
"flatCableId"] = 3
 
  126                     idTranslateDict.append(deepcopy(cabling_data))
 
  133                         if sector == 1 
or sector == 2 
or sector == 3:
 
  134                             cabling_data[
"firstStrip"] = 33
 
  136                             cabling_data["lastStrip"] = 40  # Special case: BIS7 with 40 eta strips -> Adding the 8 leftover strips 
  137                             cabling_data["firstTdcChan"] = 0 
  138                             cabling_data["lastTdcChan"] = 7  # First 8 channels of the TDC used for BIS8 eta strips 
  140                             cabling_data[
"board"] = gasGap + 9
 
  141                             cabling_data[
"flatCableId"] = 2
 
  142                             idTranslateDict.append(deepcopy(cabling_data))
 
  145 print (len(idTranslateDict))
 
  147 json_dict= {
"chamberMap" : idTranslateDict,
 
  148             "readoutCards":  readoutDict }
 
  149 with open(
"CablingFile.json", 
"w") 
as my_file:
 
  150     my_file.write(json.dumps(json_dict,indent=4))