Version: SMASH-3.0
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 789 of file oscaroutput.cc.

791  {
792  bool extended_format = (Contents & OscarInteractions) ? out_par.coll_extended
793  : out_par.part_extended;
794  if (modern_format && extended_format) {
795  return std::make_unique<OscarOutput<OscarFormat2013Extended, Contents>>(
796  path, name);
797  } else if (modern_format && !extended_format) {
798  return std::make_unique<OscarOutput<OscarFormat2013, Contents>>(path, name);
799  } else if (!modern_format && !extended_format) {
800  return std::make_unique<OscarOutput<OscarFormat1999, Contents>>(path, name);
801  } else {
802  // Only remaining possibility: (!modern_format && extended_format)
803  logg[LOutput].warn() << "Creating Oscar output: "
804  << "There is no extended Oscar1999 format.";
805  return std::make_unique<OscarOutput<OscarFormat1999, Contents>>(path, name);
806  }
807 }
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