Correction Manual

Incomplete manual on orbit correction and orbit manupilations.

The specifications might be changed without notice. If you have
any complaint,

please do not hesitate to write to me.                   
kikuchim@post.kek.jp

1. Orbit correction

1.1 CorrectOrbit makes an orbit correction.

Usage:

  CorrectOrbit[orbit-kind,monitor,steer,optics,options]

  orbit-kind   : a character string or a list
of character strings which

                
represent an orbit object to be corrected, for example,

                
“X”, “EY”, {“X”,”Y”}, {“Y”,”EY”}, etc., where “X” represents

                
horizontal orbit and “EY” the vertical dispersion.

  monitor      : a list of
monitor element which is defined by the

                
function Monitor.

  steer        :
a list of steering element which is defined by the

                
function Steer.

  optics       : a list
of optics parameters which is defined by the function

                
CalculateOptics.

  options      : optional parameters
in the form of opt->parameters;

   ________________________________________________________________________

   option     default         
descriptions

   ————————————————————————

   SetSteer   True            
Set calculated steer values after correction.

   Solver     “LeastSquare”   
Type of solver routine. For MICADO method

                              
Solver->{“Micado”,n}, n is number

                              
of correctors.

   TotalKick  {Null,Null}     
Specifies a constraint to the steering strength.

                              
TotalKick->{ax,ay} means that the sum of the

                              
kick angle should be ax and ay for horizontal

                              
and vertical steers, respectively.

   ZeroSum    False           
ZeroSum->True is equivalent to TotalKick->{0,0}

   TotalDZ    Null            
TotalDZ->dz imposes a constraint on the correction

                              
that circumference is increased by amount of dz.

   DN        
{Null,Null}      DN->{dnx,dny} imposes a constraint
on the

                              
correction that the tune is increased by an amount

                              
of {dnx,dny}. DTune can be used instead of DN.

   Tune       {0,0}           
A list of tunes {nu-x,nu-y} which is used for a

                              
calculation of the response matrix. If tune is zero,

                              
that of the input optics is used.

   Orbit      {}              
A list of orbit values that is to be minimized.

   Calc       True            
Calulate a resultant optics and set it in the

                              
Twiss buffer.

   EPS        1e-8            
Precision in the LinearSolve. Epsilon can be

                              
used instead of EPS.

   Condition  {{},{}}         
A list {c,d}, where c is a matrix and d is

                              
a vector representing a condition equations

                              
that the solution should obeys:

                                           
c.x==d  .

                              
More convenient form of Condition option is

                              
available:

                              
Condition->{{“ZX.1″,”ZX.2″,”ZX.3”},{1,-2,1},0}}

                              
, for example, where “ZX” is the steer element.

                              
This is equivalent to a condition equation

                                   
ZX.1 – 2*ZX.3 + ZX.3 == 0  .

   Weight         
Automatic   A list of weight factors to the monitors. If Automatic

                              
Sqrt of beta-function at the monitors is

                              
applied. MonitorWeight can be used instead of Weight.

   CorrectorWeight Automatic   A list of weight
factors to the correctors. Default is

                              
unity.

   ExpectedOrbit   False      
Leave an expected orbit in the Twiss buffer

                              
after corretion. (ExpectedOrbit->True)

                              
overrides the (Calc->True). This option is

                              
convenient for OPERATE mode.

   MomentumCompaction  Null    If
not Null, an effect of circumference change is taken

                              
into account in the calculation of single-kick response.

   MomentumCorrection  False   Momentum
deviation is used as a corrector variable. If

                              
True, resultant momentum-deviation is appended as the

                              
last component of the list of kick angle.

   MomentumWeight      1      
Relative weight factor for the momentum deviation given

                              
in a unit of betabpmbetacorr/etabpm2.
Effective if

                              
MomentumCorrection->True.

   ————————————————————————

Result: (1) Returns a list of kick angle. If MomentumCorrection->True,
momentum

           
deviation is given as the last component.

        (2) Resultant steer
strength is set to “K0” slot in the LINE

           
if SetSteer->True (default).

        (3) Calculate optics
if Calc->True and ExpectedOrbit->False and

           
OPERATE flag is false.

        (4) Leave an estimated
orbit in the Twiss buffer if

           
ExpectedOrbit->True.

 

1.2 Monitor specifies beam position monitors.

Usage:

Monitor[mon,options]

  mon        
: a character string or a list of character strings that

                
match beam-line-elements which will be used as beam position

                
monitors in the CorrectOrbit. Any beam-line-element can be

                
specified. Example: “QF”, “QD*”, {“MX*”,”MY*”}.

  options      : optional
parameters in the form of opt->parameters;

    ________________________________________________________________________

    option     default       
descriptions

    ————————————————————————

    AttachTo   NearestMagnet  
