GSyst.h
Go to the documentation of this file.
1 //____________________________________________________________________________
2 /*!
3 
4 \class genie::rew::GSyst_t
5 
6 \brief An enumeration of systematic parameters
7 
8 \author Costas Andreopoulos <costas.andreopoulos \at stfc.ac.uk>
9  University of Liverpool & STFC Rutherford Appleton Lab
10 
11 \created Aug 1, 2009
12 
13 \cpright Copyright (c) 2003-2017, GENIE Neutrino MC Generator 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 _G_SYSTEMATIC_PARAM_H_
20 #define _G_SYSTEMATIC_PARAM_H_
21 
22 #include <string>
23 
24 #include "PDG/PDGUtils.h"
27 
28 using std::string;
29 
30 namespace genie {
31 namespace rew {
32 
33 typedef enum EGSyst {
34 
36 
37  //
38  // Neutrino cross section systematics
39  //
40  // Note:
41  //
42  //
43  //
44 
45  // NCEL tweaking parameters:
46  kXSecTwkDial_MaNCEL, ///< tweak Ma NCEL, affects dsigma(NCEL)/dQ2 both in shape and normalization
47  kXSecTwkDial_EtaNCEL, ///< tweak NCEL strange axial form factor eta, affects dsigma(NCEL)/dQ2 both in shape and normalization
48  // CCQE tweaking parameters (also see at end of enum for z-expansion FF knobs):
49  kXSecTwkDial_NormCCQE, ///< tweak CCQE normalization (energy independent)
50  kXSecTwkDial_NormCCQEenu, ///< tweak CCQE normalization (maintains dependence on neutrino energy)
51  kXSecTwkDial_MaCCQEshape, ///< tweak Ma CCQE, affects dsigma(CCQE)/dQ2 in shape only (normalized to constant integral)
52  kXSecTwkDial_MaCCQE, ///< tweak Ma CCQE, affects dsigma(CCQE)/dQ2 both in shape and normalization
53  kXSecTwkDial_VecFFCCQEshape, ///< tweak elastic nucleon form factors (BBA/default -> dipole) - shape only effect of dsigma(CCQE)/dQ2
54  // Resonance neutrino-production tweaking parameters:
55  kXSecTwkDial_NormCCRES, ///< tweak CCRES normalization
56  kXSecTwkDial_MaCCRESshape, ///< tweak Ma CCRES, affects d2sigma(CCRES)/dWdQ2 in shape only (normalized to constant integral)
57  kXSecTwkDial_MvCCRESshape, ///< tweak Mv CCRES, affects d2sigma(CCRES)/dWdQ2 in shape only (normalized to constant integral)
58  kXSecTwkDial_MaCCRES, ///< tweak Ma CCRES, affects d2sigma(CCRES)/dWdQ2 both in shape and normalization
59  kXSecTwkDial_MvCCRES, ///< tweak Mv CCRES, affects d2sigma(CCRES)/dWdQ2 both in shape and normalization
60  kXSecTwkDial_NormNCRES, ///< tweak NCRES normalization
61  kXSecTwkDial_MaNCRESshape, ///< tweak Ma NCRES, affects d2sigma(NCRES)/dWdQ2 in shape only (normalized to constant integral)
62  kXSecTwkDial_MvNCRESshape, ///< tweak Mv NCRES, affects d2sigma(NCRES)/dWdQ2 in shape only (normalized to constant integral)
63  kXSecTwkDial_MaNCRES, ///< tweak Ma NCRES, affects d2sigma(NCRES)/dWdQ2 both in shape and normalization
64  kXSecTwkDial_MvNCRES, ///< tweak Mv NCRES, affects d2sigma(NCRES)/dWdQ2 both in shape and normalization
65  // Coherent pion production tweaking parameters:
66  kXSecTwkDial_MaCOHpi, ///< tweak Ma for COH pion production
67  kXSecTwkDial_R0COHpi, ///< tweak R0 for COH pion production
68  // Non-resonance background tweaking parameters:
69  kXSecTwkDial_RvpCC1pi, ///< tweak the 1pi non-RES bkg in the RES region, for v+p CC
70  kXSecTwkDial_RvpCC2pi, ///< tweak the 2pi non-RES bkg in the RES region, for v+p CC
71  kXSecTwkDial_RvpNC1pi, ///< tweak the 1pi non-RES bkg in the RES region, for v+p NC
72  kXSecTwkDial_RvpNC2pi, ///< tweak the 2pi non-RES bkg in the RES region, for v+p NC
73  kXSecTwkDial_RvnCC1pi, ///< tweak the 1pi non-RES bkg in the RES region, for v+n CC
74  kXSecTwkDial_RvnCC2pi, ///< tweak the 2pi non-RES bkg in the RES region, for v+n CC
75  kXSecTwkDial_RvnNC1pi, ///< tweak the 1pi non-RES bkg in the RES region, for v+n NC
76  kXSecTwkDial_RvnNC2pi, ///< tweak the 2pi non-RES bkg in the RES region, for v+n NC
77  kXSecTwkDial_RvbarpCC1pi, ///< tweak the 1pi non-RES bkg in the RES region, for vbar+p CC
78  kXSecTwkDial_RvbarpCC2pi, ///< tweak the 2pi non-RES bkg in the RES region, for vbar+p CC
79  kXSecTwkDial_RvbarpNC1pi, ///< tweak the 1pi non-RES bkg in the RES region, for vbar+p NC
80  kXSecTwkDial_RvbarpNC2pi, ///< tweak the 2pi non-RES bkg in the RES region, for vbar+p NC
81  kXSecTwkDial_RvbarnCC1pi, ///< tweak the 1pi non-RES bkg in the RES region, for vbar+n CC
82  kXSecTwkDial_RvbarnCC2pi, ///< tweak the 2pi non-RES bkg in the RES region, for vbar+n CC
83  kXSecTwkDial_RvbarnNC1pi, ///< tweak the 1pi non-RES bkg in the RES region, for vbar+n NC
84  kXSecTwkDial_RvbarnNC2pi, ///< tweak the 2pi non-RES bkg in the RES region, for vbar+n NC
85  // DIS tweaking parameters - applied for DIS events with (Q2>Q2o, W>Wo), typically Q2o=1GeV^2, Wo=1.7-2.0GeV
86  kXSecTwkDial_AhtBY, ///< tweak the Bodek-Yang model parameter A_{ht} - incl. both shape and normalization effect
87  kXSecTwkDial_BhtBY, ///< tweak the Bodek-Yang model parameter B_{ht} - incl. both shape and normalization effect
88  kXSecTwkDial_CV1uBY, ///< tweak the Bodek-Yang model parameter CV1u - incl. both shape and normalization effect
89  kXSecTwkDial_CV2uBY, ///< tweak the Bodek-Yang model parameter CV2u - incl. both shape and normalization effect
90  kXSecTwkDial_AhtBYshape, ///< tweak the Bodek-Yang model parameter A_{ht} - shape only effect to d2sigma(DIS)/dxdy
91  kXSecTwkDial_BhtBYshape, ///< tweak the Bodek-Yang model parameter B_{ht} - shape only effect to d2sigma(DIS)/dxdy
92  kXSecTwkDial_CV1uBYshape, ///< tweak the Bodek-Yang model parameter CV1u - shape only effect to d2sigma(DIS)/dxdy
93  kXSecTwkDial_CV2uBYshape, ///< tweak the Bodek-Yang model parameter CV2u - shape only effect to d2sigma(DIS)/dxdy
94  kXSecTwkDial_NormDISCC, ///< tweak the inclusive DIS CC normalization
95  kXSecTwkDial_RnubarnuCC, ///< tweak the ratio of \sigma(\bar\nu CC) / \sigma(\nu CC)
96  kXSecTwkDial_DISNuclMod, ///< tweak DIS nuclear modification (shadowing, anti-shadowing, EMC)
97  //
99 
100 
101  //
102  // Hadronization (free nucleon target)
103  //
104 
105  kHadrAGKYTwkDial_xF1pi, ///< tweak xF distribution for low multiplicity (N + pi) DIS f/s produced by AGKY
106  kHadrAGKYTwkDial_pT1pi, ///< tweak pT distribution for low multiplicity (N + pi) DIS f/s produced by AGKY
107 
108 
109  //
110  // Medium-effects to hadronization
111  //
112 
113  kHadrNuclTwkDial_FormZone, ///< tweak formation zone
114 
115 
116  //
117  // Intranuclear rescattering systematics.
118  // There are 2 sets of parameters:
119  // - parameters that control the total rescattering probability, P(total)
120  // - parameters that control the fraction of each process (`fate'), given a total rescat. prob., P(fate|total)
121  // These parameters are considered separately for pions and nucleons.
122  //
123 
124  kINukeTwkDial_MFP_pi, ///< tweak mean free path for pions
125  kINukeTwkDial_MFP_N, ///< tweak mean free path for nucleons
126  kINukeTwkDial_FrCEx_pi, ///< tweak charge exchange probability for pions, for given total rescattering probability
127  kINukeTwkDial_FrElas_pi, ///< tweak elastic probability for pions, for given total rescattering probability
128  kINukeTwkDial_FrInel_pi, ///< tweak inelastic probability for pions, for given total rescattering probability
129  kINukeTwkDial_FrAbs_pi, ///< tweak absorption probability for pions, for given total rescattering probability
130  kINukeTwkDial_FrPiProd_pi, ///< tweak pion production probability for pions, for given total rescattering probability
131  kINukeTwkDial_FrCEx_N, ///< tweak charge exchange probability for nucleons, for given total rescattering probability
132  kINukeTwkDial_FrElas_N, ///< tweak elastic probability for nucleons, for given total rescattering probability
133  kINukeTwkDial_FrInel_N, ///< tweak inelastic probability for nucleons, for given total rescattering probability
134  kINukeTwkDial_FrAbs_N, ///< tweak absorption probability for nucleons, for given total rescattering probability
135  kINukeTwkDial_FrPiProd_N, ///< tweak pion production probability for nucleons, for given total rescattering probability
136 
137  //
138  // Nuclear model
139  //
140 
143 
144  //
145  // Resonance decays
146  //
147 
148  kRDcyTwkDial_BR1gamma, ///< tweak Resonance -> X + gamma branching ratio, eg Delta+(1232) -> p gamma
149  kRDcyTwkDial_BR1eta, ///< tweak Resonance -> X + eta branching ratio, eg N+(1440) -> p eta
150  kRDcyTwkDial_Theta_Delta2Npi, ///< distort pi angular distribution in Delta -> N + pi
151 
152  //
153  // Alternative approach to CCQE form factors (z-expansion)
154  //
155 
156  kXSecTwkDial_ZNormCCQE, ///< tweak Z-expansion CCQE normalization (energy independent)
157  kXSecTwkDial_ZExpA1CCQE, ///< tweak Z-expansion coefficient 1, affects dsigma(CCQE)/dQ2 both in shape and normalization
158  kXSecTwkDial_ZExpA2CCQE, ///< tweak Z-expansion coefficient 2, affects dsigma(CCQE)/dQ2 both in shape and normalization
159  kXSecTwkDial_ZExpA3CCQE, ///< tweak Z-expansion coefficient 3, affects dsigma(CCQE)/dQ2 both in shape and normalization
160  kXSecTwkDial_ZExpA4CCQE, ///< tweak Z-expansion coefficient 4, affects dsigma(CCQE)/dQ2 both in shape and normalization
161  kXSecTwkDial_AxFFCCQEshape ///< tweak axial nucleon form factors (dipole -> z-expansion) - shape only effect of dsigma(CCQE)/dQ2
162 
163 
164  //
165  // Misc
166  //
167 
168 
169 } GSyst_t;
170 
171 
172 class GSyst {
173 public:
174  //......................................................................................
175  static string AsString(GSyst_t syst)
176  {
177  switch(syst) {
178  case ( kXSecTwkDial_MaNCEL ) : return "MaNCEL"; break;
179  case ( kXSecTwkDial_EtaNCEL ) : return "EtaNCEL"; break;
180  case ( kXSecTwkDial_NormCCQE ) : return "NormCCQE"; break;
181  case ( kXSecTwkDial_NormCCQEenu ) : return "NormCCQEenu"; break;
182  case ( kXSecTwkDial_MaCCQE ) : return "MaCCQE"; break;
183  case ( kXSecTwkDial_MaCCQEshape ) : return "MaCCQEshape"; break;
184  case ( kXSecTwkDial_ZNormCCQE ) : return "ZNormCCQE"; break;
185  case ( kXSecTwkDial_ZExpA1CCQE ) : return "ZExpA1CCQE"; break;
186  case ( kXSecTwkDial_ZExpA2CCQE ) : return "ZExpA2CCQE"; break;
187  case ( kXSecTwkDial_ZExpA3CCQE ) : return "ZExpA3CCQE"; break;
188  case ( kXSecTwkDial_ZExpA4CCQE ) : return "ZExpA4CCQE"; break;
189  case ( kXSecTwkDial_AxFFCCQEshape ) : return "AxFFCCQEshape"; break;
190  case ( kXSecTwkDial_VecFFCCQEshape ) : return "VecFFCCQEshape"; break;
191  case ( kXSecTwkDial_NormCCRES ) : return "NormCCRES"; break;
192  case ( kXSecTwkDial_MaCCRESshape ) : return "MaCCRESshape"; break;
193  case ( kXSecTwkDial_MvCCRESshape ) : return "MvCCRESshape"; break;
194  case ( kXSecTwkDial_MaCCRES ) : return "MaCCRES"; break;
195  case ( kXSecTwkDial_MvCCRES ) : return "MvCCRES"; break;
196  case ( kXSecTwkDial_NormNCRES ) : return "NormNCRES"; break;
197  case ( kXSecTwkDial_MaNCRESshape ) : return "MaNCRESshape"; break;
198  case ( kXSecTwkDial_MvNCRESshape ) : return "MvNCRESshape"; break;
199  case ( kXSecTwkDial_MaNCRES ) : return "MaNCRES"; break;
200  case ( kXSecTwkDial_MvNCRES ) : return "MvNCRES"; break;
201  case ( kXSecTwkDial_MaCOHpi ) : return "MaCOHpi"; break;
202  case ( kXSecTwkDial_R0COHpi ) : return "R0COHpi"; break;
203  case ( kXSecTwkDial_RvpCC1pi ) : return "NonRESBGvpCC1pi"; break;
204  case ( kXSecTwkDial_RvpCC2pi ) : return "NonRESBGvpCC2pi"; break;
205  case ( kXSecTwkDial_RvpNC1pi ) : return "NonRESBGvpNC1pi"; break;
206  case ( kXSecTwkDial_RvpNC2pi ) : return "NonRESBGvpNC2pi"; break;
207  case ( kXSecTwkDial_RvnCC1pi ) : return "NonRESBGvnCC1pi"; break;
208  case ( kXSecTwkDial_RvnCC2pi ) : return "NonRESBGvnCC2pi"; break;
209  case ( kXSecTwkDial_RvnNC1pi ) : return "NonRESBGvnNC1pi"; break;
210  case ( kXSecTwkDial_RvnNC2pi ) : return "NonRESBGvnNC2pi"; break;
211  case ( kXSecTwkDial_RvbarpCC1pi ) : return "NonRESBGvbarpCC1pi"; break;
212  case ( kXSecTwkDial_RvbarpCC2pi ) : return "NonRESBGvbarpCC2pi"; break;
213  case ( kXSecTwkDial_RvbarpNC1pi ) : return "NonRESBGvbarpNC1pi"; break;
214  case ( kXSecTwkDial_RvbarpNC2pi ) : return "NonRESBGvbarpNC2pi"; break;
215  case ( kXSecTwkDial_RvbarnCC1pi ) : return "NonRESBGvbarnCC1pi"; break;
216  case ( kXSecTwkDial_RvbarnCC2pi ) : return "NonRESBGvbarnCC2pi"; break;
217  case ( kXSecTwkDial_RvbarnNC1pi ) : return "NonRESBGvbarnNC1pi"; break;
218  case ( kXSecTwkDial_RvbarnNC2pi ) : return "NonRESBGvbarnNC2pi"; break;
219  case ( kXSecTwkDial_AhtBY ) : return "AhtBY"; break;
220  case ( kXSecTwkDial_BhtBY ) : return "BhtBY"; break;
221  case ( kXSecTwkDial_CV1uBY ) : return "CV1uBY"; break;
222  case ( kXSecTwkDial_CV2uBY ) : return "CV2uBY"; break;
223  case ( kXSecTwkDial_AhtBYshape ) : return "AhtBYshape"; break;
224  case ( kXSecTwkDial_BhtBYshape ) : return "BhtBYshape"; break;
225  case ( kXSecTwkDial_CV1uBYshape ) : return "CV1uBYshape"; break;
226  case ( kXSecTwkDial_CV2uBYshape ) : return "CV2uBYshape"; break;
227  case ( kXSecTwkDial_NormDISCC ) : return "NormDISCC"; break;
228  case ( kXSecTwkDial_RnubarnuCC ) : return "RnubarnuCC"; break;
229  case ( kXSecTwkDial_DISNuclMod ) : return "DISNuclMod"; break;
230  case ( kHadrAGKYTwkDial_xF1pi ) : return "AGKYxF1pi"; break;
231  case ( kHadrAGKYTwkDial_pT1pi ) : return "AGKYpT1pi"; break;
232  case ( kHadrNuclTwkDial_FormZone ) : return "FormZone"; break;
233  case ( kINukeTwkDial_MFP_pi ) : return "MFP_pi"; break;
234  case ( kINukeTwkDial_MFP_N ) : return "MFP_N"; break;
235  case ( kINukeTwkDial_FrCEx_pi ) : return "FrCEx_pi"; break;
236  case ( kINukeTwkDial_FrElas_pi ) : return "FrElas_pi"; break;
237  case ( kINukeTwkDial_FrInel_pi ) : return "FrInel_pi"; break;
238  case ( kINukeTwkDial_FrAbs_pi ) : return "FrAbs_pi"; break;
239  case ( kINukeTwkDial_FrPiProd_pi ) : return "FrPiProd_pi"; break;
240  case ( kINukeTwkDial_FrCEx_N ) : return "FrCEx_N"; break;
241  case ( kINukeTwkDial_FrElas_N ) : return "FrElas_N"; break;
242  case ( kINukeTwkDial_FrInel_N ) : return "FrInel_N"; break;
243  case ( kINukeTwkDial_FrAbs_N ) : return "FrAbs_N"; break;
244  case ( kINukeTwkDial_FrPiProd_N ) : return "FrPiProd_N"; break;
245  case ( kSystNucl_CCQEPauliSupViaKF ) : return "CCQEPauliSupViaKF"; break;
246  case ( kSystNucl_CCQEMomDistroFGtoSF ) : return "CCQEMomDistroFGtoSF"; break;
247  case ( kRDcyTwkDial_BR1gamma ) : return "RDecBR1gamma"; break;
248  case ( kRDcyTwkDial_BR1eta ) : return "RDecBR1eta"; break;
249  case ( kRDcyTwkDial_Theta_Delta2Npi ) : return "Theta_Delta2Npi"; break;
250 
251  default:
252  return "-";
253  }
254  return "";
255  }
256  //......................................................................................
257  static GSyst_t FromString(string syst)
258  {
259  const GSyst_t systematics[] =
260  {
334  };
335 
336  int isyst=0;
337  while(systematics[isyst]!=kNullSystematic) {
338  if( AsString(systematics[isyst]) == syst ) {
339  return systematics[isyst];
340  }
341  isyst++;
342  }
343 
344  return kNullSystematic;
345  }
346  //......................................................................................
347  static bool IsINukePionFateSystematic(GSyst_t syst)
348  {
349  switch(syst) {
350  case ( kINukeTwkDial_FrCEx_pi ) :
351  case ( kINukeTwkDial_FrElas_pi ) :
352  case ( kINukeTwkDial_FrInel_pi ) :
353  case ( kINukeTwkDial_FrAbs_pi ) :
354  case ( kINukeTwkDial_FrPiProd_pi) :
355  return true;
356  break;
357  default:
358  return false;
359  break;
360  }
361  return false;
362  }
363  //......................................................................................
364  static bool IsINukeNuclFateSystematic(GSyst_t syst)
365  {
366  switch(syst) {
367  case ( kINukeTwkDial_FrCEx_N ) :
368  case ( kINukeTwkDial_FrElas_N ) :
369  case ( kINukeTwkDial_FrInel_N ) :
370  case ( kINukeTwkDial_FrAbs_N ) :
371  case ( kINukeTwkDial_FrPiProd_N) :
372  return true;
373  break;
374  default:
375  return false;
376  break;
377  }
378  return false;
379  }
380  //......................................................................................
381  static bool IsINukeFateSystematic(GSyst_t syst)
382  {
383  switch(syst) {
384  case ( kINukeTwkDial_FrCEx_pi ) :
385  case ( kINukeTwkDial_FrElas_pi ) :
386  case ( kINukeTwkDial_FrInel_pi ) :
387  case ( kINukeTwkDial_FrAbs_pi ) :
388  case ( kINukeTwkDial_FrPiProd_pi ) :
389  case ( kINukeTwkDial_FrCEx_N ) :
390  case ( kINukeTwkDial_FrElas_N ) :
391  case ( kINukeTwkDial_FrInel_N ) :
392  case ( kINukeTwkDial_FrAbs_N ) :
393  case ( kINukeTwkDial_FrPiProd_N ) :
394  return true;
395  break;
396 
397  default:
398  return false;
399  break;
400  }
401  return false;
402  }
403  //......................................................................................
404  static bool IsINukePionMeanFreePathSystematic(GSyst_t syst)
405  {
406  switch(syst) {
407  case ( kINukeTwkDial_MFP_pi ) :
408  return true;
409  break;
410 
411  default:
412  return false;
413  break;
414  }
415  return false;
416  }
417  //......................................................................................
418  static bool IsINukeNuclMeanFreePathSystematic(GSyst_t syst)
419  {
420  switch(syst) {
421  case ( kINukeTwkDial_MFP_N ) :
422  return true;
423  break;
424 
425  default:
426  return false;
427  break;
428  }
429  return false;
430  }
431  //......................................................................................
432  static bool IsINukeMeanFreePathSystematic(GSyst_t syst)
433  {
434  switch(syst) {
435  case ( kINukeTwkDial_MFP_pi ) :
436  case ( kINukeTwkDial_MFP_N ) :
437  return true;
438  break;
439 
440  default:
441  return false;
442  break;
443  }
444  return false;
445  }
446  //......................................................................................
447  static GSyst_t NextPionFateSystematic(int i)
448  {
449  if(i==0) return kINukeTwkDial_FrCEx_pi;
450  if(i==1) return kINukeTwkDial_FrElas_pi;
451  if(i==2) return kINukeTwkDial_FrInel_pi;
452  if(i==3) return kINukeTwkDial_FrAbs_pi;
453  if(i==4) return kINukeTwkDial_FrPiProd_pi;
454 
455  return kNullSystematic;
456  }
457  //......................................................................................
458  static GSyst_t NextNuclFateSystematic(int i)
459  {
460  if(i==0) return kINukeTwkDial_FrCEx_N;
461  if(i==1) return kINukeTwkDial_FrElas_N;
462  if(i==2) return kINukeTwkDial_FrInel_N;
463  if(i==3) return kINukeTwkDial_FrAbs_N;
464  if(i==4) return kINukeTwkDial_FrPiProd_N;
465 
466  return kNullSystematic;
467  }
468  //......................................................................................
469  static GSyst_t INukeFate2GSyst(INukeFateHA_t fate, int pdgc)
470  {
471  // get the corresponding GSyst_t systematic parameter enumeration from the
472  // input intranuke fate enumeration and PDG code
473  //
474  if(pdg::IsPion(pdgc)) {
475  switch (fate) {
476  case kIHAFtUndefined : return kNullSystematic; break;
477  case kIHAFtCEx : return kINukeTwkDial_FrCEx_pi; break;
478  case kIHAFtElas : return kINukeTwkDial_FrElas_pi; break;
479  case kIHAFtInelas : return kINukeTwkDial_FrInel_pi; break;
480  case kIHAFtAbs : return kINukeTwkDial_FrAbs_pi; break;
481  case kIHAFtPiProd : return kINukeTwkDial_FrPiProd_pi; break;
482  default : return kNullSystematic; break;
483  }
484  } else
485  if(pdg::IsNucleon(pdgc)) {
486  switch (fate) {
487  case kIHAFtUndefined : return kNullSystematic; break;
488  case kIHAFtCEx : return kINukeTwkDial_FrCEx_N; break;
489  case kIHAFtElas : return kINukeTwkDial_FrElas_N; break;
490  case kIHAFtInelas : return kINukeTwkDial_FrInel_N; break;
491  case kIHAFtAbs : return kINukeTwkDial_FrAbs_N; break;
492  case kIHAFtPiProd : return kINukeTwkDial_FrPiProd_N; break;
493  default : return kNullSystematic; break;
494  }
495  }
496  return kNullSystematic;
497  }
498  //......................................................................................
499  static GSyst_t RBkg(InteractionType_t itype, int probe, int hitnuc, int npi)
500  {
501  bool is_v = pdg::IsNeutrino (probe);
502  bool is_vbar = pdg::IsAntiNeutrino (probe);
503  bool is_p = pdg::IsProton (hitnuc);
504  bool is_n = pdg::IsNeutron (hitnuc);
505 
506  // CC
507  bool is_cc = (itype == kIntWeakCC);
508  if(is_cc) {
509  if(is_v && is_p) {
510  if(npi==1) return kXSecTwkDial_RvpCC1pi;
511  if(npi==2) return kXSecTwkDial_RvpCC2pi;
512  }
513  if(is_v && is_n) {
514  if(npi==1) return kXSecTwkDial_RvnCC1pi;
515  if(npi==2) return kXSecTwkDial_RvnCC2pi;
516  }
517  if(is_vbar && is_p) {
518  if(npi==1) return kXSecTwkDial_RvbarpCC1pi;
519  if(npi==2) return kXSecTwkDial_RvbarpCC2pi;
520  }
521  if(is_vbar && is_n) {
522  if(npi==1) return kXSecTwkDial_RvbarnCC1pi;
523  if(npi==2) return kXSecTwkDial_RvbarnCC2pi;
524  }
525  }//cc
526 
527  // NC
528  bool is_nc = (itype == kIntWeakNC);
529  if(is_nc) {
530  if(is_v && is_p) {
531  if(npi==1) return kXSecTwkDial_RvpNC1pi;
532  if(npi==2) return kXSecTwkDial_RvpNC2pi;
533  }
534  if(is_v && is_n) {
535  if(npi==1) return kXSecTwkDial_RvnNC1pi;
536  if(npi==2) return kXSecTwkDial_RvnNC2pi;
537  }
538  if(is_vbar && is_p) {
539  if(npi==1) return kXSecTwkDial_RvbarpNC1pi;
540  if(npi==2) return kXSecTwkDial_RvbarpNC2pi;
541  }
542  if(is_vbar && is_n) {
543  if(npi==1) return kXSecTwkDial_RvbarnNC1pi;
544  if(npi==2) return kXSecTwkDial_RvbarnNC2pi;
545  }
546  }//nc
547 
548  return kNullSystematic;
549  }
550  //......................................................................................
551 
552 };
553 
554 } // rew namespace
555 } // genie namespace
556 
557 #endif
558 
enum genie::EINukeFateHA_t INukeFateHA_t
tweak Mv CCRES, affects d2sigma(CCRES)/dWdQ2 both in shape and normalization
Definition: GSyst.h:59
tweak the 1pi non-RES bkg in the RES region, for v+p CC
Definition: GSyst.h:69
tweak Z-expansion coefficient 1, affects dsigma(CCQE)/dQ2 both in shape and normalization ...
Definition: GSyst.h:157
bool IsPion(int pdgc)
Definition: PDGUtils.cxx:296
tweak Mv CCRES, affects d2sigma(CCRES)/dWdQ2 in shape only (normalized to constant integral) ...
Definition: GSyst.h:57
tweak NCEL strange axial form factor eta, affects dsigma(NCEL)/dQ2 both in shape and normalization ...
Definition: GSyst.h:47
tweak the 1pi non-RES bkg in the RES region, for v+p NC
Definition: GSyst.h:71
static GSyst_t RBkg(InteractionType_t itype, int probe, int hitnuc, int npi)
Definition: GSyst.h:499
tweak inelastic probability for pions, for given total rescattering probability
Definition: GSyst.h:128
bool IsNeutrino(int pdgc)
Definition: PDGUtils.cxx:121
tweak the ratio of ( CC) / ( CC)
Definition: GSyst.h:95
#include "Numerical/GSFunc.h"
Definition: AlgCmp.h:26
tweak DIS nuclear modification (shadowing, anti-shadowing, EMC)
Definition: GSyst.h:96
std::string string
Definition: nybbler.cc:12
bool IsNucleon(int pdgc)
Definition: PDGUtils.cxx:316
tweak elastic probability for pions, for given total rescattering probability
Definition: GSyst.h:127
tweak CCQE normalization (maintains dependence on neutrino energy)
Definition: GSyst.h:50
tweak xF distribution for low multiplicity (N + pi) DIS f/s produced by AGKY
Definition: GSyst.h:105
tweak the 1pi non-RES bkg in the RES region, for vbar+n CC
Definition: GSyst.h:81
tweak charge exchange probability for nucleons, for given total rescattering probability ...
Definition: GSyst.h:131
tweak CCQE normalization (energy independent)
Definition: GSyst.h:49
tweak axial nucleon form factors (dipole -> z-expansion) - shape only effect of dsigma(CCQE)/dQ2 ...
Definition: GSyst.h:161
tweak the Bodek-Yang model parameter B_{ht} - shape only effect to d2sigma(DIS)/dxdy ...
Definition: GSyst.h:91
tweak Ma NCEL, affects dsigma(NCEL)/dQ2 both in shape and normalization
Definition: GSyst.h:46
tweak Resonance -> X + eta branching ratio, eg N+(1440) -> p eta
Definition: GSyst.h:149
tweak pion production probability for pions, for given total rescattering probability ...
Definition: GSyst.h:130
static bool IsINukeFateSystematic(GSyst_t syst)
Definition: GSyst.h:381
tweak pT distribution for low multiplicity (N + pi) DIS f/s produced by AGKY
Definition: GSyst.h:106
static GSyst_t FromString(string syst)
Definition: GSyst.h:257
static bool IsINukeNuclMeanFreePathSystematic(GSyst_t syst)
Definition: GSyst.h:418
tweak Z-expansion coefficient 4, affects dsigma(CCQE)/dQ2 both in shape and normalization ...
Definition: GSyst.h:160
bool IsNeutron(int pdgc)
Definition: PDGUtils.cxx:311
enum genie::rew::EGSyst GSyst_t
tweak the 2pi non-RES bkg in the RES region, for vbar+p NC
Definition: GSyst.h:80
tweak inelastic probability for nucleons, for given total rescattering probability ...
Definition: GSyst.h:133
tweak absorption probability for nucleons, for given total rescattering probability ...
Definition: GSyst.h:134
bool IsProton(int pdgc)
Definition: PDGUtils.cxx:306
tweak the inclusive DIS CC normalization
Definition: GSyst.h:94
tweak the 2pi non-RES bkg in the RES region, for vbar+n NC
Definition: GSyst.h:84
tweak Z-expansion coefficient 3, affects dsigma(CCQE)/dQ2 both in shape and normalization ...
Definition: GSyst.h:159
static bool IsINukeMeanFreePathSystematic(GSyst_t syst)
Definition: GSyst.h:432
tweak the 1pi non-RES bkg in the RES region, for v+n CC
Definition: GSyst.h:73
tweak absorption probability for pions, for given total rescattering probability
Definition: GSyst.h:129
bool IsAntiNeutrino(int pdgc)
Definition: PDGUtils.cxx:129
tweak the Bodek-Yang model parameter CV2u - incl. both shape and normalization effect ...
Definition: GSyst.h:89
tweak Z-expansion coefficient 2, affects dsigma(CCQE)/dQ2 both in shape and normalization ...
Definition: GSyst.h:158
tweak the 2pi non-RES bkg in the RES region, for v+n CC
Definition: GSyst.h:74
tweak Z-expansion CCQE normalization (energy independent)
Definition: GSyst.h:156
tweak the 2pi non-RES bkg in the RES region, for vbar+n CC
Definition: GSyst.h:82
tweak R0 for COH pion production
Definition: GSyst.h:67
tweak elastic probability for nucleons, for given total rescattering probability
Definition: GSyst.h:132
tweak the 1pi non-RES bkg in the RES region, for vbar+p CC
Definition: GSyst.h:77
tweak the 2pi non-RES bkg in the RES region, for v+p NC
Definition: GSyst.h:72
tweak elastic nucleon form factors (BBA/default -> dipole) - shape only effect of dsigma(CCQE)/dQ2 ...
Definition: GSyst.h:53
tweak CCRES normalization
Definition: GSyst.h:55
tweak Mv NCRES, affects d2sigma(NCRES)/dWdQ2 both in shape and normalization
Definition: GSyst.h:64
tweak the Bodek-Yang model parameter A_{ht} - incl. both shape and normalization effect ...
Definition: GSyst.h:86
tweak the 2pi non-RES bkg in the RES region, for v+n NC
Definition: GSyst.h:76
tweak mean free path for nucleons
Definition: GSyst.h:125
tweak mean free path for pions
Definition: GSyst.h:124
static GSyst_t NextPionFateSystematic(int i)
Definition: GSyst.h:447
tweak the Bodek-Yang model parameter A_{ht} - shape only effect to d2sigma(DIS)/dxdy ...
Definition: GSyst.h:90
tweak Ma CCRES, affects d2sigma(CCRES)/dWdQ2 both in shape and normalization
Definition: GSyst.h:58
tweak formation zone
Definition: GSyst.h:113
tweak NCRES normalization
Definition: GSyst.h:60
tweak Ma CCQE, affects dsigma(CCQE)/dQ2 both in shape and normalization
Definition: GSyst.h:52
tweak the Bodek-Yang model parameter CV1u - shape only effect to d2sigma(DIS)/dxdy ...
Definition: GSyst.h:92
tweak Resonance -> X + gamma branching ratio, eg Delta+(1232) -> p gamma
Definition: GSyst.h:148
static string AsString(GSyst_t syst)
Definition: GSyst.h:175
tweak the 1pi non-RES bkg in the RES region, for v+n NC
Definition: GSyst.h:75
static bool IsINukePionFateSystematic(GSyst_t syst)
Definition: GSyst.h:347
static bool IsINukePionMeanFreePathSystematic(GSyst_t syst)
Definition: GSyst.h:404
tweak Ma CCRES, affects d2sigma(CCRES)/dWdQ2 in shape only (normalized to constant integral) ...
Definition: GSyst.h:56
tweak the 2pi non-RES bkg in the RES region, for vbar+p CC
Definition: GSyst.h:78
tweak pion production probability for nucleons, for given total rescattering probability ...
Definition: GSyst.h:135
tweak Ma for COH pion production
Definition: GSyst.h:66
tweak the Bodek-Yang model parameter CV1u - incl. both shape and normalization effect ...
Definition: GSyst.h:88
tweak Ma NCRES, affects d2sigma(NCRES)/dWdQ2 in shape only (normalized to constant integral) ...
Definition: GSyst.h:61
tweak Mv NCRES, affects d2sigma(NCRES)/dWdQ2 in shape only (normalized to constant integral) ...
Definition: GSyst.h:62
static bool IsINukeNuclFateSystematic(GSyst_t syst)
Definition: GSyst.h:364
tweak the 1pi non-RES bkg in the RES region, for vbar+p NC
Definition: GSyst.h:79
tweak the Bodek-Yang model parameter CV2u - shape only effect to d2sigma(DIS)/dxdy ...
Definition: GSyst.h:93
tweak charge exchange probability for pions, for given total rescattering probability ...
Definition: GSyst.h:126
distort pi angular distribution in Delta -> N + pi
Definition: GSyst.h:150
enum genie::EInteractionType InteractionType_t
tweak Ma CCQE, affects dsigma(CCQE)/dQ2 in shape only (normalized to constant integral) ...
Definition: GSyst.h:51
tweak the 2pi non-RES bkg in the RES region, for v+p CC
Definition: GSyst.h:70
static GSyst_t INukeFate2GSyst(INukeFateHA_t fate, int pdgc)
Definition: GSyst.h:469
tweak the 1pi non-RES bkg in the RES region, for vbar+n NC
Definition: GSyst.h:83
tweak the Bodek-Yang model parameter B_{ht} - incl. both shape and normalization effect ...
Definition: GSyst.h:87
static GSyst_t NextNuclFateSystematic(int i)
Definition: GSyst.h:458
tweak Ma NCRES, affects d2sigma(NCRES)/dWdQ2 both in shape and normalization
Definition: GSyst.h:63