GENIEGenerator
Loading...
Searching...
No Matches
SPPXSecWithCache.h
Go to the documentation of this file.
1//____________________________________________________________________________
2/*!
3
4\class genie::SPPXSecWithCache
5
6\brief Class that caches neutrino resonance SPP cross sections on free
7 nucleons. This significantly speeds
8 the cross section calculation for multiple nuclear targets (eg at the
9 spline construction phase, but only for case without Pauli-blocking).
10 This class integrates cross sections faster,
11
12Computes the cross section for an neutrino resonance SPP reaction.
13
14
15\authors Igor Kakorin <kakorin@jinr.ru>, Joint Institute for Nuclear Research \n
16 Vadim Naumov <vnaumov@theor.jinr.ru >, Joint Institute for Nuclear Research \n
17 based on code of Costas Andreopoulos <c.andreopoulos \at cern.ch>
18 University of Liverpool
19
20\created November 12, 2019
21
22\cpright Copyright (c) 2003-2025, The GENIE Collaboration
23 For the full text of the license visit http://copyright.genie-mc.org
24 or see $GENIE/LICENSE
25*/
26//____________________________________________________________________________
27
28#ifndef _SPP_XSEC_WITH_CACHE_H_
29#define _SPP_XSEC_WITH_CACHE_H_
30
31#include <Math/IFunction.h>
32#include <Math/IntegratorMultiDim.h>
33
40
41namespace genie {
42
44
45protected:
47 SPPXSecWithCache(string name);
48 SPPXSecWithCache(string name, string config);
49 virtual ~SPPXSecWithCache();
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(SppChannel_t spp_channel, InteractionType_t it, int nu) const;
55
57 double fWcut;
58 double fEMax;
59
62};
63
64
65class XSecAlgorithmI;
66class Interaction;
67
68namespace utils {
69namespace gsl {
70
71
72
73//.....................................................................................
74//
75// genie::utils::gsl::d3XSecMK_dWQ2CosTheta_E
76// A 3-D cross section function: d3xsec/dWdQ2dCosTheta = f(W, Q2, CosTheta)|(fixed E)
77//
78class d3XSecMK_dWQ2CosTheta_E: public ROOT::Math::IBaseFunctionMultiDim
79{
80public:
81 d3XSecMK_dWQ2CosTheta_E(const XSecAlgorithmI * m, const Interaction * i, double wcut);
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
89private:
93 bool isZero;
95 double fWcut;
96};
97
98} // gsl namespace
99} // utils namespace
100} // genie namespace
101
102#endif // _SPP_XSEC_WITH_H_
103
104
105
Encapsulates a list of baryon resonances.
Summary information for an interaction.
Definition Interaction.h:56
Kinematical phase space.
Definition KPhaseSpace.h:33
A simple [min,max] interval for doubles.
Definition Range1.h:43
string CacheBranchName(SppChannel_t spp_channel, InteractionType_t it, int nu) const
const XSecAlgorithmI * fSinglePionProductionXSecModel
void CacheResExcitationXSec(const Interaction *interaction) const
Cross Section Calculation Interface.
d3XSecMK_dWQ2CosTheta_E(const XSecAlgorithmI *m, const Interaction *i, double wcut)
ROOT::Math::IBaseFunctionMultiDim * Clone(void) const
Root of GENIE utility namespaces.
THE MAIN GENIE PROJECT NAMESPACE
Definition AlgCmp.h:25
enum genie::EInteractionType InteractionType_t
enum genie::ESppChannel SppChannel_t