OPAL (Object Oriented Parallel Accelerator Library)  2.2.0
OPAL
TrackRun.h
Go to the documentation of this file.
1 #ifndef OPAL_TrackRun_HH
2 #define OPAL_TrackRun_HH
3 
4 // ------------------------------------------------------------------------
5 // $RCSfile: TrackRun.h,v $
6 // ------------------------------------------------------------------------
7 // $Revision: 1.1.1.1.4.1 $
8 // ------------------------------------------------------------------------
9 // Copyright: see Copyright.readme
10 // ------------------------------------------------------------------------
11 //
12 // Class: TrackRun
13 //
14 // ------------------------------------------------------------------------
15 //
16 // $Date: 2004/11/12 20:10:12 $
17 // $Author: adelmann $
18 //
19 // ------------------------------------------------------------------------
20 
21 #include "AbstractObjects/Action.h"
22 
23 #include <string>
24 
25 class Beam;
26 class OpalData;
27 class DataSink;
28 class Distribution;
29 class Tracker;
30 class ParallelTTracker;
31 class FieldSolver;
32 class H5PartWrapper;
33 
34 // Class TrackRun
35 // ------------------------------------------------------------------------
37 
38 class TrackRun: public Action {
39 
40 public:
41 
43  TrackRun();
44 
45  virtual ~TrackRun();
46 
48  virtual TrackRun *clone(const std::string &name);
49 
51  virtual void execute();
52 
53 private:
54 
55  // Not implemented.
56  TrackRun(const TrackRun &);
57  void operator=(const TrackRun &);
58 
59  // Clone constructor.
60  TrackRun(const std::string &name, TrackRun *parent);
61 
62  void setupSliceTracker();
63  void setupTTracker();
64  void setupCyclotronTracker();
65  void setupThickTracker();
66  void setupFieldsolver();
67 
68  void initDataSink(const int& numBunch = 1);
69 
70  double setDistributionParallelT(Beam *beam);
71 
72  // Pointer to tracking algorithm.
74 
76 
77  std::vector<Distribution *> distrs_m;
78 
80 
82 
84 
86 
87  static const std::string defaultDistribution;
88 };
89 
90 #endif // OPAL_TrackRun_HH
double setDistributionParallelT(Beam *beam)
Definition: TrackRun.cpp:806
The global OPAL structure.
Definition: OpalData.h:54
The RUN command.
Definition: TrackRun.h:38
void setupSliceTracker()
Definition: TrackRun.cpp:232
std::vector< Distribution * > distrs_m
Definition: TrackRun.h:77
The base class for all OPAL actions.
Definition: Action.h:30
The FieldSolver definition.
Definition: FieldSolver.h:43
void setupTTracker()
Definition: TrackRun.cpp:463
TrackRun()
Exemplar constructor.
Definition: TrackRun.cpp:91
Distribution * dist
Definition: TrackRun.h:75
void setupFieldsolver()
Definition: TrackRun.cpp:753
OpalData * opal
Definition: TrackRun.h:85
virtual TrackRun * clone(const std::string &name)
Make clone.
Definition: TrackRun.cpp:154
void initDataSink(const int &numBunch=1)
Definition: TrackRun.cpp:790
DataSink * ds
Definition: TrackRun.h:81
H5PartWrapper * phaseSpaceSink_m
Definition: TrackRun.h:83
void setupThickTracker()
Definition: TrackRun.cpp:360
virtual ~TrackRun()
Definition: TrackRun.cpp:148
static const std::string defaultDistribution
Definition: TrackRun.h:87
The BEAM definition.
Definition: Beam.h:35
const std::string name
Tracker * itsTracker
Definition: TrackRun.h:73
void operator=(const TrackRun &)
void setupCyclotronTracker()
Definition: TrackRun.cpp:592
virtual void execute()
Execute the command.
Definition: TrackRun.cpp:159
FieldSolver * fs
Definition: TrackRun.h:79
Track particles or bunches.
Definition: Tracker.h:84