OPAL (Object Oriented Parallel Accelerator Library)  2.2.0
OPAL
Micado.h
Go to the documentation of this file.
1 #ifndef OPAL_Micado_HH
2 #define OPAL_Micado_HH
3 
4 // ------------------------------------------------------------------------
5 // $RCSfile: Micado.h,v $
6 // ------------------------------------------------------------------------
7 // $Revision: 1.1.1.1 $
8 // ------------------------------------------------------------------------
9 // Copyright: see Copyright.readme
10 // ------------------------------------------------------------------------
11 //
12 // Class: Micado
13 //
14 // ------------------------------------------------------------------------
15 //
16 // $Date: 2000/03/27 09:33:45 $
17 // $Author: Andreas Adelmann $
18 //
19 // ------------------------------------------------------------------------
20 
21 #include "Tables/CorrectionBase.h"
24 
25 template <class T> class Matrix;
26 template <class T> class Vector;
27 
28 
30 // ------------------------------------------------------------------------
32 
33 class Micado: public CorrectionBase {
34 
35 public:
36 
38  Micado();
39 
40  virtual ~Micado();
41 
43  virtual Micado *clone(const std::string &name);
44 
46  virtual void execute();
47 
48 private:
49 
51  enum {
52  METHOD = CorrectionBase::SIZE, // The method to be used.
53  TOL, // The tolerance for the closed orbit.
54  ITERATIONS, // The number of iterations.
55  CORRECTORS, // The number of correctors to be used.
56  PLANE, // The plane(s) to be treated.
57  LISTC1, // List the correctors before correction.
58  LISTC, // List the correctors during correction.
59  LISTC2, // List the correctors after correction.
60  LISTM1, // List the monitors before correction.
61  LISTM2, // List the monitors after correction.
63  };
64 
65 private:
66 
67  // Not implemented.
68  Micado(const Micado &);
69  void operator=(const Micado &);
70 
72  Micado(const std::string &name, Micado *parent);
73 
74  // Set the correctors for this plane.
75  void applyCorrections(int mode, Vector<double> &X);
76 
77  // Find the closed orbit.
78  void findClosedOrbit();
79 
80  // Set up the influence matrix for one plane.
81  void setupInfluence(int mode, Matrix<double> &);
82 
83  // Set up the vector of readings for one plane.
84  void setupReadings(int mode, Vector<double> &B);
85 
86  // Solve the system of equations.
87  void solve(int plane, Matrix<double> &A, Vector<double> &B);
88 
89 
90  // The mapper being used for the orbit.
92 };
93 
94 #endif // OPAL_Micado_HH
void applyCorrections(int mode, Vector< double > &X)
Abstract base class for all orbit correction commands.
void solve(int plane, Matrix< double > &A, Vector< double > &B)
Definition: Micado.cpp:313
OwnPtr< AbstractMapper > itsMapper
Definition: Micado.h:91
Definition: rbendmap.h:8
virtual ~Micado()
Definition: Micado.cpp:78
void setupInfluence(int mode, Matrix< double > &)
Definition: Micado.cpp:240
virtual Micado * clone(const std::string &name)
Make clone.
Definition: Micado.cpp:82
Micado()
Exemplar constructor.
Definition: Micado.cpp:44
Class Micado.
Definition: Micado.h:33
const std::string name
void findClosedOrbit()
Definition: Micado.cpp:188
Matrix.
Definition: Matrix.h:38
Vector.
void setupReadings(int mode, Vector< double > &B)
Definition: Micado.cpp:300
void operator=(const Micado &)
virtual void execute()
Check validity of the table definition.
Definition: Micado.cpp:87