NuOscillator
Loading...
Searching...
No Matches
OscProbCalcer_ProbGPULinear.h
Go to the documentation of this file.
1#ifndef __OSCILLATOR_PROBGPULINEAR_H__
2#define __OSCILLATOR_PROBGPULINEAR_H__
3
4#include "OscProbCalcerBase.h"
5
14 public:
15
21 OscProbCalcerProbGPULinear(YAML::Node Config_);
22
23
29 OscProbCalcerProbGPULinear(std::string ConfigName_) : OscProbCalcerProbGPULinear(YAML::LoadFile(ConfigName_)) {}
30
35
36 // ========================================================================================================================================================================
37 // Functions which need implementation specific code
38
44 void SetupPropagator() final;
45
52 void CalculateProbabilities() final;
53
64 int ReturnWeightArrayIndex(int NuTypeIndex, int OscChanIndex, int EnergyIndex, int CosineZIndex=-1) final;
65
73 long DefineWeightArraySize() final;
74
75 // ========================================================================================================================================================================
76 // Functions which help setup implementation specific code
77
78 // ========================================================================================================================================================================
79 // Variables which are needed for implementation specific code
80
85
89 enum NuType{Nubar=-1, Nu=1};
90
95};
96
97#endif
Oscillation calculation engine (CUDAProb3, ProbGPU, Prob3++, etc.) implementation agnostic base class...
Definition OscProbCalcerBase.h:18
Oscillation calculation engine for linear propagation in ProbGPU.
Definition OscProbCalcer_ProbGPULinear.h:13
void CalculateProbabilities() final
Calculate some oscillation probabilities for a particular oscillation parameter set.
Definition OscProbCalcer_ProbGPULinear.cpp:37
void SetupPropagator() final
Setup ProbGPU specific variables but due to it's immplementation, don't actually need to do anythin.
Definition OscProbCalcer_ProbGPULinear.cpp:33
NuType
Define the neutrino and antineutrino values expected by this implementation.
Definition OscProbCalcer_ProbGPULinear.h:89
@ Nubar
Definition OscProbCalcer_ProbGPULinear.h:89
@ Nu
Definition OscProbCalcer_ProbGPULinear.h:89
long DefineWeightArraySize() final
Define the size of fWeightArray.
Definition OscProbCalcer_ProbGPULinear.cpp:63
int ReturnWeightArrayIndex(int NuTypeIndex, int OscChanIndex, int EnergyIndex, int CosineZIndex=-1) final
Return implementation specific index in the weight array for a specific combination of neutrino oscil...
Definition OscProbCalcer_ProbGPULinear.cpp:58
bool doubled_angle
Boolean declaring what values are being passed for the values of theta_13 (sin^2(theta) or sin^2(2*th...
Definition OscProbCalcer_ProbGPULinear.h:94
virtual ~OscProbCalcerProbGPULinear()
Destructor.
Definition OscProbCalcer_ProbGPULinear.cpp:29
OscProbCalcerProbGPULinear(std::string ConfigName_)
Constructor which takes a file path, creates a YAML::Node and calls the default constructor.
Definition OscProbCalcer_ProbGPULinear.h:29
OscProbCalcerProbGPULinear(YAML::Node Config_)
Default constructor.
Definition OscProbCalcer_ProbGPULinear.cpp:8
OscParams
Definition of oscillation parameters which are expected in this ProbGPU implementation.
Definition OscProbCalcer_ProbGPULinear.h:84
@ kTH12
Definition OscProbCalcer_ProbGPULinear.h:84
@ kNOscParams
Definition OscProbCalcer_ProbGPULinear.h:84
@ kPATHL
Definition OscProbCalcer_ProbGPULinear.h:84
@ kTH23
Definition OscProbCalcer_ProbGPULinear.h:84
@ kDCP
Definition OscProbCalcer_ProbGPULinear.h:84
@ kDM12
Definition OscProbCalcer_ProbGPULinear.h:84
@ kTH13
Definition OscProbCalcer_ProbGPULinear.h:84
@ kDM23
Definition OscProbCalcer_ProbGPULinear.h:84
@ kDENS
Definition OscProbCalcer_ProbGPULinear.h:84