File indexing completed on 2024-11-25 02:29:04
0001 from builtins import range
0002 mep11angle = 0.002
0003 mep12angle = 0.002
0004 mep13angle = 0.002
0005 mep21angle = 0.00239
0006 mep22angle = 0.00273
0007 mep31angle = 0.00230
0008 mep32angle = 0.00263
0009 mep41angle = 0.00208
0010 mep42angle = 0.002
0011 mem11angle = 0.002
0012 mem12angle = 0.002
0013 mem13angle = 0.002
0014 mem21angle = 0.00261
0015 mem22angle = 0.00303
0016 mem31angle = 0.00237
0017 mem32angle = 0.00288
0018 mem41angle = 0.00221
0019 mem42angle = 0.002
0020
0021 evenDiskToChamberCenter = 35.4
0022 oddDiskToChamberCenter = 10.6
0023
0024 ye1_halfwidth = 30.0
0025 ye2_halfwidth = 30.0
0026 ye3_halfwidth = 11.5
0027
0028 for endcap, station, ring, angle in (1, 1, 1, mep11angle), (1, 1, 4, mep11angle), (1, 1, 2, mep12angle), (1, 1, 3, mep13angle), (1, 2, 1, mep21angle), (1, 2, 2, mep22angle), (1, 3, 1, mep31angle), (1, 3, 2, mep32angle), (1, 4, 1, mep41angle), (1, 4, 2, mep42angle), (2, 1, 1, mem11angle), (2, 1, 4, mem11angle), (2, 1, 2, mem12angle), (2, 1, 3, mem13angle), (2, 2, 1, mem21angle), (2, 2, 2, mem22angle), (2, 3, 1, mem31angle), (2, 3, 2, mem32angle), (2, 4, 1, mem41angle), (2, 4, 2, mem42angle):
0029 if angle != 0.:
0030 numchambers = 36
0031 if station > 1 and ring == 1: numchambers = 18
0032
0033 if station == 1: halfwidth = ye1_halfwidth
0034 elif station in (2, 3): halfwidth = ye2_halfwidth
0035 elif station == 4: halfwidth = ye3_halfwidth
0036
0037 for cham in range(1, numchambers+1):
0038 if cham % 2 == 0: diskToChamberCenter = evenDiskToChamberCenter + halfwidth
0039 else: diskToChamberCenter = oddDiskToChamberCenter + halfwidth
0040 radial_correction = angle * diskToChamberCenter
0041 angle_correction = -angle
0042
0043 if station == 3 or station == 4:
0044 radial_correction *= -1.
0045 angle_correction *= -1.
0046
0047 print("""<operation>
0048 <CSCChamber endcap="%(endcap)d" station="%(station)d" ring="%(ring)d" chamber="%(cham)d" />
0049 <movelocal x="0." y="%(radial_correction)g" z="0." />
0050 </operation>
0051
0052 <operation>
0053 <CSCChamber endcap="%(endcap)d" station="%(station)d" ring="%(ring)d" chamber="%(cham)d" />
0054 <rotatelocal axisx="1." axisy="0." axisz="0." angle="%(angle_correction)g" />
0055 </operation>
0056 """ % vars())