BardinIMDRadCorPXSec.h
Go to the documentation of this file.
1 //____________________________________________________________________________
2 /*!
3 
4 \class genie::BardinIMDRadCorPXSec
5 
6 \brief Computes the Inverse Muon Decay (IMD) diff. cross section using the
7  Bardin-Dokuchaeva including all 1-loop radiative corrections. \n
8 
9  This is a 'trully' inclusive IMD cross section, i.e. the brem. cross
10  section (dxsec_brem/dy)|w>w0 [see Bardin paper, cited below] is not
11  subtracted from the IMD cross section and therefore it is not suitable
12  for experimental situations where a photon energy trigger threshold
13  is applied.
14 
15  Is a concrete implementation of the XSecAlgorithmI interface. \n
16 
17 \ref D.Yu.Bardin and V.A.Dokuchaeva, Nucl.Phys.B287:839 (1987)
18 
19 \author Costas Andreopoulos <constantinos.andreopoulos \at cern.ch>
20  University of Liverpool & STFC Rutherford Appleton Laboratory
21 
22 \created February 14, 2005
23 
24 \cpright Copyright (c) 2003-2020, The GENIE Collaboration
25  For the full text of the license visit http://copyright.genie-mc.org
26 */
27 //____________________________________________________________________________
28 
29 #ifndef _BARDIN_IMD_RADIATIVE_CORRECTIONS_PARTIAL_XSEC_H_
30 #define _BARDIN_IMD_RADIATIVE_CORRECTIONS_PARTIAL_XSEC_H_
31 
32 #include <Math/IFunction.h>
34 
35 namespace genie {
36 
37 class XSecIntegratorI;
38 
40 
41 public:
44  virtual ~BardinIMDRadCorPXSec();
45 
46  // XSecAlgorithmI interface implementation
47  double XSec (const Interaction * i, KinePhaseSpace_t k) const;
48  double Integral (const Interaction * i) const;
49  bool ValidProcess (const Interaction * i) const;
50 
51  // Override the Algorithm::Configure methods to load configuration
52  // data to private data members
53  void Configure (const Registry & config);
54  void Configure (string param_set);
55 
56 private:
57 
58  // Load configuration when Algorithm::Configure() is called
59  void LoadConfig(void);
60 
61  // Private functions
62  // (symbols follow the notation in Bardin-Dokuchaeva paper)
63  double Li2 (double z) const;
64  double Fa (double re, double r, double y) const;
65  double P (int i, double r, double y) const;
66  double C (int i, int k, double r) const;
67 
68  // Private data members
69 // const IntegratorI * fIntegrator; ///< num integrator for BardinIMDRadCorIntegrand
70  const XSecIntegratorI * fXSecIntegrator; ///< differential x-sec integrator
71 };
72 
73 } // genie namespace
74 
75 //____________________________________________________________________________
76 /*!
77 \class genie::BardinIMDRadCorIntegrand
78 
79 \brief Auxiliary scalar function for the internal integration in Bardin's
80  IMD d2xsec/dxdy cross section algorithm
81 
82 \author Costas Andreopoulos <constantinos.andreopoulos \at cern.ch>
83  University of Liverpool & STFC Rutherford Appleton Laboratory
84 
85 \created February 20, 2006
86 */
87 //____________________________________________________________________________
88 
89 namespace genie {
90  namespace utils {
91  namespace gsl {
92  namespace wrap {
93 
94  class BardinIMDRadCorIntegrand : public ROOT::Math::IBaseFunctionOneDim
95  {
96  public:
99  // ROOT::Math::IBaseFunctionOneDim interface
100  unsigned int NDim (void) const;
101  double DoEval (double xin) const;
102  ROOT::Math::IBaseFunctionOneDim * Clone (void) const;
103  private:
104  double fZ;
105  };
106 
107  } // wrap namespace
108  } // gsl namespace
109  } // utils namespace
110 } // genie namespace
111 
112 #endif // _BARDIN_IMD_RADIATIVE_CORRECTIONS_PARTIAL_XSEC_H_
Cross Section Calculation Interface.
void Configure(const Registry &config)
THE MAIN GENIE PROJECT NAMESPACE
Definition: AlgCmp.h:25
Cross Section Integrator Interface.
enum genie::EKinePhaseSpace KinePhaseSpace_t
Summary information for an interaction.
Definition: Interaction.h:56
double P(int i, double r, double y) const
double C(int i, int k, double r) const
static Config * config
Definition: config.cpp:1054
double XSec(const Interaction *i, KinePhaseSpace_t k) const
Compute the cross section for the input interaction.
A registry. Provides the container for algorithm configuration parameters.
Definition: Registry.h:65
const XSecIntegratorI * fXSecIntegrator
differential x-sec integrator
double Fa(double re, double r, double y) const
Definition: utils.py:1
Computes the Inverse Muon Decay (IMD) diff. cross section using the Bardin-Dokuchaeva including all 1...
bool ValidProcess(const Interaction *i) const
Can this cross section algorithm handle the input process?
double Integral(const Interaction *i) const