IInteractionReweighting.h
Go to the documentation of this file.
1 #ifndef IINTERACTIONREWEIGHTING_H
2 #define IINTERACTIONREWEIGHTING_H
3 
4 #include "InteractionData.h"
5 #include "ParameterTable.h"
6 
7 namespace NeutrinoFluxReweight{
8 
9 
10  /** \class InteractionReweightingInterface
11  * \brief This is the interface for classes that reweight interactions.
12  * The constructor for these classes should look like myInteractionReweighting(int iuniv,ParameterTable& cv_pars, ParameterTable& univ_pars);
13  *
14  */
16  public:
18 
19  //! can the particular instance of this class reweight this interaction?
20  virtual bool canReweight(const InteractionData& aa) = 0;
21 
22  //! calculate a weight for this interaction 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
23  virtual double calculateWeight(const InteractionData& inter_data) =0;
24  };
25 
26 }
27 #endif
virtual double calculateWeight(const InteractionData &inter_data)=0
calculate a weight for this interaction given the central value parameters and the parameters for thi...
virtual bool canReweight(const InteractionData &aa)=0
can the particular instance of this class reweight this interaction?
The information about a hadronic interaction needed to calculate weights.