Version: SMASH-3.1
smash::anonymous_namespace{oscaroutput.cc} Namespace Reference

Functions

template<int Contents>
std::unique_ptr< OutputInterfacecreate_select_format (bool modern_format, const std::filesystem::path &path, const OutputParameters &out_par, const std::string &name)
 Helper function that creates the oscar output with the format selected by create_oscar_output (except for dileptons and photons). More...
 

Function Documentation

◆ create_select_format()

template<int Contents>
std::unique_ptr<OutputInterface> smash::anonymous_namespace{oscaroutput.cc}::create_select_format ( bool  modern_format,
const std::filesystem::path &  path,
const OutputParameters out_par,
const std::string &  name 
)

Helper function that creates the oscar output with the format selected by create_oscar_output (except for dileptons and photons).

Template Parameters
ContentsDetermines what infomration will be written to the output
Parameters
[in]modern_formatUse the 1999 or 2013 format
[in]pathPath of output
[in]out_parOutput parameters that hold the output configuration
[in]name(File)name of ouput
Returns
Unique pointer to oscar output

Definition at line 790 of file oscaroutput.cc.

792  {
793  bool extended_format = (Contents & OscarInteractions) ? out_par.coll_extended
794  : out_par.part_extended;
795  if (modern_format && extended_format) {
796  return std::make_unique<OscarOutput<OscarFormat2013Extended, Contents>>(
797  path, name);
798  } else if (modern_format && !extended_format) {
799  return std::make_unique<OscarOutput<OscarFormat2013, Contents>>(path, name);
800  } else if (!modern_format && !extended_format) {
801  return std::make_unique<OscarOutput<OscarFormat1999, Contents>>(path, name);
802  } else {
803  // Only remaining possibility: (!modern_format && extended_format)
804  logg[LOutput].warn() << "Creating Oscar output: "
805  << "There is no extended Oscar1999 format.";
806  return std::make_unique<OscarOutput<OscarFormat1999, Contents>>(path, name);
807  }
808 }
std::array< einhard::Logger<>, std::tuple_size< LogArea::AreaTuple >::value > logg
An array that stores all pre-configured Logger objects.
Definition: logging.cc:39
@ OscarInteractions
store interaction information (write_interaction)
Definition: oscaroutput.h:44
static constexpr int LOutput