GENIEGenerator
Loading...
Searching...
No Matches
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-2025, 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
27namespace genie {
28
29class XSecIntegratorI;
30
32
33public:
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
48private:
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_
const XSecIntegratorI * fXSecIntegrator
cross section integrator
double Amatrix_NN(double theta, double phikq) const
bool ValidProcess(const Interaction *i) const
Can this cross section algorithm handle the input process?
double Amatrix_NP(double theta, double phikq) const
double Amatrix_PP(double theta, double phikq) const
double XSec(const Interaction *i, KinePhaseSpace_t k) const
Compute the cross section for the input interaction.
Summary information for an interaction.
Definition Interaction.h:56
A registry. Provides the container for algorithm configuration parameters.
Definition Registry.h:65
Cross Section Integrator Interface.
THE MAIN GENIE PROJECT NAMESPACE
Definition AlgCmp.h:25
enum genie::EKinePhaseSpace KinePhaseSpace_t