18#include <TLorentzVector.h>
69 <<
"No nuclear target found - The Pauli Blocker exits";
78 LOG(
"PauliBlock",
pINFO) <<
"Not a QEL event - The Pauli Blocker exits";
89 int nuc_pdgc = recoil->
Pdg();
92 double radius = hit->
X4()->Vect().Mag();
95 LOG(
"PauliBlock",
pINFO) <<
"KF = " << kf;
98 double p = recoil->
P4()->P();
99 LOG(
"PauliBlock",
pINFO) <<
"Recoil nucleon |P| = " << p;
102 bool is_blocked = (p < kf);
107 <<
" *** The generated event is Pauli-blocked ("
108 <<
"|p_{nucleon}| = " << p <<
" GeV < Fermi momentum = " << kf <<
" GeV) ***";
112 exception.
SetReason(
"Pauli-blocked event");
147 RgKey nuclkey =
"NuclearModel";
177 int numNuc = (is_p) ? tgt.
Z() : tgt.
N();
179 kF = TMath::Power(3 *
kPi2 * numNuc *
#define LOG(stream, priority)
A macro that returns the requested log4cpp::Category appending a string (using the FILE,...
Most commonly used PDG codes. A set of utility functions to handle PDG codes is provided in PDGUtils.
A singleton class holding all configuration registries built while parsing all loaded XML configurati...
static AlgConfigPool * Instance()
Registry * GlobalParameterList(void) const
The GENIE Algorithm Factory.
const Algorithm * GetAlgorithm(const AlgId &algid)
static AlgFactory * Instance()
bool GetParam(const RgKey &name, T &p, bool is_top_call=true) const
virtual void Configure(const Registry &config)
Singleton class to load & serve tables of Fermi momentum constants.
const FermiMomentumTable * GetTable(string name)
static FermiMomentumTablePool * Instance(void)
STDHEP-like event record entry that can fit a particle or a nucleus.
const TLorentzVector * P4(void) const
const TLorentzVector * X4(void) const
int FirstDaughter(void) const
GENIE's GHEP MC event record.
virtual GHepParticle * TargetNucleus(void) const
virtual Interaction * Summary(void) const
virtual TBits * EventFlags(void) const
virtual GHepParticle * Particle(int position) const
virtual GHepParticle * HitNucleon(void) const
const Target & Tgt(void) const
Summary information for an interaction.
const ProcessInfo & ProcInfo(void) const
const InitialState & InitState(void) const
Pure abstract base class. Defines the NuclearModelI interface to be implemented by any physics model ...
virtual NuclearModel_t ModelType(const Target &) const =0
double GetFermiMomentum(const Target &tgt, int pdg_Nf, double radius=0.0) const
Get the Fermi momentum needed to check Pauli blocking.
const FermiMomentumTable * fKFTable
void ProcessEventRecord(GHepRecord *event_rec) const
void Configure(const Registry &config)
A class encapsulating an enumeration of interaction types (EM, Weak-CC, Weak-NC) and scattering types...
bool IsDarkMatterElastic(void) const
bool IsQuasiElastic(void) const
A registry. Provides the container for algorithm configuration parameters.
RgAlg GetAlg(RgKey key) const
A Neutrino Interaction Target. Is a transparent encapsulation of quite different physical systems suc...
An exception thrown by EventRecordVisitorI when the normal processing sequence has to be disrupted (f...
void SwitchOnFastForward(void)
void SetReason(string reason)
void SwitchOnStepBack(void)
void SetReturnStep(int s)
static const double kLightSpeed
static const double kPlankConstant
static constexpr double fermi
double Density(double r, int A, double ring=0.)
THE MAIN GENIE PROJECT NAMESPACE