OPAL (Object Oriented Parallel Accelerator Library)  2021.1.99
OPAL
OpalStripper.h
Go to the documentation of this file.
1 //
2 // Class OpalStripper
3 // The Stripper element
4 //
5 // Copyright (c) 2011, Jianjun Yang, Paul Scherrer Institut, Villigen PSI, Switzerland
6 // Copyright (c) 2014, 2017-2018, Paul Scherrer Institut, Villigen PSI, Switzerland
7 // All rights reserved
8 //
9 // Implemented as part of the PhD thesis
10 // "Beam dynamics in high intensity cyclotrons including neighboring bunch effects"
11 // and the paper
12 // "Beam dynamics in high intensity cyclotrons including neighboring bunch effects:
13 // Model, implementation, and application"
14 // (https://journals.aps.org/prab/pdf/10.1103/PhysRevSTAB.13.064201)
15 //
16 // This file is part of OPAL.
17 //
18 // OPAL is free software: you can redistribute it and/or modify
19 // it under the terms of the GNU General Public License as published by
20 // the Free Software Foundation, either version 3 of the License, or
21 // (at your option) any later version.
22 //
23 // You should have received a copy of the GNU General Public License
24 // along with OPAL. If not, see <https://www.gnu.org/licenses/>.
25 //
26 #ifndef OPAL_OpalStripper_HH
27 #define OPAL_OpalStripper_HH
28 
29 #include "Elements/OpalElement.h"
30 
31 class OpalStripper: public OpalElement {
32 
33 public:
34 
36  enum {
37  XSTART = COMMON, // Start of x coordinate
38  XEND, // End of x coordinate
39  YSTART, // Start of y coordinate
40  YEND, // End of y coordinate
41  WIDTH, // Width of the probe
42  OPCHARGE, // Charge number of the outcome particle
43  OPMASS, // Mass of the outcome particle
46  SIZE
47  };
48 
49  OpalStripper();
50 
51  virtual ~OpalStripper();
52 
54  virtual OpalStripper *clone(const std::string &name);
55 
57  virtual void update();
58 
59 private:
60 
61  // Not implemented.
63  void operator=(const OpalStripper &);
64 
65  // Clone constructor.
66  OpalStripper(const std::string &name, OpalStripper *parent);
67 
68 };
69 
70 #endif // OPAL_OpalStripper_HH
const std::string name
virtual OpalStripper * clone(const std::string &name)
Make clone.
virtual void update()
Update the embedded CLASSIC septum.
virtual ~OpalStripper()
void operator=(const OpalStripper &)
OpalStripper(const OpalStripper &)