OPAL (Object Oriented Parallel Accelerator Library)  2021.1.99
OPAL
OpalTravelingWave.h
Go to the documentation of this file.
1 //
2 // Class OpalTravelingWave
3 // The TRAVELINGWAVE element.
4 //
5 // Copyright (c) 200x - 2020, Paul Scherrer Institut, Villigen PSI, Switzerland
6 // All rights reserved
7 //
8 // This file is part of OPAL.
9 //
10 // OPAL is free software: you can redistribute it and/or modify
11 // it under the terms of the GNU General Public License as published by
12 // the Free Software Foundation, either version 3 of the License, or
13 // (at your option) any later version.
14 //
15 // You should have received a copy of the GNU General Public License
16 // along with OPAL. If not, see <https://www.gnu.org/licenses/>.
17 //
18 #ifndef OPAL_OpalTravelingWave_HH
19 #define OPAL_OpalTravelingWave_HH
20 
21 #include "Elements/OpalElement.h"
22 
23 class OpalWake;
24 
26 
27 public:
28 
30  enum {
31  VOLT = COMMON, // The peak voltage.
32  DVOLT, // The peak voltage error
33  FREQ, // The RF frequency.
34  LAG, // The phase lag.
35  DLAG, // The phase lag error
36  FMAPFN, // The filename of the fieldmap
37  APVETO, // Do not use this cavity in the Autophase procedure
38  FAST, // Faster but less accurate
39  NUMCELLS, // Number of cells in a TW structure
40  DESIGNENERGY, // The mean kinetic energy at exit
41  MODE, // The phase shift between cells
42  SIZE
43  };
44 
47 
48  virtual ~OpalTravelingWave();
49 
51  virtual OpalTravelingWave *clone(const std::string &name);
52 
54  virtual void update();
55 
56 private:
57 
58  // Not implemented.
61 
62  // Clone constructor.
63  OpalTravelingWave(const std::string &name, OpalTravelingWave *parent);
64 
66 };
67 
68 #endif // OPAL_OpalTravelingWave_HH
const std::string name
virtual void update()
Update the embedded CLASSIC cavity.
void operator=(const OpalTravelingWave &)
OpalTravelingWave()
Exemplar constructor.
virtual OpalTravelingWave * clone(const std::string &name)
Make clone.
OpalTravelingWave(const OpalTravelingWave &)