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.


Back to top