MARLEY (Model of Argon Reaction Low Energy Yields)  v1.2.0
A Monte Carlo event generator for tens-of-MeV neutrino interactions
Public Member Functions | List of all members
marley::TextOutputFile Class Reference
Inheritance diagram for marley::TextOutputFile:
marley::OutputFile

Public Member Functions

 TextOutputFile (const std::string &name, const std::string &format, const std::string &mode, bool force=false, int indent=-1)
 
int_fast64_t bytes_written () override
 The number of bytes that have been written during the current MARLEY session to this file.
 
virtual void close (const marley::JSON &json_config, const marley::Generator &gen, const long num_events) override
 Close the output file and perform any necessary cleanup. More...
 
virtual void open () override
 Open the output file for writing. More...
 
virtual bool resume (std::unique_ptr< marley::Generator > &gen, long &num_previous_events) override
 Load a marley::Generator object whose configuration and state were saved to the metadata in a ROOT or JSON format output file. More...
 
void set_indent (int indent)
 
virtual void write_event (const marley::Event *event) override
 Write a new marley::Event to this output file. More...
 
virtual void write_flux_avg_tot_xsec (double avg_tot_xsec) override
 If needed (for the HEPEVT and ASCII formats), write the flux-averaged total cross section to the file. More...
 
void write_generator_state (const marley::JSON &json_config, const marley::Generator &gen, const long num_events) override
 For the file formats that support it, write metadata containing the generator state and configuration to the output file.
 
- Public Member Functions inherited from marley::OutputFile
 OutputFile (const std::string &name, const std::string &format, const std::string &mode, bool force=false)
 
bool mode_is_resume () const
 
const std::string & name () const
 

Additional Inherited Members

- Public Types inherited from marley::OutputFile
enum class  Format { ROOT , HEPEVT , JSON , ASCII }
 
- Protected Types inherited from marley::OutputFile
enum class  Mode { OVERWRITE , APPEND , RESUME }
 
- Protected Member Functions inherited from marley::OutputFile
bool check_if_file_exists (const std::string &filename)
 Checks that a given file exists (and is readable)
 
std::unique_ptr< marley::Generatorrestore_generator (const marley::JSON &config)
 Helper function for resume() that instantiates a marley::Generator object given the previous JSON configuration object.
 
- Protected Attributes inherited from marley::OutputFile
bool force_
 
Format format_
 Format to use when writing events to the file.
 
Mode mode_
 
std::string name_
 Name of the file to receive output.
 

Member Function Documentation

◆ close()

void marley::TextOutputFile::close ( const marley::JSON json_config,
const marley::Generator gen,
const long  num_events 
)
overridevirtual

Close the output file and perform any necessary cleanup.

This function also saves information about the generator configuration and state to those output file formats that support it.

Implements marley::OutputFile.

◆ open()

void marley::TextOutputFile::open ( )
overridevirtual

Open the output file for writing.

This function will also make whatever preparations are necessary before the first call to write_event()

Implements marley::OutputFile.

◆ resume()

bool marley::TextOutputFile::resume ( std::unique_ptr< marley::Generator > &  gen,
long &  num_previous_events 
)
overridevirtual

Load a marley::Generator object whose configuration and state were saved to the metadata in a ROOT or JSON format output file.

Parameters
[out]num_previous_eventsThe number of events previously saved to the output file
Returns
True if the generator is successfully restored using the file's saved metadata, or false otherwise.

Implements marley::OutputFile.

◆ write_event()

void marley::TextOutputFile::write_event ( const marley::Event event)
overridevirtual

Write a new marley::Event to this output file.

If a nullptr is passed to this function, then a marley::Error will be thrown

Implements marley::OutputFile.

◆ write_flux_avg_tot_xsec()

void marley::TextOutputFile::write_flux_avg_tot_xsec ( double  avg_tot_xsec)
overridevirtual

If needed (for the HEPEVT and ASCII formats), write the flux-averaged total cross section to the file.

This function is a no-op unless we're at the beginning of the output stream.

Todo:
Consider other ways of handling this

Implements marley::OutputFile.


The documentation for this class was generated from the following files: