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

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

#include <OscProbCalcer_OscLibLinear.h>

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

Public Types

enum  OscParams {
  kTH12 , kTH23 , kTH13 , kDM12 ,
  kDM23 , kDCP , kPATHL , kDENS ,
  kNOscParams
}
 Definition of oscillation parameters which are expected in this OscLibLinear implementation. More...
 
enum  OscParams_NSI {
  kEps_ee = kNOscParams , kEps_emu , kEps_etau , kEps_mumu ,
  kEps_mutau , kEps_tautau , kDelta_emu , kDelta_etau ,
  kDelta_mutau , kNOscParams_NSI
}
 Definition of extra oscillation parameters for PMNS_NSI class kEps quantity representing the intensity of NSI wrt standard matter effects between the different flavours kDelta complex phases between the different flavours (non diagonal elements. More...
 
enum  NuType { Nubar =-1 , Nu =1 }
 Define the neutrino and antineutrino values expected by this implementation. More...
 
enum  PMNSMatrix { kPMNS , kNSI }
 Different types of PMNS matrices currently supported within the analysis. More...
 

Public Member Functions

 OscProbCalcerOscLibLinear (YAML::Node Config_)
 Default constructor.
 
 OscProbCalcerOscLibLinear (std::string ConfigName_)
 Constructor which takes a file path, creates a YAML::Node and calls the default constructor.
 
virtual ~OscProbCalcerOscLibLinear ()
 Destructor.
 
void SetupPropagator () final
 Setup Earth model.
 
void CalculateProbabilities () final
 Calculate some oscillation probabilities for a particular oscillation parameter set.
 
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 PMNS_StrToInt (const std::string &PMNSType)
 Return the PMNS Matrix type corresponding to a particular string.
 
int GetFlavour (int OscChannel, int neutrinoType) const
 Get neutrino flavour based on channel.
 
void SetOscParams ()
 Set number of parameters needed for a particular type of PMNS matrix.
 
- 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

osc::_IOscCalcAdjustable< FLOAT_T > * OscLib
 OscLib object used to calculate the oscillation probabilities.
 
int fOscType
 Define the type for the PMNS matrix.
 

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 OscLibLinear.

Member Enumeration Documentation

◆ NuType

Define the neutrino and antineutrino values expected by this implementation.

Enumerator
Nubar 
Nu 

◆ OscParams

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

Enumerator
kTH12 
kTH23 
kTH13 
kDM12 
kDM23 
kDCP 
kPATHL 
kDENS 
kNOscParams 

◆ OscParams_NSI

Definition of extra oscillation parameters for PMNS_NSI class kEps quantity representing the intensity of NSI wrt standard matter effects between the different flavours kDelta complex phases between the different flavours (non diagonal elements.

Enumerator
kEps_ee 
kEps_emu 
kEps_etau 
kEps_mumu 
kEps_mutau 
kEps_tautau 
kDelta_emu 
kDelta_etau 
kDelta_mutau 
kNOscParams_NSI 

◆ PMNSMatrix

Different types of PMNS matrices currently supported within the analysis.

Enumerator
kPMNS 
kNSI 

Constructor & Destructor Documentation

◆ OscProbCalcerOscLibLinear() [1/2]

OscProbCalcerOscLibLinear::OscProbCalcerOscLibLinear ( YAML::Node Config_)

Default constructor.

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

◆ OscProbCalcerOscLibLinear() [2/2]

OscProbCalcerOscLibLinear::OscProbCalcerOscLibLinear ( 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

◆ ~OscProbCalcerOscLibLinear()

OscProbCalcerOscLibLinear::~OscProbCalcerOscLibLinear ( )
virtual

Destructor.

Member Function Documentation

◆ CalculateProbabilities()

void OscProbCalcerOscLibLinear::CalculateProbabilities ( )
finalvirtual

Calculate some oscillation probabilities for a particular oscillation parameter set.

Calls particular version of CalcProbPMNS depending on PMNS type

Implements OscProbCalcerBase.

◆ DefineWeightArraySize()

long OscProbCalcerOscLibLinear::DefineWeightArraySize ( )
finalvirtual

Define the size of fWeightArray.

This is implementation specific because because OscLibLinear 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.

◆ GetFlavour()

int OscProbCalcerOscLibLinear::GetFlavour ( int OscChannel,
int neutrinoType ) const

Get neutrino flavour based on channel.

◆ PMNS_StrToInt()

int OscProbCalcerOscLibLinear::PMNS_StrToInt ( const std::string & PMNSType)

Return the PMNS Matrix type corresponding to a particular string.

Parameters
PMNSTypeString to convert to enum value
Returns
Enum value describing the PMNS Matrix to use

◆ ReturnWeightArrayIndex()

int OscProbCalcerOscLibLinear::ReturnWeightArrayIndex ( int NuTypeIndex,
int OscNuIndex,
int EnergyIndex,
int CosineZIndex = -1 )
finalvirtual

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/antineutrino) 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.

◆ SetOscParams()

void OscProbCalcerOscLibLinear::SetOscParams ( )

Set number of parameters needed for a particular type of PMNS matrix.

◆ SetupPropagator()

void OscProbCalcerOscLibLinear::SetupPropagator ( )
finalvirtual

Setup Earth model.

Implements OscProbCalcerBase.

Member Data Documentation

◆ fOscType

int OscProbCalcerOscLibLinear::fOscType

Define the type for the PMNS matrix.

◆ OscLib

osc::_IOscCalcAdjustable<FLOAT_T>* OscProbCalcerOscLibLinear::OscLib

OscLib object used to calculate the oscillation probabilities.


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