Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-30 09:18:35

0001 # optics tuning
0002 require './ruby/variator/variator_base.rb'
0003 
0004 class Variator < VariatorBase
0005   def initialize
0006     super
0007 
0008     @varied_settings = [
0009       {
0010         :xpath     => '//mirror',
0011         :attribute => 'focus_tune_x',
0012         :function  => @@center_delta,
0013         :args      => [-10, 10],
0014         :count     => 5,
0015       },
0016       {
0017         :xpath     => '//mirror',
0018         :attribute => 'focus_tune_z',
0019         :function  => @@center_delta,
0020         :args      => [15, 15],
0021         :count     => 5,
0022       },
0023       {
0024         :xpath     => '//sensors//sphere',
0025         :attribute => 'radius',
0026         :function  => @@center_delta,
0027         :args      => [100, 20],
0028         :count     => 5,
0029         :label     => :sensor_sphere_radius,
0030       },
0031     ]
0032 
0033     @derived_settings = [
0034       {
0035         :xpath      => '//sensors//sphere',
0036         :attribute  => 'centerz',
0037         :derivation => Proc.new{ |value| 50.0 - value[:sensor_sphere_radius] },
0038       },
0039     ]
0040 
0041     @simulation_pipelines = @@test_optics
0042 
0043     # best variants:
0044     #
0045     # choice 1: {24,32,37,38,43,44,49,64,69,76,77,83,84,88,89,99,102,103,109}
0046     # choice 2: {32,37,76,77,102}
0047     #
0048     # 77 is the best:
0049     # focus_tune_x          = -5
0050     # focus_tune_z          = 0
0051     # sensor_sphere_radius  = 100
0052     # sensor_sphere_centerz = -50
0053     # 
0054     # corresponding mirror parameters
0055     # SECTOR 0 MIRROR:
0056     #   mirror x = 113.888311 cm
0057     #   mirror y = 0.000000 cm
0058     #   mirror z = 94.364601 cm
0059     #   mirror R = 218.535399 cm
0060 
0061   end
0062 end