OPAL (Object Oriented Parallel Accelerator Library)  2021.1.99
OPAL
OpalDrift.h
Go to the documentation of this file.
1 //
2 // Class OpalDrift
3 // The class of OPAL drift spaces.
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_OpalDrift_HH
19 #define OPAL_OpalDrift_HH
20 
21 #include "Elements/OpalElement.h"
22 
23 class BoundaryGeometry;
24 
25 class OpalWake;
27 
28 class OpalDrift: public OpalElement {
29 
30 public:
31 
32  enum {
33  GEOMETRY = COMMON, // geometry of boundary, one more enum member besides the common ones in OpalElement.
34  NSLICES, // The number of slices / steps per element for map tracking
35  SIZE
36  };
37 
39  OpalDrift();
40 
41  virtual ~OpalDrift();
42 
44  virtual OpalDrift* clone(const std::string& name);
45 
47  // Return true.
48  virtual bool isDrift() const;
49 
51  virtual void update();
52 
53 private:
54 
55  // Not implemented.
57  void operator=(const OpalDrift&);
58 
59  // Clone constructor.
60  OpalDrift(const std::string& name, OpalDrift* parent);
61 
65 };
66 
67 #endif // OPAL_OpalDrift_HH
const std::string name
virtual bool isDrift() const
Test for drift.
Definition: OpalDrift.cpp:74
@ GEOMETRY
Definition: OpalDrift.h:33
void operator=(const OpalDrift &)
OpalDrift(const OpalDrift &)
virtual void update()
Update the embedded CLASSIC drift.
Definition: OpalDrift.cpp:79
ParticleMatterInteraction * parmatint_m
Definition: OpalDrift.h:63
BoundaryGeometry * obgeo_m
Definition: OpalDrift.h:64
OpalDrift()
Exemplar constructor.
Definition: OpalDrift.cpp:26
virtual ~OpalDrift()
Definition: OpalDrift.cpp:59
virtual OpalDrift * clone(const std::string &name)
Make clone.
Definition: OpalDrift.cpp:69
OpalWake * owk_m
Definition: OpalDrift.h:62