QPMDMDISStrucFuncBase.h
Go to the documentation of this file.
1 //____________________________________________________________________________
2 /*!
3 
4 \class genie::QPMDMDISStrucFuncBase
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 <constantinos.andreopoulos \at cern.ch>
14  University of Liverpool & STFC Rutherford Appleton Laboratory
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-2020, The GENIE Collaboration
23  For the full text of the license visit http://copyright.genie-mc.org
24 
25 */
26 //____________________________________________________________________________
27 
28 #ifndef _DM_QPM_DIS_STRUCTURE_FUNCTIONS_BASE_H_
29 #define _DM_QPM_DIS_STRUCTURE_FUNCTIONS_BASE_H_
30 
34 
35 namespace genie {
36 
38 
39 public:
40  virtual ~QPMDMDISStrucFuncBase();
41 
42  // common code for all DISFormFactorsModelI interface implementations
43  virtual double F1 (void) const { return fF1; }
44  virtual double F2 (void) const { return fF2; }
45  virtual double F3 (void) const { return fF3; }
46  virtual double F4 (void) const { return fF4; }
47  virtual double F5 (void) const { return fF5; }
48  virtual double F6 (void) const { return fF6; }
49 
50  virtual void Calculate (const Interaction * interaction) const;
51 
52  // overload Algorithm's Configure() to set the PDF data member
53  // from the configuration registry
54  void Configure (const Registry & config);
55  void Configure (string param_set);
56 
57 protected:
60  QPMDMDISStrucFuncBase(string name, string config);
61 
62  // commom code for SF calculation for all DISFormFactorsModelI
63  // interface implementations inheriting from QPMDMDISStrucFuncBase
64  virtual void LoadConfig (void);
65  virtual void InitPDF (void);
66  virtual double Q2 (const Interaction * i) const;
67  virtual double ScalingVar (const Interaction * i) const;
68  virtual void CalcPDFs (const Interaction * i) const;
69  virtual double NuclMod (const Interaction * i) const;
70  virtual double R (const Interaction * i) const;
71  virtual void KFactors (const Interaction * i, double & kuv,
72  double & kdv, double & kus, double & kds) const;
73  // configuration
74  //
75  double fQ2min; ///< min Q^2 allowed for PDFs: PDF(Q2<Q2min):=PDF(Q2min)
76  bool fCharmOff; ///< turn charm production off?
77  bool fIncludeR; ///< include R (~FL) in DIS SF calculation?
78  bool fIncludeNuclMod; ///< include nuclear factor (shadowing, anti-shadowing,...)?
79  double fMc; ///< charm mass used
80  double fQuL; ///< Up Left Dark Matter Coupling
81  double fQuR; ///< Up Right Dark Matter Coupling
82  double fQcL; ///< Charm Left Dark Matter Coupling
83  double fQcR; ///< Charm Right Dark Matter Coupling
84  double fQdL; ///< Down Left Dark Matter Coupling
85  double fQdR; ///< Down Right Dark Matter Coupling
86  double fQsL; ///< Strange Left Dark Matter Coupling
87  double fQsR; ///< Strange Right Dark Matter Coupling
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_
116 
static QCString name
Definition: declinfo.cpp:673
Pure Abstract Base Class. Defines the DISStructureFuncModelI interface to be implemented by any algor...
THE MAIN GENIE PROJECT NAMESPACE
Definition: AlgCmp.h:25
virtual double NuclMod(const Interaction *i) const
virtual double F3(void) const
Get the computed structure function F3.
double fQuR
Up Right Dark Matter Coupling.
Abstract base class. Provides common implementation for concrete objects implementing the DISStructur...
virtual void KFactors(const Interaction *i, double &kuv, double &kdv, double &kus, double &kds) const
A class to store PDFs.
Definition: PDF.h:37
double fQdR
Down Right Dark Matter Coupling.
double fQcR
Charm Right Dark Matter Coupling.
virtual void CalcPDFs(const Interaction *i) const
double fQsR
Strange Right Dark Matter Coupling.
virtual double R(const Interaction *i) const
virtual double F4(void) const
Get the computed structure function F4.
void Configure(const Registry &config)
Summary information for an interaction.
Definition: Interaction.h:56
virtual double F2(void) const
Get the computed structure function F2.
virtual double Q2(const Interaction *i) const
bool fIncludeNuclMod
include nuclear factor (shadowing, anti-shadowing,...)?
PDF * fPDF
computed PDFs @ (x,Q2)
static Config * config
Definition: config.cpp:1054
bool fIncludeR
include R (~FL) in DIS SF calculation?
bool fUse2016Corrections
Use 2016 SF relation corrections.
double fQuL
Up Left Dark Matter Coupling.
double fLowQ2CutoffF1F2
Set min for relation between 2xF1 and F2.
PDF * fPDFc
computed PDFs @ (slow-rescaling-var,Q2)
virtual double F6(void) const
Get the computed structure function F6.
bool fCharmOff
turn charm production off?
virtual void Calculate(const Interaction *interaction) const
Calculate the structure functions F1-F6 for the input interaction.
A registry. Provides the container for algorithm configuration parameters.
Definition: Registry.h:65
virtual double F5(void) const
Get the computed structure function F5.
virtual double F1(void) const
Get the computed structure function F1.
virtual double ScalingVar(const Interaction *i) const
double fQsL
Strange Left Dark Matter Coupling.
double fQ2min
min Q^2 allowed for PDFs: PDF(Q2<Q2min):=PDF(Q2min)
double fQdL
Down Left Dark Matter Coupling.
double fQcL
Charm Left Dark Matter Coupling.