43 #ifndef TRAJECTORYDIAGNOSTICS_HPP
44 #define TRAJECTORYDIAGNOSTICS_HPP 1
64 std::vector<double> _data;
90 std::vector<double> &
data(
void ) {
return( _data ); }
94 const std::vector<double> &
data(
void )
const {
return( _data ); }
98 size_t size(
void )
const {
return( _data.size() ); }
106 const double &
operator()(
size_t i )
const {
return( _data[i] ); }
114 const double &
operator[](
size_t i )
const {
return( _data[i] ); }
129 std::vector<TrajectoryDiagnosticColumn> _column;
140 for(
size_t a = 0; a < diag.size(); a++ )
147 for(
size_t a = 0; a < _column.size(); a++ )
148 _column[a].
mirror( axis, level );
166 return( _column.size() );
172 if( _column.size() > 0 )
173 return( _column[0].size() );
186 return( _column[i] );
192 return( _column[i] );
199 return( _column[i](j) );
206 return( _column[i](j) );
212 _column[i].add_data( x );
268 const std::vector<double> &xp,
269 const std::vector<double> &I );
275 const std::vector<double> &xp );
286 Emittance(
size_t xsize,
size_t xpsize,
const double range[4],
287 const std::vector<double> &I );
359 const std::vector<double> &r,
360 const std::vector<double> &rp,
361 const std::vector<double> &ap,
362 const std::vector<double> &I );
double xave(void) const
Return average position (center location) of emittance distribution.
Definition: trajectorydiagnostics.hpp:291
trajectory_diagnostic_e
Type of diagnostic for trajectories.
Definition: types.hpp:165
double _xave
Definition: trajectorydiagnostics.hpp:242
TrajectoryDiagnosticData()
Create new empty diagnostic data object.
Definition: trajectorydiagnostics.hpp:135
size_t size(void) const
Get size of diagnostic data vector.
Definition: trajectorydiagnostics.hpp:98
double epsilon(void) const
Return rms emittance.
Definition: trajectorydiagnostics.hpp:311
double _xp2
Definition: trajectorydiagnostics.hpp:246
void mirror(coordinate_axis_e axis, double level)
Mirror data columns along plane at axis = level.
Definition: trajectorydiagnostics.hpp:146
Histogram data handling for 1D and 2D
double beta(void) const
Return of emittance distribution.
Definition: trajectorydiagnostics.hpp:303
Class for trajectory diagnostic data column.
Definition: trajectorydiagnostics.hpp:60
void clear()
Clear all data and diagnostic types.
Definition: trajectorydiagnostics.hpp:153
trajectory_diagnostic_e diagnostic(void) const
Get diagnostic type.
Definition: trajectorydiagnostics.hpp:102
void free_histogram(void)
Free emittance histogram.
Definition: trajectorydiagnostics.hpp:374
double _angle
Definition: trajectorydiagnostics.hpp:254
double _xpave
Definition: trajectorydiagnostics.hpp:243
void add_data(size_t i, double x)
Add data point to i:th diagnostic column.
Definition: trajectorydiagnostics.hpp:211
void mirror(coordinate_axis_e axis, double level)
Add mirrored trajectory diagnostic data to the column.
Emittance()
Default constructor for emittance statistics.
size_t diag_size() const
Return number of data columns.
Definition: trajectorydiagnostics.hpp:165
Class for emittance statistics.
Definition: trajectorydiagnostics.hpp:236
void debug_print(std::ostream &os) const
Print debugging information to os.
Class for trajectory diagnostic data.
Definition: trajectorydiagnostics.hpp:126
const double & operator()(size_t j, size_t i) const
Return const reference to j:th trajectory data in i:th diagnostic column.
Definition: trajectorydiagnostics.hpp:198
double rminor(void) const
Return minor radius of fitted rms ellipse.
Definition: trajectorydiagnostics.hpp:323
std::vector< double > & data(void)
Get a reference to diagnostic data vector.
Definition: trajectorydiagnostics.hpp:90
TrajectoryDiagnosticData(std::vector< trajectory_diagnostic_e > diag)
Create diagnostic data object with diagnostic types defined in vector diag.
Definition: trajectorydiagnostics.hpp:139
size_t traj_size() const
Return number of trajectories in data.
Definition: trajectorydiagnostics.hpp:171
double _beta
Definition: trajectorydiagnostics.hpp:250
void add_data(double x)
Add diagnostic data point to column.
Definition: trajectorydiagnostics.hpp:84
void add_data_column(trajectory_diagnostic_e diag)
Add data column with type diag.
Definition: trajectorydiagnostics.hpp:159
double _x2
Definition: trajectorydiagnostics.hpp:245
double _gamma
Definition: trajectorydiagnostics.hpp:251
double xpave(void) const
Return average angle (center location) of emittance distribution.
Definition: trajectorydiagnostics.hpp:295
double & operator[](size_t i)
Get reference to data element i.
Definition: trajectorydiagnostics.hpp:118
Class for 2d histogram type representation of data.
Definition: histogram.hpp:186
double gamma(void) const
Return of emittance distribution.
Definition: trajectorydiagnostics.hpp:307
coordinate_axis_e
Coordinate axis identifier.
Definition: types.hpp:139
double _alpha
Definition: trajectorydiagnostics.hpp:249
double angle(void) const
Return angle of fitted rms ellipse.
Definition: trajectorydiagnostics.hpp:315
double alpha(void) const
Return of emittance distribution.
Definition: trajectorydiagnostics.hpp:299
Class for emittance conversion from (r,r') to (x,x')
Definition: trajectorydiagnostics.hpp:336
const double & operator()(size_t i) const
Get const reference to data element i.
Definition: trajectorydiagnostics.hpp:106
double _epsilon
Definition: trajectorydiagnostics.hpp:252
EmittanceConv(int n, int m, const std::vector< double > &r, const std::vector< double > &rp, const std::vector< double > &ap, const std::vector< double > &I)
Constructor for (x,x') emittance data and statistics from (r,r') data.
const double & operator[](size_t i) const
Get const reference to data element i.
Definition: trajectorydiagnostics.hpp:114
double _rmajor
Definition: trajectorydiagnostics.hpp:255
const TrajectoryDiagnosticColumn & operator()(size_t i) const
Return i:th diagnostic type.
Definition: trajectorydiagnostics.hpp:185
~EmittanceConv()
Destructor for emittance converter.
trajectory_diagnostic_e diagnostic(size_t i) const
Return i:th diagnostic type.
Definition: trajectorydiagnostics.hpp:179
double _xxp
Definition: trajectorydiagnostics.hpp:247
double _rminor
Definition: trajectorydiagnostics.hpp:256
const Histogram2D & histogram(void) const
Get a const reference to histogram built.
Definition: trajectorydiagnostics.hpp:370
const std::vector< double > & data(void) const
Get a const reference to diagnostic data vector.
Definition: trajectorydiagnostics.hpp:94
TrajectoryDiagnosticColumn & operator()(size_t i)
Return i:th diagnostic column.
Definition: trajectorydiagnostics.hpp:191
double rmajor(void) const
Return major radius of fitted rms ellipse.
Definition: trajectorydiagnostics.hpp:319
double & operator()(size_t j, size_t i)
Return reference to j:th trajectory data in i:th diagnostic column.
Definition: trajectorydiagnostics.hpp:205
double & operator()(size_t i)
Get reference to data element i.
Definition: trajectorydiagnostics.hpp:110
double _Isum
Definition: trajectorydiagnostics.hpp:240
TrajectoryDiagnosticColumn(trajectory_diagnostic_e diag)
Create new diagnostic data column with type diag.
Definition: trajectorydiagnostics.hpp:70