CMS 3D CMS Logo

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