GENIEGenerator
|
Manages HNL BR (prod and decay) More...
#include <HNLBRCalculator.h>
Public Member Functions | |
BRCalculator () | |
BRCalculator (string name) | |
BRCalculator (string name, string config) | |
~BRCalculator () | |
void | Configure (const Registry &config) |
void | Configure (string config) |
double | KinematicScaling (genie::hnl::HNLProd_t hnlprod) const |
double | DecayWidth (genie::hnl::HNLDecayMode_t hnldm) const |
Public Member Functions inherited from genie::Algorithm | |
virtual | ~Algorithm () |
virtual void | FindConfig (void) |
virtual const Registry & | GetConfig (void) const |
Registry * | GetOwnedConfig (void) |
virtual const AlgId & | Id (void) const |
Get algorithm ID. More... | |
virtual AlgStatus_t | GetStatus (void) const |
Get algorithm status. More... | |
virtual bool | AllowReconfig (void) const |
virtual AlgCmp_t | Compare (const Algorithm *alg) const |
Compare with input algorithm. More... | |
virtual void | SetId (const AlgId &id) |
Set algorithm ID. More... | |
virtual void | SetId (string name, string config) |
const Algorithm * | SubAlg (const RgKey ®istry_key) const |
void | AdoptConfig (void) |
void | AdoptSubstructure (void) |
virtual void | Print (ostream &stream) const |
Print algorithm info. More... | |
Private Member Functions | |
void | LoadConfig (void) |
double | KScale_Global (genie::hnl::HNLProd_t hnldm, const double M) const |
double | DWidth_PseudoscalarToLepton (const double mP, const double M, const double Ua42, const double ma) const |
double | KScale_PseudoscalarToLepton (const double mP, const double M, const double ma) const |
double | DWidth_PseudoscalarToPiLepton (const double mP, const double M, const double Ua42, const double ma) const |
double | KScale_PseudoscalarToPiLepton (const double mP, const double M, const double ma) const |
double | DWidth_MuonToNuAndElectron (const double M, const double Ue42, const double Umu42, const double Ut42) const |
double | KScale_MuonToNuAndElectron (const double M) const |
double | DWidth_Global (genie::hnl::HNLDecayMode_t hnldm, const double M) const |
double | DWidth_PiZeroAndNu (const double M, const double Ue42, const double Umu42, const double Ut42) const |
double | DWidth_PiAndLepton (const double M, const double Ua42, const double ma) const |
double | DWidth_Invisible (const double M, const double Ue42, const double Umu42, const double Ut42) const |
double | DWidth_SameLepton (const double M, const double Ue42, const double Umu42, const double Ut42, const double mb, bool bIsMu) const |
double | DWidth_DiffLepton (const double M, const double Ua42, const double Ub42, const int IsMajorana) const |
double | DWidth_PiPi0Ell (const double M, const double ml, const double Ue42, const double Umu42, const double Ut42, const bool isElectron=false) const |
double | DWidth_Pi0Pi0Nu (const double M, const double Ue42, const double Umu42, const double Ut42) const |
double | GetFormfactorF1 (double x) const |
double | GetFormfactorF2 (double x) const |
Static Private Member Functions | |
static double | PiPi0EllForm (double *x, double *par) |
static double | Pi0Pi0NuForm (double *x, double *par) |
Private Attributes | |
bool | fIsConfigLoaded = false |
double | wAng |
double | s2w |
const double | GF = genie::constants::kGF |
const double | GF2 = GF*GF |
const double | pi = genie::constants::kPi |
double | fpi |
double | fpi2 |
double | BR_C1 |
double | BR_C2 |
double | mPi0 |
double | mPi |
double | mMu |
double | mK |
double | mK0 |
double | mE |
double | fMass |
std::vector< double > | fCouplings |
double | fUe42 |
double | fUm42 |
double | fUt42 |
bool | fMajorana |
double | Vud |
double | Vud2 |
double | Ue1 |
double | Ue2 |
double | Ue3 |
double | Um1 |
double | Um2 |
double | Um3 |
double | Ut1 |
double | Ut2 |
double | Ut3 |
std::map< double, double > | kscale_K3mu |
std::map< double, double > | kscale_K3e |
std::map< double, double > | kscale_mu3e |
Additional Inherited Members | |
Static Public Member Functions inherited from genie::Algorithm | |
static string | BuildParamVectKey (const std::string &comm_name, unsigned int i) |
static string | BuildParamVectSizeKey (const std::string &comm_name) |
static string | BuildParamMatKey (const std::string &comm_name, unsigned int i, unsigned int j) |
static string | BuildParamMatRowSizeKey (const std::string &comm_name) |
static string | BuildParamMatColSizeKey (const std::string &comm_name) |
Protected Member Functions inherited from genie::hnl::ChannelCalculatorI | |
ChannelCalculatorI () | |
ChannelCalculatorI (string name) | |
ChannelCalculatorI (string name, string config) | |
Protected Member Functions inherited from genie::Algorithm | |
Algorithm () | |
Algorithm (string name) | |
Algorithm (string name, string config) | |
void | Initialize (void) |
void | DeleteConfig (void) |
void | DeleteSubstructure (void) |
Registry * | ExtractLocalConfig (const Registry &in) const |
Registry * | ExtractLowerConfig (const Registry &in, const string &alg_key) const |
Split an incoming configuration Registry into a block valid for the sub-algo identified by alg_key. More... | |
template<class T > | |
bool | GetParam (const RgKey &name, T &p, bool is_top_call=true) const |
template<class T > | |
bool | GetParamDef (const RgKey &name, T &p, const T &def) const |
template<class T > | |
int | GetParamVect (const std::string &comm_name, std::vector< T > &v, bool is_top_call=true) const |
Handle to load vectors of parameters. More... | |
int | GetParamVectKeys (const std::string &comm_name, std::vector< RgKey > &k, bool is_top_call=true) const |
template<class T > | |
int | GetParamMat (const std::string &comm_name, TMatrixT< T > &mat, bool is_top_call=true) const |
Handle to load matrix of parameters. More... | |
template<class T > | |
int | GetParamMatSym (const std::string &comm_name, TMatrixTSym< T > &mat, bool is_top_call=true) const |
int | GetParamMatKeys (const std::string &comm_name, std::vector< RgKey > &k, bool is_top_call=true) const |
int | AddTopRegistry (Registry *rp, bool owns=true) |
add registry with top priority, also update ownership More... | |
int | AddLowRegistry (Registry *rp, bool owns=true) |
add registry with lowest priority, also update ownership More... | |
int | MergeTopRegistry (const Registry &r) |
int | AddTopRegisties (const vector< Registry * > &rs, bool owns=false) |
Add registries with top priority, also udated Ownerships. More... | |
Protected Attributes inherited from genie::Algorithm | |
bool | fAllowReconfig |
bool | fOwnsSubstruc |
true if it owns its substructure (sub-algs,...) More... | |
AlgId | fID |
algorithm name and configuration set More... | |
vector< Registry * > | fConfVect |
vector< bool > | fOwnerships |
ownership for every registry in fConfVect More... | |
AlgStatus_t | fStatus |
algorithm execution status More... | |
AlgMap * | fOwnedSubAlgMp |
local pool for owned sub-algs (taken out of the factory pool) More... | |
Manages HNL BR (prod and decay)
An Algorithm that manages the calculations of production and decay branching ratios for HNL.
Definition at line 53 of file HNLBRCalculator.h.
BRCalculator::BRCalculator | ( | ) |
Definition at line 18 of file HNLBRCalculator.cxx.
BRCalculator::BRCalculator | ( | string | name | ) |
Definition at line 24 of file HNLBRCalculator.cxx.
BRCalculator::BRCalculator | ( | string | name, |
string | config | ||
) |
Definition at line 30 of file HNLBRCalculator.cxx.
BRCalculator::~BRCalculator | ( | ) |
Definition at line 36 of file HNLBRCalculator.cxx.
|
virtual |
Configure the algorithm with an external registry The registry is merged with the top level registry if it is owned, Otherwise a copy of it is added with the highest priority
Implements genie::hnl::ChannelCalculatorI.
Definition at line 41 of file HNLBRCalculator.cxx.
References genie::Algorithm::Configure(), and LoadConfig().
|
virtual |
Configure the algorithm from the AlgoConfigPool based on param_set string given in input An algorithm contains a vector of registries coming from different xml configuration files, which are loaded according a very precise prioriy This methods will load a number registries in order of priority: 1) "Tunable" parameter set from CommonParametes. This is loaded with the highest prioriry and it is designed to be used for tuning procedure Usage not expected from the user. 2) For every string defined in "CommonParame" the corresponding parameter set will be loaded from CommonParameter.xml 3) parameter set specified by the config string and defined in the xml file of the algorithm 4) if config is not "Default" also the Default parameter set from the same xml file will be loaded Effectively this avoids the repetion of a parameter when it is not changed in the requested configuration
Implements genie::hnl::ChannelCalculatorI.
Definition at line 47 of file HNLBRCalculator.cxx.
References genie::Algorithm::Configure(), and LoadConfig().
|
virtual |
Implements genie::hnl::ChannelCalculatorI.
Definition at line 131 of file HNLBRCalculator.cxx.
References DWidth_Global(), and fMass.
Referenced by genie::hnl::selector::GetValidChannelWidths().
|
private |
Definition at line 304 of file HNLBRCalculator.cxx.
References GF2, genie::utils::hnl::MassX(), mMu, and pi.
Referenced by DWidth_Global().
|
private |
Definition at line 248 of file HNLBRCalculator.cxx.
References DWidth_DiffLepton(), DWidth_Invisible(), DWidth_Pi0Pi0Nu(), DWidth_PiAndLepton(), DWidth_PiPi0Ell(), DWidth_PiZeroAndNu(), DWidth_SameLepton(), fMajorana, fUe42, fUm42, fUt42, genie::utils::hnl::IsKinematicallyAllowed(), genie::hnl::kHNLDcyNuEE, genie::hnl::kHNLDcyNuMuE, genie::hnl::kHNLDcyNuMuMu, genie::hnl::kHNLDcyNuNuNu, genie::hnl::kHNLDcyPi0Nu, genie::hnl::kHNLDcyPi0Pi0Nu, genie::hnl::kHNLDcyPiE, genie::hnl::kHNLDcyPiMu, genie::hnl::kHNLDcyPiPi0E, genie::hnl::kHNLDcyPiPi0Mu, mE, and mMu.
Referenced by DecayWidth().
|
private |
|
private |
Definition at line 240 of file HNLBRCalculator.cxx.
References KScale_MuonToNuAndElectron(), mE, and mMu.
|
private |
Definition at line 401 of file HNLBRCalculator.cxx.
References fpi2, GF2, mPi0, pi, Pi0Pi0NuForm(), Ue1, Ue2, Ue3, Um1, Um2, Um3, Ut1, Ut2, and Ut3.
Referenced by DWidth_Global().
|
private |
Definition at line 278 of file HNLBRCalculator.cxx.
References fpi2, GF2, genie::utils::hnl::Kallen(), genie::utils::hnl::MassX(), mPi, pi, and Vud2.
Referenced by DWidth_Global().
|
private |
Definition at line 315 of file HNLBRCalculator.cxx.
References genie::hnl::selector::__attribute__(), fpi2, GF2, mPi, mPi0, pi, PiPi0EllForm(), Ue1, Ue2, Ue3, Um1, Um2, Um3, Ut1, Ut2, Ut3, and Vud2.
Referenced by DWidth_Global().
|
private |
Definition at line 271 of file HNLBRCalculator.cxx.
References fpi2, GF2, genie::utils::hnl::MassX(), mPi0, and pi.
Referenced by DWidth_Global().
|
private |
Definition at line 186 of file HNLBRCalculator.cxx.
References KScale_PseudoscalarToLepton().
|
private |
Definition at line 216 of file HNLBRCalculator.cxx.
References KScale_PseudoscalarToPiLepton(), and mPi0.
|
private |
Definition at line 292 of file HNLBRCalculator.cxx.
References BR_C1, BR_C2, GetFormfactorF1(), GetFormfactorF2(), GF2, genie::utils::hnl::MassX(), pi, and s2w.
Referenced by DWidth_Global().
|
private |
Definition at line 136 of file HNLBRCalculator.cxx.
References genie::hnl::selector::FormfactorF1, LOG, genie::hnl::selector::PARTWIDTH, and pERROR.
Referenced by DWidth_SameLepton().
|
private |
Definition at line 144 of file HNLBRCalculator.cxx.
References genie::hnl::selector::FormfactorF2, LOG, genie::hnl::selector::PARTWIDTH, and pERROR.
Referenced by DWidth_SameLepton().
|
virtual |
Implements genie::hnl::ChannelCalculatorI.
Definition at line 126 of file HNLBRCalculator.cxx.
References fMass, and KScale_Global().
Referenced by genie::hnl::FluxCreator::GetProductionProbs().
|
private |
Definition at line 153 of file HNLBRCalculator.cxx.
References genie::utils::hnl::IsProdKinematicallyAllowed(), genie::hnl::kHNLProdKaon2Electron, genie::hnl::kHNLProdKaon2Muon, genie::hnl::kHNLProdKaon3Electron, genie::hnl::kHNLProdKaon3Muon, genie::hnl::kHNLProdMuon3Nue, genie::hnl::kHNLProdMuon3Numu, genie::hnl::kHNLProdMuon3Nutau, genie::hnl::kHNLProdNeuk3Electron, genie::hnl::kHNLProdNeuk3Muon, genie::hnl::kHNLProdPion2Electron, genie::hnl::kHNLProdPion2Muon, KScale_MuonToNuAndElectron(), KScale_PseudoscalarToLepton(), KScale_PseudoscalarToPiLepton(), mE, mK, mK0, mMu, and mPi.
Referenced by KinematicScaling().
|
private |
Definition at line 223 of file HNLBRCalculator.cxx.
References kscale_mu3e.
Referenced by DWidth_MuonToNuAndElectron(), and KScale_Global().
|
private |
Definition at line 178 of file HNLBRCalculator.cxx.
References genie::utils::hnl::MassX(), and genie::utils::hnl::RhoFunc().
Referenced by DWidth_PseudoscalarToLepton(), and KScale_Global().
|
private |
Definition at line 193 of file HNLBRCalculator.cxx.
References kscale_K3e, kscale_K3mu, mE, mK, mK0, and mMu.
Referenced by DWidth_PseudoscalarToPiLepton(), and KScale_Global().
|
private |
Definition at line 53 of file HNLBRCalculator.cxx.
References BR_C1, BR_C2, fCouplings, genie::PDGLibrary::Find(), fIsConfigLoaded, fMajorana, fMass, fpi, fpi2, fUe42, fUm42, fUt42, genie::Algorithm::GetParam(), genie::Algorithm::GetParamVect(), genie::PDGLibrary::Instance(), genie::kPdgElectron, genie::kPdgK0, genie::kPdgKP, genie::kPdgMuon, genie::kPdgPi0, genie::kPdgPiP, kscale_K3e, kscale_K3mu, kscale_mu3e, mE, mK, mK0, mMu, mPi, mPi0, s2w, Ue1, Ue2, Ue3, Um1, Um2, Um3, Ut1, Ut2, Ut3, Vud, Vud2, and wAng.
Referenced by Configure().
|
staticprivate |
|
staticprivate |
|
private |
Definition at line 143 of file HNLBRCalculator.h.
Referenced by DWidth_SameLepton(), and LoadConfig().
|
private |
Definition at line 143 of file HNLBRCalculator.h.
Referenced by DWidth_SameLepton(), and LoadConfig().
|
private |
Definition at line 147 of file HNLBRCalculator.h.
Referenced by LoadConfig().
|
private |
Definition at line 135 of file HNLBRCalculator.h.
Referenced by LoadConfig().
|
private |
Definition at line 148 of file HNLBRCalculator.h.
Referenced by DWidth_Global(), and LoadConfig().
|
private |
Definition at line 146 of file HNLBRCalculator.h.
Referenced by DecayWidth(), KinematicScaling(), and LoadConfig().
|
private |
Definition at line 142 of file HNLBRCalculator.h.
Referenced by LoadConfig().
|
private |
Definition at line 142 of file HNLBRCalculator.h.
Referenced by DWidth_Pi0Pi0Nu(), DWidth_PiAndLepton(), DWidth_PiPi0Ell(), DWidth_PiZeroAndNu(), and LoadConfig().
|
private |
Definition at line 147 of file HNLBRCalculator.h.
Referenced by DWidth_Global(), and LoadConfig().
|
private |
Definition at line 147 of file HNLBRCalculator.h.
Referenced by DWidth_Global(), and LoadConfig().
|
private |
Definition at line 147 of file HNLBRCalculator.h.
Referenced by DWidth_Global(), and LoadConfig().
|
private |
Definition at line 139 of file HNLBRCalculator.h.
Definition at line 140 of file HNLBRCalculator.h.
Referenced by DWidth_DiffLepton(), DWidth_Invisible(), DWidth_Pi0Pi0Nu(), DWidth_PiAndLepton(), DWidth_PiPi0Ell(), DWidth_PiZeroAndNu(), and DWidth_SameLepton().
|
private |
Definition at line 158 of file HNLBRCalculator.h.
Referenced by KScale_PseudoscalarToPiLepton(), and LoadConfig().
|
private |
Definition at line 158 of file HNLBRCalculator.h.
Referenced by KScale_PseudoscalarToPiLepton(), and LoadConfig().
|
private |
Definition at line 158 of file HNLBRCalculator.h.
Referenced by KScale_MuonToNuAndElectron(), and LoadConfig().
|
private |
Definition at line 145 of file HNLBRCalculator.h.
Referenced by DWidth_Global(), DWidth_MuonToNuAndElectron(), KScale_Global(), KScale_PseudoscalarToPiLepton(), and LoadConfig().
|
private |
Definition at line 145 of file HNLBRCalculator.h.
Referenced by KScale_Global(), KScale_PseudoscalarToPiLepton(), and LoadConfig().
|
private |
Definition at line 145 of file HNLBRCalculator.h.
Referenced by KScale_Global(), KScale_PseudoscalarToPiLepton(), and LoadConfig().
|
private |
Definition at line 145 of file HNLBRCalculator.h.
Referenced by DWidth_DiffLepton(), DWidth_Global(), DWidth_MuonToNuAndElectron(), KScale_Global(), KScale_PseudoscalarToPiLepton(), and LoadConfig().
|
private |
Definition at line 145 of file HNLBRCalculator.h.
Referenced by DWidth_PiAndLepton(), DWidth_PiPi0Ell(), KScale_Global(), and LoadConfig().
|
private |
Definition at line 145 of file HNLBRCalculator.h.
Referenced by DWidth_Pi0Pi0Nu(), DWidth_PiPi0Ell(), DWidth_PiZeroAndNu(), DWidth_PseudoscalarToPiLepton(), and LoadConfig().
|
private |
Definition at line 141 of file HNLBRCalculator.h.
Referenced by DWidth_DiffLepton(), DWidth_Invisible(), DWidth_Pi0Pi0Nu(), DWidth_PiAndLepton(), DWidth_PiPi0Ell(), DWidth_PiZeroAndNu(), and DWidth_SameLepton().
|
private |
Definition at line 138 of file HNLBRCalculator.h.
Referenced by DWidth_SameLepton(), and LoadConfig().
|
private |
Definition at line 153 of file HNLBRCalculator.h.
Referenced by DWidth_Pi0Pi0Nu(), DWidth_PiPi0Ell(), and LoadConfig().
|
private |
Definition at line 153 of file HNLBRCalculator.h.
Referenced by DWidth_Pi0Pi0Nu(), DWidth_PiPi0Ell(), and LoadConfig().
|
private |
Definition at line 153 of file HNLBRCalculator.h.
Referenced by DWidth_Pi0Pi0Nu(), DWidth_PiPi0Ell(), and LoadConfig().
|
private |
Definition at line 153 of file HNLBRCalculator.h.
Referenced by DWidth_Pi0Pi0Nu(), DWidth_PiPi0Ell(), and LoadConfig().
|
private |
Definition at line 153 of file HNLBRCalculator.h.
Referenced by DWidth_Pi0Pi0Nu(), DWidth_PiPi0Ell(), and LoadConfig().
|
private |
Definition at line 153 of file HNLBRCalculator.h.
Referenced by DWidth_Pi0Pi0Nu(), DWidth_PiPi0Ell(), and LoadConfig().
|
private |
Definition at line 153 of file HNLBRCalculator.h.
Referenced by DWidth_Pi0Pi0Nu(), DWidth_PiPi0Ell(), and LoadConfig().
|
private |
Definition at line 153 of file HNLBRCalculator.h.
Referenced by DWidth_Pi0Pi0Nu(), DWidth_PiPi0Ell(), and LoadConfig().
|
private |
Definition at line 153 of file HNLBRCalculator.h.
Referenced by DWidth_Pi0Pi0Nu(), DWidth_PiPi0Ell(), and LoadConfig().
|
private |
Definition at line 150 of file HNLBRCalculator.h.
Referenced by LoadConfig().
|
private |
Definition at line 150 of file HNLBRCalculator.h.
Referenced by DWidth_PiAndLepton(), DWidth_PiPi0Ell(), and LoadConfig().
|
private |
Definition at line 138 of file HNLBRCalculator.h.
Referenced by LoadConfig().