OPAL (Object Oriented Parallel Accelerator Library)  2024.1
OPAL
OpalVacuum.h
Go to the documentation of this file.
1 //
2 // Class OpalVacuum
3 // Defines the VACUUM element and its attributes.
4 //
5 // Copyright (c) 2018 - 2021, Pedro Calvo, CIEMAT, Spain
6 // All rights reserved
7 //
8 // Implemented as part of the PhD thesis
9 // "Optimizing the radioisotope production of the novel AMIT
10 // superconducting weak focusing cyclotron"
11 //
12 // This file is part of OPAL.
13 //
14 // OPAL is free software: you can redistribute it and/or modify
15 // it under the terms of the GNU General Public License as published by
16 // the Free Software Foundation, either version 3 of the License, or
17 // (at your option) any later version.
18 //
19 // You should have received a copy of the GNU General Public License
20 // along with OPAL. If not, see <https://www.gnu.org/licenses/>.
21 //
22 #ifndef OPAL_OpalVacuum_HH
23 #define OPAL_OpalVacuum_HH
24 
25 #include "Elements/OpalElement.h"
26 
28 
29 class OpalVacuum: public OpalElement {
30 
31 public:
32 
34  enum {
35  GAS = COMMON, // Type of gas for residual vacuum
36  PRESSURE, // Pressure in mbar
37  TEMPERATURE, // Temperature of residual gas
38  PMAPFN, // The filename of the mid-plane pressure map
39  PSCALE, // A scalar to scale the P-field
40  STOP, // whether the secondary particles are tracked
42  };
43 
45  OpalVacuum();
46 
47  virtual ~OpalVacuum();
48 
50  virtual OpalVacuum* clone(const std::string& name);
51 
53  virtual void update();
54 
55 private:
56 
57  // Not implemented.
58  OpalVacuum(const OpalVacuum&);
59  void operator=(const OpalVacuum&);
60 
61  // Clone constructor.
62  OpalVacuum(const std::string& name, OpalVacuum* parent);
63 
65 };
66 
67 #endif // OPAL_OpalVacuum_HH
virtual ~OpalVacuum()
Definition: OpalVacuum.cpp:64
ParticleMatterInteraction * parmatint_m
Definition: OpalVacuum.h:64
virtual OpalVacuum * clone(const std::string &name)
Make clone.
Definition: OpalVacuum.cpp:69
void operator=(const OpalVacuum &)
const std::string name
virtual void update()
Update the embedded CLASSIC vacuum.
Definition: OpalVacuum.cpp:74
OpalVacuum()
Exemplar constructor.
Definition: OpalVacuum.cpp:28