NuOscillator
Loading...
Searching...
No Matches
OscProbCalcer_CUDAProb3Linear.h
Go to the documentation of this file.
1#ifndef __OSCILLATOR_CUDAPROB3LINEAR_H__
2#define __OSCILLATOR_CUDAPROB3LINEAR_H__
3
4#include "OscProbCalcerBase.h"
6
7#include <memory>
8
9// ==================================================================
13namespace cudaprob3linear { template<typename T> class Propagator;}
14// ==================================================================
15
24 public:
30 OscProbCalcerCUDAProb3Linear(YAML::Node Config_);
31
37 OscProbCalcerCUDAProb3Linear(std::string ConfigName_) : OscProbCalcerCUDAProb3Linear(YAML::LoadFile(ConfigName_)) {}
38
43
44 private:
45 // ========================================================================================================================================================================
46 // Functions which need implementation specific code
47
53 void SetupPropagator() final;
54
61 void CalculateProbabilities() final;
62
73 int ReturnWeightArrayIndex(int NuTypeIndex, int OscChanIndex, int EnergyIndex, int CosineZIndex=-1) final;
74
82 long DefineWeightArraySize() final;
83
84 // ========================================================================================================================================================================
85 //Functions which help setup implementation specific code
86
87 // ========================================================================================================================================================================
88 // Variables which are needed for implementation specific code
89
94
98 enum NuType{Nubar=-1, Nu=1};
99
103 std::vector<int> OscChannels;
104
109
113 std::unique_ptr< cudaprob3linear::Propagator< FLOAT_T > > propagator;
114};
115
116#endif
Oscillation calculation engine (CUDAProb3, ProbGPU, Prob3++, etc.) implementation agnostic base class...
Definition OscProbCalcerBase.h:18
Oscillation calculation engine for linear propagation in CUDAProb3.
Definition OscProbCalcer_CUDAProb3Linear.h:23
long DefineWeightArraySize() final
Define the size of fWeightArray.
Definition OscProbCalcer_CUDAProb3Linear.cpp:143
virtual ~OscProbCalcerCUDAProb3Linear()
Destructor.
Definition OscProbCalcer_CUDAProb3Linear.cpp:52
void CalculateProbabilities() final
Calculate some oscillation probabilities for a particular oscillation parameter set.
Definition OscProbCalcer_CUDAProb3Linear.cpp:78
OscProbCalcerCUDAProb3Linear(std::string ConfigName_)
Constructor which takes a file path, creates a YAML::Node and calls the default constructor.
Definition OscProbCalcer_CUDAProb3Linear.h:37
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_CUDAProb3Linear.cpp:138
std::vector< int > OscChannels
The mapping of the oscillation channels defined in fOscillationChannels to the CUDAProb3Linear consta...
Definition OscProbCalcer_CUDAProb3Linear.h:103
int nThreads
The number of threads being used to perform the calculation.
Definition OscProbCalcer_CUDAProb3Linear.h:108
NuType
Define the neutrino and antineutrino values expected by this implementation.
Definition OscProbCalcer_CUDAProb3Linear.h:98
@ Nubar
Definition OscProbCalcer_CUDAProb3Linear.h:98
@ Nu
Definition OscProbCalcer_CUDAProb3Linear.h:98
void SetupPropagator() final
Setup CUDAProb3Linear specific variables.
Definition OscProbCalcer_CUDAProb3Linear.cpp:56
OscParams
Definition of oscillation parameters which are expected in this CUDAProb3Linear implementation.
Definition OscProbCalcer_CUDAProb3Linear.h:93
@ kPATHL
Definition OscProbCalcer_CUDAProb3Linear.h:93
@ kNOscParams
Definition OscProbCalcer_CUDAProb3Linear.h:93
@ kDENS
Definition OscProbCalcer_CUDAProb3Linear.h:93
@ kTH13
Definition OscProbCalcer_CUDAProb3Linear.h:93
@ kDM12
Definition OscProbCalcer_CUDAProb3Linear.h:93
@ kTH23
Definition OscProbCalcer_CUDAProb3Linear.h:93
@ kTH12
Definition OscProbCalcer_CUDAProb3Linear.h:93
@ kDM23
Definition OscProbCalcer_CUDAProb3Linear.h:93
@ kDCP
Definition OscProbCalcer_CUDAProb3Linear.h:93
std::unique_ptr< cudaprob3linear::Propagator< FLOAT_T > > propagator
The instance of the CUDAProb3Linear Propagator being used in a particular instance of OscProbCalcerCU...
Definition OscProbCalcer_CUDAProb3Linear.h:113
OscProbCalcerCUDAProb3Linear(YAML::Node Config_)
Default constructor.
Definition OscProbCalcer_CUDAProb3Linear.cpp:13
Definition OscProbCalcer_CUDAProb3Linear.h:13
Includes specific to CUDAProb3 implementation.
Definition OscProbCalcer_CUDAProb3Linear.h:13