21 std::vector<const M3::float_t*> OscParams_,
const int SubChannels);
26 void AddSample(
const std::string& NuOscillatorConfigFile,
const int SubChannels);
34 const int FinalFlav,
const FLOAT_T TrueEnu,
const FLOAT_T TrueCosZenith = -999);
37 void SetOscillatorBinning(
const int Sample,
const int Channel,
const std::vector<M3::float_t>& EnergyArray,
38 const std::vector<M3::float_t>& CosineZArray);
Interface between NuOscillator and MaCh3, meant to compute oscillation weights for events/bin.
void AddSample(const std::string &NuOscillatorConfigFile, const int SubChannels)
Add different oscillator for sample.
OscillationHandler(const std::string &ConfigFile, bool EqualBinningPerChannel, std::vector< const M3::float_t * > OscParams_, const int SubChannels)
Constructor.
bool isEqualBinningPerOscChannel()
check if same binning is used for multiple oscillation channels
std::vector< std::vector< std::unique_ptr< OscillatorBase > > > NuOscProbCalcers
DB Variables required for oscillation.
void Evaluate()
DB Evaluate oscillation weights for each defined event/bin.
virtual ~OscillationHandler()
Destructor.
const M3::float_t * GetNuOscillatorPointers(const int Sample, const int Channel, const int InitFlav, const int FinalFlav, const FLOAT_T TrueEnu, const FLOAT_T TrueCosZenith=-999)
Get pointer to oscillation weight.
std::vector< const M3::float_t * > OscParams
pointer to osc params, since not all params affect every sample, we perform some operations before ha...
unsigned int GetOscParamsSize() const
return size of oscillation parameter pointer vector
void SetOscillatorBinning(const int Sample, const int Channel, const std::vector< M3::float_t > &EnergyArray, const std::vector< M3::float_t > &CosineZArray)
Setup binning, arrays correspond to events and their energy bins.
bool EqualBinningPerOscChannel
flag used to define whether all oscillation channels have a probability calculated using the same bin...