CMS 3D CMS Logo

applyRadialCorrections.py
Go to the documentation of this file.
1 from __future__ import print_function
2 from builtins import range
3 mep11angle = 0.002 # guess
4 mep12angle = 0.002 # guess
5 mep13angle = 0.002 # guess
6 mep21angle = 0.00239
7 mep22angle = 0.00273
8 mep31angle = 0.00230
9 mep32angle = 0.00263
10 mep41angle = 0.00208
11 mep42angle = 0.002 # guess
12 mem11angle = 0.002 # guess
13 mem12angle = 0.002 # guess
14 mem13angle = 0.002 # guess
15 mem21angle = 0.00261
16 mem22angle = 0.00303
17 mem31angle = 0.00237
18 mem32angle = 0.00288
19 mem41angle = 0.00221
20 mem42angle = 0.002 # guess
21 
22 evenDiskToChamberCenter = 35.4
23 oddDiskToChamberCenter = 10.6
24 
25 ye1_halfwidth = 30.0 # guess
26 ye2_halfwidth = 30.0
27 ye3_halfwidth = 11.5
28 
29 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):
30  if angle != 0.:
31  numchambers = 36
32  if station > 1 and ring == 1: numchambers = 18
33 
34  if station == 1: halfwidth = ye1_halfwidth
35  elif station in (2, 3): halfwidth = ye2_halfwidth
36  elif station == 4: halfwidth = ye3_halfwidth
37 
38  for cham in range(1, numchambers+1):
39  if cham % 2 == 0: diskToChamberCenter = evenDiskToChamberCenter + halfwidth
40  else: diskToChamberCenter = oddDiskToChamberCenter + halfwidth
41  radial_correction = angle * diskToChamberCenter
42  angle_correction = -angle
43 
44  if station == 3 or station == 4:
45  radial_correction *= -1.
46  angle_correction *= -1.
47 
48  print("""<operation>
49  <CSCChamber endcap="%(endcap)d" station="%(station)d" ring="%(ring)d" chamber="%(cham)d" />
50  <movelocal x="0." y="%(radial_correction)g" z="0." />
51 </operation>
52 
53 <operation>
54  <CSCChamber endcap="%(endcap)d" station="%(station)d" ring="%(ring)d" chamber="%(cham)d" />
55  <rotatelocal axisx="1." axisy="0." axisz="0." angle="%(angle_correction)g" />
56 </operation>
57 """ % vars())
S & print(S &os, JobReport::InputFile const &f)
Definition: JobReport.cc:66