17 #include <TLorentzVector.h> 28 using namespace genie;
62 double W = interaction->
Kine().
W();
71 int nbins = TMath::Nint(maxmult-minmult+1);
73 TH1D * mult_prob =
new TH1D(
"mult_prob",
74 "hadronic multiplicity distribution", nbins, minmult-0.5, maxmult+0.5);
75 mult_prob->SetDirectory(0);
88 int probe_pdg = init_state.
ProbePdg();
94 bool is_EM = proc_info.
IsEM();
106 if(is_CC || is_NC || is_dm) {
112 if((is_nu && is_p) || (is_dmi && is_p)) {
116 if((is_nu && is_n) || (is_dmi && is_n)) {
120 if(is_nubar && is_p) {
124 if(is_nubar && is_n) {
129 <<
"Invalid initial state: " << init_state;
148 if(is_lbar && is_p) {
152 if(is_lbar && is_n) {
157 <<
"Invalid initial state: " << init_state;
165 int nbins = mp->GetNbinsX();
166 for(
int i = 1; i <=
nbins; i++) {
167 int n = TMath::Nint( mp->GetBinCenter(i) );
174 double P = mp->GetBinContent(i);
177 <<
"n=" << n <<
"/ Scaling factor R = " 178 << R <<
"/ P " << P <<
" --> " << Psc;
179 mp->SetBinContent(i, Psc);
186 double histo_norm = mp->Integral(
"width");
187 if(histo_norm>0) mp->Scale(1.0/histo_norm);
double fRvnCCm3
neugen's Rijk: vn, CC, multiplicity = 3
double W(bool selected=false) const
double fRvbpCCm3
neugen's Rijk: vbp, CC, multiplicity = 3
bool IsWeakCC(void) const
bool IsNeutrino(int pdgc)
THE MAIN GENIE PROJECT NAMESPACE
virtual ~HadronizationModelBase()
static const double kNucleonMass
double MaxMult(const Interaction *i) const
int HitNucPdg(void) const
double fRvnNCm2
neugen's Rijk: vn, NC, multiplicity = 2
double fRvbpCCm2
neugen's Rijk: vbp, CC, multiplicity = 2
double fRvpCCm2
neugen's Rijk: vp, CC, multiplicity = 2
bool IsDarkMatter(int pdgc)
double fRvbnNCm3
neugen's Rijk: vbn, NC, multiplicity = 3
double fRvpNCm2
neugen's Rijk: vp, NC, multiplicity = 2
TH1D * CreateMultProbHist(double maxmult) const
bool IsPosChargedLepton(int pdgc)
Summary information for an interaction.
bool IsWeakNC(void) const
#define LOG(stream, priority)
A macro that returns the requested log4cpp::Category appending a string (using the FILE...
double fRvpNCm3
neugen's Rijk: vp, NC, multiplicity = 3
A class encapsulating an enumeration of interaction types (EM, Weak-CC, Weak-NC) and scattering types...
bool IsAntiNeutrino(int pdgc)
const Kinematics & Kine(void) const
static const double kNeutronMass
double fRvbnNCm2
neugen's Rijk: vbn, NC, multiplicity = 2
double fRvpCCm3
neugen's Rijk: vp, CC, multiplicity = 3
double fRvbpNCm2
neugen's Rijk: vbp, NC, multiplicity = 2
auto norm(Vector const &v)
Return norm of the specified vector.
double fRvnNCm3
neugen's Rijk: vn, NC, multiplicity = 3
void ApplyRijk(const Interaction *i, bool norm, TH1D *mp) const
static const double kPionMass
double Wmin(void) const
Various utility methods common to hadronization models.
bool IsDarkMatter(void) const
Pure abstract base class. Defines the HadronizationModelI interface to be implemented by any algorith...
const InitialState & InitState(void) const
const ProcessInfo & ProcInfo(void) const
double fRvbnCCm3
neugen's Rijk: vbn, CC, multiplicity = 3
const Target & Tgt(void) const
Most commonly used PDG codes. A set of utility functions to handle PDG codes is provided in PDGUtils...
bool IsNegChargedLepton(int pdgc)
double fRvbpNCm3
neugen's Rijk: vbp, NC, multiplicity = 3
double fRvnCCm2
neugen's Rijk: vn, CC, multiplicity = 2
Initial State information.
double fRvbnCCm2
neugen's Rijk: vbn, CC, multiplicity = 2