24 using namespace genie;
35 Algorithm(
"genie::EngelFormFactor", config)
49 <<
"target: " << target.
AsString() <<
" is not a valid nucleus. ";
54 <<
"Running Engel Form Factor with Q2: " << Q2
55 <<
" and target: " << target.
AsString();
57 const double A = target.
A();
60 const double s2 = s *
s;
61 const double R = 1.2*TMath::Power(A, 1./3.)*
units::fm;
62 const double r = TMath::Sqrt(R*R - 5.*s*s);
63 const double qr = TMath::Sqrt(Q2) * r;
65 const double f1 = 3. * TMath::Exp(-.5*Q2*s2) * TMath::Power(qr, -3.);
66 const double f2 = TMath::Sin(qr) - qr*TMath::Cos(qr);
string AsString(void) const
double Q2(const Interaction *const i)
static constexpr double s
Algorithm abstract base class.
bool IsValidNucleus(void) const
#define LOG(stream, priority)
A macro that returns the requested log4cpp::Category appending a string (using the FILE...
static constexpr double A
A Neutrino Interaction Target. Is a transparent encapsulation of quite different physical systems suc...
virtual void Configure(const Registry &config)
A registry. Provides the container for algorithm configuration parameters.
static constexpr double fm