18 #ifndef LOSSDATASINK_H_
19 #define LOSSDATASINK_H_
27 #include <boost/optional.hpp>
99 long long globalTrackStep);
101 void addParticle(
const OpalParticle &,
const boost::optional<std::pair<int, short int>> &turnBunchNumPair = boost::none);
110 os_m.open(
fn_m.c_str(), std::ios::out);
113 void openH5(h5_int32_t mode = H5_O_WRONLY);
117 os_m.open(
fn_m.c_str(), std::ios::app);
125 void saveH5(
unsigned int setIdx);
180 std::set<SetStatistics> stats;
184 for (
unsigned int i = 0; i < numStatistics; ++ i) {
186 if (setStats.nTotal_m > 0) {
187 stats.insert(setStats);
OPENMODE
Enum for writing to files.
std::vector< size_t > turnNumber_m
std::vector< Vector_t > RefPartR_m
void addReferenceParticle(const Vector_t &x, const Vector_t &p, double time, double spos, long long globalTrackStep)
h5_file_t H5file_m
used to write out data in H5hut mode
void addParticle(const OpalParticle &, const boost::optional< std::pair< int, short int >> &turnBunchNumPair=boost::none)
~LossDataSink() noexcept(false)
std::vector< double > refTime_m
std::set< SetStatistics > computeStatistics(unsigned int numSets)
CollectionType collectionType_m
std::vector< Vector_t > RefPartP_m
h5_int64_t H5call_m
Current record, or time step, of H5 file.
void reportOnError(h5_int64_t rc, const char *file, int line)
std::vector< size_t > bunchNumber_m
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
void save(unsigned int numSets=1, OpalData::OPENMODE openMode=OpalData::OPENMODE::UNDEFINED)
bool hasTurnInformations() const
void saveH5(unsigned int setIdx)
std::vector< h5_int64_t > globalTrackStep_m
bool hasNoParticlesToDump() const
std::vector< unsigned long > startSet_m