![]() |
NuOscillator
|
Oscillation calculation engine for linear propagation in Prob3pp. More...
#include <OscProbCalcer_Prob3pp.h>
Public Types | |
| enum | OscParams { kTH12 , kTH23 , kTH13 , kDM12 , kDM23 , kDCP , kNOscParams } |
| Definition of oscillation parameters which are expected in this ProbGPU implementation. More... | |
| enum | NuType { Nubar =-1 , Nu =1 } |
| Define the neutrino and antineutrino values expected by this implementation. More... | |
Public Member Functions | |
| OscProbCalcerProb3pp (YAML::Node Config_) | |
| Default constructor. | |
| OscProbCalcerProb3pp (std::string ConfigName_) | |
| Constructor which takes a file path, creates a YAML::Node and then calls default constructor. | |
| virtual | ~OscProbCalcerProb3pp () |
| Destructor. | |
| void | SetupPropagator () final |
| Setup Prob3pp specific variables like the BargerPropagator bNu. | |
| void | CalculateProbabilities () final |
| Calculate some oscillation probabilities for a particular oscillation parameter set. | |
| void | CalculateProbabilitiesBeam () |
| Calculate oscillation probabilities using Beam. | |
| void | CalculateProbabilitiesAtm () |
| Calculate oscillation probabilities using ATM. | |
| 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 oscillation channel, energy and cosine zenith. | |
| long | DefineWeightArraySize () final |
| Define the size of fWeightArray. | |
| int | GetNCosineZ () |
| Auxiliary function to handle ignored cosineZ cases. | |
Public Member Functions inherited from OscProbCalcerBase | |
| virtual | ~OscProbCalcerBase () |
| Destructor. | |
| void | SetEnergyArray (std::vector< FLOAT_T > EnergyArray) |
| Define the Energy which will be used when calculating the oscillation probabilities. | |
| void | SetCosineZArray (std::vector< FLOAT_T > CosineZArray) |
| Define the CosineZ which will be used when calculating the oscillation probabilities. | |
| const FLOAT_T * | ReturnPointerToWeight (int InitNuFlav, int FinalNuFlav, FLOAT_T Energy, FLOAT_T CosineZ=DUMMYVAL) |
| Return pointer to the weight array for a specific Energy and CosineZ. | |
| void | Reweight () |
| General function used to call the oscillation probability calculation. | |
| void | DefineParameter (const std::string &ParName, FLOAT_T *ParValue) |
| Function to register an oscillation parameter name and pointer to a value that will be used when calculating the oscillation probabilities. | |
| void | Reweight (const std::vector< FLOAT_T > &OscParams_) |
| Legacy implementation function of Reweight() | |
| void | Setup () |
| General function used to setup all variables used within the reweighting. | |
| bool | SanityCheck () |
| Ensures that the specific implementation has been correctly initialised. | |
| void | PrintWeights () |
| Print the calculated oscillation probabilities. | |
| void | PrintKnownOscillationChannels () |
| Print the oscillation channels which a particular instance has been configured with. | |
| bool | HasOscillationChannel (int GeneratedFlavour, int DetectedFlavour) |
| Check whether a particular oscillation channel has been configured in a particular instance of OscProbCalcerBase::OscProbCalcerBase() | |
| int | ReturnNOscParams () |
| Return the number of oscillation parameters the specific implementation expects. | |
| std::vector< NuOscillator::OscillationChannel > | ReturnOscChannels () |
| Return the oscillation channels the specific implementation expects. | |
| std::vector< int > | ReturnNeutrinoTypes () |
| Return the neutrino types the specific implementation expects. | |
| std::vector< FLOAT_T > | ReturnOscParamsCurr () |
| Return the oscillation parameters which were used for the last calculation. | |
| int | ReturnNEnergyPoints () |
| Return the number of Energy points which are being used by the specific instance of OscProbCalcerBase::OscProbCalcerBase() | |
| int | ReturnNCosineZPoints () |
| Return the number of CosineZ points which are being used by the specific instance of OscProbCalcerBase::OscProbCalcerBase() | |
| std::vector< FLOAT_T > | ReturnEnergyArray () |
| Return the vector of Energy points which are being used by the specific instance of OscProbCalcerBase::OscProbCalcerBase() | |
| std::vector< FLOAT_T > | ReturnCosineZArray () |
| Return the vector of CosineZ points which are being used by the specific instance of OscProbCalcerBase::OscProbCalcerBase() | |
| std::string | ReturnImplementationName () |
| Return the specific implementation name. | |
| bool | ReturnCosineZIgnored () |
| Return a boolean which describes whether the specific implementation cares about CosineZ. | |
| int | ReturnNWeights () |
| Return the number of oscillation probabilities that are being calculated. | |
| std::vector< FLOAT_T > | ReturnWeightArray () |
| Return the vector of oscillation probabilites which have been calculated. | |
| std::vector< NuOscillator::OscillationProbability > | ReturnProbabilities () |
| Return vector of oscillation probabilities with associated neutrin type, oscillation channel, Energy and CosineZ. | |
| bool | ReturnHasSetEnergyArray () |
| Return whether the instance of OscProbCalcerBase() has already been assigned the Energy binning. | |
| bool | ReturnHasSetCosineZArray () |
| Return whether the instance of OscProbCalcerBase() has already been assigned the CosineZ binning. | |
| int | ReturnNuTypeFromFlavour (int NuFlav) |
| Return the index in fNeutrinoTypes for a particular neutrino flavour (neutrino or antineutrino) | |
| void | PrintOscParamsCurr () |
| Print current oscillation parameters. | |
Public Attributes | |
| bool | doubled_angle |
| Boolean declaring what values are being passed for the values of theta_13 (sin^2(theta) or sin^2(2*theta)) | |
| std::string | fPremFile |
| String storing the path of the density table file used to setup the Earth model. | |
| BargerPropagator * | bNu |
| BargerPropagator used within the Prob3pp calculation framework. | |
Additional Inherited Members | |
Protected Member Functions inherited from OscProbCalcerBase | |
| OscProbCalcerBase (YAML::Node InputConfig_) | |
| Default constructor. | |
| OscProbCalcerBase (std::string ConfigName_) | |
| Wrapper Construct. | |
| void | IgnoreCosineZBinning (bool Ignore) |
| Some implementations don't care about the CosineZ values, so this is a method to set fCosineZArraySet to true in those cases. | |
| bool | AreOscParamsChanged () |
| Check whether the oscillation parameters have changed since their previous value. | |
| void | SetCurrOscParams () |
| Save the oscillation parameters which have been requested. | |
| void | ResetCurrOscParams () |
| (Re-)Initialise the saved oscillation parameters in fOscParamsCurr | |
| void | InitialiseNeutrinoTypesArray (int Size) |
| Initialise the fNeutrinoTypes mapping array to a particular size with dummy values. | |
| void | InitialiseOscillationChannelMapping () |
| Read the [OscProbCalcerSetup][Implementation][OscChannelMapping] YAML node and configure fOscillationChannels. | |
| void | CheckNuFlavourMapping () |
| Check that the NuType/NuFlav mapping is set correctly based on the inputs from the particular implementation. | |
| void | IntialiseWeightArray () |
| Initialise the array in which the oscillation probabilities will be stored with dummy values. | |
| void | SanitiseProbabilities () |
| Ensure that the oscillation probabilities are within [0.,1.] range, if not throw error. | |
| int | ReturnCosineZIndexFromValue (FLOAT_T CosineZVal) |
| Return the index in fCosineZArray for a particular value of CosineZ. If it's not found, throws an error. | |
| int | ReturnEnergyIndexFromValue (FLOAT_T EnergyVal) |
| Return the index in fEnergyArray for a particular value of Energy. If it's not found, throws an error. | |
| int | ReturnOscChannelIndexFromFlavours (int InitNuFlav, int FinalNuFlav) |
| Loop through fOscillationChannels and determine which index corresponds to the requested flavours. | |
| void | SetExpectedParameterNames (const std::vector< std::string > &ExpectedOscParNames_) |
| Define the list of parameter names that a particular instance of OscProbCalcer expects. | |
| void | PrintExpectedParameterNames () |
| Print the expected parameter names. | |
| FLOAT_T | GetOscillationParameter (int Index) |
| Return the value of the oscillation parameter associated with the index. | |
| void | CheckOscillationParametersDefined () |
| Check that all the expected oscillation parameters have been assigned a value. | |
Protected Attributes inherited from OscProbCalcerBase | |
| int | fNNeutrinoTypes |
| The number of neutrino types (neutrino and antineutrino) | |
| std::vector< int > | fNeutrinoTypes |
| The mapping of neutrino types to uniquely defined integers (i.e. index) | |
| int | fNOscillationChannels |
| The number of oscillation channels which have been configured. | |
| std::vector< NuOscillator::OscillationChannel > | fOscillationChannels |
| The mapping of oscillation channels which have been requested from the YAML config. | |
| int | fNEnergyPoints |
| The number of Energy points which are being evaluated by the oscillation probability engine. | |
| int | fNCosineZPoints |
| The number of CosineZ points which are being evaluated by the oscillation probability engine. | |
| std::vector< FLOAT_T > | fEnergyArray |
| The vector of Energy values being evaluated by the oscillation probability engine. | |
| std::vector< FLOAT_T > | fCosineZArray |
| The vector of CosineZ values being evaluated by the oscillation probability engine. | |
| int | fNWeights |
| The number of oscillation probabilities being calculated. | |
| std::vector< FLOAT_T > | fWeightArray |
| Vector which stores the oscillation probabilities. | |
| int | fVerbose |
| Define the verbosity of the console output. | |
| std::string | fImplementationName |
| Define the implementation name - Can be used for recasting later (similar to TObject::InheritsFrom() etc.) | |
| bool | fCosineZIgnored |
| Flag to define whether the CosineZ binning has been ignored in the specific implementation. | |
| YAML::Node | Config |
| YAML Config object used to get runtime specific variables. | |
Oscillation calculation engine for linear propagation in Prob3pp.
| OscProbCalcerProb3pp::OscProbCalcerProb3pp | ( | YAML::Node | Config_ | ) |
Default constructor.
| Config_ | YAML::Node to setup the OscProbCalcerProb3pp() instance |
|
inline |
Constructor which takes a file path, creates a YAML::Node and then calls default constructor.
| ConfigName_ | Path to config file |
|
virtual |
Destructor.
|
finalvirtual |
Calculate some oscillation probabilities for a particular oscillation parameter set.
Calculator oscillation probabilities in Prob3pp. This links to bNu->GetProb in Prob3pp. This function both calculates and stores the oscillation probabilities in fWeightArray.
Implements OscProbCalcerBase.
| void OscProbCalcerProb3pp::CalculateProbabilitiesAtm | ( | ) |
Calculate oscillation probabilities using ATM.
| void OscProbCalcerProb3pp::CalculateProbabilitiesBeam | ( | ) |
Calculate oscillation probabilities using Beam.
|
finalvirtual |
Define the size of fWeightArray.
This is implementation specific because because Prob3pp is setup to calculate all oscillation channels together, whilst others calculate only a single oscillation channel.
Implements OscProbCalcerBase.
| int OscProbCalcerProb3pp::GetNCosineZ | ( | ) |
Auxiliary function to handle ignored cosineZ cases.
|
finalvirtual |
Return implementation specific index in the weight array for a specific combination of neutrino oscillation channel, energy and cosine zenith.
| NuTypeIndex | The index in fNeutrinoTypes (neutrino/antinuetrino) to return the pointer for |
| OscChanIndex | The index in fOscillationChannels to return the pointer for |
| EnergyIndex | The index in fEnergyArray to return the pointer for |
| CosineZIndex | The index in fCosineZArray to return the pointer for |
Implements OscProbCalcerBase.
|
finalvirtual |
Setup Prob3pp specific variables like the BargerPropagator bNu.
Implements OscProbCalcerBase.
| BargerPropagator* OscProbCalcerProb3pp::bNu |
BargerPropagator used within the Prob3pp calculation framework.
| bool OscProbCalcerProb3pp::doubled_angle |
Boolean declaring what values are being passed for the values of theta_13 (sin^2(theta) or sin^2(2*theta))
| std::string OscProbCalcerProb3pp::fPremFile |
String storing the path of the density table file used to setup the Earth model.