GENIEGenerator
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
KovalenkoQELCharmPXSec.h
Go to the documentation of this file.
1 //____________________________________________________________________________
2 /*!
3 
4 \class genie::KovalenkoQELCharmPXSec
5 
6 \brief Computes the QEL Charm Production Differential Cross Section
7  using \b Kovalenko's duality model approach.
8  It models the differential cross sections for: \n
9  \li v + n \rightarrow mu- + Lambda_{c}^{+} (2285)
10  \li v + n \rightarrow mu- + Sigma_{c}^{+} (2455)
11  \li v + p \rightarrow mu- + Sigma_{c}^{++} (2455)
12  Is a concrete implementation of the XSecAlgorithmI interface.
13 
14 \ref S.G.Kovalenko, Sov.J.Nucl.Phys.52:934 (1990)
15 
16  Rather than using Kovalenko's expression for the ZR scaling factor,
17  I apply an ad-hoc scaling factor maintaining the relative strength
18  of the QELC channels but lowering their sum to be consistent with
19  recent NOMAD measurement. The default value of M0 has been changed
20  from 0.1 to sqrt(0.1) as in M.Bischofberger's (ETHZ)PhD thesis
21  (DISS.ETH NO 16034). For more details see GENIE-PUB/2007/006.
22 
23 \author Costas Andreopoulos <c.andreopoulos \at cern.ch>
24  University of Liverpool
25 
26 \created June 10, 2004
27 
28 \cpright Copyright (c) 2003-2024, The GENIE Collaboration
29  For the full text of the license visit http://copyright.genie-mc.org
30 */
31 //____________________________________________________________________________
32 
33 #ifndef _KOVALENKO_QEL_CHARM_PARTIAL_XSEC_H_
34 #define _KOVALENKO_QEL_CHARM_PARTIAL_XSEC_H_
35 
36 #include <Math/IFunction.h>
37 
39 //#include "Numerical/GSFunc.h"
40 
41 namespace genie {
42 
43 class PDF;
44 class PDFModelI;
45 class IntegratorI;
46 class XSecIntegratorI;
47 
49 
50 public:
52  KovalenkoQELCharmPXSec(string config);
53  virtual ~KovalenkoQELCharmPXSec();
54 
55  // XSecAlgorithmI interface implementation
56  double XSec (const Interaction * i, KinePhaseSpace_t k) const;
57  double Integral (const Interaction * i) const;
58  bool ValidProcess (const Interaction * i) const;
59  bool ValidKinematics (const Interaction * i) const;
60 
61  // Override the Algorithm::Configure methods to load configuration
62  // data to private data members
63  void Configure (const Registry & config);
64  void Configure (string param_set);
65 
66 private:
67  void LoadConfig (void);
68 
69  double ZR (const Interaction * interaction) const;
70  double DR (const Interaction * interaction) const;
71  double MRes (const Interaction * interaction) const;
72  double ResDM (const Interaction * interaction) const;
73  double xiBar (double Q2, double Mnuc, double v) const;
74 
76 /// const IntegratorI * fIntegrator;
78 
79  double fMo;
80  double fScLambdaP;
81  double fScSigmaP;
82  double fScSigmaPP;
83  double fResDMLambda;
84  double fResDMSigma;
85 };
86 
87 } // genie namespace
88 
89 //____________________________________________________________________________
90 /*!
91 \class genie::utils::gsl::wrap::KovQELCharmIntegrand
92 
93 \brief Auxiliary scalar function for the internal integration in Kovalenko
94  QEL charm production cross section algorithm
95 
96 \author Costas Andreopoulos <c.andreopoulos \at cern.ch>
97  University of Liverpool
98 
99 \created February 20, 2006
100 */
101 //____________________________________________________________________________
102 
103 namespace genie {
104  namespace utils {
105  namespace gsl {
106  namespace wrap {
107 
108  class KovQELCharmIntegrand : public ROOT::Math::IBaseFunctionOneDim
109  {
110  public:
111  KovQELCharmIntegrand(PDF * pdf, double Q2, int nucleon_pdgc);
113  // ROOT::Math::IBaseFunctionOneDim interface
114  unsigned int NDim (void) const;
115  double DoEval (double xin) const;
116  ROOT::Math::IBaseFunctionOneDim * Clone (void) const;
117  private:
119  double fQ2;
120  int fPdgC;
121  };
122 
123  } // wrap namespace
124  } // gsl namespace
125  } // utils namespace
126 } // genie namespace
127 
128 #endif // _KOVALENKO_QEL_CHARM_PARTIAL_XSEC_H_
Cross Section Calculation Interface.
Cross Section Integrator Interface.
double Q2(const Interaction *const i)
Definition: KineUtils.cxx:1077
ROOT::Math::IBaseFunctionOneDim * Clone(void) const
void Configure(const Registry &config)
A class to store PDFs.
Definition: PDF.h:37
double MRes(const Interaction *interaction) const
double ZR(const Interaction *interaction) const
bool ValidKinematics(const Interaction *i) const
Is the input kinematical point a physically allowed one?
const XSecIntegratorI * fXSecIntegrator
const IntegratorI * fIntegrator;
enum genie::EKinePhaseSpace KinePhaseSpace_t
Pure abstract base class. Defines the PDFModelI interface to be implemented by wrapper classes to exi...
Definition: PDFModelI.h:28
Summary information for an interaction.
Definition: Interaction.h:56
double DR(const Interaction *interaction) const
double ResDM(const Interaction *interaction) const
Auxiliary scalar function for the internal integration in Kovalenko QEL charm production cross sectio...
bool ValidProcess(const Interaction *i) const
Can this cross section algorithm handle the input process?
Computes the QEL Charm Production Differential Cross Section using Kovalenko&#39;s duality model approach...
A registry. Provides the container for algorithm configuration parameters.
Definition: Registry.h:65
double Integral(const Interaction *i) const
double xiBar(double Q2, double Mnuc, double v) const
KovQELCharmIntegrand(PDF *pdf, double Q2, int nucleon_pdgc)
double XSec(const Interaction *i, KinePhaseSpace_t k) const
Compute the cross section for the input interaction.