GENIEGenerator
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
QPMDISStrucFuncBase.h
Go to the documentation of this file.
1 //____________________________________________________________________________
2 /*!
3 
4 \class genie::QPMDISStrucFuncBase
5 
6 \brief Abstract base class.
7  Provides common implementation for concrete objects implementing the
8  DISStructureFuncModelI interface.
9 
10 \ref For a discussion of DIS SF see for example E.A.Paschos and J.Y.Yu,
11  Phys.Rev.D 65.033002 and R.Devenish and A.Cooper-Sarkar, OUP 2004.
12 
13 \author Costas Andreopoulos <c.andreopoulos \at cern.ch>
14  University of Liverpool
15 
16  Adapted from neugen 3.
17  Primary authors:
18  D.Naples (Pittsburgh U.), H.Gallagher (Tufts U), CA (RAL)
19 
20 \created May 03, 2004
21 
22 \cpright Copyright (c) 2003-2024, The GENIE Collaboration
23  For the full text of the license visit http://copyright.genie-mc.org
24 */
25 //____________________________________________________________________________
26 
27 #ifndef _QPM_DIS_STRUCTURE_FUNCTIONS_BASE_H_
28 #define _QPM_DIS_STRUCTURE_FUNCTIONS_BASE_H_
29 
33 
34 namespace genie {
35 
37 
38 public:
39  virtual ~QPMDISStrucFuncBase();
40 
41  // common code for all DISFormFactorsModelI interface implementations
42  virtual double F1 (void) const { return fF1; }
43  virtual double F2 (void) const { return fF2; }
44  virtual double F3 (void) const { return fF3; }
45  virtual double F4 (void) const { return fF4; }
46  virtual double F5 (void) const { return fF5; }
47  virtual double F6 (void) const { return fF6; }
48 
49  virtual void Calculate (const Interaction * interaction) const;
50 
51  // overload Algorithm's Configure() to set the PDF data member
52  // from the configuration registry
53  void Configure (const Registry & config);
54  void Configure (string param_set);
55 
56 protected:
58  QPMDISStrucFuncBase(string name);
59  QPMDISStrucFuncBase(string name, string config);
60 
61  // commom code for SF calculation for all DISFormFactorsModelI
62  // interface implementations inheriting from QPMDISStrucFuncBase
63  virtual void LoadConfig (void);
64  virtual void InitPDF (void);
65  virtual double Q2 (const Interaction * i) const;
66  virtual double ScalingVar (const Interaction * i) const;
67  virtual void CalcPDFs (const Interaction * i) const;
68  virtual double NuclMod (const Interaction * i) const;
69  virtual double R (const Interaction * i) const;
70  virtual void KFactors (const Interaction * i, double & kuv,
71  double & kdv, double & kus, double & kds) const;
72  // configuration
73  //
74  double fQ2min; ///< min Q^2 allowed for PDFs: PDF(Q2<Q2min):=PDF(Q2min)
75  bool fCharmOff; ///< turn charm production off?
76  bool fIncludeR; ///< include R (~FL) in DIS SF calculation?
77  bool fIncludeNuclMod; ///< include nuclear factor (shadowing, anti-shadowing,...)?
78  double fMc; ///< charm mass used
79  double fVcd; ///< CKM element Vcd used
80  double fVcs; ///< CKM element Vcs used
81  double fVud; ///< CKM element Vud used
82  double fVus; ///< CKM element Vcs used
83  double fVcd2; ///<
84  double fVcs2; ///<
85  double fVud2; ///<
86  double fVus2; ///<
87  double fSin2thw; ///<
88  bool fUse2016Corrections;///< Use 2016 SF relation corrections
89  double fLowQ2CutoffF1F2; ///< Set min for relation between 2xF1 and F2
90 
91  mutable double fF1;
92  mutable double fF2;
93  mutable double fF3;
94  mutable double fF4;
95  mutable double fF5;
96  mutable double fF6;
97  PDF * fPDF; ///< computed PDFs @ (x,Q2)
98  PDF * fPDFc; ///< computed PDFs @ (slow-rescaling-var,Q2)
99  mutable double fuv;
100  mutable double fus;
101  mutable double fdv;
102  mutable double fds;
103  mutable double fs;
104  mutable double fc;
105  mutable double fuv_c;
106  mutable double fus_c;
107  mutable double fdv_c;
108  mutable double fds_c;
109  mutable double fs_c;
110  mutable double fc_c;
111 
112 };
113 
114 } // genie namespace
115 #endif // _QPM_DIS_STRUCTURE_FUNCTIONS_BASE_H_
virtual double F4(void) const
Get the computed structure function F4.
Pure Abstract Base Class. Defines the DISStructureFuncModelI interface to be implemented by any algor...
virtual double F3(void) const
Get the computed structure function F3.
double fVcd
CKM element Vcd used.
double fQ2min
min Q^2 allowed for PDFs: PDF(Q2&lt;Q2min):=PDF(Q2min)
PDF * fPDFc
computed PDFs @ (slow-rescaling-var,Q2)
A class to store PDFs.
Definition: PDF.h:37
double fVud
CKM element Vud used.
bool fIncludeNuclMod
include nuclear factor (shadowing, anti-shadowing,...)?
double fMc
charm mass used
PDF * fPDF
computed PDFs @ (x,Q2)
bool fIncludeR
include R (~FL) in DIS SF calculation?
virtual double NuclMod(const Interaction *i) const
Summary information for an interaction.
Definition: Interaction.h:56
virtual double Q2(const Interaction *i) const
Abstract base class. Provides common implementation for concrete objects implementing the DISStructur...
virtual double F2(void) const
Get the computed structure function F2.
bool fCharmOff
turn charm production off?
virtual double F6(void) const
Get the computed structure function F6.
virtual double ScalingVar(const Interaction *i) const
void Configure(const Registry &config)
double fLowQ2CutoffF1F2
Set min for relation between 2xF1 and F2.
virtual double F1(void) const
Get the computed structure function F1.
virtual void Calculate(const Interaction *interaction) const
Calculate the structure functions F1-F6 for the input interaction.
double fVus
CKM element Vcs used.
double fVcs
CKM element Vcs used.
virtual void KFactors(const Interaction *i, double &kuv, double &kdv, double &kus, double &kds) const
A registry. Provides the container for algorithm configuration parameters.
Definition: Registry.h:65
virtual double R(const Interaction *i) const
virtual double F5(void) const
Get the computed structure function F5.
virtual void CalcPDFs(const Interaction *i) const
bool fUse2016Corrections
Use 2016 SF relation corrections.