49 print(
'Create ROOT map {0} from {1}'.format(rootFileName, inFileName))
52 theFile = ROOT.TFile.Open(rootFileName,
'recreate')
54 rangeTree = ROOT.TTree(
'Range',
'Range')
55 rangeTree.SetDirectory(theFile)
58 rStruct = ROOT.rangeStruct()
59 rangeTree.Branch(
'xMin', ROOT.AddressOf(rStruct,
'xMin'),
'xMin/F')
60 rangeTree.Branch(
'xMax', ROOT.AddressOf(rStruct,
'xMax'),
'xMax/F')
61 rangeTree.Branch(
'dx', ROOT.AddressOf(rStruct,
'dx'),
'dx/F')
62 rangeTree.Branch(
'yMin', ROOT.AddressOf(rStruct,
'yMin'),
'yMin/F')
63 rangeTree.Branch(
'yMax', ROOT.AddressOf(rStruct,
'yMax'),
'yMax/F')
64 rangeTree.Branch(
'dy', ROOT.AddressOf(rStruct,
'dy'),
'dy/F')
65 rangeTree.Branch(
'zMin', ROOT.AddressOf(rStruct,
'zMin'),
'zMin/F')
66 rangeTree.Branch(
'zMax', ROOT.AddressOf(rStruct,
'zMax'),
'zMax/F')
67 rangeTree.Branch(
'dz', ROOT.AddressOf(rStruct,
'dz'),
'dz/F')
69 dataTree = ROOT.TTree(
'Data',
'Data')
70 dataTree.SetDirectory(theFile)
76 dStruct = ROOT.dataStruct()
77 dataTree.Branch(
'Bx', ROOT.AddressOf(dStruct,
'Bx'),
'Bx/F')
78 dataTree.Branch(
'By', ROOT.AddressOf(dStruct,
'By'),
'By/F')
79 dataTree.Branch(
'Bz', ROOT.AddressOf(dStruct,
'Bz'),
'Bz/F')
100 with open(inFileName,
'r')
as f:
108 line = line.replace(
'[',
'')
109 line = line.replace(
']',
'')
110 line = line.replace(
'mm',
'')
117 print(
'sLine = {0}'.format(sLine))
119 rStruct.xMin = float(sLine[3])*mm2cm
120 rStruct.xMax = float(sLine[7])*mm2cm
121 rStruct.dx = float(sLine[12])*mm2cm
122 rStruct.yMin = float(sLine[4])*mm2cm
123 rStruct.yMax = float(sLine[8])*mm2cm
124 rStruct.dy = float(sLine[13])*mm2cm
125 rStruct.zMin = float(sLine[5])*mm2cm
126 rStruct.zMax = float(sLine[9])*mm2cm
127 rStruct.dz = float(sLine[14])*mm2cm
129 Nx = int(((rStruct.xMax - rStruct.xMin)/rStruct.dx) + 1.0)
130 Ny = int(((rStruct.yMax - rStruct.yMin)/rStruct.dy) + 1.0)
131 Nz = int(((rStruct.zMax - rStruct.zMin)/rStruct.dz) + 1.0)
134 print(
'Nx = {0}, Ny = {1}, Nz = {2}'.format(Nx, Ny, Nz))
137 x0 = 0.5*(rStruct.xMin + rStruct.xMax)
138 y0 = 0.5*(rStruct.yMin + rStruct.yMax)
139 z0 = 0.5*(rStruct.zMin + rStruct.zMax)
141 print(
'Centering field map using co-ordinate shift {0} {1} {2} cm'.format(x0, y0, z0))
144 rStruct.xMin = rStruct.xMin - x0
145 rStruct.xMax = rStruct.xMax - x0
147 rStruct.yMin = rStruct.yMin - y0
148 rStruct.yMax = rStruct.yMax - y0
150 rStruct.zMin = rStruct.zMin - z0
151 rStruct.zMax = rStruct.zMax - z0
163 dStruct.x = float(sLine[0])*m2cm - x0
164 dStruct.y = float(sLine[1])*m2cm - y0
165 dStruct.z = float(sLine[2])*m2cm - z0
168 dStruct.Bx = float(sLine[3])
169 dStruct.By = float(sLine[4])
170 dStruct.Bz = float(sLine[5])