OPALX (Object Oriented Parallel Accelerator Library for Exascal) MINIorX
OPALX
Drift.h
Go to the documentation of this file.
1#ifndef CLASSIC_Drift_HH
2#define CLASSIC_Drift_HH
3
4// ------------------------------------------------------------------------
5// $RCSfile: Drift.h,v $
6// ------------------------------------------------------------------------
7// $Revision: 1.1.1.1 $
8// ------------------------------------------------------------------------
9// Copyright: see Copyright.readme
10// ------------------------------------------------------------------------
11//
12// Class: Drift
13// Defines the abstract interface for a drift space.
14//
15// ------------------------------------------------------------------------
16// Class category: AbsBeamline
17// ------------------------------------------------------------------------
18//
19// $Date: 2000/03/27 09:32:31 $
20// $Author: fci $
21//
22// ------------------------------------------------------------------------
23
25
26// Class Drift
27// ------------------------------------------------------------------------
29// Class Drift defines the abstract interface for a drift space.
30
31class Drift : public Component {
32public:
34 explicit Drift(const std::string& name);
35
36 Drift();
37 Drift(const Drift& right);
38 virtual ~Drift();
39
41 virtual void accept(BeamlineVisitor&) const override;
42
43 virtual void initialise(PartBunch_t* bunch, double& startField, double& endField) override;
44
45 virtual void finalise() override;
46
47 virtual bool bends() const override;
48
49 virtual ElementType getType() const override;
50
51 virtual void getDimensions(double& zBegin, double& zEnd) const override;
52
53 // set number of slices for map tracking
54 void setNSlices(const std::size_t& nSlices); // Philippe was here
55
56 // set number of slices for map tracking
57 std::size_t getNSlices() const; // Philippe was here
58
59 virtual int getRequiredNumberOfTimeSteps() const override;
60
61private:
63 std::size_t nSlices_m;
64
65 // Not implemented.
66 void operator=(const Drift&);
67};
68
70 return 1;
71}
72
73#endif // CLASSIC_Drift_HH
ElementType
Definition ElementBase.h:88
PartBunch< PLayout_t< double, 3 >, double, 3 > PartBunch_t
Component(const std::string &name)
Constructor with given name.
Definition Component.cpp:44
void operator=(const Drift &)
virtual bool bends() const override
Definition Drift.cpp:75
virtual ~Drift()
Definition Drift.cpp:47
virtual void finalise() override
Definition Drift.cpp:72
Drift()
Definition Drift.cpp:30
Drift(const std::string &name)
Constructor with given name.
Definition Drift.cpp:41
virtual void initialise(PartBunch_t *bunch, double &startField, double &endField) override
Definition Drift.cpp:55
virtual void getDimensions(double &zBegin, double &zEnd) const override
Definition Drift.cpp:79
virtual int getRequiredNumberOfTimeSteps() const override
Definition Drift.h:69
std::size_t nSlices_m
Definition Drift.h:63
void setNSlices(const std::size_t &nSlices)
Definition Drift.cpp:63
virtual ElementType getType() const override
Get element type std::string.
Definition Drift.cpp:84
virtual void accept(BeamlineVisitor &) const override
Apply visitor to Drift.
Definition Drift.cpp:51
double startField_m
Definition Drift.h:62
std::size_t getNSlices() const
Definition Drift.cpp:68