ReweightDriver.h
Go to the documentation of this file.
1 #ifndef REWEIGHTDRIVER_H
2 #define REWEIGHTDRIVER_H
3 
7 
13 
14 #include "OtherReweighter.h"
15 
22 
23 #include "InteractionChainData.h"
24 
25 namespace NeutrinoFluxReweight{
26 
27  /*! \class ReweightDriver
28  * \brief A class to manage and drive the weight calculation procedure.
29  *
30  * There is a one-to-one correspondence between ReweightDrivers and universes.
31  */
32 
34  public:
35  /*!
36  * the constructor
37  */
38  ReweightDriver(int iuniv, const ParameterTable& cv_pars, const ParameterTable& univ_pars,std::string fileIn);
40 
41  /*!
42  * Calculate weight for this event, given a set of central value parameters
43  * and a set of randomly varied parameters corresponding to the universe
44  * that this ReweightDriver is responsible for.
45  *
46  * - Call mipp_yields on input chain. record interactions covered with a weight in interaction_covered.
47  * - Call attenuation on input chain
48  * - Call thin target reweighters.
49  * -# Call na49 for interactions not yet covered. record in interaction_covered
50  * -# ditto. call MIPP, then theory
51  */
52  double calculateWeight(const InteractionChainData& icd);
53 
54  /*! MIPP NuMI yield weight */
55  double mipp_pion_wgt;
56 
57  /*! MIPP NuMI kaons yield weight */
58  double mipp_kaon_wgt;
59 
60  /*! Target attenuation weight */
61  double att_wgt;
62 
63  /*! Absorption weight */
64  double abs_ic_wgt;
65  double abs_dpip_wgt;
66  double abs_dvol_wgt;
68  double abs_other_wgt;
69  double tot_abs_wgt;
70 
71  /*! Thin target proton on carbon producing pions weights */
72  double pC_pi_wgt;
73 
74  /*! Thin target proton on carbon producing kaons weights */
75  double pC_k_wgt;
76 
77  /*! Thin target neutron on carbon producing pions weights */
78  double nC_pi_wgt;
79 
80  /*! Thin target proton on carbon producing nucleons weights */
81  double pC_nu_wgt;
82 
83  /*! nuA */
84  double nuA_wgt;
85 
86  /*! Meson incident weights */
87  double meson_inc_wgt;
88 
89  /*! Any other hadronic interaction not corrected yet */
90  double other_wgt;
91 
105 
107 
109 
110  //Flag to select the reweighters:
112 
113  private:
114  /*!
115  * Configures each of the reweighing tools.
116  */
117  void Configure();
118  /*!
119  * Parse the option to select which reweighter use
120  */
121  void ParseOptions();
122  int iUniv;
125 
127 
128  };
129 
130 
131 }
132 #endif
A list/table of parameter names and values.
Reweighter of thin target nucleonA interactions.
Reweight to account for attenuation of the beam in the target.
ThinTargetMesonIncidentReweighter * THINTARGET_MESON_INCIDENT_Universe
std::string string
Definition: nybbler.cc:12
Reweighter of thin target nC interactions.
ThinTargetpCNucleonReweighter * THINTARGET_PC_NUCLEON_Universe
Information about the chain of interactions leading to a neutrino.
Reweighter of thin target pion production.
Reweighter of no thin target and no MIPP interactions.
A class to manage and drive the weight calculation procedure.
ThinTargetpCPionReweighter * THINTARGET_PC_PION_Universe
double calculateWeight(const InteractionChainData &icd)
TargetAttenuationReweighter * TARG_ATT_Universe
AbsorptionICReweighter * VOL_ABS_IC_Universe
MIPPNumiPionYieldsReweighter * MIPP_NUMI_PION_Universe
AbsorptionDPIPReweighter * VOL_ABS_DPIP_Universe
OtherAbsorptionOutOfTargetReweighter * VOL_ABS_OTHER_Universe
Reweight a chain of interactions that are covered by the NuMI target pi+ and pi- yields measured by M...
ThinTargetnucleonAReweighter * THINTARGET_NUCLEON_A_Universe
NucleonAbsorptionOutOfTargetReweighter * VOL_ABS_NUCLEON_Universe
ReweightDriver(int iuniv, const ParameterTable &cv_pars, const ParameterTable &univ_pars, std::string fileIn)
Reweight a MC survival probabiity when the particles through volumes.
MIPPNumiKaonYieldsReweighter * MIPP_NUMI_KAON_Universe
ThinTargetnCPionReweighter * THINTARGET_NC_PION_Universe
Reweight a chain of interactions that are covered by the NuMI target K/pi ratios measured by MIPP...
AbsorptionDVOLReweighter * VOL_ABS_DVOL_Universe
Reweight a MC survival probabiity when the particles through volumes.
ThinTargetpCKaonReweighter * THINTARGET_PC_KAON_Universe