4 #include <boost/property_tree/ptree.hpp> 5 #include <boost/property_tree/xml_parser.hpp> 10 : iUniv(iuniv), cvPars(cv_pars), univPars(univ_pars), fileOptions(fileIn)
45 using boost::property_tree::ptree;
49 ptree&
options = top.get_child(
"inputs.Settings");
62 std::vector<bool> interaction_nodes(nnodes,
false);
63 std::vector<bool> attenuation_nodes(nnodes,
false);
64 std::vector<bool> absorption_nodes(nnodes,
false);
69 bool has_mipp =
false;
73 for(
size_t ii=0;ii<interaction_nodes.size();ii++){
74 if(interaction_nodes[ii]==
true){
88 for(
size_t ii=0;ii<interaction_nodes.size();ii++){
89 if(interaction_nodes[ii]==
true){
100 for(
int ii=(interaction_nodes.size()-1);ii>=0;ii--){
101 if(interaction_nodes[ii]==
false){
106 interaction_nodes[ii]=
true;
114 for(
int ii=(interaction_nodes.size()-1);ii>=0;ii--){
115 if(interaction_nodes[ii]==
false){
120 interaction_nodes[ii]=
true;
128 for(
int ii=(interaction_nodes.size()-1);ii>=0;ii--){
129 if(interaction_nodes[ii]==
false){
134 interaction_nodes[ii]=
true;
142 for(
int ii=(interaction_nodes.size()-1);ii>=0;ii--){
143 if(interaction_nodes[ii]==
false){
148 interaction_nodes[ii]=
true;
156 for(
int ii=(interaction_nodes.size()-1);ii>=0;ii--){
157 if(interaction_nodes[ii]==
false){
162 interaction_nodes[ii]=
true;
170 for(
int ii=(interaction_nodes.size()-1);ii>=0;ii--){
171 if(interaction_nodes[ii]==
false){
176 interaction_nodes[ii]=
true;
184 for(
int ii=(interaction_nodes.size()-1);ii>=0;ii--){
185 if(interaction_nodes[ii]==
false){
190 interaction_nodes[ii]=
true;
200 if(attenuation_nodes.size()>0 && attenuation_nodes[0]==
true){
213 if(absorption_nodes.size()>0 && absorption_nodes[0]==
true){
222 if(absorption_nodes.size()>0 && absorption_nodes[0]==
true){
232 if(absorption_nodes.size()>0 && absorption_nodes[0]==
true){
241 if(absorption_nodes.size()>0 && absorption_nodes[0]==
true){
250 if(absorption_nodes.size()>0 && absorption_nodes[0]==
true){
256 if(tot_wgt!=tot_wgt){
257 std::cout<<
"Alert nan total wgt... check!!!"<<
std::endl;
virtual double calculateWeight(const InteractionChainData &aa)
calculate a weight for this interaction chain given the central value parameters and the parameters f...
A list/table of parameter names and values.
virtual double calculateWeight(const InteractionData &aa)
calculate a weight for this interaction given the central value parameters and the parameters for thi...
Reweighter of thin target nucleonA interactions.
virtual double calculateWeight(const InteractionData &aa)
calculate a weight for this interaction given the central value parameters and the parameters for thi...
virtual double calculateWeight(const InteractionData &inter_data)
calculate a weight for this interaction given the central value parameters and the parameters for thi...
Reweight to account for attenuation of the beam in the target.
virtual std::vector< bool > canReweight(const InteractionChainData &aa)
Look through the InteractionChainData input and identify those Interactions that can be reweighted as...
ThinTargetMesonIncidentReweighter * THINTARGET_MESON_INCIDENT_Universe
virtual double calculateWeight(const InteractionChainData &aa)
calculate a weight for this interaction chain given the central value parameters and the parameters f...
Reweighter of thin target nC interactions.
virtual std::vector< bool > canReweight(const InteractionChainData &aa)
Look through the InteractionChainData input and identify those Interactions that can be reweighted as...
ThinTargetpCNucleonReweighter * THINTARGET_PC_NUCLEON_Universe
Information about the chain of interactions leading to a neutrino.
virtual double calculateWeight(const InteractionData &aa)
calculate a weight for this interaction given the central value parameters and the parameters for thi...
Reweighter of thin target pion production.
Reweighter of no thin target and no MIPP interactions.
virtual bool canReweight(const InteractionData &aa)
can the particular instance of this class reweight this interaction?
virtual double calculateWeight(const InteractionChainData &aa)
calculate a weight for this interaction chain given the central value parameters and the parameters f...
std::vector< InteractionData > interaction_chain
vector of neutrino ancestors
virtual bool canReweight(const InteractionData &aa)
can the particular instance of this class reweight this interaction?
ThinTargetpCPionReweighter * THINTARGET_PC_PION_Universe
virtual double calculateWeight(const InteractionData &aa)
calculate a weight for this interaction given the central value parameters and the parameters for thi...
double calculateWeight(const InteractionChainData &icd)
TargetAttenuationReweighter * TARG_ATT_Universe
AbsorptionICReweighter * VOL_ABS_IC_Universe
virtual double calculateWeight(const InteractionChainData &aa)
calculate a weight for this interaction chain given the central value parameters and the parameters f...
virtual double calculateWeight(const InteractionData &aa)
calculate a weight for this interaction given the central value parameters and the parameters for thi...
MIPPNumiPionYieldsReweighter * MIPP_NUMI_PION_Universe
virtual double calculateWeight(const InteractionData &inter_data)
calculate a weight for this interaction given the central value parameters and the parameters for thi...
AbsorptionDPIPReweighter * VOL_ABS_DPIP_Universe
virtual std::vector< bool > canReweight(const InteractionChainData &aa)
Look through the InteractionChainData input and identify those Interactions that can be reweighted as...
OtherReweighter * OTHER_Universe
OtherAbsorptionOutOfTargetReweighter * VOL_ABS_OTHER_Universe
virtual bool canReweight(const InteractionData &aa)
can the particular instance of this class reweight this interaction?
Reweight a chain of interactions that are covered by the NuMI target pi+ and pi- yields measured by M...
virtual bool canReweight(const InteractionData &aa)
can the particular instance of this class reweight this interaction?
const ParameterTable & univPars
ThinTargetnucleonAReweighter * THINTARGET_NUCLEON_A_Universe
NucleonAbsorptionOutOfTargetReweighter * VOL_ABS_NUCLEON_Universe
Reweighter of thin target meson production.
virtual bool canReweight(const InteractionData &aa)
can the particular instance of this class reweight this interaction?
virtual std::vector< bool > canReweight(const InteractionChainData &aa)
Look through the InteractionChainData input and identify those Interactions that can be reweighted as...
const ParameterTable & cvPars
ReweightDriver(int iuniv, const ParameterTable &cv_pars, const ParameterTable &univ_pars, std::string fileIn)
virtual double calculateWeight(const InteractionChainData &aa)
calculate a weight for this interaction chain given the central value parameters and the parameters f...
virtual std::vector< bool > canReweight(const InteractionChainData &aa)
Look through the InteractionChainData input and identify those Interactions that can be reweighted as...
virtual std::vector< bool > canReweight(const InteractionChainData &aa)
Look through the InteractionChainData input and identify those Interactions that can be reweighted as...
Reweight a MC survival probabiity when the particles through volumes.
MIPPNumiKaonYieldsReweighter * MIPP_NUMI_KAON_Universe
virtual double calculateWeight(const InteractionChainData &aa)
calculate a weight for this interaction chain given the central value parameters and the parameters f...
ThinTargetnCPionReweighter * THINTARGET_NC_PION_Universe
virtual bool canReweight(const InteractionData &aa)
can the particular instance of this class reweight this interaction?
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.
Reweighter of thin target K production.
virtual double calculateWeight(const InteractionChainData &aa)
calculate a weight for this interaction chain given the central value parameters and the parameters f...
Reweighter of thin target p,n production.
ThinTargetpCKaonReweighter * THINTARGET_PC_KAON_Universe
virtual std::vector< bool > canReweight(const InteractionChainData &aa)
Look through the InteractionChainData input and identify those Interactions that can be reweighted as...
virtual std::vector< bool > canReweight(const InteractionChainData &aa)
Look through the InteractionChainData input and identify those Interactions that can be reweighted as...
virtual double calculateWeight(const InteractionChainData &aa)
calculate a weight for this interaction chain given the central value parameters and the parameters f...
QTextStream & endl(QTextStream &s)
virtual bool canReweight(const InteractionData &aa)
can the particular instance of this class reweight this interaction?