GENIEGenerator
Loading...
Searching...
No Matches
Physics
Resonance
XSection
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
24
#include "
Framework/ParticleData/BaryonResonance.h
"
25
#include "
Framework/Interaction/InteractionType.h
"
26
27
namespace
genie
{
28
29
class
Spline
;
30
31
class
GiBUURESFormFactor
32
{
33
public
:
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
//
47
class
FormFactors
{
48
49
public
:
50
51
FormFactors
();
52
~FormFactors
();
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)
107
Spline
*
fFFRes
[
kNRes
][
kNCurr
][
kNHitNuc
][
kNFFRes
];
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
119
private
:
120
GiBUURESFormFactor
();
121
GiBUURESFormFactor
(
const
GiBUURESFormFactor
& gibuu_data);
122
~GiBUURESFormFactor
();
123
124
// load all data tables
125
void
LoadTables
(
void
);
126
127
// singleton 'self'
128
static
GiBUURESFormFactor
*
fInstance
;
129
130
// form factor data
131
FormFactors
*
fFormFactors
;
132
133
// singleton cleaner
134
struct
Cleaner
{
135
void
DummyMethodAndSilentCompiler
() { }
136
~Cleaner
() {
137
if
(
GiBUURESFormFactor::fInstance
!=0) {
138
delete
GiBUURESFormFactor::fInstance
;
139
GiBUURESFormFactor::fInstance
= 0;
140
}
141
}
142
};
143
friend
struct
Cleaner
;
144
145
};
// GiBUURESFormFactor class
146
147
}
// genie namespace
148
149
#endif
// _GIBUU_RES_FORM_FACTOR_H_
BaryonResonance.h
InteractionType.h
genie::GiBUURESFormFactor::FormFactors
Definition
GiBUURESFormFactor.h:47
genie::GiBUURESFormFactor::FormFactors::C6V
double C6V(double Q2, Resonance_t res, int nucleon_pdg, InteractionType_t it) const
Definition
GiBUURESFormFactor.cxx:250
genie::GiBUURESFormFactor::FormFactors::fMinQ2
static double fMinQ2
min Q2 for which resonance f/f data are given
Definition
GiBUURESFormFactor.h:75
genie::GiBUURESFormFactor::FormFactors::kNRes
static const int kNRes
Definition
GiBUURESFormFactor.h:101
genie::GiBUURESFormFactor::FormFactors::C5A
double C5A(double Q2, Resonance_t res, int nucleon_pdg, InteractionType_t it) const
Definition
GiBUURESFormFactor.cxx:271
genie::GiBUURESFormFactor::FormFactors::Q2max
double Q2max(void) const
Definition
GiBUURESFormFactor.h:71
genie::GiBUURESFormFactor::FormFactors::fMaxQ2
static double fMaxQ2
max Q2 for which resonance f/f data are given
Definition
GiBUURESFormFactor.h:76
genie::GiBUURESFormFactor::FormFactors::FP
double FP(double Q2, Resonance_t res, int nucleon_pdg, InteractionType_t it) const
Definition
GiBUURESFormFactor.cxx:306
genie::GiBUURESFormFactor::FormFactors::fFFRes
Spline * fFFRes[kNRes][kNCurr][kNHitNuc][kNFFRes]
actual form factor data = f(Q2)
Definition
GiBUURESFormFactor.h:107
genie::GiBUURESFormFactor::FormFactors::kNFFRes
static const int kNFFRes
Definition
GiBUURESFormFactor.h:104
genie::GiBUURESFormFactor::FormFactors::C4V
double C4V(double Q2, Resonance_t res, int nucleon_pdg, InteractionType_t it) const
Definition
GiBUURESFormFactor.cxx:236
genie::GiBUURESFormFactor::FormFactors::FFRes
double FFRes(double Q2, Resonance_t res, int nucleon_pdg, InteractionType_t it, int ffid) const
func to retrieve interpolated form factor values
Definition
GiBUURESFormFactor.cxx:313
genie::GiBUURESFormFactor::FormFactors::LoadTables
void LoadTables(void)
load all form factor data tables
Definition
GiBUURESFormFactor.cxx:104
genie::GiBUURESFormFactor::FormFactors::~FormFactors
~FormFactors()
Definition
GiBUURESFormFactor.cxx:83
genie::GiBUURESFormFactor::FormFactors::F1V
double F1V(double Q2, Resonance_t res, int nucleon_pdg, InteractionType_t it) const
Definition
GiBUURESFormFactor.cxx:285
genie::GiBUURESFormFactor::FormFactors::F2V
double F2V(double Q2, Resonance_t res, int nucleon_pdg, InteractionType_t it) const
Definition
GiBUURESFormFactor.cxx:292
genie::GiBUURESFormFactor::FormFactors::Q2min
double Q2min(void) const
Definition
GiBUURESFormFactor.h:70
genie::GiBUURESFormFactor::FormFactors::C6A
double C6A(double Q2, Resonance_t res, int nucleon_pdg, InteractionType_t it) const
Definition
GiBUURESFormFactor.cxx:278
genie::GiBUURESFormFactor::FormFactors::C5V
double C5V(double Q2, Resonance_t res, int nucleon_pdg, InteractionType_t it) const
Definition
GiBUURESFormFactor.cxx:243
genie::GiBUURESFormFactor::FormFactors::kNHitNuc
static const int kNHitNuc
Definition
GiBUURESFormFactor.h:103
genie::GiBUURESFormFactor::FormFactors::FormFactors
FormFactors()
Definition
GiBUURESFormFactor.cxx:78
genie::GiBUURESFormFactor::FormFactors::C4A
double C4A(double Q2, Resonance_t res, int nucleon_pdg, InteractionType_t it) const
Definition
GiBUURESFormFactor.cxx:264
genie::GiBUURESFormFactor::FormFactors::GiBUURESFormFactor
friend class GiBUURESFormFactor
Definition
GiBUURESFormFactor.h:115
genie::GiBUURESFormFactor::FormFactors::FA
double FA(double Q2, Resonance_t res, int nucleon_pdg, InteractionType_t it) const
Definition
GiBUURESFormFactor.cxx:299
genie::GiBUURESFormFactor::FormFactors::kNCurr
static const int kNCurr
Definition
GiBUURESFormFactor.h:102
genie::GiBUURESFormFactor::FormFactors::C3V
double C3V(double Q2, Resonance_t res, int nucleon_pdg, InteractionType_t it) const
Definition
GiBUURESFormFactor.cxx:229
genie::GiBUURESFormFactor::FormFactors::C3A
double C3A(double Q2, Resonance_t res, int nucleon_pdg, InteractionType_t it) const
Definition
GiBUURESFormFactor.cxx:257
genie::GiBUURESFormFactor::~GiBUURESFormFactor
~GiBUURESFormFactor()
Definition
GiBUURESFormFactor.cxx:43
genie::GiBUURESFormFactor::LoadTables
void LoadTables(void)
Definition
GiBUURESFormFactor.cxx:60
genie::GiBUURESFormFactor::fInstance
static GiBUURESFormFactor * fInstance
Definition
GiBUURESFormFactor.h:128
genie::GiBUURESFormFactor::FF
const FormFactors & FF(void) const
Definition
GiBUURESFormFactor.cxx:66
genie::GiBUURESFormFactor::Instance
static GiBUURESFormFactor * Instance(void)
Definition
GiBUURESFormFactor.cxx:49
genie::GiBUURESFormFactor::GiBUURESFormFactor
GiBUURESFormFactor()
Definition
GiBUURESFormFactor.cxx:37
genie::GiBUURESFormFactor::fFormFactors
FormFactors * fFormFactors
Definition
GiBUURESFormFactor.h:131
genie::GiBUURESFormFactor::GiBUURESFormFactor
GiBUURESFormFactor(const GiBUURESFormFactor &gibuu_data)
genie::Spline
A numeric analysis tool class for interpolating 1-D functions.
Definition
Spline.h:58
genie
THE MAIN GENIE PROJECT NAMESPACE
Definition
AlgCmp.h:25
genie::InteractionType_t
enum genie::EInteractionType InteractionType_t
genie::Resonance_t
enum genie::EResonance Resonance_t
genie::GiBUURESFormFactor::Cleaner
Definition
GiBUURESFormFactor.h:134
genie::GiBUURESFormFactor::Cleaner::DummyMethodAndSilentCompiler
void DummyMethodAndSilentCompiler()
Definition
GiBUURESFormFactor.h:135
genie::GiBUURESFormFactor::Cleaner::~Cleaner
~Cleaner()
Definition
GiBUURESFormFactor.h:136
Generated on
for GENIEGenerator by
1.14.0