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

#include <SPPEventGenerator.h>

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

Public Member Functions

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

Private Attributes

const XSecAlgorithmIfModel
 
InteractionfInteraction
 
Range1D_t Wl
 
double fWcut
 
bool isZero
 
KPhaseSpacekps
 

Detailed Description

Definition at line 128 of file SPPEventGenerator.h.

Constructor & Destructor Documentation

genie::utils::gsl::d4XSecMK_dWQ2CosThetaPhi_E::d4XSecMK_dWQ2CosThetaPhi_E ( const XSecAlgorithmI m,
const Interaction i,
double  wcut 
)

Definition at line 469 of file SPPEventGenerator.cxx.

References fInteraction, fWcut, isZero, genie::kISkipKinematicChk, genie::kISkipProcessChk, kps, genie::kRfHitNucRest, genie::Range1D_t::max, genie::Range1D_t::min, genie::Interaction::PhaseSpacePtr(), genie::InitialState::ProbeE(), Wl, and genie::KPhaseSpace::WLim_SPP_iso().

470  :
471 ROOT::Math::IBaseFunctionMultiDim(), fModel(m), fWcut(wcut)
472 {
473 
474  isZero = false;
475  fInteraction = const_cast<Interaction*>(interaction);
476  // skip process and kinematic checks
479 
481 
482  // Get kinematical parameters
483  const InitialState & init_state = interaction -> InitState();
484  double Enu = init_state.ProbeE(kRfHitNucRest);
485 
486 
487  if (Enu < kps->Threshold_SPP_iso())
488  {
489  isZero = true;
490  return;
491  }
492 
493  Wl = kps->WLim_SPP_iso();
494  if (fWcut >= Wl.min)
495  Wl.max = TMath::Min(fWcut,Wl.max);
496 
497 }
KPhaseSpace * PhaseSpacePtr(void) const
Definition: Interaction.h:78
Summary information for an interaction.
Definition: Interaction.h:56
const UInt_t kISkipKinematicChk
if set, skip kinematic validity checks
Definition: Interaction.h:48
double max
Definition: Range1.h:53
Range1D_t WLim_SPP_iso(void) const
W limits for resonance single pion production on isoscalar nucleon.
double min
Definition: Range1.h:52
double ProbeE(RefFrame_t rf) const
const UInt_t kISkipProcessChk
if set, skip process validity checks
Definition: Interaction.h:47
Initial State information.
Definition: InitialState.h:48
genie::utils::gsl::d4XSecMK_dWQ2CosThetaPhi_E::~d4XSecMK_dWQ2CosThetaPhi_E ( )

Definition at line 498 of file SPPEventGenerator.cxx.

499 {
500 
501 }

Member Function Documentation

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

Definition at line 506 of file SPPEventGenerator.cxx.

References genie::units::cm2, genie::kKVctp, genie::kKVphip, genie::constants::kPi, genie::kPSWQ2ctpphipfE, genie::Range1D_t::max, genie::Range1D_t::min, genie::utils::kinematics::Q2(), and genie::utils::kinematics::W().

507 {
508 
509 // outputs:
510 // differential cross section [10^-38 cm^2/GeV^3] for resonance single pion production production
511 //
512  if (isZero) return 0.;
513 
514  double W = Wl.min + (Wl.max - Wl.min)*xin[0];
515  fInteraction->KinePtr()->SetW(W);
516 
517  Range1D_t Q2l = kps->Q2Lim_W_SPP_iso();
518  double Q2 = Q2l.min + (Q2l.max - Q2l.min)*xin[1];
519  fInteraction->KinePtr()->SetQ2(Q2);
520 
521  fInteraction->KinePtr()->SetKV(kKVctp, -1. + 2.*xin[2]); // cosine of pion theta in resonance rest frame
522 
523  fInteraction->KinePtr()->SetKV(kKVphip , 2.*kPi*xin[3]); // pion phi in resonance rest frame
524 
525  double xsec = fModel->XSec(fInteraction, kPSWQ2ctpphipfE);
526  xsec *= 4*kPi*(Wl.max - Wl.min)*(Q2l.max - Q2l.min);
527  return -xsec/(1E-38 * units::cm2);
528 }
double Q2(const Interaction *const i)
Definition: KineUtils.cxx:1077
void SetQ2(double Q2, bool selected=false)
Definition: Kinematics.cxx:255
Kinematics * KinePtr(void) const
Definition: Interaction.h:76
A simple [min,max] interval for doubles.
Definition: Range1.h:42
double W(const Interaction *const i)
Definition: KineUtils.cxx:1101
Range1D_t Q2Lim_W_SPP_iso(void) const
Q2 limits @ fixed W for resonance single pion production on isoscalar nucleon.
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
double max
Definition: Range1.h:53
void SetW(double W, bool selected=false)
Definition: Kinematics.cxx:279
double min
Definition: Range1.h:52
unsigned int genie::utils::gsl::d4XSecMK_dWQ2CosThetaPhi_E::NDim ( void  ) const

Definition at line 502 of file SPPEventGenerator.cxx.

503 {
504  return 4;
505 }

Member Data Documentation

Interaction* genie::utils::gsl::d4XSecMK_dWQ2CosThetaPhi_E::fInteraction
private

Definition at line 141 of file SPPEventGenerator.h.

Referenced by d4XSecMK_dWQ2CosThetaPhi_E().

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

Definition at line 140 of file SPPEventGenerator.h.

double genie::utils::gsl::d4XSecMK_dWQ2CosThetaPhi_E::fWcut
private

Definition at line 143 of file SPPEventGenerator.h.

Referenced by d4XSecMK_dWQ2CosThetaPhi_E().

bool genie::utils::gsl::d4XSecMK_dWQ2CosThetaPhi_E::isZero
private

Definition at line 144 of file SPPEventGenerator.h.

Referenced by d4XSecMK_dWQ2CosThetaPhi_E().

KPhaseSpace* genie::utils::gsl::d4XSecMK_dWQ2CosThetaPhi_E::kps
private

Definition at line 145 of file SPPEventGenerator.h.

Referenced by d4XSecMK_dWQ2CosThetaPhi_E().

Range1D_t genie::utils::gsl::d4XSecMK_dWQ2CosThetaPhi_E::Wl
private

Definition at line 142 of file SPPEventGenerator.h.

Referenced by d4XSecMK_dWQ2CosThetaPhi_E().


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