OPAL (Object Oriented Parallel Accelerator Library)  2021.1.99
OPAL
OpalPepperPot.h
Go to the documentation of this file.
1 //
2 // Class OpalPepperPot
3 // The PEPPERPOT element.
4 // The class of OPAL elliptic collimators.
5 //
6 // Copyright (c) 200x - 2020, Paul Scherrer Institut, Villigen PSI, Switzerland
7 // All rights reserved
8 //
9 // This file is part of OPAL.
10 //
11 // OPAL is free software: you can redistribute it and/or modify
12 // it under the terms of the GNU General Public License as published by
13 // the Free Software Foundation, either version 3 of the License, or
14 // (at your option) any later version.
15 //
16 // You should have received a copy of the GNU General Public License
17 // along with OPAL. If not, see <https://www.gnu.org/licenses/>.
18 //
19 #ifndef OPAL_OpalPepperPot_HH
20 #define OPAL_OpalPepperPot_HH
21 
22 #include "Elements/OpalElement.h"
23 
25 
26 class OpalPepperPot: public OpalElement {
27 
28 public:
29 
31  enum {
32  R = COMMON, // The horizontal half-size of a hole
37  SIZE
38  };
39 
41  OpalPepperPot();
42 
43  virtual ~OpalPepperPot();
44 
46  virtual OpalPepperPot* clone(const std::string& name);
47 
49  virtual void update();
50 
51 private:
52 
53  // Not implemented.
55  void operator=(const OpalPepperPot&);
56 
57  // Clone constructor.
58  OpalPepperPot(const std::string& name, OpalPepperPot* parent);
59 
61 };
62 
63 #endif // OPAL_OpalPepperPot_HH
const std::string name
ParticleMatterInteraction * parmatint_m
Definition: OpalPepperPot.h:60
virtual void update()
Update the embedded CLASSIC collimator.
void operator=(const OpalPepperPot &)
OpalPepperPot(const OpalPepperPot &)
OpalPepperPot()
Exemplar constructor.
virtual OpalPepperPot * clone(const std::string &name)
Make clone.
virtual ~OpalPepperPot()