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-2020, 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 
28 namespace 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
43  kOnShell,
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 
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
Cross Section Calculation Interface.
THE MAIN GENIE PROJECT NAMESPACE
Definition: AlgCmp.h:25
std::string string
Definition: nybbler.cc:12
Pure abstract base class. Defines the NuclearModelI interface to be implemented by any physics model ...
Definition: NuclearModelI.h:46
void BindHitNucleon(Interaction &interaction, const NuclearModelI &nucl_model, double &Eb, DMELEvGen_BindingMode_t hitNucleonBindingMode)
Definition: DMELUtils.cxx:259
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
enum genie::EQELEvGenBindingMode QELEvGen_BindingMode_t
EQELEvGenBindingMode
Definition: QELUtils.h:32
Summary information for an interaction.
Definition: Interaction.h:56
double EnergyDeltaFunctionSolutionQEL(const Interaction &inter)
Definition: QELUtils.cxx:50
double CosTheta0Max(const genie::Interaction &interaction)
Definition: DMELUtils.cxx:217
QELEvGen_BindingMode_t StringToQELBindingMode(const std::string &mode_str)
Definition: QELUtils.cxx:194
Definition: utils.py:1