LArSoft  v10_06_00
Liquid Argon Software toolkit - https://larsoft.org/
MCGeneratorInfo.h
Go to the documentation of this file.
1 
8 #ifndef SIMB_MCGENERATORINFO_H
9 #define SIMB_MCGENERATORINFO_H
10 
11 #include <string>
12 #include <unordered_map>
13 #include <iostream>
14 
15 namespace simb
16 {
17 
19  typedef enum class _ev_generator
20  {
21  kUnknown,
22  kGENIE,
23  kCRY,
24  kGIBUU,
25  kNuWro,
26  kMARLEY,
27  kNEUT,
28  kCORSIKA,
29  kGEANT,
30  kNumGenerators, // this should always be the last entry
31  } Generator_t;
32 
34  {
36  std::string generatorVersion;
37  std::unordered_map<std::string, std::string> generatorConfig;
38 
40  const std::string ver = "",
41  const std::unordered_map<std::string, std::string> config = {})
42  : generator(gen), generatorVersion(ver), generatorConfig(config)
43  {}
44 
45  static std::string AsString(Generator_t g)
46  {
47  switch ( g ) {
48  case(simb::Generator_t::kUnknown) : return "Unknown" ; break;
49  case(simb::Generator_t::kGENIE) : return "GENIE" ; break;
50  case(simb::Generator_t::kCRY) : return "CRY" ; break;
51  case(simb::Generator_t::kGIBUU) : return "GIBUU" ; break;
52  case(simb::Generator_t::kNuWro) : return "NuWro" ; break;
53  case(simb::Generator_t::kMARLEY) : return "MARLEY" ; break;
54  case(simb::Generator_t::kNEUT) : return "NEUT" ; break;
55  case(simb::Generator_t::kCORSIKA) : return "CORSIKA" ; break;
56  case(simb::Generator_t::kGEANT) : return "GEANT" ; break;
57  default : return "not-valid simb::Generator_t enum" ; break;
58  }
59  return "not-valid simb::Generator_t enum";
60  }
61  friend std::ostream& operator<< (std::ostream& o, simb::MCGeneratorInfo const & a);
62 
63  };
64 }
65 
66 #endif //SIMB_MCGENERATORINFO_H
Unknown view.
Definition: geo_types.h:138
std::ostream & operator<<(std::ostream &output, const simb::GTruth &gtruth)
Definition: GTruth.cxx:89
enum simb::_ev_generator Generator_t
generator used to produce event, if applicable
simb::Generator_t generator
event generator that generated this event
ART objects.
static std::string AsString(Generator_t g)
std::string generatorVersion
event generator version
_ev_generator
generator used to produce event, if applicable
std::unordered_map< std::string, std::string > generatorConfig
free-form field that can be used to keep track of generator configuration (e.g. GENIE tune) ...
MCGeneratorInfo(Generator_t gen=Generator_t::kUnknown, const std::string ver="", const std::unordered_map< std::string, std::string > config={})