![]() |
NuOscillator
|
Oscillation calculation engine for linear propagation in OscLibLinear. More...
#include <OscProbCalcer_OscLibLinear.h>
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. | |
Oscillation calculation engine for linear propagation in OscLibLinear.
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 | |
| OscProbCalcerOscLibLinear::OscProbCalcerOscLibLinear | ( | YAML::Node | Config_ | ) |
Default constructor.
| Config_ | YAML::Node to setup the OscProbCalcerOscLibLinear() instance |
|
inline |
Constructor which takes a file path, creates a YAML::Node and calls the default constructor.
| ConfigName_ | File path to config |
|
virtual |
Destructor.
|
finalvirtual |
Calculate some oscillation probabilities for a particular oscillation parameter set.
Calls particular version of CalcProbPMNS depending on PMNS type
Implements OscProbCalcerBase.
|
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.
Implements OscProbCalcerBase.
| int OscProbCalcerOscLibLinear::GetFlavour | ( | int | OscChannel, |
| int | neutrinoType ) const |
Get neutrino flavour based on channel.
| int OscProbCalcerOscLibLinear::PMNS_StrToInt | ( | const std::string & | PMNSType | ) |
Return the PMNS Matrix type corresponding to a particular string.
| PMNSType | String to convert to enum value |
|
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/antineutrino) 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.
| void OscProbCalcerOscLibLinear::SetOscParams | ( | ) |
Set number of parameters needed for a particular type of PMNS matrix.
|
finalvirtual |
Setup Earth model.
Implements OscProbCalcerBase.
| int OscProbCalcerOscLibLinear::fOscType |
Define the type for the PMNS matrix.
| osc::_IOscCalcAdjustable<FLOAT_T>* OscProbCalcerOscLibLinear::OscLib |
OscLib object used to calculate the oscillation probabilities.