GENIEGenerator
Loading...
Searching...
No Matches
GiBUURESFormFactor.h
Go to the documentation of this file.
1//____________________________________________________________________________
2/*!
3
4\class genie::GiBUURESFormFactor
5
6\brief Singleton to load and serve data tables provided by the GiBUU group
7
8\ref http://gibuu.physik.uni-giessen.de/GiBUU
9 Specific references for each piece of data included in given below.
10
11\author Costas Andreopoulos <c.andreopoulos \at cern.ch>
12 University of Liverpool
13
14\created May 30, 2009
15
16\cpright Copyright (c) 2003-2025, The GENIE Collaboration
17 For the full text of the license visit http://copyright.genie-mc.org
18*/
19//____________________________________________________________________________
20
21#ifndef _GIBUU_RES_FORM_FACTOR_H_
22#define _GIBUU_RES_FORM_FACTOR_H_
23
26
27namespace genie {
28
29class Spline;
30
32{
33public:
34
35 class FormFactors;
36
37 // access GiBUURESFormFactor singleton instance
38 static GiBUURESFormFactor * Instance (void);
39
40 // access form factor data
41 const FormFactors & FF(void) const;
42
43 //
44 // Resonance form factors.
45 // Details given in Phys. Rev. C 79, 034601 (2009).
46 //
48
49 public:
50
53
54 // the following is non-zero for I=1/2 (N) resonances
55 double C3V (double Q2, Resonance_t res, int nucleon_pdg, InteractionType_t it) const;
56 double C4V (double Q2, Resonance_t res, int nucleon_pdg, InteractionType_t it) const;
57 double C5V (double Q2, Resonance_t res, int nucleon_pdg, InteractionType_t it) const;
58 double C6V (double Q2, Resonance_t res, int nucleon_pdg, InteractionType_t it) const;
59 double C3A (double Q2, Resonance_t res, int nucleon_pdg, InteractionType_t it) const;
60 double C4A (double Q2, Resonance_t res, int nucleon_pdg, InteractionType_t it) const;
61 double C5A (double Q2, Resonance_t res, int nucleon_pdg, InteractionType_t it) const;
62 double C6A (double Q2, Resonance_t res, int nucleon_pdg, InteractionType_t it) const;
63
64 // the following is non-zero for I=3/2 (Delta) resonances
65 double F1V (double Q2, Resonance_t res, int nucleon_pdg, InteractionType_t it) const;
66 double F2V (double Q2, Resonance_t res, int nucleon_pdg, InteractionType_t it) const;
67 double FA (double Q2, Resonance_t res, int nucleon_pdg, InteractionType_t it) const;
68 double FP (double Q2, Resonance_t res, int nucleon_pdg, InteractionType_t it) const;
69
70 double Q2min (void) const { return fMinQ2; }
71 double Q2max (void) const { return fMaxQ2; }
72
73 private:
74
75 static double fMinQ2; ///< min Q2 for which resonance f/f data are given
76 static double fMaxQ2; ///< max Q2 for which resonance f/f data are given
77
78 // The first array index is the resonance id.
79 // Tina provided GiBUU form factor data for 13 resonances given below along with
80 // the corresponding GENIE resonance ids
81 // GENIE Resonance_t as integer
82 // P33(1232) -> kP33_1232 0
83 // S11(1535) -> kS11_1535 1
84 // D13(1520) -> kD13_1520 2
85 // S11(1650) -> kS11_1650 3
86 // D15(1675) -> kD15_1675 5
87 // S31(1620) -> kS31_1620 6
88 // D33(1700) -> kD33_1700 7
89 // P11(1440) -> kP11_1440 8
90 // P13(1720) -> kP13_1720 10
91 // F15(1680) -> kF15_1680 11
92 // P31(1910) -> kP31_1910 12
93 // F35(1905) -> kF35_1905 14
94 // F37(1950) -> kF37_1950 15
95 // The remaining 3 array indices are:
96 // 0 1 2 0 1 0 1 2 3 4 5 6 7 8 9 10 11
97 // [CC,NC,EM][n,p][F1V,F2V,FA,FP,C3V,C4V,C5V,C6V,C3A,C4A,C5A,C6A]
98 // |-------------| for I=1/2 resonances
99 // |-------------------------------| for I=3/2 resonances
100
101 static const int kNRes = 18;
102 static const int kNCurr = 3;
103 static const int kNHitNuc = 2;
104 static const int kNFFRes = 12;
105
106 //! actual form factor data = f(Q2)
108
109 //! func to retrieve interpolated form factor values
110 double FFRes (double Q2, Resonance_t res, int nucleon_pdg, InteractionType_t it, int ffid) const;
111
112 //! load all form factor data tables
113 void LoadTables(void);
114
115 friend class GiBUURESFormFactor;
116
117 }; // FormFactors nested class
118
119private:
123
124 // load all data tables
125 void LoadTables(void);
126
127 // singleton 'self'
129
130 // form factor data
132
133 // singleton cleaner
143 friend struct Cleaner;
144
145}; // GiBUURESFormFactor class
146
147} // genie namespace
148
149#endif // _GIBUU_RES_FORM_FACTOR_H_
double C6V(double Q2, Resonance_t res, int nucleon_pdg, InteractionType_t it) const
static double fMinQ2
min Q2 for which resonance f/f data are given
double C5A(double Q2, Resonance_t res, int nucleon_pdg, InteractionType_t it) const
static double fMaxQ2
max Q2 for which resonance f/f data are given
double FP(double Q2, Resonance_t res, int nucleon_pdg, InteractionType_t it) const
Spline * fFFRes[kNRes][kNCurr][kNHitNuc][kNFFRes]
actual form factor data = f(Q2)
double C4V(double Q2, Resonance_t res, int nucleon_pdg, InteractionType_t it) const
double FFRes(double Q2, Resonance_t res, int nucleon_pdg, InteractionType_t it, int ffid) const
func to retrieve interpolated form factor values
void LoadTables(void)
load all form factor data tables
double F1V(double Q2, Resonance_t res, int nucleon_pdg, InteractionType_t it) const
double F2V(double Q2, Resonance_t res, int nucleon_pdg, InteractionType_t it) const
double C6A(double Q2, Resonance_t res, int nucleon_pdg, InteractionType_t it) const
double C5V(double Q2, Resonance_t res, int nucleon_pdg, InteractionType_t it) const
double C4A(double Q2, Resonance_t res, int nucleon_pdg, InteractionType_t it) const
double FA(double Q2, Resonance_t res, int nucleon_pdg, InteractionType_t it) const
double C3V(double Q2, Resonance_t res, int nucleon_pdg, InteractionType_t it) const
double C3A(double Q2, Resonance_t res, int nucleon_pdg, InteractionType_t it) const
static GiBUURESFormFactor * fInstance
const FormFactors & FF(void) const
static GiBUURESFormFactor * Instance(void)
GiBUURESFormFactor(const GiBUURESFormFactor &gibuu_data)
A numeric analysis tool class for interpolating 1-D functions.
Definition Spline.h:58
THE MAIN GENIE PROJECT NAMESPACE
Definition AlgCmp.h:25
enum genie::EInteractionType InteractionType_t
enum genie::EResonance Resonance_t