NuOscillator
Loading...
Searching...
No Matches
OscProbCalcer_OscLibLinear.h
Go to the documentation of this file.
1#ifndef __OSCILLATOR_OSCLIB_H__
2#define __OSCILLATOR_OSCLIB_H__
3
4#include "OscProbCalcerBase.h"
5
6#include "OscLib/OscCalcPMNS.h"
7#include "OscLib/OscCalcPMNS_NSI.h"
8
17 public:
18
24 OscProbCalcerOscLibLinear(YAML::Node Config_);
25
31 OscProbCalcerOscLibLinear(std::string ConfigName_) : OscProbCalcerOscLibLinear(YAML::LoadFile(ConfigName_)) {}
32
37
38 // ==========================================================================
39 // Functions which need implementation specific code
40
44 void SetupPropagator() final;
45
51 void CalculateProbabilities() final;
52
63 int ReturnWeightArrayIndex(int NuTypeIndex, int OscNuIndex, int EnergyIndex, int CosineZIndex=-1) final;
64
74 long DefineWeightArraySize() final;
75
83 int PMNS_StrToInt(const std::string& PMNSType);
84
85
89 int GetFlavour(int OscChannel, int neutrinoType) const;
90
94 void SetOscParams();
95
96 // ========================================================================================================================================================================
97 // Variables which are needed for implementation specific code
98
103
111
115 enum NuType{Nubar=-1, Nu=1};
116
117
122
126 osc::_IOscCalcAdjustable<FLOAT_T>* OscLib;
127
132};
133
134#endif
Oscillation calculation engine (CUDAProb3, ProbGPU, Prob3++, etc.) implementation agnostic base class...
Definition OscProbCalcerBase.h:18
Oscillation calculation engine for linear propagation in OscLibLinear.
Definition OscProbCalcer_OscLibLinear.h:16
int fOscType
Define the type for the PMNS matrix.
Definition OscProbCalcer_OscLibLinear.h:131
OscProbCalcerOscLibLinear(YAML::Node Config_)
Default constructor.
Definition OscProbCalcer_OscLibLinear.cpp:3
int GetFlavour(int OscChannel, int neutrinoType) const
Get neutrino flavour based on channel.
Definition OscProbCalcer_OscLibLinear.cpp:48
NuType
Define the neutrino and antineutrino values expected by this implementation.
Definition OscProbCalcer_OscLibLinear.h:115
@ Nu
Definition OscProbCalcer_OscLibLinear.h:115
@ Nubar
Definition OscProbCalcer_OscLibLinear.h:115
long DefineWeightArraySize() final
Define the size of fWeightArray.
Definition OscProbCalcer_OscLibLinear.cpp:126
PMNSMatrix
Different types of PMNS matrices currently supported within the analysis.
Definition OscProbCalcer_OscLibLinear.h:121
@ kNSI
Definition OscProbCalcer_OscLibLinear.h:121
@ kPMNS
Definition OscProbCalcer_OscLibLinear.h:121
void SetOscParams()
Set number of parameters needed for a particular type of PMNS matrix.
Definition OscProbCalcer_OscLibLinear.cpp:132
OscProbCalcerOscLibLinear(std::string ConfigName_)
Constructor which takes a file path, creates a YAML::Node and calls the default constructor.
Definition OscProbCalcer_OscLibLinear.h:31
void SetupPropagator() final
Setup Earth model.
Definition OscProbCalcer_OscLibLinear.cpp:27
void CalculateProbabilities() final
Calculate some oscillation probabilities for a particular oscillation parameter set.
Definition OscProbCalcer_OscLibLinear.cpp:67
int ReturnWeightArrayIndex(int NuTypeIndex, int OscNuIndex, int EnergyIndex, int CosineZIndex=-1) final
Return implementation specific index in the weight array for a specific combination of neutrino oscil...
Definition OscProbCalcer_OscLibLinear.cpp:121
virtual ~OscProbCalcerOscLibLinear()
Destructor.
Definition OscProbCalcer_OscLibLinear.cpp:23
int PMNS_StrToInt(const std::string &PMNSType)
Return the PMNS Matrix type corresponding to a particular string.
Definition OscProbCalcer_OscLibLinear.cpp:38
OscParams
Definition of oscillation parameters which are expected in this OscLibLinear implementation.
Definition OscProbCalcer_OscLibLinear.h:102
@ kDM12
Definition OscProbCalcer_OscLibLinear.h:102
@ kTH13
Definition OscProbCalcer_OscLibLinear.h:102
@ kNOscParams
Definition OscProbCalcer_OscLibLinear.h:102
@ kTH12
Definition OscProbCalcer_OscLibLinear.h:102
@ kDM23
Definition OscProbCalcer_OscLibLinear.h:102
@ kDCP
Definition OscProbCalcer_OscLibLinear.h:102
@ kDENS
Definition OscProbCalcer_OscLibLinear.h:102
@ kTH23
Definition OscProbCalcer_OscLibLinear.h:102
@ kPATHL
Definition OscProbCalcer_OscLibLinear.h:102
osc::_IOscCalcAdjustable< FLOAT_T > * OscLib
OscLib object used to calculate the oscillation probabilities.
Definition OscProbCalcer_OscLibLinear.h:126
OscParams_NSI
Definition of extra oscillation parameters for PMNS_NSI class kEps quantity representing the intensit...
Definition OscProbCalcer_OscLibLinear.h:109
@ kEps_tautau
Definition OscProbCalcer_OscLibLinear.h:110
@ kEps_mutau
Definition OscProbCalcer_OscLibLinear.h:110
@ kEps_etau
Definition OscProbCalcer_OscLibLinear.h:109
@ kDelta_emu
Definition OscProbCalcer_OscLibLinear.h:110
@ kEps_mumu
Definition OscProbCalcer_OscLibLinear.h:109
@ kDelta_mutau
Definition OscProbCalcer_OscLibLinear.h:110
@ kEps_emu
Definition OscProbCalcer_OscLibLinear.h:109
@ kNOscParams_NSI
Definition OscProbCalcer_OscLibLinear.h:110
@ kEps_ee
Definition OscProbCalcer_OscLibLinear.h:109
@ kDelta_etau
Definition OscProbCalcer_OscLibLinear.h:110