class
LinearMapper
: public AbstractMapper
(Return to index)
Build a map using a linear map for each element.
Phase space coordinates numbering:
number | name | unit |
0 | x | metres |
1 | p_x/p_r | 1 |
2 | y | metres |
3 | p_y/p_r | 1 |
4 | v*delta_t | metres |
5 | delta_p/p_r | 1 |
Where pr is the constant reference momentum defining the reference
frame velocity, m is the rest mass of the particles, and v is the
instantaneous velocity of the particle.
Other units used:
quantity | unit |
reference momentum | electron-volts |
velocity | metres/second |
accelerating voltage | volts |
separator voltage | volts |
frequencies | hertz |
phase lags | 2*pi |
Approximations used:
- All elements are represented by maps for finite-length elements.
- Geometric transformations ignore rotations about transverse axes and
translations along the design orbit and truncate after second order.
- Beam-beam elements are two-dimensional, and the second moment <x,y>
of the opposite bunches vanish.
Type: |
Instantiable |
Superclasses: |
public AbstractMapper |
Include file: |
./Algorithms/LinearMapper.hh |
Inheritance
Synopsis (including inherited members):
- Public members:
- Protected Members:
-
void applyDrift
(double)
;
-
void applyEntranceFringe
(double,const BMultipoleField&,double)
;
-
void applyExitFringe
(double,const BMultipoleField&,double)
;
-
void applyLinearMap
(double,double,double,const FTps<double,2>&,const FTps<double,2>&)
;
-
void applyMultipoleBody
(double,double,const BMultipoleField&,double)
;
-
void applySBendBody
(double,double,double,const BMultipoleField&,double)
;
-
void applyThinMultipole
(const BMultipoleField&,double)
;
-
void applyTransform
(const Euclid3D&,double)
;
-
FTps<double,2> buildSBendVectorPotential
(const BMultipoleField&,double)
;
-
LinearMap<double,6> itsMap
;
-
FTps<double,6> buildMultipoleVectorPotential
(const BMultipoleField&)
;
-
const PartData itsReference
;
-
const Beamline& itsLine
;
-
bool back_beam
;
-
bool back_track
;
-
bool local_flip
;
-
double flip_B
;
-
double flip_s
;
Documentation:
- Public members:
-
LinearMapper
(const Beamline&,const PartData&,bool,bool)
;
- Constructor.
The beam line to be tracked is bl.
The particle reference data are taken from data.
If revBeam is true, the beam runs from s = C to s = 0.
If revTrack is true, we track against the beam.
-
virtual void getMap
(LinearMap<double,6>&)const
;
- Return the linear part of the accumulated map.
-
virtual void getMap
(FVps<double,6>&)const
;
- Return the full map accumulated so far.
-
virtual void setMap
(const LinearMap<double,6>&)
;
- Reset the linear part of the accumulated map for restart.
-
virtual void setMap
(const FVps<double,6>&)
;
- Reset the full map for restart.
-
virtual void visitAlignWrapper
(const AlignWrapper&)
;
- Apply the algorithm to an offset beamline object wrapper.
-
virtual void visitBeamBeam
(const BeamBeam&)
;
- Apply the algorithm to a BeamBeam.
-
virtual void visitCollimator
(const Collimator&)
;
- Apply the algorithm to a collimator.
-
virtual void visitComponent
(const Component&)
;
- Apply the algorithm to an arbitrary component.
This override calls the component to track the map.
-
virtual void visitCorrector
(const Corrector&)
;
- Apply the algorithm to a Corrector.
-
virtual void visitDiagnostic
(const Diagnostic&)
;
- Apply the algorithm to a Diagnostic.
-
virtual void visitDrift
(const Drift&)
;
- Apply the algorithm to a Drift.
-
virtual void visitLambertson
(const Lambertson&)
;
- Apply the algorithm to a Lambertson.
-
virtual void visitMapIntegrator
(const MapIntegrator&)
;
- Apply the algorithm to an integrator capable of mapping.
-
virtual void visitMarker
(const Marker&)
;
- Apply the algorithm to a Marker.
-
virtual void visitMonitor
(const Monitor&)
;
- Apply the algorithm to a Monitor.
-
virtual void visitMultipole
(const Multipole&)
;
- Apply the algorithm to a Multipole.
-
virtual void visitPatch
(const Patch&)
;
- Apply the algorithm to a patch.
-
virtual void visitRBend
(const RBend&)
;
- Apply the algorithm to a RBend.
-
virtual void visitRFCavity
(const RFCavity&)
;
- Apply the algorithm to a RFCavity.
-
virtual void visitRFQuadrupole
(const RFQuadrupole&)
;
- Apply the algorithm to a RFQuadrupole.
-
virtual void visitSBend
(const SBend&)
;
- Apply the algorithm to a SBend.
-
virtual void visitSeparator
(const Separator&)
;
- Apply the algorithm to a Separator.
-
virtual void visitSeptum
(const Septum&)
;
- Apply the algorithm to a Septum.
-
virtual void visitSolenoid
(const Solenoid&)
;
- Apply the algorithm to a Solenoid.
- Protected members:
-
void applyDrift
(double)
;
- Apply drift length.
Propagate current map through a drift.
-
void applyEntranceFringe
(double,const BMultipoleField&,double)
;
- Transforms fringing fields.
-
void applyLinearMap
(double,double,double,const FTps<double,2>&,const FTps<double,2>&)
;
- Apply linear map, defined by the linear expansions Fx and Fy.
-
void applyMultipoleBody
(double,double,const BMultipoleField&,double)
;
- Apply body of SBend.
-
void applySBendBody
(double,double,double,const BMultipoleField&,double)
;
- Apply thin multipole kick (integrated over length) to all particles.
-
void applyThinMultipole
(const BMultipoleField&,double)
;
- Thin multipole kick.
Apply a thin multipole kick (integrated over length) to current map.
-
void applyTransform
(const Euclid3D&,double)
;
- Apply transform.
Propagate current map through a geometric transformation.
-
FTps<double,2> buildSBendVectorPotential
(const BMultipoleField&,double)
;
- Construct the vector potential for a SBend.
Documentation generated by fci on Mon Feb 7 11:41:43 2000