GENIEGenerator
Loading...
Searching...
No Matches
QELUtils.h
Go to the documentation of this file.
1//____________________________________________________________________________
2/*!
3
4\brief QE utilities
5
6\author Steven Gardiner <gardiner \at fnal.gov>
7 Fermilab
8
9\created May 04, 2004
10
11\cpright Copyright (c) 2003-2025, The GENIE Collaboration
12 For the full text of the license visit http://copyright.genie-mc.org
13*/
14//____________________________________________________________________________
15
16#ifndef _QEL_UTILS_H_
17#define _QEL_UTILS_H_
18
22
23#include "TLorentzVector.h"
24#include "TVector3.h"
25
26#include <string>
27
28namespace genie {
29
30 // Enumerated type used to specify the method for determining the off-shell energy
31 // of the hit nucleon for quasielastic events
32 typedef enum EQELEvGenBindingMode {
33
34 // Use removal energy from the nuclear model
36
37 // Calculate binding energy assuming that the remnant nucleus is left in its
38 // ground state
40
41 // Leave the struck nucleon on shell, effectively ignoring its binding
42 // energy
44
45 // Use a prescription equivalent to that of the Valencia model (see
46 // Eq. (43) in https://arxiv.org/abs/nucl-th/0408005). In this case,
47 // the effective energy transfer implies an off-shell hit nucleon
48 // total energy in the initial state.
51
52 namespace utils {
53
54 double EnergyDeltaFunctionSolutionQEL(const Interaction& inter);
55
56 QELEvGen_BindingMode_t StringToQELBindingMode( const std::string& mode_str );
57
58 double ComputeFullQELPXSec(Interaction* interaction,
59 const NuclearModelI* nucl_model, const XSecAlgorithmI* xsec_model,
60 double cos_theta_0, double phi_0, double& Eb,
61 QELEvGen_BindingMode_t hitNucleonBindingMode, double min_angle_EM = 0.,
62 bool bind_nucleon = true);
63
64 double CosTheta0Max(const genie::Interaction& interaction);
65
66 void BindHitNucleon(Interaction& interaction, const NuclearModelI& nucl_model,
67 double& Eb, QELEvGen_BindingMode_t hitNucleonBindingMode);
68 }
69}
70
71#endif
Summary information for an interaction.
Definition Interaction.h:56
QELEvGen_BindingMode_t StringToQELBindingMode(const std::string &mode_str)
Definition QELUtils.cxx:194
double CosTheta0Max(const genie::Interaction &interaction)
double ComputeFullQELPXSec(Interaction *interaction, const NuclearModelI *nucl_model, const XSecAlgorithmI *xsec_model, double cos_theta_0, double phi_0, double &Eb, QELEvGen_BindingMode_t hitNucleonBindingMode, double min_angle_EM=0., bool bind_nucleon=true)
Definition QELUtils.cxx:93
double EnergyDeltaFunctionSolutionQEL(const Interaction &inter)
Definition QELUtils.cxx:50
void BindHitNucleon(Interaction &interaction, const NuclearModelI &nucl_model, double &Eb, DMELEvGen_BindingMode_t hitNucleonBindingMode)
THE MAIN GENIE PROJECT NAMESPACE
Definition AlgCmp.h:25
EQELEvGenBindingMode
Definition QELUtils.h:32
@ kUseNuclearModel
Definition DMELUtils.h:20
@ kOnShell
Definition DMELUtils.h:27
@ kValenciaStyleQValue
Definition QELUtils.h:49
@ kUseGroundStateRemnant
Definition DMELUtils.h:24
enum genie::EQELEvGenBindingMode QELEvGen_BindingMode_t