ATLAS Offline Software
Loading...
Searching...
No Matches
parseMapping Namespace Reference

Functions

 parsePosition (header_line)
 convertToNewFormat (oldFormat)
 convertToOldFormat (newFormat)
 create_mapping0 (fname)
 create_mapping1 (fname)
 create_mapping (fname)

Variables

 name_position_dict1 = create_mapping1('pixelMapping.h')
 name_position_dict = create_mapping('mapping.csv')
 v = convertToOldFormat(name_position_dict[n])
 v0 = convertToOldFormat(name_position_dict1[n])

Function Documentation

◆ convertToNewFormat()

parseMapping.convertToNewFormat ( oldFormat)

Definition at line 14 of file parseMapping.py.

14def convertToNewFormat(oldFormat):
15 hash_positionStrings=oldFormat.split()[1:]
16 theHash = int(hash_positionStrings[0])
17 thePositions = [int(x) for x in hash_positionStrings[1].split(',')]
18 result = [theHash]
19 return result + thePositions
20
21
22#old format is a single string, ' : 2027 2,2,39,0'
23#note: no comma between hash and position coordinates, the hash is r-justified
std::vector< std::string > split(const std::string &s, const std::string &t=":")
Definition hcg.cxx:177

◆ convertToOldFormat()

parseMapping.convertToOldFormat ( newFormat)

Definition at line 24 of file parseMapping.py.

24def convertToOldFormat(newFormat):
25 newFormatPosition = str(newFormat[1:])
26 joinedPosition = "".join(newFormatPosition)[1:-1]
27 spaceStripped = re.sub(r'[\s+]', '', joinedPosition)
28 newFormatHash = str(newFormat[0])
29 return " : "+newFormatHash.rjust(4)+" "+spaceStripped
30
31

◆ create_mapping()

parseMapping.create_mapping ( fname)

Definition at line 123 of file parseMapping.py.

123def create_mapping(fname):
124 result=dict()
125 module_file = open(fname, 'r')
126 module_data = module_file.read()
127 module_lines = module_data.splitlines()
128 for module in module_lines:
129 if '#' in module:
130 continue
131 components = module.split(',')
132 thisModuleName = components[0]
133 thisModulePosition = [int(x) for x in components[1:]]
134 result[thisModuleName] = thisModulePosition
135 return result
136
137

◆ create_mapping0()

parseMapping.create_mapping0 ( fname)

Definition at line 32 of file parseMapping.py.

32def create_mapping0(fname):
33 golden_modules = []
34 module_file = open(fname, 'r')
35 module_data = module_file.read()
36 module_lines = module_data.splitlines()
37
38 for modules in module_lines:
39 modulename = ""
40 modules = modules.split()
41 if len(modules) != 0:
42 if modules[0] == "else" and modules[1] == "if":
43 geographicalID = modules[2].split('"')
44 modulename = geographicalID[1]
45 elif modules[0] == "if":
46 geographicalID = modules[1].split('"')
47 modulename = geographicalID[1]
48 if modulename:
49 golden_modules.append(modulename)
50
51 golden_hash = []
52 for modules in module_lines:
53 modulehash = ""
54 goldens = modules.split('=')
55 modules = modules.split()
56 if len(modules) != 0:
57 if modules[0] == "else" and modules[1] == "if":
58 golden_hashID = " : " + goldens[3].split(';')[0]
59 golden_bec = goldens[4].split(';')[0].strip()
60 golden_layer = goldens[5].split(';')[0].strip()
61 golden_phi = goldens[6].split(';')[0].strip()
62 golden_eta = goldens[7].split(';')[0].strip()
63 modulehash = golden_hashID + " " + golden_bec + "," + golden_layer + "," + golden_phi + "," + golden_eta
64 elif modules[0] == "if":
65 golden_hashIds = modules[4].split(';')[0]
66 golden_bec = modules[5].split('=')[1].split(';')[0]
67 golden_layer = modules[6].split('=')[1].split(';')[0]
68 golden_phi = modules[8].split(';')[0]
69 golden_eta = modules[10].split(';')[0].strip()
70 if len(golden_hashIds) == 1:
71 golden_hashID = " : " + golden_hashIds
72 elif len(golden_hashIds) == 2:
73 golden_hashID = " : " + golden_hashIds
74 elif len(golden_hashIds) == 3:
75 golden_hashID = " : " + golden_hashIds
76 elif len(golden_hashIds) == 4:
77 golden_hashID = " : " + golden_hashIds
78 modulehash = golden_hashID + " " + golden_bec + "," + golden_layer + "," + golden_phi + "," + golden_eta
79 if modulehash:
80 golden_hash.append(modulehash)
81 return dict(zip(golden_modules, golden_hash))
82
83
84
85#create new mapping from c++ header file of format March 2013
86#Two arrays in the file, first one is array of strings
87#Second one is array of the struct 'positions'

◆ create_mapping1()

parseMapping.create_mapping1 ( fname)

Definition at line 88 of file parseMapping.py.

88def create_mapping1(fname):
89#The following is truly horrible; it parses the .h file to read module names.
90 module_names=[]
91 module_file = open(fname, 'r')
92 module_data = module_file.read()
93 module_lines = module_data.splitlines()
94 found_names=False
95 for modules in module_lines:
96 modulename = ""
97 modules = modules.split()
98 if len(modules) != 0:
99 if found_names:
100 if "};" in modules: #end of list in code
101 break
102 geographicalID = modules[0].split('"')
103 modulename = geographicalID[1]
104 module_names.append(modulename)
105 if "names" in modules: #beginning of list in code
106 found_names=True
107 #
108 found_positions = False
109 module_positions=[]
110 for position_line in module_lines:
111 if len(position_line) != 0:
112 if found_positions:
113 if "}};" in position_line: #end of list in code
114 break
115 position = parsePosition(position_line)
116 if position is None:
117 print('No match')
118 module_positions.append(position)
119 if "values" in position_line: #beginning of list in code
120 found_positions=True
121 return dict(zip(module_names,module_positions))
122
void print(char *figname, TCanvas *c1)

◆ parsePosition()

parseMapping.parsePosition ( header_line)

Definition at line 6 of file parseMapping.py.

6def parsePosition(header_line):
7 #negative signs can appear on the second and last numbers
8 coords=re.match(r'^\s*{\s*(\d+),\s*(-?\d+),\s*(\d+),\s*(\d+),\s*(-?\d+)\s*},?', header_line)
9 if coords is None:
10 return None
11 return [int(x) for x in coords.groups()]
12
13#new format is a list with hash and position, [2027, 2, 2, 39, 0]

Variable Documentation

◆ name_position_dict

parseMapping.name_position_dict = create_mapping('mapping.csv')

Definition at line 142 of file parseMapping.py.

◆ name_position_dict1

parseMapping.name_position_dict1 = create_mapping1('pixelMapping.h')

Definition at line 141 of file parseMapping.py.

◆ v

parseMapping.v = convertToOldFormat(name_position_dict[n])

Definition at line 146 of file parseMapping.py.

◆ v0

parseMapping.v0 = convertToOldFormat(name_position_dict1[n])

Definition at line 149 of file parseMapping.py.