GENIEGenerator
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Private Attributes | List of all members
genie::utils::gsl::d2Xsec_dn1dn2dn3_E Class Reference

#include <GSLXSecFunc.h>

Inheritance diagram for genie::utils::gsl::d2Xsec_dn1dn2dn3_E:
Inheritance graph
[legend]
Collaboration diagram for genie::utils::gsl::d2Xsec_dn1dn2dn3_E:
Collaboration graph
[legend]

Public Member Functions

 d2Xsec_dn1dn2dn3_E (const XSecAlgorithmI *m, const Interaction *i, double scale=1.)
 
 ~d2Xsec_dn1dn2dn3_E ()
 
unsigned int NDim (void) const
 
double DoEval (const double *xin) const
 
ROOT::Math::IBaseFunctionMultiDim * Clone (void) const
 

Private Attributes

const XSecAlgorithmIfModel
 
const InteractionfInteraction
 
double fScale
 

Detailed Description

Definition at line 500 of file GSLXSecFunc.h.

Constructor & Destructor Documentation

genie::utils::gsl::d2Xsec_dn1dn2dn3_E::d2Xsec_dn1dn2dn3_E ( const XSecAlgorithmI m,
const Interaction i,
double  scale = 1. 
)

Definition at line 1135 of file GSLXSecFunc.cxx.

1136  :
1137 ROOT::Math::IBaseFunctionMultiDim(),
1138 fModel(m),
1139 fInteraction(i),
1140 fScale(scale)
1141 {
1142 
1143 }
genie::utils::gsl::d2Xsec_dn1dn2dn3_E::~d2Xsec_dn1dn2dn3_E ( )

Definition at line 1145 of file GSLXSecFunc.cxx.

1146 {
1147 
1148 }

Member Function Documentation

ROOT::Math::IBaseFunctionMultiDim * genie::utils::gsl::d2Xsec_dn1dn2dn3_E::Clone ( void  ) const

Definition at line 1179 of file GSLXSecFunc.cxx.

double genie::utils::gsl::d2Xsec_dn1dn2dn3_E::DoEval ( const double *  xin) const

Definition at line 1155 of file GSLXSecFunc.cxx.

References genie::units::cm2, genie::kKVn1, genie::kKVn2, genie::kKVn3, genie::kPSn1n2n3fE, and genie::Kinematics::SetKV().

1156 {
1157 // inputs:
1158 // n1
1159 // n2
1160 // n3
1161 // outputs:
1162 // differential cross section (hbar=c=1 units)
1163 //
1164 
1165  double n1 = xin[0];
1166  double n2 = xin[1];
1167  double n3 = xin[2];
1168 
1169  Kinematics * kinematics = fInteraction->KinePtr();
1170  kinematics->SetKV(kKVn1, n1);
1171  kinematics->SetKV(kKVn2, n2);
1172  kinematics->SetKV(kKVn3, n3);
1173 
1174  double xsec = fModel->XSec(fInteraction, kPSn1n2n3fE);
1175  return fScale*xsec/(1E-38 * units::cm2);
1176 }
Kinematics * KinePtr(void) const
Definition: Interaction.h:76
Generated/set kinematical variables for an event.
Definition: Kinematics.h:39
static constexpr double cm2
Definition: Units.h:69
virtual double XSec(const Interaction *i, KinePhaseSpace_t k=kPSfE) const =0
Compute the cross section for the input interaction.
void SetKV(KineVar_t kv, double value)
Definition: Kinematics.cxx:335
unsigned int genie::utils::gsl::d2Xsec_dn1dn2dn3_E::NDim ( void  ) const

Definition at line 1150 of file GSLXSecFunc.cxx.

1151 {
1152  return 3;
1153 }

Member Data Documentation

const Interaction* genie::utils::gsl::d2Xsec_dn1dn2dn3_E::fInteraction
private

Definition at line 511 of file GSLXSecFunc.h.

const XSecAlgorithmI* genie::utils::gsl::d2Xsec_dn1dn2dn3_E::fModel
private

Definition at line 510 of file GSLXSecFunc.h.

double genie::utils::gsl::d2Xsec_dn1dn2dn3_E::fScale
private

Definition at line 512 of file GSLXSecFunc.h.


The documentation for this class was generated from the following files: