GENIEGenerator
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
MArunAxialFormFactorModel.cxx
Go to the documentation of this file.
1 //____________________________________________________________________________
2 /*
3  Copyright (c) 2003-2024, The GENIE Collaboration
4  For the full text of the license visit http://copyright.genie-mc.org
5 
6  Hugh Gallagher <hugh.gallagher@tufts.edu>
7 
8  From code provided by:
9  Igor Kakorin <idkakorin@gmail.com>
10  Joint Institute for Nuclear Research, Dubna
11 */
12 //____________________________________________________________________________
13 
14 #include <TMath.h>
15 
20 
21 using namespace genie;
22 
23 //____________________________________________________________________________
25 AxialFormFactorModelI("genie::MArunAxialFormFactorModel")
26 {
27 
28 }
29 //____________________________________________________________________________
31 AxialFormFactorModelI("genie::MArunAxialFormFactorModel", config)
32 {
33 
34 }
35 //____________________________________________________________________________
37 {
38 
39 }
40 //____________________________________________________________________________
41 double MArunAxialFormFactorModel::FA(const Interaction * interaction) const
42 {
43  const InitialState & init_state = interaction->InitState();
44  const Target & target = init_state.Tgt();
45  // get scattering parameters
46  const Kinematics & kine = interaction->Kine();
47  double q2 = kine.q2();
48 
49  double dn;
50  if (target.A()>2)
51  {
52  double E = init_state.ProbeE(kRfLab);
53  dn = TMath::Power(1.-q2/TMath::Power(fMa*(1+fE0/E), 2), 2);
54  }
55  else
56  dn = TMath::Power(1.-q2/fMa2, 2);
57  double fa = fFA0/dn;
58 
59  LOG("MArunAxialFormFactorModel", pDEBUG) << "FA(q^2 = " << q2 << ") = " << fa;
60  return fa;
61 }
62 //____________________________________________________________________________
64 {
65  Algorithm::Configure(config);
66  this->LoadConfig();
67 }
68 //____________________________________________________________________________
70 {
71  Algorithm::Configure(param_set);
72  this->LoadConfig();
73 }
74 //____________________________________________________________________________
76 {
77  // axial mass
78  GetParam( "QEL-Ma", fMa ) ;
79  fMa2 = TMath::Power(fMa,2);
80 
81  // E0 for calculating running axial mass: Ma*(1+E0/Enu)
82  GetParam( "QEL-E0", fE0 ) ;
83 
84  // FA(q2 = 0)
85  GetParam( "QEL-FA0", fFA0 ) ;
86 
87 }
88 //____________________________________________________________________________
double FA(const Interaction *interaction) const
Compute the axial form factor.
double fE0
E0 for calculating running axial mass: Ma*(1+E0/Enu)
int A(void) const
Definition: Target.h:70
Pure abstract base class. Defines the AxialFormFactorModelI interface to be implemented by LlewellynS...
Generated/set kinematical variables for an event.
Definition: Kinematics.h:39
Summary information for an interaction.
Definition: Interaction.h:56
double q2(bool selected=false) const
Definition: Kinematics.cxx:141
#define LOG(stream, priority)
A macro that returns the requested log4cpp::Category appending a string (using the FILE...
Definition: Messenger.h:96
const Kinematics & Kine(void) const
Definition: Interaction.h:71
A Neutrino Interaction Target. Is a transparent encapsulation of quite different physical systems suc...
Definition: Target.h:40
virtual void Configure(const Registry &config)
Definition: Algorithm.cxx:62
A registry. Provides the container for algorithm configuration parameters.
Definition: Registry.h:65
void Configure(const Registry &config)
const InitialState & InitState(void) const
Definition: Interaction.h:69
bool GetParam(const RgKey &name, T &p, bool is_top_call=true) const
const Target & Tgt(void) const
Definition: InitialState.h:66
double ProbeE(RefFrame_t rf) const
Initial State information.
Definition: InitialState.h:48
#define pDEBUG
Definition: Messenger.h:63