#include <AbsorptionICReweighter.h>
Definition at line 16 of file AbsorptionICReweighter.h.
NeutrinoFluxReweight::AbsorptionICReweighter::AbsorptionICReweighter |
( |
int |
iuniv, |
|
|
const ParameterTable & |
cv_pars, |
|
|
const ParameterTable & |
univ_pars |
|
) |
| |
The constructor. Note, we pass central value and single universe parameters in this constructor only. There is thus a 1 to 1 correspondence between an instance of this class and a given universe.
Definition at line 12 of file AbsorptionICReweighter.cpp.
float inel_kamAl_xsec_lowP
double getParameterValue(const std::string &name) const
get the value of a parameter. throw an exception of a well defined type if we don't have it ...
const ParameterTable & cvPars
const ParameterTable & univPars
float inel_kapAl_xsec_highP
float inel_kapAl_xsec_lowP
float inel_kamAl_xsec_highP
NeutrinoFluxReweight::AbsorptionICReweighter::~AbsorptionICReweighter |
( |
| ) |
|
|
virtual |
double NeutrinoFluxReweight::AbsorptionICReweighter::calculateWeight |
( |
const InteractionChainData & |
aa | ) |
|
|
virtual |
calculate a weight for this interaction chain given the central value parameters and the parameters for this universe. The weight is something like: f(cv)/f(MC) * f(univ)/f(cv) where cv in this case corresponds to the best value of the parameter, given the data. If univ_pars=cv_pars then we are calculating a central value weight. Note, canReweight() should be called to determine which elements of the chain are covered by the weight returned by calculateWeight()
Implements NeutrinoFluxReweight::IInteractionChainReweighting.
Definition at line 42 of file AbsorptionICReweighter.cpp.
44 std::vector<ParticlesThroughVolumesData> vec_ptv = aa.ptv_info;
46 double NA_mb = 6.02E-4;
48 double tot_dist = 0.0;
49 double low_val = 1.E-20;
52 for(
int ii=0;ii<3;ii++){
54 tot_dist = vec_ptv[index_vol].AmountMat[ii];
55 if(tot_dist<low_val)
continue;
56 if(
abs(vec_ptv[index_vol].Pdgs[ii])!=321 &&
abs(vec_ptv[index_vol].Pdgs[ii])!=211)
continue;
59 else if(vec_ptv[index_vol].Pdgs[ii]== 321 && vec_ptv[index_vol].Moms[ii]<2.0)shift =
inel_kapAl_xsec_lowP;
60 else if(vec_ptv[index_vol].Pdgs[ii]== 321 && vec_ptv[index_vol].Moms[ii]>2.0)shift =
inel_kapAl_xsec_highP;
61 else if(vec_ptv[index_vol].Pdgs[ii]==-321 && vec_ptv[index_vol].Moms[ii]<2.0)shift =
inel_kamAl_xsec_lowP;
62 else if(vec_ptv[index_vol].Pdgs[ii]==-321 && vec_ptv[index_vol].Moms[ii]>2.0)shift =
inel_kamAl_xsec_highP;
67 wgt *= exp(-1.0*tot_dist);
float inel_kamAl_xsec_lowP
float inel_kapAl_xsec_highP
float inel_kapAl_xsec_lowP
float inel_kamAl_xsec_highP
Look through the InteractionChainData input and identify those Interactions that can be reweighted as part of a chain. We return a vector indicating which elements will be assigned a weight by calculateWeight.
Implements NeutrinoFluxReweight::IInteractionChainReweighting.
Definition at line 25 of file AbsorptionICReweighter.cpp.
27 std::vector<bool> this_nodes;
29 double low_val = 1.E-20;
31 std::vector<ParticlesThroughVolumesData> vec_ptv = aa.ptv_info;
35 for(
int ii=0;ii<3;ii++){
36 passVOL = passVOL || (vec_ptv[index_vol].AmountMat[ii] >low_val && (
abs(vec_ptv[index_vol].Pdgs[ii])==211 ||
abs(vec_ptv[index_vol].Pdgs[ii])==321));
38 this_nodes.push_back(passVOL);
const ParameterTable& NeutrinoFluxReweight::AbsorptionICReweighter::cvPars |
float NeutrinoFluxReweight::AbsorptionICReweighter::inel_kamAl_xsec_highP |
|
private |
float NeutrinoFluxReweight::AbsorptionICReweighter::inel_kamAl_xsec_lowP |
|
private |
float NeutrinoFluxReweight::AbsorptionICReweighter::inel_kapAl_xsec_highP |
|
private |
float NeutrinoFluxReweight::AbsorptionICReweighter::inel_kapAl_xsec_lowP |
|
private |
float NeutrinoFluxReweight::AbsorptionICReweighter::inel_piAl_xsec |
|
private |
int NeutrinoFluxReweight::AbsorptionICReweighter::iUniv |
|
private |
const ParameterTable& NeutrinoFluxReweight::AbsorptionICReweighter::univPars |
The documentation for this class was generated from the following files: