#include <hepmcoutput.h>
SMASH output to HepMC file.
This class writes a vertex connecting all intial particles with all final particles into a HepMC outputfile. In collider mode, projectile and target are combined into single intial particles with a nuclear pdg code. The output file can be a human-readable ASCII file or a ROOT Tree binary file. HepMC version 3 is used.
More details of the output format can be found in the User Guide.
Definition at line 37 of file hepmcoutput.h.
Public Member Functions | |
| HepMcOutput (const std::filesystem::path &path, std::string name, const bool full_event, std::string HepMC3_output_type) | |
| Create HepMC particle output. More... | |
| ~HepMcOutput () | |
| Destructor renames file. More... | |
| void | at_eventend (const Particles &particles, const int32_t event_number, const EventInfo &event) override |
| Add the final particles information of an event to the central vertex. More... | |
Public Member Functions inherited from smash::HepMcInterface | |
| HepMcInterface (const std::string &name, const bool full_event) | |
| Create HepMC particle event in memory. More... | |
| void | at_eventstart (const Particles &particles, const int event_number, const EventInfo &event) override |
| Add the initial particles information of an event to the central vertex. More... | |
| void | at_interaction (const Action &action, const double density) override |
| Writes collisions to event. More... | |
| void | at_eventend (const Particles &particles, const int32_t event_number, const EventInfo &event) override |
| Add the final particles information of an event to the central vertex. More... | |
Public Member Functions inherited from smash::OutputInterface | |
| OutputInterface (std::string name) | |
| Construct output interface. More... | |
| virtual | ~OutputInterface ()=default |
| virtual void | at_eventstart (const std::vector< Particles > &ensembles, int event_number) |
| Output launched at event start after initialization, when particles are generated but not yet propagated. More... | |
| virtual void | at_eventstart (const int event_number, const ThermodynamicQuantity tq, const DensityType dens_type, RectangularLattice< DensityOnLattice > lattice) |
| Output launched at event start after initialization, when particles are generated but not yet propagated. More... | |
| virtual void | at_eventstart (const int event_number, const ThermodynamicQuantity tq, const DensityType dens_type, RectangularLattice< EnergyMomentumTensor > lattice) |
| Output launched atevent start after initialization, when particles are generated but not yet propagated. More... | |
| virtual void | at_eventend (const int event_number, const ThermodynamicQuantity tq, const DensityType dens_type) |
| Output launched at event end. More... | |
| virtual void | at_eventend (const ThermodynamicQuantity tq) |
| Output launched at event end. More... | |
| virtual void | at_eventend (const Particles &particles, const int event_number, const EventInfo &info) |
| Output launched at event end. More... | |
| virtual void | at_eventend (const std::vector< Particles > &ensembles, const int event_number) |
| Output launched at event end. More... | |
| virtual void | at_intermediate_time (const Particles &particles, const std::unique_ptr< Clock > &clock, const DensityParameters &dens_param, const EventInfo &info) |
| Output launched after every N'th timestep. More... | |
| virtual void | at_intermediate_time (const std::vector< Particles > &ensembles, const std::unique_ptr< Clock > &clock, const DensityParameters &dens_param) |
| Output launched after every N'th timestep. More... | |
| virtual void | thermodynamics_output (const ThermodynamicQuantity tq, const DensityType dt, RectangularLattice< DensityOnLattice > &lattice) |
| Output to write thermodynamics from the lattice. More... | |
| virtual void | thermodynamics_output (const ThermodynamicQuantity tq, const DensityType dt, RectangularLattice< EnergyMomentumTensor > &lattice) |
| Output to write energy-momentum tensor and related quantities from the lattice. More... | |
| virtual void | thermodynamics_lattice_output (RectangularLattice< DensityOnLattice > &lattice, const double current_time) |
| Output to write thermodynamics from the lattice. More... | |
| virtual void | thermodynamics_lattice_output (RectangularLattice< DensityOnLattice > &lattice, const double current_time, const std::vector< Particles > &ensembles, const DensityParameters &dens_param) |
| Output to write thermodynamics from the lattice. More... | |
| virtual void | thermodynamics_lattice_output (const ThermodynamicQuantity tq, RectangularLattice< EnergyMomentumTensor > &lattice, const double current_time) |
| Output to write energy-momentum tensor and related quantities from the lattice. More... | |
| virtual void | thermodynamics_output (const GrandCanThermalizer &gct) |
| Output to write energy-momentum tensor and related quantities from the thermalizer class. More... | |
| virtual void | fields_output (const std::string name1, const std::string name2, RectangularLattice< std::pair< ThreeVector, ThreeVector >> &lat) |
| Write fields in vtk output. More... | |
| bool | is_dilepton_output () const |
| Get, whether this is the dilepton output? More... | |
| bool | is_photon_output () const |
| Get, whether this is the photon output? More... | |
| bool | is_IC_output () const |
| Get, whether this is the IC output? More... | |
| const char * | to_string (const ThermodynamicQuantity tq) |
| Convert thermodynamic quantities to strings. More... | |
| const char * | to_string (const DensityType dens_type) |
| Convert density types to strings. More... | |
Private Types | |
| enum | enum_output { asciiv3 , treeroot } |
| enum to identify the HepMC3 output type More... | |
| typedef enum smash::HepMcOutput::enum_output | type_of_HepMC3_output |
| enum to identify the HepMC3 output type More... | |
Private Attributes | |
| const std::filesystem::path | filename_ |
| Filename of output. More... | |
| std::filesystem::path | filename_unfinished_ |
| Filename of output as long as simulation is still running. More... | |
| std::unique_ptr< HepMC3::Writer > | output_file_ |
| Pointers to the base class of HepMC3 output files. More... | |
| type_of_HepMC3_output | output_type_ |
| HepMC3 output type. More... | |
Additional Inherited Members | |
Public Types inherited from smash::HepMcInterface | |
| using | AZ = std::pair< int, int > |
| Pair of Atomic weight and number. More... | |
Protected Types inherited from smash::HepMcInterface | |
| enum | Status { beam = 4 , fnal = 1 , dcy = 2 , off = 100 } |
| HepMC status codes. More... | |
| using | IdMap = std::map< int, HepMC3::GenParticlePtr > |
| Type of mapping from SMASH ID to HepMC ID. More... | |
| using | CollCounter = std::valarray< int > |
| Counter of collitions per incoming particle. More... | |
Protected Member Functions inherited from smash::HepMcInterface | |
| void | clear () |
| Clear before an event. More... | |
| int | get_status (const ProcessType &t) const |
| Convert SMASH process type to HepMC status. More... | |
| HepMC3::GenParticlePtr | make_gen (int pid, int status, const smash::FourVector &mom, double mass=-1) |
| Make an HepMC particle. More... | |
| HepMC3::GenParticlePtr | make_register (const ParticleData &p, int status=Status::fnal) |
| Find particle in mapping or generate it. More... | |
| HepMC3::GenParticlePtr | find_or_make (const ParticleData &p, int status=Status::fnal, bool force_new=false) |
| Find particle in mapping or generate it. More... | |
| int | ion_pdg (const AZ &az) const |
| Encode ion PDG. More... | |
Protected Attributes inherited from smash::HepMcInterface | |
| HepMC3::GenEvent | event_ |
| The event. More... | |
| HepMC3::GenHeavyIonPtr | ion_ |
| The heavy-ion structure. More... | |
| HepMC3::GenCrossSectionPtr | xs_ |
| Dummy cross-section. More... | |
| HepMC3::GenVertexPtr | ip_ |
| The interaction point. More... | |
| IdMap | map_ |
| Mapping from ID to particle. More... | |
| CollCounter | coll_ |
| Collision counter. More... | |
| int | ncoll_ |
| counter of binary collisions (e.g., where both incoming particles are from the beams. More... | |
| int | ncoll_hard_ |
| counter of hard binary collisions (e.g., where both incoming particles are from the beams. More... | |
| bool | full_event_ |
| Whether the full event or only final-state particles are in the output. More... | |
Protected Attributes inherited from smash::OutputInterface | |
| const bool | is_dilepton_output_ |
| Is this the dilepton output? More... | |
| const bool | is_photon_output_ |
| Is this the photon output? More... | |
| const bool | is_IC_output_ |
| Is this the IC output? More... | |
|
private |
enum to identify the HepMC3 output type
|
private |
enum to identify the HepMC3 output type
| Enumerator | |
|---|---|
| asciiv3 | |
| treeroot | |
Definition at line 72 of file hepmcoutput.h.
| smash::HepMcOutput::HepMcOutput | ( | const std::filesystem::path & | path, |
| std::string | name, | ||
| const bool | full_event, | ||
| std::string | HepMC3_output_type | ||
| ) |
Create HepMC particle output.
| [in] | path | Output path. |
| [in] | name | Name of the output. |
| [in] | full_event | Whether the full event or only final-state particles are printed in the output |
| [in] | HepMC3_output_type | "root" or "asciiv3" |
Definition at line 241 of file hepmcoutput.cc.
| smash::HepMcOutput::~HepMcOutput | ( | ) |
Destructor renames file.
Definition at line 261 of file hepmcoutput.cc.
|
override |
Add the final particles information of an event to the central vertex.
Store impact parameter and write event.
| [in] | particles | Current list of particles. |
| [in] | event_number | Number of event. |
| [in] | event | Event info, see event_info |
Definition at line 268 of file hepmcoutput.cc.
|
private |
Filename of output.
Definition at line 66 of file hepmcoutput.h.
|
private |
Filename of output as long as simulation is still running.
Definition at line 68 of file hepmcoutput.h.
|
private |
Pointers to the base class of HepMC3 output files.
Definition at line 70 of file hepmcoutput.h.
|
private |
HepMC3 output type.
Definition at line 74 of file hepmcoutput.h.