NuOscillator
Loading...
Searching...
No Matches
OscProbCalcer_NuSQUIDSLinear.h
Go to the documentation of this file.
1#ifndef __OSCILLATOR_NUSQUIDSLINEAR_H__
2#define __OSCILLATOR_NUSQUIDSLINEAR_H__
3
4#include "OscProbCalcerBase.h"
5
6#pragma GCC diagnostic push
7#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
8#include "nuSQuIDS/nuSQuIDS.h"
9#pragma GCC diagnostic pop
10#include "examples/Decoherence/nuSQUIDSDecoh.h"
11#include "examples/NSI/NSI.h"
12#include "examples/LV/LV.h"
13
22 public:
23
29 OscProbCalcerNuSQUIDSLinear(YAML::Node Config_);
30
36 OscProbCalcerNuSQUIDSLinear(std::string ConfigName_) : OscProbCalcerNuSQUIDSLinear(YAML::LoadFile(ConfigName_)) {}
37
42
43 // ========================================================================================================================================================================
44 // Functions which need implementation specific code
45
49 void SetupPropagator() final;
50
57 void CalculateProbabilities() final;
58
69 int ReturnWeightArrayIndex(int NuTypeIndex, int OscNuIndex, int EnergyIndex, int CosineZIndex=-1) final;
70
78 long DefineWeightArraySize() final;
79
83 void SetOscParams(nusquids::nuSQUIDS* base);
84
88 void CalculateNuSQUIDS(nusquids::nuSQUIDS* base, nusquids::marray<double,2>& inistate, int& index_counter);
89
90 // ========================================================================================================================================================================
91 // Functions which help setup implementation specific code
92
93 // ========================================================================================================================================================================
94 // Variables which are needed for implementation specific code
95
100
105
110
118 int PMNS_StrToInt(const std::string& OscModel);
119
125 void SetOscParams(int OscType);
126
135
140
144 enum NuType{Nu=1,Nubar=-1};
145
149 squids::Const units;
150
154 nusquids::nuSQUIDS* nus_base;
155
159 nusquids::nuSQUIDS* nubars_base;
160
164 std::string decoherence_model;
165
169 nusquids::nuSQUIDSDecoh::DecoherenceModel nusquids_decoherence_model;
170
175
180
184 double rel_error;
185
189 double abs_error;
190
195};
196
197#endif
float FLOAT_T
Definition OscillatorConstants.h:16
Oscillation calculation engine (CUDAProb3, ProbGPU, Prob3++, etc.) implementation agnostic base class...
Definition OscProbCalcerBase.h:18
Oscillation calculation engine for linear propagation in NuSQUIDS.
Definition OscProbCalcer_NuSQUIDSLinear.h:21
OscParams_PMNS
Definition of Standard Model oscillation parameters (same as BSM Non-Standard Interactions parameters...
Definition OscProbCalcer_NuSQUIDSLinear.h:99
@ kNOscParams_PMNS
Definition OscProbCalcer_NuSQUIDSLinear.h:99
@ kTH13
Definition OscProbCalcer_NuSQUIDSLinear.h:99
@ kDCP
Definition OscProbCalcer_NuSQUIDSLinear.h:99
@ kDENS
Definition OscProbCalcer_NuSQUIDSLinear.h:99
@ kDM12
Definition OscProbCalcer_NuSQUIDSLinear.h:99
@ kTH23
Definition OscProbCalcer_NuSQUIDSLinear.h:99
@ kDM23
Definition OscProbCalcer_NuSQUIDSLinear.h:99
@ kPATHL
Definition OscProbCalcer_NuSQUIDSLinear.h:99
@ kTH12
Definition OscProbCalcer_NuSQUIDSLinear.h:99
@ kELECDENS
Definition OscProbCalcer_NuSQUIDSLinear.h:99
double rel_error
Declaration of the relative error.
Definition OscProbCalcer_NuSQUIDSLinear.h:184
double integration_step
Declaration of the integration step.
Definition OscProbCalcer_NuSQUIDSLinear.h:179
int nNeutrinoFlavours
Number of neutrino flavours considered in the analysis.
Definition OscProbCalcer_NuSQUIDSLinear.h:194
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_NuSQUIDSLinear.cpp:291
squids::Const units
Define a Const object for handling the units.
Definition OscProbCalcer_NuSQUIDSLinear.h:149
void SetupPropagator() final
Setup NuSQUIDS specific variables.
Definition OscProbCalcer_NuSQUIDSLinear.cpp:85
OscProbCalcerNuSQUIDSLinear(YAML::Node Config_)
Default constructor.
Definition OscProbCalcer_NuSQUIDSLinear.cpp:5
long DefineWeightArraySize() final
Define the size of fWeightArray.
Definition OscProbCalcer_NuSQUIDSLinear.cpp:296
OscModels
Set enums corresponding to BSM model.
Definition OscProbCalcer_NuSQUIDSLinear.h:134
@ kNSI
Definition OscProbCalcer_NuSQUIDSLinear.h:134
@ kSM
Definition OscProbCalcer_NuSQUIDSLinear.h:134
@ kLIV
Definition OscProbCalcer_NuSQUIDSLinear.h:134
@ kDecoherence
Definition OscProbCalcer_NuSQUIDSLinear.h:134
std::string decoherence_model
Declaration of the string to choose the decoherence model.
Definition OscProbCalcer_NuSQUIDSLinear.h:164
FLOAT_T nsi_mutau_coupling
Declaration of the muon-neutrino to tau-neutrino coupling for the NSI computation.
Definition OscProbCalcer_NuSQUIDSLinear.h:174
void CalculateProbabilities() final
Calculate some oscillation probabilities for a particular oscillation parameter set.
Definition OscProbCalcer_NuSQUIDSLinear.cpp:232
nusquids::nuSQUIDS * nus_base
Declaration of the NuSQUIDS base class object for neutrinos.
Definition OscProbCalcer_NuSQUIDSLinear.h:154
double abs_error
Declaration of the absolute error.
Definition OscProbCalcer_NuSQUIDSLinear.h:189
OscParams_Decoh
Definition of Standard Model oscillation parameters and additional parameters characterising the Beyo...
Definition OscProbCalcer_NuSQUIDSLinear.h:104
@ kNOscParams_Decoh
Definition OscProbCalcer_NuSQUIDSLinear.h:104
@ kEnergyDep
Definition OscProbCalcer_NuSQUIDSLinear.h:104
@ kEnergyStrength
Definition OscProbCalcer_NuSQUIDSLinear.h:104
@ kEnergyScale
Definition OscProbCalcer_NuSQUIDSLinear.h:104
nusquids::nuSQUIDSDecoh::DecoherenceModel nusquids_decoherence_model
Declaration of the NuSQUIDS BSM (Decoherence) model object.
Definition OscProbCalcer_NuSQUIDSLinear.h:169
void CalculateNuSQUIDS(nusquids::nuSQUIDS *base, nusquids::marray< double, 2 > &inistate, int &index_counter)
Extract oscillation probabilities form NuSQUIDS object.
Definition OscProbCalcer_NuSQUIDSLinear.cpp:194
virtual ~OscProbCalcerNuSQUIDSLinear()
Destructor.
Definition OscProbCalcer_NuSQUIDSLinear.cpp:80
OscParams_LIV
Definition of Standard Model oscillation parameters and additional parameters characterising the Beyo...
Definition OscProbCalcer_NuSQUIDSLinear.h:109
@ kEMuReal
Definition OscProbCalcer_NuSQUIDSLinear.h:109
@ kMuTauReal
Definition OscProbCalcer_NuSQUIDSLinear.h:109
@ kEnergyPower
Definition OscProbCalcer_NuSQUIDSLinear.h:109
@ kEMuImg
Definition OscProbCalcer_NuSQUIDSLinear.h:109
@ kMuTauImg
Definition OscProbCalcer_NuSQUIDSLinear.h:109
@ kNOscParams_LIV
Definition OscProbCalcer_NuSQUIDSLinear.h:109
int PMNS_StrToInt(const std::string &OscModel)
Return the PMNS Matrix type corresponding to a particular string.
Definition OscProbCalcer_NuSQUIDSLinear.cpp:249
int fOscModel
Define the type for the PMNS matrix.
Definition OscProbCalcer_NuSQUIDSLinear.h:139
OscProbCalcerNuSQUIDSLinear(std::string ConfigName_)
Constructor which takes a file path, creates a YAML::Node and calls the default constructor.
Definition OscProbCalcer_NuSQUIDSLinear.h:36
NuType
Define the neutrino and antineutrino values expected by this implementation.
Definition OscProbCalcer_NuSQUIDSLinear.h:144
@ Nu
Definition OscProbCalcer_NuSQUIDSLinear.h:144
@ Nubar
Definition OscProbCalcer_NuSQUIDSLinear.h:144
nusquids::nuSQUIDS * nubars_base
Declaration of the NuSQUIDS base class object for anti-neutrinos.
Definition OscProbCalcer_NuSQUIDSLinear.h:159
void SetOscParams(nusquids::nuSQUIDS *base)
Set values of Osc parameters into NuSQUIDS object.
Definition OscProbCalcer_NuSQUIDSLinear.cpp:152