OPAL (Object Oriented Parallel Accelerator Library)  2021.1.99
OPAL
BeamSequence.h
Go to the documentation of this file.
1 #ifndef OPAL_BeamSequence_HH
2 #define OPAL_BeamSequence_HH
3 
4 // ------------------------------------------------------------------------
5 // $RCSfile: BeamSequence.h,v $
6 // ------------------------------------------------------------------------
7 // $Revision: 1.1.1.1 $
8 // ------------------------------------------------------------------------
9 // Copyright: see Copyright.readme
10 // ------------------------------------------------------------------------
11 //
12 // Class: BeamSequence
13 //
14 // ------------------------------------------------------------------------
15 //
16 // $Date: 2000/03/27 09:33:34 $
17 // $Author: Andreas Adelmann $
18 //
19 // ------------------------------------------------------------------------
20 
22 
23 class Beamline;
24 
25 
26 // Class BeamSequence
27 // ------------------------------------------------------------------------
29 // It implements the common behaviour of sequences, it can also be used via
30 // dynamic casting to determine whether an object represents a sequence.
31 
32 class BeamSequence: public Element {
33 
34 public:
35 
36  virtual ~BeamSequence();
37 
39  // Copy also the line list.
40  virtual BeamSequence *copy(const std::string &name) = 0;
41 
43  static BeamSequence *find(const std::string &name);
44 
46  // Return the string "SEQUENCE".
47  virtual const std::string getCategory() const;
48 
50  // The result it the ideal line.
51  virtual Beamline *fetchLine() const = 0;
52 
53 protected:
54 
56  BeamSequence(int size, const char *name, const char *help);
57 
59  // The clone will be [b]empty[/b].
60  // It has to be filled in by the corresponding parser.
61  BeamSequence(const std::string &name, BeamSequence *parent);
62 
63 private:
64 
65  // Not implemented.
68  void operator=(const BeamSequence &);
69 };
70 
71 #endif // OPAL_BeamSequence_HH
const std::string name
The base class for all OPAL beam lines and sequences.
Definition: BeamSequence.h:32
void operator=(const BeamSequence &)
virtual const std::string getCategory() const
Return the object category as a string.
virtual ~BeamSequence()
virtual Beamline * fetchLine() const =0
Return the embedded CLASSIC beam line.
BeamSequence(const BeamSequence &)
static BeamSequence * find(const std::string &name)
Find a BeamSequence by name.
virtual BeamSequence * copy(const std::string &name)=0
Make complete copy.
An abstract sequence of beam line components.
Definition: Beamline.h:34