GENIEGenerator
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
PhotonStrucFunc.h
Go to the documentation of this file.
1 //____________________________________________________________________________
2 /*!
3 
4 \class genie::PhotonStrucFunc
5 
6 \brief Structure function using photon PDFs of nucleons
7 
8 \author Alfonso Garcia <aagarciasoto \at km3net.de>
9  IFIC & Harvard University
10 
11 \created Dec 8, 2021
12 
13 \cpright Copyright (c) 2003-2024, The GENIE Collaboration
14  For the full text of the license visit http://copyright.genie-mc.org
15  or see $GENIE/LICENSE
16 */
17 //____________________________________________________________________________
18 
19 #ifndef _PHOTON_STRUC_FUNC_H_
20 #define _PHOTON_STRUC_FUNC_H_
21 
23 
24 #include <map>
25 
26 using std::map;
27 
28 namespace genie {
29 
30  struct SF_x {
31  double Fp1,Fm1;
32  double Fp2,Fm2;
33  double Fp3,Fm3;
34  };
35 
37  {
38  public:
39 
40  // ................................................................
41  // GLRES form factor type
42  //
43 
45  {
46  public:
48  ~PhotonStrucFuncTable() { /* note: should delete the grids! */ }
49  map< int, genie::Spline * > Table;
50  };
51 
52  // ................................................................
53 
54  static PhotonStrucFunc * Instance(void);
55 
56  double EvalSF ( int hitnuc, int hitlep, double x ) { return fSFTables[hitnuc].Table[hitlep]->Evaluate(x); }
57 
58  private:
59 
60  // Ctors & dtor
64 
65  // Self
67 
68  // These map holds all SF tables (interaction channel is the key)
69  map<int, PhotonStrucFuncTable> fSFTables;
70 
71 
72  // singleton cleaner
73  struct Cleaner {
79  }
80  }
81  };
82  friend struct Cleaner;
83  };
84 
85 } // genie namespace
86 
87 #endif // _PHOTON_STRUC_FUNC_H_
map< int, PhotonStrucFuncTable > fSFTables
Structure function using photon PDFs of nucleons.
static PhotonStrucFunc * Instance(void)
double EvalSF(int hitnuc, int hitlep, double x)
static PhotonStrucFunc * fgInstance