GENIEGenerator
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
ReinSehgalRESXSecWithCacheFast.h
Go to the documentation of this file.
1 //____________________________________________________________________________
2 /*!
3 
4 \class genie::ReinSehgalRESXSecWithCacheFast
5 
6 \brief Class that caches resonance neutrinoproduction cross sections on free
7  nucleons according to the Rein-Sehgal model. This significantly speeds
8  the cross section calculation for multiple nuclear targets (eg at the
9  spline construction phase). This class integrates cross sections faster,
10  than ReinSehgalRESXSecWithCache because of integration area transformation.
11 
12 \ref D.Rein and L.M.Sehgal, Neutrino Excitation of Baryon Resonances
13  and Single Pion Production, Ann.Phys.133, 79 (1981)
14 
15 \author Igor Kakorin <kakorin@jinr.ru>
16  Joint Institute for Nuclear Research
17 
18  based on code of
19  Costas Andreopoulos <c.andreopoulos \at cern.ch>
20  University of Liverpool
21 
22 \created March 01, 2017
23 
24 \cpright Copyright (c) 2003-2024, The GENIE Collaboration
25  For the full text of the license visit http://copyright.genie-mc.org
26 */
27 //____________________________________________________________________________
28 
29 #ifndef _REIN_SEHGAL_RES_XSEC_WITH_CACHE_FAST_H_
30 #define _REIN_SEHGAL_RES_XSEC_WITH_CACHE_FAST_H_
31 
32 #include <Math/IFunction.h>
33 #include <Math/IntegratorMultiDim.h>
34 
38 #include "Framework/Utils/Range1.h"
40 
41 namespace genie {
42 
44 
45 protected:
47  ReinSehgalRESXSecWithCacheFast(string name);
48  ReinSehgalRESXSecWithCacheFast(string name, string config);
50 
51  // Don't implement the XSecIntegratorI interface - leave it for the concrete
52  // subclasses. Just define utility methods and data
53  void CacheResExcitationXSec (const Interaction * interaction) const;
54  string CacheBranchName(Resonance_t r, InteractionType_t it, int nu, int nuc) const;
55 
57  double fWcut;
58  double fEMax;
59 
62 };
63 
64 
65 class XSecAlgorithmI;
66 class Interaction;
67 
68 namespace utils {
69 namespace gsl {
70 
71 
72 
73 //.....................................................................................
74 //
75 // genie::utils::gsl::d2XSecRESFast_dWQ2_E
76 // A 2-D cross section function: d2xsec/dWdQ2 = f(W,Q2)|(fixed E)
77 //
78 class d2XSecRESFast_dWQ2_E: public ROOT::Math::IBaseFunctionMultiDim
79 {
80 public:
83 
84  // ROOT::Math::IBaseFunctionMultiDim interface
85  unsigned int NDim (void) const;
86  double DoEval (const double * xin) const;
87  ROOT::Math::IBaseFunctionMultiDim * Clone (void) const;
88 
89 private:
92  double fWmin;
93  double fWmax;
96 };
97 
98 } // gsl namespace
99 } // utils namespace
100 } // genie namespace
101 
102 #endif // _REIN_SEHGAL_RES_XSEC_WITH_CACHE_H_
Cross Section Calculation Interface.
Class that caches resonance neutrinoproduction cross sections on free nucleons according to the Rein-...
Cross Section Integrator Interface.
Encapsulates a list of baryon resonances.
Definition: BaryonResList.h:37
void CacheResExcitationXSec(const Interaction *interaction) const
enum genie::EResonance Resonance_t
string CacheBranchName(Resonance_t r, InteractionType_t it, int nu, int nuc) const
ROOT::Math::IBaseFunctionMultiDim * Clone(void) const
Summary information for an interaction.
Definition: Interaction.h:56
Kinematical phase space.
Definition: KPhaseSpace.h:33
static constexpr double m
Definition: Units.h:71
enum genie::EInteractionType InteractionType_t
d2XSecRESFast_dWQ2_E(const XSecAlgorithmI *m, const Interaction *i)