Element to which the beam position monitor is

                              
assumed to be attached. Defualt selects nearest

                              
quad or sext.

    Offset     {0,0}          
Rms lateral offset relative to the AttachTo

                              
element. In every call of Monitor random Gaussian

                              
offset is generated.

    Jitter     {0,0}          
Mesurement jitter in rms for horizontal and vertical

                              
plane. In every call of CorrectOrbit, a random

                              
Gaussian jitter is added to the orbit.

————————————————————————

Result: (1) Returns a list that represent a specification of the
bpm:

             
1st component: a list of bpm positions in the lattice.

             
2nd component: a list of list of horizontal and vertical offsets.

             
3rd component: a list of horizontal and vertical jitter.

             
4th component: a list of AttachTo element.

2. Orbit manupilation with bump

2.1 Bump creates a “Bump” object.

Usage:

  b = Bump[str,options]

  str     :a list of steering element
which is defined by the

           function
Steer.

  options : optional parameters in the form of opt->parameters.

  The following is the optional parameters, which are used
to specify

  the desired shape of the bump.

    ____________________________________________________________________

    option     default       
descriptions

    ——————————————————————–

    Range      Null       
Specifies the range of the bump

    Center     Null       
Sepcifies the center position where

                           
the bump is placed.

    Plane      Automatic  
The plane of the bump. “H” or “V” or “HV”.

    Condition  Null       
Orbit conditions. The following forms

                          
are allowed,

                               
{“QF”,”X”,1e-3} or

                               
{{“QF”,”X”,1e-3},{“QF”,”PX”,0},…}

                           
The first one means that x should be 1 mm at “QF”,

                           
and the second that x should be 1 mm and px is

                           
0 mrad at “QF”.

    NumberOfSteers  6     
Number of steers used for the bump.

    ——————————————————————–

Result: (1) The symbol b is defined as a “Bump” object.

 

 

 

2.2 MakeBump makes an orbit bump.

Usage:

  MakeBump[b,str,optics,options]

     The function returns a list of steering

     strength and index of steers used for
making a bump whose specification

     is given by b. The resultant steer strength
is set to K0 slot in the LINE.

   b       :a bump
object defined through the function Bump as

               
b = Bump[str,Center->…,…]

   str     :a list of steering
element which is defined by the

           function
Steer.

   optics  :a list of optics parameters which
is defined by the function

                
CalculateOptics.

   options :optional parameters in the form of
opt->parameters;

    ____________________________________________________________________

    option     default       
descriptions

    ——————————————————————–

    SetSteer   True           
Set steer values.

    Calc       True           
Calulate a resultant optics and set it in

                              
the Twiss buffer.

    ——————————————————————–

Result: (1) Returns a list of kick angles and indices of used steers.

        (2) Resultant steer
strength is set to “K0” slot in the LINE

           
if SetSteer->True(default).

        (3) Calculate optics
if Calc->True and OPERATE flag is false.

 

 

 

 

2.3 CorrectOrbitBump makes an orbit correction using orbit-bumps
as

    correctors (knobs).

Usage:

CorrectOrbitBump[v,f,bpm,str,optics,options]

   The arguments are the same as those of CorrectOrbit
except for f,

   which specifies bump variables. The function returns
a list of

   steer strength and determined bump-variables. The
resultant

   steer strength is set to “K0” slot in the LINE. SetSteer
option

   is not accepted.

  v   a character string or a list of character
strings that represent

      an orbit object to be corrected,
for example,

                
“X”, “EY”, {“X”,”Y”}, {“Y”,”EY”}, etc.

  f   bump variables defined through any
of the following forms.

        f1=Bump[str,Center->..,…,Condition->{“QF”,”X”,#}]&

        f2=Bump[str,Center->..,…,Condition->{{“QF”,”X”,#1},

                                            
{“QF”,”PX”,#2}}]&

     or f3=Function[x,

            
Bump[str,Center->..,…,Condition->{“QF”,”X”,x}]

     or f4[x_]=Bump[str,Center->..,…,Condition->{“QF”,”X”,x}]

     or f={f1,f2,f3,f4}

  bpm     a list of monitor element
which is defined by the

          function
Monitor.

  str     a list of steering element
which is defined by the

          function
Steer.

  optics  a list of optics parameters which is
defined by the function

           CalculateOptics.

  options optional parameters in the form of opt->parameters,
see

          explanations
of CorrectOrbit

Result: (1) Returns a list of kick angles and bump variable.

        (2) Resultant steer
strength is set to “K0” slot in the LINE.

        (3) Calculates optics
if Calc->True and ExpectedOrbit->False and

           
OPERATE flag is false.

        (4) Leaves an estimated
orbit in the Twiss buffer if

           
ExpectedOrbit->True.