Page MenuHomeHEPForge

EventReader.cc
No OneTemporary

Size
2 KB
Referenced Files
None
Subscribers
None

EventReader.cc

/**
* \authors The HEJ collaboration (see AUTHORS for details)
* \date 2019
* \copyright GPLv2 or later
*/
#include "HEJ/EventReader.hh"
#include "HEJ/HDF5Reader.hh"
#include "HEJ/LesHouchesReader.hh"
#include "HEJ/utility.hh"
#include "HEJ/Version.hh"
namespace {
enum class generator{
HEJ,
HEJFOG,
Sherpa,
MG,
unknown
};
generator get_generator(
LHEF::HEPRUP const & heprup, std::string const & header
){
// try getting generator name from specific tag
if(heprup.generators.size()>0){
std::string const & gen_name = heprup.generators.back().name;
if(gen_name == "HEJ" || gen_name == HEJ::Version::String())
return generator::HEJ;
if(gen_name == "HEJ Fixed Order Generation")
return generator::HEJFOG;
if(gen_name == "MadGraph5_aMC@NLO") return generator::MG;
std::cerr << "Unknown LHE Generator " << gen_name
<< " using default LHE interface.\n";
return generator::unknown;
}
// The generator tag is not always used -> check by hand
if(header.find("generated with HEJ")!=std::string::npos)
return generator::HEJ;
if(header.find("# created by SHERPA")!=std::string::npos)
return generator::Sherpa;
if(header.find("<MGVersion>")!=std::string::npos)
return generator::MG;
std::cerr<<"Could not determine LHE Generator using default LHE interface.\n";
return generator::unknown;
}
}
namespace HEJ {
std::unique_ptr<EventReader> make_reader(std::string const & filename) {
try {
auto reader{ std::make_unique<LesHouchesReader>(filename) };
switch( get_generator(reader->heprup(), reader->header()) ){
case generator::Sherpa:
return std::make_unique<SherpaLHEReader>(filename);
case generator::HEJ:
case generator::HEJFOG:
case generator::MG:
//! @TODO we could directly fix the MG weights here similar to Sherpa
default:
return reader;
}
}
catch(std::runtime_error&) {
#if HEJ_BUILD_WITH_HDF5
return std::make_unique<HDF5Reader>(filename);
#else
throw;
#endif
}
}
}

File Metadata

Mime Type
text/x-c
Expires
Tue, Sep 30, 4:44 AM (1 d, 17 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
6539125
Default Alt Text
EventReader.cc (2 KB)

Event Timeline