18#ifndef LOSSDATASINK_H_
19#define LOSSDATASINK_H_
110 long long globalTrackStep);
114 const std::optional<std::pair<int, short int>>& turnBunchNumPair = std::nullopt);
131 void openFile(
const char* fname, h5_int32_t mode, h5_prop_t props);
135 if (ippl::Comm->rank() == 0) {
139 void openH5(h5_int32_t mode = H5_O_WRONLY);
142 if (ippl::Comm->rank() == 0) {
151 void saveH5(
unsigned int setIdx);
154 if (ippl::Comm->rank() == 0) {
200 std::set<SetStatistics> stats;
204 for (
unsigned int i = 0; i < numStatistics; ++i) {
206 if (setStats.nTotal_m > 0) {
207 stats.insert(setStats);
ippl::Vector< T, Dim > Vector_t
std::vector< Vector_t< double, 3 > > RefPartR_m
std::vector< size_t > turnNumber_m
h5_file_t H5file_m
used to write out data in H5hut mode
~LossDataSink() noexcept(false)
void setNumParticles(h5_int64_t num)
std::vector< double > refTime_m
void writeStepAttribFloat64(const char *attribute, const h5_float64_t *value, h5_int64_t size)
std::set< SetStatistics > computeStatistics(unsigned int numSets)
CollectionType collectionType_m
void addReferenceParticle(const Vector_t< double, 3 > &x, const Vector_t< double, 3 > &p, double time, double spos, long long globalTrackStep)
void save(unsigned int numSets=1, OpalData::OpenMode openMode=OpalData::OpenMode::UNDEFINED)
h5_int64_t H5call_m
Current record, or time step, of H5 file.
void openFile(const char *fname, h5_int32_t mode, h5_prop_t props)
void addParticle(const OpalParticle &, const std::optional< std::pair< int, short int > > &turnBunchNumPair=std::nullopt)
std::vector< size_t > bunchNumber_m
void writeStepAttribInt64(const char *attribute, const h5_int64_t *value, h5_int64_t size)
void writeFileAttribString(const char *attribute, const char *value)
std::vector< double > spos_m
void openH5(h5_int32_t mode=H5_O_WRONLY)
SetStatistics computeSetStatistics(unsigned int setIdx)
void splitSets(unsigned int numSets)
std::vector< OpalParticle > particles_m
bool hasTurnInformations() const
std::vector< Vector_t< double, 3 > > RefPartP_m
void writeDataFloat64(const char *name, const h5_float64_t *value)
void saveH5(unsigned int setIdx)
void writeDataInt64(const char *name, const h5_int64_t *value)
std::vector< h5_int64_t > globalTrackStep_m
bool hasNoParticlesToDump() const
std::vector< unsigned long > startSet_m
OpenMode
Enum for writing to files.
Vector_t< double, 3 > rprms_m
Vector_t< double, 3 > normalizedEps68Percentile_m
double stdKineticEnergy_m
Vector_t< double, 3 > normEmit_m
Vector_t< double, 3 > eps2_m
Vector_t< double, 3 > rsqsum_m
Vector_t< double, 3 > maxR_m
Vector_t< double, 3 > RefPartR_m
Vector_t< double, 3 > RefPartP_m
Vector_t< double, 3 > rrms_m
Vector_t< double, 3 > ninetyNinePercentile_m
Vector_t< double, 3 > ninetyFivePercentile_m
Vector_t< double, 3 > eps_norm_m
Vector_t< double, 3 > ninetyNine_NinetyNinePercentile_m
Vector_t< double, 3 > geomEmit_m
Vector_t< double, 3 > rmax_m
Vector_t< double, 3 > prms_m
double meanKineticEnergy_m
Vector_t< double, 3 > sixtyEightPercentile_m
Vector_t< double, 3 > pmean_m
Vector_t< double, 3 > fac_m
Vector_t< double, 3 > normalizedEps95Percentile_m
Vector_t< double, 3 > psqsum_m
Vector_t< double, 3 > rpsum_m
Vector_t< double, 3 > normalizedEps99Percentile_m
Vector_t< double, 3 > normalizedEps99_99Percentile_m
Vector_t< double, 3 > rmin_m
Vector_t< double, 3 > rmean_m
bool operator()(const SetStatistics &x, const SetStatistics &y) const