GENIEGenerator
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
AlamSimoAtharVacasSKPXSec2014.h
Go to the documentation of this file.
1 //____________________________________________________________________________
2 /*!
3 
4 \class genie::AlamSimoAtharVacasSKPXSec2014
5 
6 \brief Differential cross section model for single kaon production.
7 
8 \ref Weak Kaon Production off the Nucleon
9  M. Rafi Alam, I. Ruiz Simo, M. Sajjad Athar and M.J. Vicente Vacas
10  Physical Review D82 (2010) 033001; arXiv:1004.5484 [hep-ph]
11 
12 \author Chris Marshall and Martti Nirkko
13  based on fortran code provided by M. Sajjad Athar
14 
15 \created 2014-02-14
16 
17 \cpright Copyright (c) 2003-2024, The GENIE Collaboration
18  For the full text of the license visit http://copyright.genie-mc.org
19 */
20 //____________________________________________________________________________
21 
22 #ifndef _ALAM_SIMO_ATHAR_VACAS_SINGLE_KAON_PXSEC_2014_H_
23 #define _ALAM_SIMO_ATHAR_VACAS_SINGLE_KAON_PXSEC_2014_H_
24 
26 
27 namespace genie {
28 
29 class XSecIntegratorI;
30 
32 
33 public:
35  AlamSimoAtharVacasSKPXSec2014(string config);
37 
38  // XSecAlgorithmI interface implementation
39  double XSec (const Interaction * i, KinePhaseSpace_t k) const;
40  double Integral (const Interaction * i) const;
41  bool ValidProcess (const Interaction * i) const;
42 
43  // Override the Algorithm::Configure methods to load configuration
44  // data to private data members
45  void Configure (const Registry & config);
46  void Configure (string param_set);
47 
48 private:
49 
50  void LoadConfig(void);
51 
52  const XSecIntegratorI * fXSecIntegrator; ///< cross section integrator
53 
54  // Calculate matrix elements
55  double Amatrix_NN(double theta, double phikq) const;
56  double Amatrix_NP(double theta, double phikq) const;
57  double Amatrix_PP(double theta, double phikq) const;
58 
59  // Physics parameters set globally
60  // The names of these parameters in the code match the convention in the original FORTRAN code
61  // They are used in the matrix element calculations which are thousands of lines long
62  // We try to change as little as possible, so keep these names
63  double amLam, amEta, Vus, fpi, d, f, g, amup, amun, Fm1, Fm2;
64 
65  // Interaction parameters set locally
66  // These are set event-by-event, and used in the matrix element calculation which is thousands
67  // of lines long. The names are kept from the original FORTRAN code
68  // They are mutable because the XSec routine must be const in GENIE, but they are needed in the
69  // matrix element calculations which are separate functions
70  mutable int leptonPDG, reactionType;
71  mutable double aml, amSig, amk, ampi, am;
72  mutable double Enu, Ekaon, pkvec;
73 
74  // Output calculated by cross-section function
75  // essentially returned by reference by the matrix element calculations
76  // mutable because XSec routine must be const in GENIE
77  mutable double Elep, alepvec, aqvec, angkq, aq0;
78 
79 };
80 
81 } // genie namespace
82 #endif // _ALAM_SIMO_ATHAR_VACAS_SINGLE_KAON_PXSEC_2014_H_
Cross Section Calculation Interface.
double XSec(const Interaction *i, KinePhaseSpace_t k) const
Compute the cross section for the input interaction.
Cross Section Integrator Interface.
const XSecIntegratorI * fXSecIntegrator
cross section integrator
double Amatrix_NN(double theta, double phikq) const
double Amatrix_NP(double theta, double phikq) const
enum genie::EKinePhaseSpace KinePhaseSpace_t
double Amatrix_PP(double theta, double phikq) const
Summary information for an interaction.
Definition: Interaction.h:56
double Integral(const Interaction *i) const
bool ValidProcess(const Interaction *i) const
Can this cross section algorithm handle the input process?
A registry. Provides the container for algorithm configuration parameters.
Definition: Registry.h:65
Differential cross section model for single kaon production.