OPAL (Object Oriented Parallel Accelerator Library) 2024.2
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
19
20// Class OpalOutputPlane
21// ------------------------------------------------------------------------
23
24
26
27public:
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
65private:
66
67 // Not implemented.
70
71 // Clone constructor.
72 OpalOutputPlane(const std::string &name, OpalOutputPlane *parent);
73};
74
75#endif // OPAL_OpalOutputPlane_H
const std::string name
OpalElement(int size, const char *name, const char *help)
Exemplar constructor.
Interface for output plane element.
OpalOutputPlane()
Exemplar constructor.
virtual ~OpalOutputPlane()
OpalOutputPlane(const OpalOutputPlane &)
virtual void update()
Fill in all registered attributes.
void operator=(const OpalOutputPlane &)
virtual OpalOutputPlane * clone(const std::string &name)
Make clone.