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::d3Xsec_dTldTkdCosThetal Class Reference

#include <AlamSimoAtharVacasSKXSec.h>

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

Public Member Functions

 d3Xsec_dTldTkdCosThetal (const XSecAlgorithmI *m, const Interaction *i)
 
 ~d3Xsec_dTldTkdCosThetal ()
 
unsigned int NDim (void) const
 
double DoEval (const double *xin) const
 
ROOT::Math::IBaseFunctionMultiDim * Clone (void) const
 

Private Attributes

const XSecAlgorithmIfModel
 
const InteractionfInteraction
 

Detailed Description

Definition at line 64 of file AlamSimoAtharVacasSKXSec.h.

Constructor & Destructor Documentation

genie::utils::gsl::d3Xsec_dTldTkdCosThetal::d3Xsec_dTldTkdCosThetal ( const XSecAlgorithmI m,
const Interaction i 
)

Definition at line 171 of file AlamSimoAtharVacasSKXSec.cxx.

172  :
173 ROOT::Math::IBaseFunctionMultiDim(),
174 fModel(m),
175 fInteraction(i)
176 {
177 
178 }
genie::utils::gsl::d3Xsec_dTldTkdCosThetal::~d3Xsec_dTldTkdCosThetal ( )

Definition at line 180 of file AlamSimoAtharVacasSKXSec.cxx.

181 {
182 
183 }

Member Function Documentation

ROOT::Math::IBaseFunctionMultiDim * genie::utils::gsl::d3Xsec_dTldTkdCosThetal::Clone ( void  ) const
double genie::utils::gsl::d3Xsec_dTldTkdCosThetal::DoEval ( const double *  xin) const

Definition at line 192 of file AlamSimoAtharVacasSKXSec.cxx.

References genie::units::cm2, genie::utils::mec::J(), genie::kKVctl, genie::kKVphikq, genie::kKVTk, genie::kKVTl, genie::constants::kPi, genie::kRfLab, LOG, and pDEBUG.

193 {
194 // inputs:
195 // Tl [GeV]
196 // Tk [GeV]
197 // cosine theta l
198 // * calculate phi_kq based on neutrino energy -- this is for the integral only
199 // outputs:
200 // differential cross section [10^-38 cm^2]
201 //
202 
203  double Enu = fInteraction->InitState().ProbeE(kRfLab);
204 
205  double phikq = 0.5*constants::kPi;
206  if( Enu > 3.0 ) phikq = 0.55*constants::kPi;
207  else if( Enu > 1.0 ) phikq = constants::kPi*(0.5 + 0.025*(Enu-1.0));
208 
209  Kinematics * kinematics = fInteraction->KinePtr();
210 
211  double T_l = xin[0];
212  double T_k = xin[1];
213  //double cos_theta_l = xin[2];
214  double log_oneminuscostheta = xin[2];
215  double cos_theta_l = 1.0 - TMath::Exp(log_oneminuscostheta);
216  double J = 1.0 - cos_theta_l; // Jacobian for transformation
217 
218  kinematics->SetKV(kKVTl, T_l);
219  kinematics->SetKV(kKVTk, T_k);
220  kinematics->SetKV(kKVctl, cos_theta_l);
221  kinematics->SetKV(kKVphikq, phikq);
222 
223  double xsec = fModel->XSec(fInteraction);
224  LOG( "GXSecFunc", pDEBUG )
225  << "t_l = " << T_l << " t_k = " << T_k
226  << " costhetal = " << cos_theta_l << " phikq = " << phikq
227  << " enu = " << Enu << " Xsec = " << xsec;
228 
229  // integrate out phi_kq by multiplying by 2pi
230 
231  xsec *= 2.0 * genie::constants::kPi * J;
232 
233  return xsec/(1E-38 * units::cm2);
234 }
double J(double q0, double q3, double Enu, double ml)
Definition: MECUtils.cxx:147
Kinematics * KinePtr(void) const
Definition: Interaction.h:76
Generated/set kinematical variables for an event.
Definition: Kinematics.h:39
#define LOG(stream, priority)
A macro that returns the requested log4cpp::Category appending a string (using the FILE...
Definition: Messenger.h:96
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.
const InitialState & InitState(void) const
Definition: Interaction.h:69
double ProbeE(RefFrame_t rf) const
#define pDEBUG
Definition: Messenger.h:63
unsigned int genie::utils::gsl::d3Xsec_dTldTkdCosThetal::NDim ( void  ) const

Definition at line 185 of file AlamSimoAtharVacasSKXSec.cxx.

186 {
187  // phi_kq is important for kinematics generation
188  // But dependence is weak so we will not use it in the integration
189  return 3;
190 }

Member Data Documentation

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

Definition at line 75 of file AlamSimoAtharVacasSKXSec.h.

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

Definition at line 74 of file AlamSimoAtharVacasSKXSec.h.


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