21 using namespace genie;
 
   22 using namespace genie::hnl;
 
   30     return "pi+- --> N + mu+-";
 
   34     return "pi+- --> N + e+-";
 
   38     return "K+- --> N + mu+-";
 
   42     return "K+- --> N + e+-";
 
   46     return "K+- --> N + mu+- + pi0";
 
   50     return "K+- --> N + e+- + pi0";
 
   54     return "K0L --> N + mu+- + pi-+";
 
   58     return "K0L --> N + e+- + pi-+";
 
   62     return "mu-+ --> N + numu(bar) + e-+";
 
   66     return "mu-+ --> N + nue(bar) + e-+";
 
   70     return "mu-+ --> N + nutau(bar) + e-+";
 
   74     return "Invalid HNL production mode!";
 
   87     return "N -> pi+- mu-+";
 
   91     return "N -> pi+- e-+";
 
  103     return "N -> v mu+ mu-";
 
  107     return "N -> v e+ e-";
 
  111     return "N -> v mu+- e-+";
 
  115     return "N -> pi+- pi0 e-+";
 
  119     return "N -> pi+- pi0 mu-+";
 
  123     return "N -> v pi0 pi0";
 
  131     return "Invalid HNL decay mode!";
 
  145   double Msum = 0.; 
double Mpar = 0.;
 
  146   PDGCodeList::const_iterator it = decay_products.begin();
 
  147   for ( ; it != decay_products.end(); ++it)
 
  150     TParticlePDG * p = pdglib->
Find(pdg_code);
 
  152       if( it == decay_products.begin() ) Mpar = p->Mass();
 
  153       else Msum += p->Mass();
 
  156         << 
"Decay list includes particle with unrecognised PDG code: " 
  161   return (Mpar > Msum);
 
  174   PDGCodeList::const_iterator it = decay_products.begin();
 
  175   for ( ; it != decay_products.end(); ++it)
 
  178     TParticlePDG * p = pdglib->
Find(pdg_code);
 
  183         << 
"Decay list includes particle with unrecognised PDG code: " 
  196   bool allow_duplicate = 
true;
 
  278   return decay_products;
 
  283   bool allow_duplicate = 
true;
 
  354   return decay_products;
 
  362   int param = tmpReg->
GetInt( par_name );
 
  372   string str = tmpReg->
GetString( par_name );
 
  377   std::vector<int> vect;
 
  378   size_t ntok = strtokens.size();
 
  380   for( 
size_t i=0; i < ntok; ++i ){
 
  382     if( 
" " == trimmed || 
"" == trimmed ) 
continue; 
 
  383     int val = strtod( trimmed.c_str(), (
char **)NULL );
 
  384     vect.push_back( val );
 
  394   double param = tmpReg->
GetDouble( par_name );
 
  403   string str = tmpReg->
GetString( par_name );
 
  408   std::vector<double> vect;
 
  409   size_t ntok = strtokens.size();
 
  411   for( 
size_t i=0; i < ntok; ++i ){
 
  413     if( 
" " == trimmed || 
"" == trimmed ) 
continue; 
 
  414     double val = strtod( trimmed.c_str(), (
char **)NULL );
 
  415     vect.push_back( val );
 
  425   bool param = tmpReg->
GetBool( par_name );
 
  434   string str = tmpReg->
GetString( par_name );
 
  439   std::vector<bool> vect;
 
  440   size_t ntok = strtokens.size();
 
  442   for( 
size_t i=0; i < ntok; ++i ){
 
  444     if( 
" " == trimmed || 
"" == trimmed ) 
continue; 
 
  445     bool val = strtod( trimmed.c_str(), (
char **)NULL );
 
  446     vect.push_back( val );
 
  456   string param = tmpReg->
GetString( par_name );
 
enum genie::hnl::t_HNLProd HNLProd_t
double GetCfgDouble(string file_id, string set_name, string par_name)
string AsString(genie::hnl::HNLDecayMode_t hnldm)
PDGCodeList ProductionProductList(genie::hnl::HNLProd_t hnldm)
RgDbl GetDouble(RgKey key) const 
std::string GetCfgString(string file_id, string set_name, string par_name)
RgInt GetInt(RgKey key) const 
std::vector< bool > GetCfgBoolVec(string file_id, string set_name, string par_name)
Registry * CommonList(const string &file_id, const string &set_name) const 
std::vector< int > GetCfgIntVec(string file_id, string set_name, string par_name)
PDGCodeList DecayProductList(genie::hnl::HNLDecayMode_t hnldm)
#define LOG(stream, priority)
A macro that returns the requested log4cpp::Category appending a string (using the FILE...
enum genie::hnl::EHNLDecayMode HNLDecayMode_t
string ProdAsString(genie::hnl::HNLProd_t hnlprod)
string TrimSpaces(string input)
std::vector< double > GetCfgDoubleVec(string file_id, string set_name, string par_name)
bool GetCfgBool(string file_id, string set_name, string par_name)
RgStr GetString(RgKey key) const 
static PDGLibrary * Instance(void)
bool IsProdKinematicallyAllowed(genie::hnl::HNLProd_t hnlprod)
vector< string > Split(string input, string delim)
Singleton class to load & serve a TDatabasePDG. 
A registry. Provides the container for algorithm configuration parameters. 
RgBool GetBool(RgKey key) const 
TParticlePDG * Find(int pdgc, bool must_exist=true)
Most commonly used PDG codes. A set of utility functions to handle PDG codes is provided in PDGUtils...
bool IsKinematicallyAllowed(genie::hnl::HNLDecayMode_t hnldm, double Mhnl)
void push_back(int pdg_code)
static AlgConfigPool * Instance()
int GetCfgInt(string file_id, string set_name, string par_name)