19 #ifndef _HEDIS_STRUC_FUNC_H_
20 #define _HEDIS_STRUC_FUNC_H_
72 if ( abs(a.
Rho-b.
Rho)>1
e-10 )
return false;
74 if ( abs(a.
Vud-b.
Vud)>1
e-10 )
return false;
75 if ( abs(a.
Vus-b.
Vus)>1
e-10 )
return false;
76 if ( abs(a.
Vub-b.
Vub)>1
e-10 )
return false;
77 if ( abs(a.
Vcd-b.
Vcd)>1
e-10 )
return false;
78 if ( abs(a.
Vcs-b.
Vcs)>1
e-10 )
return false;
79 if ( abs(a.
Vcb-b.
Vcb)>1
e-10 )
return false;
80 if ( abs(a.
Vtd-b.
Vtd)>1
e-10 )
return false;
81 if ( abs(a.
Vts-b.
Vts)>1
e-10 )
return false;
82 if ( abs(a.
Vtb-b.
Vtb)>1
e-10 )
return false;
90 std::getline (is,saux);
91 std::getline (is,saux);
92 std::getline (is,saux);
93 std::getline (is,saux);
94 std::getline (is,saux);
95 std::getline (is,saux); a.
LHAPDFset=saux.c_str();
96 std::getline (is,saux);
97 std::getline (is,saux); a.
LHAPDFmember=atoi(saux.c_str());
98 std::getline (is,saux);
99 std::getline (is,saux); a.
IsNLO=atoi(saux.c_str());
100 std::getline (is,saux);
101 std::getline (is,saux); a.
Scheme=saux.c_str();
102 std::getline (is,saux);
103 std::getline (is,saux); a.
QrkThrs=atof(saux.c_str());
104 std::getline (is,saux);
105 std::getline (is,saux); a.
NGridX=atoi(saux.c_str());
106 std::getline (is,saux);
107 std::getline (is,saux); a.
NGridQ2=atoi(saux.c_str());
108 std::getline (is,saux);
109 std::getline (is,saux); a.
XGridMin=atof(saux.c_str());
110 std::getline (is,saux);
111 std::getline (is,saux); a.
Q2GridMin=atof(saux.c_str());
112 std::getline (is,saux);
113 std::getline (is,saux); a.
Q2GridMax=atof(saux.c_str());
114 std::getline (is,saux);
115 std::getline (is,saux); a.
MassW=atof(saux.c_str());
116 std::getline (is,saux);
117 std::getline (is,saux); a.
MassZ=atof(saux.c_str());
118 std::getline (is,saux);
119 std::getline (is,saux); a.
Rho=atof(saux.c_str());
120 std::getline (is,saux);
121 std::getline (is,saux); a.
Sin2ThW=atof(saux.c_str());
122 std::getline (is,saux);
123 std::getline (is,saux); a.
Vud=atof(saux.c_str());
124 std::getline (is,saux); a.
Vus=atof(saux.c_str());
125 std::getline (is,saux); a.
Vub=atof(saux.c_str());
126 std::getline (is,saux); a.
Vcd=atof(saux.c_str());
127 std::getline (is,saux); a.
Vcs=atof(saux.c_str());
128 std::getline (is,saux); a.
Vcb=atof(saux.c_str());
129 std::getline (is,saux); a.
Vtd=atof(saux.c_str());
130 std::getline (is,saux); a.
Vts=atof(saux.c_str());
131 std::getline (is,saux); a.
Vtb=atof(saux.c_str());
139 <<
"#--------------------------------------------------------------------------------" <<
'\n'
140 <<
"# Metafile that stores information used to generate Structure Functions for HEDIS" <<
'\n'
141 <<
"#--------------------------------------------------------------------------------" <<
'\n'
142 <<
"# LHAPDF set" <<
'\n'
144 <<
"# LHAPDF member" <<
'\n'
148 <<
"# Mass Scheme" <<
'\n'
150 <<
"# Quark threshold" <<
'\n'
162 <<
"# Mass W" <<
'\n'
164 <<
"# Mass Z" <<
'\n'
168 <<
"# Sin2ThW" <<
'\n'
216 map< HEDISStrucFunc::HEDISStrucFuncType_t, genie::BLI2DNonUnifGrid * >
Table;
270 #endif // _HEDIS_STRUC_FUNC_H_
static HEDISStrucFunc * fgInstance
double Q2(const Interaction *const i)
SF_xQ2 EvalNucSFLO(const Interaction *in, double x, double Q2)
HEDISStrucFunc(SF_info sfinfo)
vector< double > sf_q2_array
map< int, HEDISStrucFuncTable > fQrkSFLOTables
int NucSFCode(const Interaction *in)
int QrkSFCode(const Interaction *in)
map< HEDISStrucFunc::HEDISStrucFuncType_t, genie::BLI2DNonUnifGrid * > Table
string QrkSFName(const Interaction *in)
enum genie::HEDISStrucFunc::StrucFuncType HEDISStrucFuncType_t
static constexpr double b
static HEDISStrucFunc * Instance(SF_info sfinfo)
Summary information for an interaction.
void CreateNucSF(const Interaction *in, string sfFile)
void DummyMethodAndSilentCompiler()
map< int, HEDISStrucFuncTable > fNucSFLOTables
std::istream & operator>>(std::istream &is, SF_info &a)
bool operator==(const TuneId &id1, const TuneId &id2)
map< int, HEDISStrucFuncTable > fNucSFNLOTables
ostream & operator<<(ostream &stream, const AlgConfigPool &config_pool)
void CreateQrkSF(const Interaction *in, string sfFile)
string NucSFName(const Interaction *in)
SF_xQ2 EvalQrkSFLO(const Interaction *in, double x, double Q2)
vector< double > sf_x_array
SF_xQ2 EvalNucSFNLO(const Interaction *in, double x, double Q2)