NuOscillator
Loading...
Searching...
No Matches
OscProbCalcerNuFASTLinear Class Reference

Oscillation calculation engine for linear propagation in NuFAST. More...

#include <OscProbCalcer_NuFASTLinear.h>

Inheritance diagram for OscProbCalcerNuFASTLinear:
[legend]
Collaboration diagram for OscProbCalcerNuFASTLinear:
[legend]

Public Types

enum  OscParams {
  kTH12 , kTH23 , kTH13 , kDM12 ,
  kDM23 , kDCP , kPATHL , kDENS ,
  kELECDENS , kNOscParams
}
 Definition of oscillation parameters which are expected in this ProbGPU implementation. More...
 
enum  NuType { Nu =1 , Nubar =-1 }
 Define the neutrino and antineutrino values expected by this implementation. More...
 

Public Member Functions

 OscProbCalcerNuFASTLinear (YAML::Node Config_)
 Default constructor.
 
 OscProbCalcerNuFASTLinear (std::string ConfigName_)
 Constructor which takes a file path, creates a YAML::Node and calls the default constructor.
 
virtual ~OscProbCalcerNuFASTLinear ()
 Destructor.
 
void SetupPropagator () override
 Setup NuFAST specific variables.
 
void CalculateProbabilities () override
 Calculate some oscillation probabilities for a particular oscillation parameter set.
 
int ReturnWeightArrayIndex (int NuTypeIndex, int OscNuIndex, int EnergyIndex, int CosineZIndex=-1) override
 Return implementation specific index in the weight array for a specific combination of neutrino oscillation channel, energy and cosine zenith.
 
long DefineWeightArraySize () override
 Define the size of fWeightArray.
 
- 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

int N_Newton
 Define the number of newton iterations used within calculation.
 

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.
 

Detailed Description

Oscillation calculation engine for linear propagation in NuFAST.

Member Enumeration Documentation

◆ NuType

Define the neutrino and antineutrino values expected by this implementation.

Enumerator
Nu 
Nubar 

◆ OscParams

Definition of oscillation parameters which are expected in this ProbGPU implementation.

Enumerator
kTH12 
kTH23 
kTH13 
kDM12 
kDM23 
kDCP 
kPATHL 
kDENS 
kELECDENS 
kNOscParams 

Constructor & Destructor Documentation

◆ OscProbCalcerNuFASTLinear() [1/2]

OscProbCalcerNuFASTLinear::OscProbCalcerNuFASTLinear ( YAML::Node Config_)

Default constructor.

Parameters
Config_YAML::Node to setup the OscProbCalcerNuFASTLinear() instance

◆ OscProbCalcerNuFASTLinear() [2/2]

OscProbCalcerNuFASTLinear::OscProbCalcerNuFASTLinear ( std::string ConfigName_)
inline

Constructor which takes a file path, creates a YAML::Node and calls the default constructor.

Parameters
ConfigName_File path to config

◆ ~OscProbCalcerNuFASTLinear()

OscProbCalcerNuFASTLinear::~OscProbCalcerNuFASTLinear ( )
virtual

Destructor.

Member Function Documentation

◆ CalculateProbabilities()

void OscProbCalcerNuFASTLinear::CalculateProbabilities ( )
overridevirtual

Calculate some oscillation probabilities for a particular oscillation parameter set.

Calculator oscillation probabilities in NuFAST. This function both calculates and stores the oscillation probabilities in fWeightArray.

Implements OscProbCalcerBase.

◆ DefineWeightArraySize()

long OscProbCalcerNuFASTLinear::DefineWeightArraySize ( )
overridevirtual

Define the size of fWeightArray.

This is implementation specific because because NuFAST is setup to calculate all oscillation channels together, whilst others calculate only a single oscillation channel.

Returns
Length that fWeightArray should be initialised to

Implements OscProbCalcerBase.

◆ ReturnWeightArrayIndex()

int OscProbCalcerNuFASTLinear::ReturnWeightArrayIndex ( int NuTypeIndex,
int OscNuIndex,
int EnergyIndex,
int CosineZIndex = -1 )
overridevirtual

Return implementation specific index in the weight array for a specific combination of neutrino oscillation channel, energy and cosine zenith.

Parameters
NuTypeIndexThe index in fNeutrinoTypes (neutrino/antinuetrino) to return the pointer for
OscChanIndexThe index in fOscillationChannels to return the pointer for
EnergyIndexThe index in fEnergyArray to return the pointer for
CosineZIndexThe index in fCosineZArray to return the pointer for
Returns
Index in fWeightArray which corresponds to the given inputs

Implements OscProbCalcerBase.

◆ SetupPropagator()

void OscProbCalcerNuFASTLinear::SetupPropagator ( )
overridevirtual

Setup NuFAST specific variables.

Implements OscProbCalcerBase.

Member Data Documentation

◆ N_Newton

int OscProbCalcerNuFASTLinear::N_Newton

Define the number of newton iterations used within calculation.


The documentation for this class was generated from the following files: