GENIEGenerator
Loading...
Searching...
No Matches
genie::ZExpELFormFactorModel Class Reference

Concrete implementation of the ELFormFactorModelI interface. Computes the EL form factor using the model-independent z-expansion technique. More...

#include <ZExpELFormFactorModel.h>

Inheritance diagram for genie::ZExpELFormFactorModel:
[legend]
Collaboration diagram for genie::ZExpELFormFactorModel:
[legend]

Public Member Functions

 ZExpELFormFactorModel ()
 ZExpELFormFactorModel (string config)
virtual ~ZExpELFormFactorModel ()
double Gep (const Interaction *interaction) const override
 Compute the elastic form factor G_{ep} for the input interaction.
double Gen (const Interaction *interaction) const override
 Compute the elastic form factor G_{en} for the input interaction.
double Gmp (const Interaction *interaction) const override
 Compute the elastic form factor G_{mp} for the input interaction.
double Gmn (const Interaction *interaction) const override
 Compute the elastic form factor G_{mn} for the input interaction.
void Configure (const Registry &config) override
void Configure (string param_set) override
Public Member Functions inherited from genie::ELFormFactorsModelI
virtual ~ELFormFactorsModelI ()
Public Member Functions inherited from genie::Algorithm
virtual ~Algorithm ()
virtual void FindConfig (void)
virtual const RegistryGetConfig (void) const
RegistryGetOwnedConfig (void)
virtual const AlgIdId (void) const
 Get algorithm ID.
virtual AlgStatus_t GetStatus (void) const
 Get algorithm status.
virtual bool AllowReconfig (void) const
virtual AlgCmp_t Compare (const Algorithm *alg) const
 Compare with input algorithm.
virtual void SetId (const AlgId &id)
 Set algorithm ID.
virtual void SetId (string name, string config)
const AlgorithmSubAlg (const RgKey &registry_key) const
void AdoptConfig (void)
void AdoptSubstructure (void)
virtual void Print (ostream &stream) const
 Print algorithm info.

Private Member Functions

double CalculateZ (double q2) const
void FixCoeffs (void)
void FixEL0 (void)
void FixQ4Limit (void)
void LoadConfig (void)

Private Attributes

bool fQ4limit
int fKmax
double fT0
double fTcut
double fGep0
double fGmp0
double fGen0
double fGmn0
std::vector< double > fZ_APn
std::vector< double > fZ_BPn
std::vector< double > fZ_ANn
std::vector< double > fZ_BNn

Additional Inherited Members

Static Public Member Functions inherited from genie::Algorithm
static string BuildParamVectKey (const std::string &comm_name, unsigned int i)
static string BuildParamVectSizeKey (const std::string &comm_name)
static string BuildParamMatKey (const std::string &comm_name, unsigned int i, unsigned int j)
static string BuildParamMatRowSizeKey (const std::string &comm_name)
static string BuildParamMatColSizeKey (const std::string &comm_name)
Protected Member Functions inherited from genie::ELFormFactorsModelI
 ELFormFactorsModelI ()
 ELFormFactorsModelI (string name)
 ELFormFactorsModelI (string name, string config)
Protected Member Functions inherited from genie::Algorithm
 Algorithm ()
 Algorithm (string name)
 Algorithm (string name, string config)
void Initialize (void)
void DeleteConfig (void)
void DeleteSubstructure (void)
RegistryExtractLocalConfig (const Registry &in) const
RegistryExtractLowerConfig (const Registry &in, const string &alg_key) const
 Split an incoming configuration Registry into a block valid for the sub-algo identified by alg_key.
template<class T>
bool GetParam (const RgKey &name, T &p, bool is_top_call=true) const
template<class T>
bool GetParamDef (const RgKey &name, T &p, const T &def) const
template<class T>
int GetParamVect (const std::string &comm_name, std::vector< T > &v, bool is_top_call=true) const
 Handle to load vectors of parameters.
int GetParamVectKeys (const std::string &comm_name, std::vector< RgKey > &k, bool is_top_call=true) const
template<class T>
int GetParamMat (const std::string &comm_name, TMatrixT< T > &mat, bool is_top_call=true) const
 Handle to load matrix of parameters.
template<class T>
int GetParamMatSym (const std::string &comm_name, TMatrixTSym< T > &mat, bool is_top_call=true) const
int GetParamMatKeys (const std::string &comm_name, std::vector< RgKey > &k, bool is_top_call=true) const
int AddTopRegistry (Registry *rp, bool owns=true)
 add registry with top priority, also update ownership
int AddLowRegistry (Registry *rp, bool owns=true)
 add registry with lowest priority, also update ownership
int MergeTopRegistry (const Registry &r)
int AddTopRegisties (const vector< Registry * > &rs, bool owns=false)
 Add registries with top priority, also udated Ownerships.
Protected Attributes inherited from genie::Algorithm
bool fAllowReconfig
bool fOwnsSubstruc
 true if it owns its substructure (sub-algs,...)
AlgId fID
 algorithm name and configuration set
vector< Registry * > fConfVect
vector< bool > fOwnerships
 ownership for every registry in fConfVect
AlgStatus_t fStatus
 algorithm execution status
AlgMapfOwnedSubAlgMp
 local pool for owned sub-algs (taken out of the factory pool)

Detailed Description

Concrete implementation of the ELFormFactorModelI interface. Computes the EL form factor using the model-independent z-expansion technique.

References:\n Hill et al.
arXiv:1008.4619 DOI: 10.1103/PhysRevD.82.113005
Author
Kaushik Borah <kaushik.borah99 \at uky.edu> based off DipoleELFormFactorsModel by Costas Andreopoulos <costas.andreopoulos \at stfc.ac.uk> STFC, Rutherford Appleton Laboratory
Created:\n August 16, 2013
License:\n Copyright (c) 2003-2025, The GENIE Collaboration
For the full text of the license visit http://copyright.genie-mc.org or see $GENIE/LICENSE

Definition at line 34 of file ZExpELFormFactorModel.h.

Constructor & Destructor Documentation

◆ ZExpELFormFactorModel() [1/2]

ZExpELFormFactorModel::ZExpELFormFactorModel ( )

Definition at line 34 of file ZExpELFormFactorModel.cxx.

34 :
35ELFormFactorsModelI("genie::ZExpELFormFactorModel")
36{
37
38}

References genie::ELFormFactorsModelI::ELFormFactorsModelI().

◆ ZExpELFormFactorModel() [2/2]

ZExpELFormFactorModel::ZExpELFormFactorModel ( string config)

Definition at line 40 of file ZExpELFormFactorModel.cxx.

40 :
41ELFormFactorsModelI("genie::ZExpELFormFactorModel", config)
42{
43
44}

References genie::ELFormFactorsModelI::ELFormFactorsModelI().

◆ ~ZExpELFormFactorModel()

ZExpELFormFactorModel::~ZExpELFormFactorModel ( )
virtual

Definition at line 46 of file ZExpELFormFactorModel.cxx.

47{
48}

Member Function Documentation

◆ CalculateZ()

double ZExpELFormFactorModel::CalculateZ ( double q2) const
private

Definition at line 127 of file ZExpELFormFactorModel.cxx.

128{
129
130 // calculate z expansion parameter
131 double znum = TMath::Sqrt(fTcut - q2) - TMath::Sqrt(fTcut - fT0);
132 double zden = TMath::Sqrt(fTcut - q2) + TMath::Sqrt(fTcut - fT0);
133
134 return znum/zden;
135}

References fT0, and fTcut.

Referenced by FixEL0(), FixQ4Limit(), Gen(), Gep(), Gmn(), and Gmp().

◆ Configure() [1/2]

void ZExpELFormFactorModel::Configure ( const Registry & config)
overridevirtual

Configure the algorithm with an external registry The registry is merged with the top level registry if it is owned, Otherwise a copy of it is added with the highest priority

Reimplemented from genie::Algorithm.

Definition at line 621 of file ZExpELFormFactorModel.cxx.

622{
623 Algorithm::Configure(config);
624 this->LoadConfig();
625}
virtual void Configure(const Registry &config)
Definition Algorithm.cxx:62

References genie::Algorithm::Configure(), and LoadConfig().

◆ Configure() [2/2]

void ZExpELFormFactorModel::Configure ( string config)
overridevirtual

Configure the algorithm from the AlgoConfigPool based on param_set string given in input An algorithm contains a vector of registries coming from different xml configuration files, which are loaded according a very precise prioriy This methods will load a number registries in order of priority: 1) "Tunable" parameter set from CommonParametes. This is loaded with the highest prioriry and it is designed to be used for tuning procedure Usage not expected from the user. 2) For every string defined in "CommonParame" the corresponding parameter set will be loaded from CommonParameter.xml 3) parameter set specified by the config string and defined in the xml file of the algorithm 4) if config is not "Default" also the Default parameter set from the same xml file will be loaded Effectively this avoids the repetion of a parameter when it is not changed in the requested configuration

Reimplemented from genie::Algorithm.

Definition at line 627 of file ZExpELFormFactorModel.cxx.

628{
629 Algorithm::Configure(param_set);
630 this->LoadConfig();
631}

References genie::Algorithm::Configure(), and LoadConfig().

◆ FixCoeffs()

void ZExpELFormFactorModel::FixCoeffs ( void )
private

Definition at line 137 of file ZExpELFormFactorModel.cxx.

138{
139 //if (fKmax < 1 ) { fKmax = 1; }
140 //else if (fKmax > 10) { fKmax = 10; }
141
142 if (fQ4limit) this->FixQ4Limit();
143 else this->FixEL0();
144}

References FixEL0(), FixQ4Limit(), and fQ4limit.

Referenced by LoadConfig().

◆ FixEL0()

void ZExpELFormFactorModel::FixEL0 ( void )
private

Definition at line 146 of file ZExpELFormFactorModel.cxx.

147{
148 // Function to fix form factor such that Gep(q2=0) = 1
149 // For T0 = 0, this will set Gep0 = 1
150 double zparam = this->CalculateZ(0.);
151 double gep = 0.;
152 for (int ki=1;ki<=fKmax;ki++)
153 {
154 gep = gep + TMath::Power(zparam,ki) * fZ_APn[ki];
155 }
156 fZ_APn[0] = fGep0 - gep;
157
158 // Function to fix form factor such that Gmp(q2=0) = 2.7928
159 // For T0 = 0, this will set Gmp0 = 2.7928
160
161 double gmp = 0.;
162 for (int ki=1;ki<=fKmax;ki++)
163 {
164 gmp = gmp + TMath::Power(zparam,ki) * fZ_BPn[ki];
165 }
166 fZ_BPn[0] = fGmp0 - gmp;
167
168 // Function to fix form factor such that Gen(q2=0) = 0
169 // For T0 = 0, this will set Gen0 = 0
170
171 double gen = 0.;
172 for (int ki=1;ki<=fKmax;ki++)
173 {
174 gen = gen + TMath::Power(zparam,ki) * fZ_ANn[ki];
175 }
176 fZ_ANn[0] = fGen0 - gen;
177
178 // Function to fix form factor such that Gmn(q2=0) = -1.9130
179 // For T0 = 0, this will set Gmn0 = -1.9130
180
181 double gmn = 0.;
182 for (int ki=1;ki<=fKmax;ki++)
183 {
184 gmn = gmn + TMath::Power(zparam,ki) * fZ_BNn[ki];
185 }
186 fZ_BNn[0] = fGmn0 - gmn;
187
188}
std::mt19937 gen(rd())

References CalculateZ(), fGen0, fGep0, fGmn0, fGmp0, fKmax, fZ_ANn, fZ_APn, fZ_BNn, fZ_BPn, and gen().

Referenced by FixCoeffs().

◆ FixQ4Limit()

void ZExpELFormFactorModel::FixQ4Limit ( void )
private

Definition at line 190 of file ZExpELFormFactorModel.cxx.

191{
192 // fixes parameters such that the model limits to 1/Q^4 at large t
193 // -- requires at least 5 parameters to do so --
194 // 4 parameters for Q^4 behavior
195
196 // will use AP_0 and AP_Kmax through AP_Kmax-3 to do the fitting
197 // calculate some useful numbers (redundancy for readability)
198 double kp4 = (double)fKmax+4;
199 double kp3 = (double)fKmax+3;
200 double kp2 = (double)fKmax+2;
201 double kp1 = (double)fKmax+1;
202 double kp0 = (double)fKmax ;
203 //double km5 = (double)fKmax-5;
204 double z0 = this->CalculateZ(0.);
205 double zkp4 = TMath::Power(z0,(int)kp4);
206 double zkp3 = TMath::Power(z0,(int)kp3);
207 double zkp2 = TMath::Power(z0,(int)kp2);
208 double zkp1 = TMath::Power(z0,(int)kp1);
209
210 // denominator
211 double denom = \
212 6. - kp4*kp3*kp2*zkp1 + 3.*kp4*kp3*kp1*zkp2 \
213 - 3.*kp4*kp2*kp1*zkp3 + kp3*kp2*kp1*zkp4;
214
215 // extra parameters (effectively constants)
216 // number refers to the number of derivatives
217 double b0 = 0.;
218 for (int ki = 1;ki <= fKmax;ki++)
219 {
220 b0 = b0 + fZ_APn[ki];
221 }
222
223 double b0z = -fGep0;
224 for (int ki = 1;ki <= fKmax;ki++)
225 {
226 b0z = b0z + fZ_APn[ki]*TMath::Power(z0,ki);
227 }
228
229 double b1 = 0.;
230 for (int ki = 1;ki <= fKmax;ki++)
231 {
232 b1 = b1 + ki*fZ_APn[ki];
233 }
234
235 double b2 = 0.;
236 for (int ki = 1;ki <= fKmax;ki++)
237 {
238 b2 = b2 + ki*(ki-1)*fZ_APn[ki];
239 }
240
241 double b3 = 0.;
242 for (int ki = 1;ki <= fKmax;ki++)
243 {
244 b3 = b3 + ki*(ki-1)*(ki-2)*fZ_APn[ki];
245 }
246
247 // Assign new parameters
248 fZ_APn[(int)kp4] = (1./denom) * \
249 ( (b0-b0z)*kp3*kp2*kp1 \
250 + b3*( -1. + .5*kp3*kp2*zkp1 - kp3*kp1*zkp2 \
251 +.5*kp2*kp1*zkp3 ) \
252 + b2*( 3.*kp1 - kp3*kp2*kp1*zkp1 \
253 +kp3*kp1*(2*fKmax+1)*zkp2 - kp2*kp1*kp0*zkp3 ) \
254 + b1*( -3.*kp2*kp1 + .5*kp3*kp2*kp2*kp1*zkp1 \
255 -kp3*kp2*kp1*kp0*zkp2 + .5*kp2*kp1*kp1*kp0*zkp3) );
256
257 fZ_APn[(int)kp3] = (1./denom) * \
258 ( -3.*(b0-b0z)*kp4*kp2*kp1 \
259 + b3*( 3. - kp4*kp2*zkp1 + (3./2.)*kp4*kp1*zkp2 \
260 -.5*kp2*kp1*zkp4 ) \
261 + b2*( -3.*(3*fKmax+4) + kp4*kp2*(2*fKmax+3)*zkp1 \
262 -3.*kp4*kp1*kp1*zkp2 + kp2*kp1*kp0*zkp4 ) \
263 + b1*( 3.*kp1*(3*fKmax+8) - kp4*kp3*kp2*kp1*zkp1 \
264 +(3./2.)*kp4*kp3*kp1*kp0*zkp2 - .5*kp2*kp1*kp1*kp0*zkp4) );
265
266 fZ_APn[(int)kp2] = (1./denom) * \
267 ( 3.*(b0-b0z)*kp4*kp3*kp1 \
268 + b3*( -3. + .5*kp4*kp3*zkp1 - (3./2.)*kp4*kp1*zkp3 \
269 +kp3*kp1*zkp4 ) \
270 + b2*( 3.*(3*fKmax+5) - kp4*kp3*kp2*zkp1 \
271 +3.*kp4*kp1*kp1*zkp3 - kp3*kp1*(2*fKmax+1)*zkp4) \
272 + b1*( -3.*kp3*(3*fKmax+4) + .5*kp4*kp3*kp3*kp2*zkp1 \
273 -(3./2.)*kp4*kp3*kp1*kp0*zkp3 + kp3*kp2*kp1*kp0*zkp4) );
274
275 fZ_APn[(int)kp1] = (1./denom) * \
276 ( -(b0-b0z)*kp4*kp3*kp2 \
277 + b3*( 1. - .5*kp4*kp3*zkp2 + kp4*kp2*zkp3 \
278 -.5*kp3*kp2*zkp4 ) \
279 + b2*( -3.*kp2 + kp4*kp3*kp2*zkp2 \
280 -kp4*kp2*(2*fKmax+3)*zkp3 + kp3*kp2*kp1*zkp4) \
281 + b1*( 3.*kp3*kp2 - .5*kp4*kp3*kp3*kp2*zkp2 \
282 +kp4*kp3*kp2*kp1*zkp3 - .5*kp3*kp2*kp2*kp1*zkp4) );
283
284 fZ_APn[0] = (1./denom) * \
285 ( -6.*b0z \
286 + b0*( kp4*kp3*kp2*zkp1 - 3.*kp4*kp3*kp1*zkp2 \
287 +3.*kp4*kp2*kp1*zkp3 - kp3*kp2*kp1*zkp4 ) \
288 + b3*( -zkp1 + 3.*zkp2 - 3.*zkp3 + zkp4 ) \
289 + b2*( 3.*kp2*zkp1 - 3.*(3*fKmax+5)*zkp2 \
290 +3.*(3*fKmax+4)*zkp3 - 3.*kp1*zkp4 ) \
291 + b1*( -3.*kp3*kp2*zkp1 + 3.*kp3*(3*fKmax+4)*zkp2 \
292 -3.*kp1*(3*fKmax+8)*zkp3 + 3.*kp2*kp1*zkp4 ) );
293
294
295
296
297
298
299 // fixes parameters such that the model limits to 1/Q^4 at large t
300 // -- requires at least 5 parameters to do so --
301 // 4 parameters for Q^4 behavior
302
303 // will use BP_0 and BP_Kmax through BP_Kmax-3 to do the fitting
304 // calculate some useful numbers (redundancy for readability)
305 double kkp4 = (double)fKmax+4;
306 double kkp3 = (double)fKmax+3;
307 double kkp2 = (double)fKmax+2;
308 double kkp1 = (double)fKmax+1;
309 double kkp0 = (double)fKmax ;
310 //double km5 = (double)fKmax-5;
311 double kz0 = this->CalculateZ(0.);
312 double zkkp4 = TMath::Power(kz0,(int)kkp4);
313 double zkkp3 = TMath::Power(kz0,(int)kkp3);
314 double zkkp2 = TMath::Power(kz0,(int)kkp2);
315 double zkkp1 = TMath::Power(kz0,(int)kkp1);
316
317 // denominator
318 double kdenom = \
319 6. - kkp4*kkp3*kkp2*zkkp1 + 3.*kkp4*kkp3*kkp1*zkkp2 \
320 - 3.*kkp4*kkp2*kkp1*zkkp3 + kkp3*kkp2*kkp1*zkkp4;
321
322 // extra parameters (effectively constants)
323 // number refers to the number of derivatives
324 double kb0 = 0.;
325 for (int ki = 1;ki <= fKmax;ki++)
326 {
327 kb0 = kb0 + fZ_BPn[ki];
328 }
329
330 double kb0z = -fGmp0;
331 for (int ki = 1;ki <= fKmax;ki++)
332 {
333 kb0z = kb0z + fZ_BPn[ki]*TMath::Power(kz0,ki);
334 }
335
336 double kb1 = 0.;
337 for (int ki = 1;ki <= fKmax;ki++)
338 {
339 kb1 = kb1 + ki*fZ_BPn[ki];
340 }
341
342 double kb2 = 0.;
343 for (int ki = 1;ki <= fKmax;ki++)
344 {
345 kb2 = kb2 + ki*(ki-1)*fZ_BPn[ki];
346 }
347
348 double kb3 = 0.;
349 for (int ki = 1;ki <= fKmax;ki++)
350 {
351 kb3 = kb3 + ki*(ki-1)*(ki-2)*fZ_BPn[ki];
352 }
353
354 // Assign new parameters
355 fZ_BPn[(int)kkp4] = (1./kdenom) * \
356 ( (kb0-kb0z)*kkp3*kkp2*kkp1 \
357 + kb3*( -1. + .5*kkp3*kkp2*zkkp1 - kkp3*kkp1*zkkp2 \
358 +.5*kkp2*kkp1*zkkp3 ) \
359 + kb2*( 3.*kkp1 - kkp3*kkp2*kkp1*zkkp1 \
360 +kkp3*kkp1*(2*fKmax+1)*zkkp2 - kkp2*kkp1*kkp0*zkkp3 ) \
361 + kb1*( -3.*kkp2*kkp1 + .5*kkp3*kkp2*kkp2*kkp1*zkkp1 \
362 -kkp3*kkp2*kkp1*kkp0*zkkp2 + .5*kkp2*kkp1*kkp1*kkp0*zkkp3) );
363
364 fZ_BPn[(int)kkp3] = (1./kdenom) * \
365 ( -3.*(kb0-kb0z)*kkp4*kkp2*kkp1 \
366 + kb3*( 3. - kkp4*kkp2*zkkp1 + (3./2.)*kkp4*kkp1*zkkp2 \
367 -.5*kkp2*kkp1*zkkp4 ) \
368 + kb2*( -3.*(3*fKmax+4) + kkp4*kkp2*(2*fKmax+3)*zkkp1 \
369 -3.*kkp4*kkp1*kkp1*zkkp2 + kkp2*kkp1*kkp0*zkkp4 ) \
370 + kb1*( 3.*kkp1*(3*fKmax+8) - kkp4*kkp3*kkp2*kkp1*zkkp1 \
371 +(3./2.)*kkp4*kkp3*kkp1*kkp0*zkkp2 - .5*kkp2*kkp1*kkp1*kkp0*zkkp4) );
372
373 fZ_BPn[(int)kkp2] = (1./kdenom) * \
374 ( 3.*(kb0-kb0z)*kkp4*kkp3*kkp1 \
375 + kb3*( -3. + .5*kkp4*kkp3*zkkp1 - (3./2.)*kkp4*kkp1*zkkp3 \
376 +kkp3*kkp1*zkkp4 ) \
377 + kb2*( 3.*(3*fKmax+5) - kkp4*kkp3*kkp2*zkkp1 \
378 +3.*kkp4*kkp1*kkp1*zkkp3 - kkp3*kkp1*(2*fKmax+1)*zkkp4) \
379 + kb1*( -3.*kkp3*(3*fKmax+4) + .5*kkp4*kkp3*kkp3*kkp2*zkkp1 \
380 -(3./2.)*kkp4*kkp3*kkp1*kkp0*zkkp3 + kkp3*kkp2*kkp1*kkp0*zkkp4) );
381
382 fZ_BPn[(int)kkp1] = (1./kdenom) * \
383 ( -(kb0-kb0z)*kkp4*kkp3*kkp2 \
384 + kb3*( 1. - .5*kkp4*kkp3*zkkp2 + kkp4*kkp2*zkkp3 \
385 -.5*kkp3*kkp2*zkkp4 ) \
386 + kb2*( -3.*kkp2 + kkp4*kkp3*kkp2*zkkp2 \
387 -kkp4*kkp2*(2*fKmax+3)*zkkp3 + kkp3*kkp2*kkp1*zkkp4) \
388 + kb1*( 3.*kkp3*kkp2 - .5*kkp4*kkp3*kkp3*kkp2*zkkp2 \
389 +kkp4*kkp3*kkp2*kkp1*zkkp3 - .5*kkp3*kkp2*kkp2*kkp1*zkkp4) );
390
391 fZ_BPn[0] = (1./kdenom) * \
392 ( -6.*kb0z \
393 + kb0*( kkp4*kkp3*kkp2*zkkp1 - 3.*kkp4*kkp3*kkp1*zkkp2 \
394 +3.*kkp4*kkp2*kkp1*zkkp3 - kkp3*kkp2*kkp1*zkkp4 ) \
395 + kb3*( -zkkp1 + 3.*zkkp2 - 3.*zkkp3 + zkkp4 ) \
396 + kb2*( 3.*kkp2*zkkp1 - 3.*(3*fKmax+5)*zkkp2 \
397 +3.*(3*fKmax+4)*zkkp3 - 3.*kkp1*zkkp4 ) \
398 + kb1*( -3.*kkp3*kkp2*zkkp1 + 3.*kkp3*(3*fKmax+4)*zkkp2 \
399 -3.*kkp1*(3*fKmax+8)*zkkp3 + 3.*kkp2*kkp1*zkkp4 ) );
400
401
402
403
404
405
406 // fixes parameters such that the model limits to 1/Q^4 at large t
407 // -- requires at least 5 parameters to do so --
408 // 4 parameters for Q^4 behavior
409
410 // will use AN_0 and AN_Kmax through AN_Kmax-3 to do the fitting
411 // calculate some useful numbers (redundancy for readability)
412 double lp4 = (double)fKmax+4;
413 double lp3 = (double)fKmax+3;
414 double lp2 = (double)fKmax+2;
415 double lp1 = (double)fKmax+1;
416 double lp0 = (double)fKmax ;
417 //double km5 = (double)fKmax-5;
418 double lz0 = this->CalculateZ(0.);
419 double zlp4 = TMath::Power(lz0,(int)lp4);
420 double zlp3 = TMath::Power(lz0,(int)lp3);
421 double zlp2 = TMath::Power(lz0,(int)lp2);
422 double zlp1 = TMath::Power(lz0,(int)lp1);
423
424 // ldenominator
425 double ldenom = \
426 6. - lp4*lp3*lp2*zlp1 + 3.*lp4*lp3*lp1*zlp2 \
427 - 3.*lp4*lp2*lp1*zlp3 + lp3*lp2*lp1*zlp4;
428
429 // extra parameters (effectively constants)
430 // number refers to the number of derivatives
431 double lb0 = 0.;
432 for (int ki = 1;ki <= fKmax;ki++)
433 {
434 lb0 = lb0 + fZ_ANn[ki];
435 }
436
437 double lb0z = -fGen0;
438 for (int ki = 1;ki <= fKmax;ki++)
439 {
440 lb0z = lb0z + fZ_ANn[ki]*TMath::Power(lz0,ki);
441 }
442
443 double lb1 = 0.;
444 for (int ki = 1;ki <= fKmax;ki++)
445 {
446 lb1 = lb1 + ki*fZ_ANn[ki];
447 }
448
449 double lb2 = 0.;
450 for (int ki = 1;ki <= fKmax;ki++)
451 {
452 lb2 = lb2 + ki*(ki-1)*fZ_ANn[ki];
453 }
454
455 double lb3 = 0.;
456 for (int ki = 1;ki <= fKmax;ki++)
457 {
458 lb3 = lb3 + ki*(ki-1)*(ki-2)*fZ_ANn[ki];
459 }
460
461 // Assign new parameters
462 fZ_ANn[(int)lp4] = (1./ldenom) * \
463 ( (lb0-lb0z)*lp3*lp2*lp1 \
464 + lb3*( -1. + .5*lp3*lp2*zlp1 - lp3*lp1*zlp2 \
465 +.5*lp2*lp1*zlp3 ) \
466 + lb2*( 3.*lp1 - lp3*lp2*lp1*zlp1 \
467 +lp3*lp1*(2*fKmax+1)*zlp2 - lp2*lp1*lp0*zlp3 ) \
468 + lb1*( -3.*lp2*lp1 + .5*lp3*lp2*lp2*lp1*zlp1 \
469 -lp3*lp2*lp1*lp0*zlp2 + .5*lp2*lp1*lp1*lp0*zlp3) );
470
471 fZ_ANn[(int)lp3] = (1./ldenom) * \
472 ( -3.*(lb0-lb0z)*lp4*lp2*lp1 \
473 + lb3*( 3. - lp4*lp2*zlp1 + (3./2.)*lp4*lp1*zlp2 \
474 -.5*lp2*lp1*zlp4 ) \
475 + lb2*( -3.*(3*fKmax+4) + lp4*lp2*(2*fKmax+3)*zlp1 \
476 -3.*lp4*lp1*lp1*zlp2 + lp2*lp1*lp0*zlp4 ) \
477 + lb1*( 3.*lp1*(3*fKmax+8) - lp4*lp3*lp2*lp1*zlp1 \
478 +(3./2.)*lp4*lp3*lp1*lp0*zlp2 - .5*lp2*lp1*lp1*lp0*zlp4) );
479
480 fZ_ANn[(int)lp2] = (1./ldenom) * \
481 ( 3.*(lb0-lb0z)*lp4*lp3*lp1 \
482 + lb3*( -3. + .5*lp4*lp3*zlp1 - (3./2.)*lp4*lp1*zlp3 \
483 +lp3*lp1*zlp4 ) \
484 + lb2*( 3.*(3*fKmax+5) - lp4*lp3*lp2*zlp1 \
485 +3.*lp4*lp1*lp1*zlp3 - lp3*lp1*(2*fKmax+1)*zlp4) \
486 + lb1*( -3.*lp3*(3*fKmax+4) + .5*lp4*lp3*lp3*lp2*zlp1 \
487 -(3./2.)*lp4*lp3*lp1*lp0*zlp3 + lp3*lp2*lp1*lp0*zlp4) );
488
489 fZ_ANn[(int)lp1] = (1./ldenom) * \
490 ( -(lb0-lb0z)*lp4*lp3*lp2 \
491 + lb3*( 1. - .5*lp4*lp3*zlp2 + lp4*lp2*zlp3 \
492 -.5*lp3*lp2*zlp4 ) \
493 + lb2*( -3.*lp2 + lp4*lp3*lp2*zlp2 \
494 -lp4*lp2*(2*fKmax+3)*zlp3 + lp3*lp2*lp1*zlp4) \
495 + lb1*( 3.*lp3*lp2 - .5*lp4*lp3*lp3*lp2*zlp2 \
496 +lp4*lp3*lp2*lp1*zlp3 - .5*lp3*lp2*lp2*lp1*zlp4) );
497
498 fZ_ANn[0] = (1./ldenom) * \
499 ( -6.*lb0z \
500 + lb0*( lp4*lp3*lp2*zlp1 - 3.*lp4*lp3*lp1*zlp2 \
501 +3.*lp4*lp2*lp1*zlp3 - lp3*lp2*lp1*zlp4 ) \
502 + lb3*( -zlp1 + 3.*zlp2 - 3.*zlp3 + zlp4 ) \
503 + lb2*( 3.*lp2*zlp1 - 3.*(3*fKmax+5)*zlp2 \
504 +3.*(3*fKmax+4)*zlp3 - 3.*lp1*zlp4 ) \
505 + lb1*( -3.*lp3*lp2*zlp1 + 3.*lp3*(3*fKmax+4)*zlp2 \
506 -3.*lp1*(3*fKmax+8)*zlp3 + 3.*lp2*lp1*zlp4 ) );
507
508
509
510
511
512
513
514 // fixes parameters such that the model limits to 1/Q^4 at large t
515 // -- requires at least 5 parameters to do so --
516 // 4 parameters for Q^4 behavior
517
518 // will use BN_0 and BN_Kmax through BN_Kmax-3 to do the fitting
519 // calculate some useful numbers (redundancy for readability)
520 double llp4 = (double)fKmax+4;
521 double llp3 = (double)fKmax+3;
522 double llp2 = (double)fKmax+2;
523 double llp1 = (double)fKmax+1;
524 double llp0 = (double)fKmax ;
525 //double km5 = (double)fKmax-5;
526 double llz0 = this->CalculateZ(0.);
527 double zllp4 = TMath::Power(llz0,(int)llp4);
528 double zllp3 = TMath::Power(llz0,(int)llp3);
529 double zllp2 = TMath::Power(llz0,(int)llp2);
530 double zllp1 = TMath::Power(llz0,(int)llp1);
531
532 // denominator
533 double lldenom = \
534 6. - llp4*llp3*llp2*zllp1 + 3.*llp4*llp3*llp1*zllp2 \
535 - 3.*llp4*llp2*llp1*zllp3 + llp3*llp2*llp1*zllp4;
536
537 // extra parameters (effectively constants)
538 // number refers to the number of derivatives
539 double llb0 = 0.;
540 for (int ki = 1;ki <= fKmax;ki++)
541 {
542 llb0 = llb0 + fZ_BNn[ki];
543 }
544
545 double llb0z = -fGmn0;
546 for (int ki = 1;ki <= fKmax;ki++)
547 {
548 llb0z = llb0z + fZ_BNn[ki]*TMath::Power(llz0,ki);
549 }
550
551 double llb1 = 0.;
552 for (int ki = 1;ki <= fKmax;ki++)
553 {
554 llb1 = llb1 + ki*fZ_BNn[ki];
555 }
556
557 double llb2 = 0.;
558 for (int ki = 1;ki <= fKmax;ki++)
559 {
560 llb2 = llb2 + ki*(ki-1)*fZ_BNn[ki];
561 }
562
563 double llb3 = 0.;
564 for (int ki = 1;ki <= fKmax;ki++)
565 {
566 llb3 = llb3 + ki*(ki-1)*(ki-2)*fZ_BNn[ki];
567 }
568
569 // Assign new parameters
570 fZ_BNn[(int)llp4] = (1./lldenom) * \
571 ( (llb0-llb0z)*llp3*llp2*llp1 \
572 + llb3*( -1. + .5*llp3*llp2*zllp1 - llp3*llp1*zllp2 \
573 +.5*llp2*llp1*zllp3 ) \
574 + llb2*( 3.*llp1 - llp3*llp2*llp1*zllp1 \
575 +llp3*llp1*(2*fKmax+1)*zllp2 - llp2*llp1*llp0*zllp3 ) \
576 + llb1*( -3.*llp2*llp1 + .5*llp3*llp2*llp2*llp1*zllp1 \
577 -llp3*llp2*llp1*llp0*zllp2 + .5*llp2*llp1*llp1*llp0*zllp3) );
578
579 fZ_BNn[(int)llp3] = (1./lldenom) * \
580 ( -3.*(llb0-llb0z)*llp4*llp2*llp1 \
581 + llb3*( 3. - llp4*llp2*zllp1 + (3./2.)*llp4*llp1*zllp2 \
582 -.5*llp2*llp1*zllp4 ) \
583 + llb2*( -3.*(3*fKmax+4) + llp4*llp2*(2*fKmax+3)*zllp1 \
584 -3.*llp4*llp1*llp1*zllp2 + llp2*llp1*llp0*zllp4 ) \
585 + llb1*( 3.*llp1*(3*fKmax+8) - llp4*llp3*llp2*llp1*zllp1 \
586 +(3./2.)*llp4*llp3*llp1*llp0*zllp2 - .5*llp2*llp1*llp1*llp0*zllp4) );
587
588 fZ_BNn[(int)llp2] = (1./lldenom) * \
589 ( 3.*(llb0-llb0z)*llp4*llp3*llp1 \
590 + llb3*( -3. + .5*llp4*llp3*zllp1 - (3./2.)*llp4*llp1*zllp3 \
591 +llp3*llp1*zllp4 ) \
592 + llb2*( 3.*(3*fKmax+5) - llp4*llp3*llp2*zllp1 \
593 +3.*llp4*llp1*llp1*zllp3 - llp3*llp1*(2*fKmax+1)*zllp4) \
594 + llb1*( -3.*llp3*(3*fKmax+4) + .5*llp4*llp3*llp3*llp2*zllp1 \
595 -(3./2.)*llp4*llp3*llp1*llp0*zllp3 + llp3*llp2*llp1*llp0*zllp4) );
596
597 fZ_BNn[(int)llp1] = (1./lldenom) * \
598 ( -(llb0-llb0z)*llp4*llp3*llp2 \
599 + llb3*( 1. - .5*llp4*llp3*zllp2 + llp4*llp2*zllp3 \
600 -.5*llp3*llp2*zllp4 ) \
601 + llb2*( -3.*llp2 + llp4*llp3*llp2*zllp2 \
602 -llp4*llp2*(2*fKmax+3)*zllp3 + llp3*llp2*llp1*zllp4) \
603 + llb1*( 3.*llp3*llp2 - .5*llp4*llp3*llp3*llp2*zllp2 \
604 +llp4*llp3*llp2*llp1*zllp3 - .5*llp3*llp2*llp2*llp1*zllp4) );
605
606 fZ_BNn[0] = (1./lldenom) * \
607 ( -6.*llb0z \
608 + llb0*( llp4*llp3*llp2*zllp1 - 3.*llp4*llp3*llp1*zllp2 \
609 +3.*llp4*llp2*llp1*zllp3 - llp3*llp2*llp1*zllp4 ) \
610 + llb3*( -zllp1 + 3.*zllp2 - 3.*zllp3 + zllp4 ) \
611 + llb2*( 3.*llp2*zllp1 - 3.*(3*fKmax+5)*zllp2 \
612 +3.*(3*fKmax+4)*zllp3 - 3.*llp1*zllp4 ) \
613 + llb1*( -3.*llp3*llp2*zllp1 + 3.*llp3*(3*fKmax+4)*zllp2 \
614 -3.*llp1*(3*fKmax+8)*zllp3 + 3.*llp2*llp1*zllp4 ) );
615
616
617
618
619}

References CalculateZ(), fGen0, fGep0, fGmn0, fGmp0, fKmax, fZ_ANn, fZ_APn, fZ_BNn, and fZ_BPn.

Referenced by FixCoeffs().

◆ Gen()

double ZExpELFormFactorModel::Gen ( const Interaction * interaction) const
overridevirtual

Compute the elastic form factor G_{en} for the input interaction.

Implements genie::ELFormFactorsModelI.

Definition at line 89 of file ZExpELFormFactorModel.cxx.

90{
91 // calculate and return Gen
92 double q2 = interaction->KinePtr()->q2();
93 double zparam = this->CalculateZ(q2);
94 if (zparam != zparam) // checks for nan
95 {
96 LOG("ZExpELFormFactorModel",pWARN) << "Undefined expansion parameter";
97 return 0.;
98 }
99 double gen = 0.;
100 for (int ki=0;ki<=fKmax+(fQ4limit ? 4 : 0);ki++)
101 {
102 gen = gen + TMath::Power(zparam,ki) * fZ_ANn[ki];
103 }
104
105 return gen;
106}
#define LOG(stream, priority)
A macro that returns the requested log4cpp::Category appending a string (using the FILE,...
Definition Messenger.h:96
#define pWARN
Definition Messenger.h:60
Kinematics * KinePtr(void) const
Definition Interaction.h:76
double q2(bool selected=false) const

References CalculateZ(), fKmax, fQ4limit, fZ_ANn, gen(), genie::Interaction::KinePtr(), LOG, pWARN, and genie::Kinematics::q2().

Referenced by LoadConfig().

◆ Gep()

double ZExpELFormFactorModel::Gep ( const Interaction * interaction) const
overridevirtual

Compute the elastic form factor G_{ep} for the input interaction.

Implements genie::ELFormFactorsModelI.

Definition at line 50 of file ZExpELFormFactorModel.cxx.

51{
52 // calculate and return Gep
53 double q2 = interaction->KinePtr()->q2();
54 double zparam = this->CalculateZ(q2);
55 if (zparam != zparam) // checks for nan
56 {
57 LOG("ZExpELFormFactorModel",pWARN) << "Undefined expansion parameter";
58 return 0.;
59 }
60 double gep = 0.;
61 for (int ki=0;ki<=fKmax+(fQ4limit ? 4 : 0);ki++)
62 {
63 gep = gep + TMath::Power(zparam,ki) * fZ_APn[ki];
64 }
65
66 return gep;
67}

References CalculateZ(), fKmax, fQ4limit, fZ_APn, genie::Interaction::KinePtr(), LOG, pWARN, and genie::Kinematics::q2().

Referenced by LoadConfig().

◆ Gmn()

double ZExpELFormFactorModel::Gmn ( const Interaction * interaction) const
overridevirtual

Compute the elastic form factor G_{mn} for the input interaction.

Implements genie::ELFormFactorsModelI.

Definition at line 108 of file ZExpELFormFactorModel.cxx.

109{
110 // calculate and return Gmn
111 double q2 = interaction->KinePtr()->q2();
112 double zparam = this->CalculateZ(q2);
113 if (zparam != zparam) // checks for nan
114 {
115 LOG("ZExpELFormFactorModel",pWARN) << "Undefined expansion parameter";
116 return 0.;
117 }
118 double gmn = 0.;
119 for (int ki=0;ki<=fKmax+(fQ4limit ? 4 : 0);ki++)
120 {
121 gmn = gmn + TMath::Power(zparam,ki) * fZ_BNn[ki];
122 }
123
124 return gmn;
125}

References CalculateZ(), fKmax, fQ4limit, fZ_BNn, genie::Interaction::KinePtr(), LOG, pWARN, and genie::Kinematics::q2().

Referenced by LoadConfig().

◆ Gmp()

double ZExpELFormFactorModel::Gmp ( const Interaction * interaction) const
overridevirtual

Compute the elastic form factor G_{mp} for the input interaction.

Implements genie::ELFormFactorsModelI.

Definition at line 69 of file ZExpELFormFactorModel.cxx.

70{
71 // calculate and return Gmp
72 double q2 = interaction->KinePtr()->q2();
73 double zparam = this->CalculateZ(q2);
74 if (zparam != zparam) // checks for nan
75 {
76 LOG("ZExpELFormFactorModel",pWARN) << "Undefined expansion parameter";
77 return 0.;
78 }
79 double gmp = 0.;
80 for (int ki=0;ki<=fKmax+(fQ4limit ? 4 : 0);ki++)
81 {
82 gmp = gmp + TMath::Power(zparam,ki) * fZ_BPn[ki];
83 }
84
85 return gmp;
86}

References CalculateZ(), fKmax, fQ4limit, fZ_BPn, genie::Interaction::KinePtr(), LOG, pWARN, and genie::Kinematics::q2().

Referenced by LoadConfig().

◆ LoadConfig()

void ZExpELFormFactorModel::LoadConfig ( void )
private

Definition at line 633 of file ZExpELFormFactorModel.cxx.

634{
635// get config options from the configuration registry or set defaults
636// from the global parameter list
637
638 GetParam( "QEL-Q4limit", fQ4limit ) ;
639 GetParam( "QEL-Kmax", fKmax ) ;
640
641 GetParam( "QEL-T0", fT0 ) ;
642 GetParam( "QEL-Tcut", fTcut ) ;
643
644 GetParam( "QEL-Gep0", fGep0 ) ;
645 GetParam( "QEL-Gmp0", fGmp0 ) ;
646 GetParam( "QEL-Gen0", fGen0 ) ;
647 GetParam( "QEL-Gmn0", fGmn0 ) ;
648 assert(fKmax > 0);
649
650 // z expansion coefficients
651 std::vector<double> tmp_fZ_APn, tmp_fZ_BPn, tmp_fZ_ANn, tmp_fZ_BNn;
652 if(fQ4limit){
653 fZ_APn.resize(fKmax+5);
654 fZ_BPn.resize(fKmax+5);
655 fZ_ANn.resize(fKmax+5);
656 fZ_BNn.resize(fKmax+5);
657 }
658 else{
659 fZ_APn.resize(fKmax+1);
660 fZ_BPn.resize(fKmax+1);
661 fZ_ANn.resize(fKmax+1);
662 fZ_BNn.resize(fKmax+1);
663 }
664 if(this->GetParamVect("QEL-Z_AP", tmp_fZ_APn) != fKmax){
665 LOG("ZExpELFormFactorModel",pERROR) << "Wrong size of AP coefficients " << tmp_fZ_APn.size();
666 exit(1);
667 }
668 if(this->GetParamVect("QEL-Z_BP", tmp_fZ_BPn) != fKmax){
669 LOG("ZExpELFormFactorModel",pERROR) << "Wrong size of BP coefficients " << tmp_fZ_BPn.size();
670 exit(1);
671 }
672 if(this->GetParamVect("QEL-Z_AN", tmp_fZ_ANn) != fKmax){
673 LOG("ZExpELFormFactorModel",pERROR) << "Wrong size of AN coefficients " << tmp_fZ_ANn.size();
674 exit(1);
675 }
676 if(this->GetParamVect("QEL-Z_BN", tmp_fZ_BNn) != fKmax){
677 LOG("ZExpELFormFactorModel",pERROR) << "Wrong size of BN coefficients " << tmp_fZ_BNn.size();
678 exit(1);
679 }
680
681 // load the user-defined coefficient values
682 // -- AP0 and APn for n<fKmax are calculated from other means
683 for (int ip=1;ip<fKmax+1;ip++) {
684 fZ_APn[ip] = tmp_fZ_APn[ip-1];
685 fZ_BPn[ip] = tmp_fZ_BPn[ip-1];
686 fZ_ANn[ip] = tmp_fZ_ANn[ip-1];
687 fZ_BNn[ip] = tmp_fZ_BNn[ip-1];
688 }
689
690 this->FixCoeffs();
691 Interaction * interaction = new Interaction();
692 for (int i=0;i<10;i++) {
693 double Q2 = i*0.1;
694 interaction->KinePtr()->SetQ2( Q2);
695 LOG("ZExpELFormFactorModel",pNOTICE)
696 << "Q2=" <<Q2
697 <<" : Gep(Q2)= " <<this->Gep( interaction);
698 }
699 for (int i=0;i<10;i++) {
700 double Q2 = i*0.1;
701 interaction->KinePtr()->SetQ2( Q2);
702 LOG("ZExpELFormFactorModel",pNOTICE)
703 << "Q2=" <<Q2
704 <<" : Gmp(Q2)= " <<this->Gmp( interaction);
705 }
706 for (int i=0;i<10;i++) {
707 double Q2 = i*0.1;
708 interaction->KinePtr()->SetQ2( Q2);
709 LOG("ZExpELFormFactorModel",pNOTICE)
710 << "Q2=" <<Q2
711 <<" : Gen(Q2)= " <<this->Gen( interaction);
712 }
713 for (int i=0;i<10;i++) {
714 double Q2 = i*0.1;
715 interaction->KinePtr()->SetQ2( Q2);
716 LOG("ZExpELFormFactorModel",pNOTICE)
717 << "Q2=" <<Q2
718 <<" : Gmn(Q2)= " <<this->Gmn( interaction);
719 }
720 delete interaction;
721}
#define pNOTICE
Definition Messenger.h:61
#define pERROR
Definition Messenger.h:59
bool GetParam(const RgKey &name, T &p, bool is_top_call=true) const
int GetParamVect(const std::string &comm_name, std::vector< T > &v, bool is_top_call=true) const
Handle to load vectors of parameters.
void SetQ2(double Q2, bool selected=false)
double Gen(const Interaction *interaction) const override
Compute the elastic form factor G_{en} for the input interaction.
double Gmp(const Interaction *interaction) const override
Compute the elastic form factor G_{mp} for the input interaction.
double Gep(const Interaction *interaction) const override
Compute the elastic form factor G_{ep} for the input interaction.
double Gmn(const Interaction *interaction) const override
Compute the elastic form factor G_{mn} for the input interaction.
double Q2(const Interaction *const i)

References fGen0, fGep0, fGmn0, fGmp0, FixCoeffs(), fKmax, fQ4limit, fT0, fTcut, fZ_ANn, fZ_APn, fZ_BNn, fZ_BPn, Gen(), Gep(), genie::Algorithm::GetParam(), genie::Algorithm::GetParamVect(), Gmn(), Gmp(), genie::Interaction::KinePtr(), LOG, pERROR, pNOTICE, and genie::Kinematics::SetQ2().

Referenced by Configure(), and Configure().

Member Data Documentation

◆ fGen0

double genie::ZExpELFormFactorModel::fGen0
private

Definition at line 66 of file ZExpELFormFactorModel.h.

Referenced by FixEL0(), FixQ4Limit(), and LoadConfig().

◆ fGep0

double genie::ZExpELFormFactorModel::fGep0
private

Definition at line 64 of file ZExpELFormFactorModel.h.

Referenced by FixEL0(), FixQ4Limit(), and LoadConfig().

◆ fGmn0

double genie::ZExpELFormFactorModel::fGmn0
private

Definition at line 67 of file ZExpELFormFactorModel.h.

Referenced by FixEL0(), FixQ4Limit(), and LoadConfig().

◆ fGmp0

double genie::ZExpELFormFactorModel::fGmp0
private

Definition at line 65 of file ZExpELFormFactorModel.h.

Referenced by FixEL0(), FixQ4Limit(), and LoadConfig().

◆ fKmax

int genie::ZExpELFormFactorModel::fKmax
private

Definition at line 61 of file ZExpELFormFactorModel.h.

Referenced by FixEL0(), FixQ4Limit(), Gen(), Gep(), Gmn(), Gmp(), and LoadConfig().

◆ fQ4limit

bool genie::ZExpELFormFactorModel::fQ4limit
private

Definition at line 60 of file ZExpELFormFactorModel.h.

Referenced by FixCoeffs(), Gen(), Gep(), Gmn(), Gmp(), and LoadConfig().

◆ fT0

double genie::ZExpELFormFactorModel::fT0
private

Definition at line 62 of file ZExpELFormFactorModel.h.

Referenced by CalculateZ(), and LoadConfig().

◆ fTcut

double genie::ZExpELFormFactorModel::fTcut
private

Definition at line 63 of file ZExpELFormFactorModel.h.

Referenced by CalculateZ(), and LoadConfig().

◆ fZ_ANn

std::vector<double> genie::ZExpELFormFactorModel::fZ_ANn
private

Definition at line 71 of file ZExpELFormFactorModel.h.

Referenced by FixEL0(), FixQ4Limit(), Gen(), and LoadConfig().

◆ fZ_APn

std::vector<double> genie::ZExpELFormFactorModel::fZ_APn
private

Definition at line 69 of file ZExpELFormFactorModel.h.

Referenced by FixEL0(), FixQ4Limit(), Gep(), and LoadConfig().

◆ fZ_BNn

std::vector<double> genie::ZExpELFormFactorModel::fZ_BNn
private

Definition at line 72 of file ZExpELFormFactorModel.h.

Referenced by FixEL0(), FixQ4Limit(), Gmn(), and LoadConfig().

◆ fZ_BPn

std::vector<double> genie::ZExpELFormFactorModel::fZ_BPn
private

Definition at line 70 of file ZExpELFormFactorModel.h.

Referenced by FixEL0(), FixQ4Limit(), Gmp(), and LoadConfig().


The documentation for this class was generated from the following files: