Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-11-25 02:29:04

0001 from builtins import range
0002 mep11angle = 0.002  # guess
0003 mep12angle = 0.002  # guess
0004 mep13angle = 0.002  # guess
0005 mep21angle = 0.00239
0006 mep22angle = 0.00273
0007 mep31angle = 0.00230
0008 mep32angle = 0.00263
0009 mep41angle = 0.00208
0010 mep42angle = 0.002  # guess
0011 mem11angle = 0.002  # guess
0012 mem12angle = 0.002  # guess
0013 mem13angle = 0.002  # guess
0014 mem21angle = 0.00261
0015 mem22angle = 0.00303
0016 mem31angle = 0.00237
0017 mem32angle = 0.00288
0018 mem41angle = 0.00221
0019 mem42angle = 0.002  # guess
0020 
0021 evenDiskToChamberCenter = 35.4
0022 oddDiskToChamberCenter = 10.6
0023 
0024 ye1_halfwidth = 30.0  # guess
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())