OPAL (Object Oriented Parallel Accelerator Library)  2024.1
OPAL
OpalOutputPlane.h
Go to the documentation of this file.
1 // Copyright (c) 2023, Chris Rogers
2 // All rights reserved
3 //
4 // This file is part of OPAL.
5 //
6 // OPAL is free software: you can redistribute it and/or modify
7 // it under the terms of the GNU General Public License as published by
8 // the Free Software Foundation, either version 3 of the License, or
9 // (at your option) any later version.
10 //
11 // You should have received a copy of the GNU General Public License
12 // along with OPAL. If not, see <https://www.gnu.org/licenses/>.
13 //
14 
15 #ifndef OPAL_OpalOutputPlane_H
16 #define OPAL_OpalOutputPlane_H
17 
18 #include "Elements/OpalElement.h"
19 
20 // Class OpalOutputPlane
21 // ------------------------------------------------------------------------
23 
24 
26 
27 public:
28 
30  enum {
31  CENTRE = COMMON, // plane centre position (3-vector)
32  NORMAL, // plane normal (3-vector)
33  WIDTH, // maximum allowed horizontal displacement from centre, in global x-y plane
34  HEIGHT, // maximum allowed vertical displacement from centre, in global vertical direction
35  RADIUS, // maximum allowed radial displacement from centre
36 
37  XSTART, // "PROBE"-style placement - horizontal start position
38  XEND, // "PROBE"-style placement - horizontal end position
39  YSTART, // "PROBE"-style placement - vertical start position
40  YEND, // "PROBE"-style placement - vertical end position
41 
42  PLACEMENT_STYLE, // "PROBE" or "CENTRE_NORMAL"
43 
44  ALGORITHM, // algorithm used to find crossing-point
45  TOLERANCE, // tolerance on position estimate
46  REFERENCE_ALIGNMENT_PARTICLE, // if true, centres on reference particle
47  VERBOSE, // set to 0 - 4 to get more verbose output
48 
50  };
53 
54  virtual ~OpalOutputPlane();
55 
57  virtual OpalOutputPlane *clone(const std::string &name);
58 
60  //virtual void fillRegisteredAttributes(const ElementBase &, ValueFlag);
61 
63  virtual void update();
64 
65 private:
66 
67  // Not implemented.
69  void operator=(const OpalOutputPlane &);
70 
71  // Clone constructor.
72  OpalOutputPlane(const std::string &name, OpalOutputPlane *parent);
73 };
74 
75 #endif // OPAL_OpalOutputPlane_H
virtual OpalOutputPlane * clone(const std::string &name)
Make clone.
virtual void update()
Fill in all registered attributes.
virtual ~OpalOutputPlane()
const std::string name
Interface for output plane element.
void operator=(const OpalOutputPlane &)
OpalOutputPlane()
Exemplar constructor.