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

Oscillation calculation engine for propagation in OscProb. More...

#include <OscProbCalcer_OscProb.h>

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

Public Types

enum  OscParams {
  kTH12 , kTH23 , kTH13 , kDM12 ,
  kDM23 , kDCP , kNOscParams
}
 Definition of oscillation parameters which are expected in this ProbGPU implementation. Base parameters for standard 3x3 oscillation matrix, works as is for PMNS_Fast class DetDepth is the detector depth and is expected in km. More...
 
enum  OscParams_Sterile1 {
  kTH14 = kNOscParams , kTH24 , kTH34 , kDM14 ,
  kDelta14 , kDelta24 , kNOscParams_Sterile1
}
 Definition of extra oscillation parameters for PMNS_Sterile class with 1 additional neutrino kTHij -> mixing angle between states i and j kDeltaij -> CP violating phase between states i and j kDM1j -> mass squared difference between states 1 and j in eV^2. More...
 
enum  OscParams_Sterile2 {
  kTH15 = kNOscParams_Sterile1 , kTH25 , kTH35 , kTH45 ,
  kDM15 , kDelta15 , kDelta25 , kDelta35 ,
  kNOscParams_Sterile2
}
 Definition of extra oscillation parameters for PMNS_Sterile class with 2 additional neutrinos kTHij -> mixing angle between states i and j kDeltaij -> CP violating phase between states i and j kDM1j -> mass squared difference between states 1 and j in eV^2. More...
 
enum  OscParams_Sterile3 {
  kTH16 = kNOscParams_Sterile2 , kTH26 , kTH36 , kTH46 ,
  kTH56 , kDM16 , kDelta16 , kDelta26 ,
  kDelta36 , kDelta46 , kNOscParams_Sterile3
}
 Definition of extra oscillation parameters for PMNS_Sterile class with 3 additional neutrinos kTHij -> mixing angle between states i and j kDeltaij -> CP violating phase between states i and j kDM1j -> mass squared difference between states 1 and j in eV^2. More...
 
enum  OscParams_Decay { kAlpha2 = kNOscParams , kAlpha3 , kNOscParams_Decay }
 Definition of extra oscillation parameters for PMNS_Decay class kAlpha2 = m2/tau2, mass and lifetime of the 2nd state in the restframe, must be positive and units are eV^2 kAlpha3 = m3/tau3, mass and lifetime of the 3rd state in the restframe, must be positive and units are eV^2. More...
 
enum  OscParams_Deco {
  kGamma21 = kNOscParams , kGamma31 , kDecoAngle , kPower ,
  kNOscParams_Deco
}
 Definition of extra oscillation parameters for PMNS_Deco class kGamma21 decoherence parameter between mass states 1 and 2 kGamma31 decoherence parameter between mass states 3 and 1 kDecoAngle decoherence angle kPower power index of decoherence energy dependence. More...
 
enum  OscParams_NSI {
  kEps_ee = kNOscParams , kEps_emu , kEps_etau , kEps_mumu ,
  kEps_mutau , kEps_tautau , kDelta_emu , kDelta_etau ,
  kDelta_mutau , kElecCoup , kUpCoup , kDownCoup ,
  kNOscParams_NSI
}
 Definition of extra oscillation parameters for PMNS_NSI class kEps quantity reprensenting the intensity of NSI wrt standard matter effects between the different flavours kDelta complex phases between the different flavours (non diag elements kElecCoup electron coupling kUpCoup u-quark coupling kDownCoup d-quark coupling. More...
 
enum  OscParams_SNSI { kLightMass = kNOscParams_NSI , kNOscParams_SNSI }
 Definition of extra oscillation parameters for PMNS_SNSI class (scalar non standard interactions) Takes class PMNS_NSI as base with all parameters associated to it kLightMass mass of lightest neutrino WARNING : kEps expected in units of 1/mass^2 in MeV^-2 and not dimensionless like for PMNS_NSI. More...
 
enum  OscParams_Iter { kPrec = kNOscParams , kNOscParams_Iter }
 Definition of extra oscillation parameters for PMNS_Iter class kPrec defines precision of the iterative method. More...
 
enum  OscParams_NUNM {
  kAlpha11 = kNOscParams , kAlpha21 , kAlpha31 , kAlpha22 ,
  kAlpha32 , kAlpha33 , kPhi21 , kPhi31 ,
  kPhi32 , kFracVnc , kNOscParams_NUNM
}
 Definition of extra oscillation parameters for PMNS_NUNM class (non unitary neutrino mixing) kAlphaij quantify deviation from unitary wrt standard mixing between states i and j kPhiij complex phases for non diagonal elements between states i and j kFracVnc fraction of matter potential affecting NC. More...
 
enum  OscParams_LIV {
  kaT_ee_3 = kNOscParams , kaT_emu_3 , kaT_etau_3 , kaT_mumu_3 ,
  kaT_mutau_3 , kaT_tautau_3 , kDelta_emu_3 , kDelta_etau_3 ,
  kDelta_mutau_3 , kcT_ee_4 , kcT_emu_4 , kcT_etau_4 ,
  kcT_mumu_4 , kcT_mutau_4 , kcT_tautau_4 , kDelta_emu_4 ,
  kDelta_etau_4 , kDelta_mutau_4 , kaT_ee_5 , kaT_emu_5 ,
  kaT_etau_5 , kaT_mumu_5 , kaT_mutau_5 , kaT_tautau_5 ,
  kDelta_emu_5 , kDelta_etau_5 , kDelta_mutau_5 , kcT_ee_6 ,
  kcT_emu_6 , kcT_etau_6 , kcT_mumu_6 , kcT_mutau_6 ,
  kcT_tautau_6 , kDelta_emu_6 , kDelta_etau_6 , kDelta_mutau_6 ,
  kaT_ee_7 , kaT_emu_7 , kaT_etau_7 , kaT_mumu_7 ,
  kaT_mutau_7 , kaT_tautau_7 , kDelta_emu_7 , kDelta_etau_7 ,
  kDelta_mutau_7 , kcT_ee_8 , kcT_emu_8 , kcT_etau_8 ,
  kcT_mumu_8 , kcT_mutau_8 , kcT_tautau_8 , kDelta_emu_8 ,
  kDelta_etau_8 , kDelta_mutau_8 , kNOscParams_LIV
}
 Definition of extra oscillation parameters for PMNS_LIV class (Lorentz Invariance Violation) kaT_j LIV coefficient of dimension j between 2 neutrino flavors with j = 3, 5 or 7 kcT_j LIV coefficient of dimension j between 2 neutrino flavors with j = 4, 6 or 8 kDelta_j complex phase between 2 neutrino flavors for non diag element with dimension j. More...
 
enum  OscParams_SiderealLIV {
  aT_ee_X = kNOscParams , aT_ee_Y , aT_ee_Z , aT_emu_X ,
  aT_emu_Y , aT_emu_Z , aT_etau_X , aT_etau_Y ,
  aT_etau_Z , aT_mumu_X , aT_mumu_Y , aT_mumu_Z ,
  aT_mutau_X , aT_mutau_Y , aT_mutau_Z , aT_tautau_X ,
  aT_tautau_Y , aT_tautau_Z , cT_ee_XX , cT_ee_XY ,
  cT_ee_XZ , cT_ee_YY , cT_ee_YZ , cT_ee_ZZ ,
  cT_emu_XX , cT_emu_XY , cT_emu_XZ , cT_emu_YY ,
  cT_emu_YZ , cT_emu_ZZ , cT_etau_XX , cT_etau_XY ,
  cT_etau_XZ , cT_etau_YY , cT_etau_YZ , cT_etau_ZZ ,
  cT_mumu_XX , cT_mumu_XY , cT_mumu_XZ , cT_mumu_YY ,
  cT_mumu_YZ , cT_mumu_ZZ , cT_mutau_XX , cT_mutau_XY ,
  cT_mutau_XZ , cT_mutau_YY , cT_mutau_YZ , cT_mutau_ZZ ,
  cT_tautau_XX , cT_tautau_XY , cT_tautau_XZ , cT_tautau_YY ,
  cT_tautau_YZ , cT_tautau_ZZ , kLatitude , kLongitude ,
  kAltitude , kZenith , kAzimuth , kSiderealTime ,
  kOscParams_SiderealLIV
}
 Extra oscillation parameters for PMNS_SiderealLIV class. More...
 
enum  OscParams_OQS {
  kA1 = kNOscParams , kA2 , kA3 , kA4 ,
  kA5 , kA6 , kA7 , kA8 ,
  kTheta12 , kTheta13 , kTheta14 , kTheta15 ,
  kTheta16 , kTheta17 , kTheta18 , kTheta23 ,
  kTheta24 , kTheta25 , kTheta26 , kTheta27 ,
  kTheta28 , kTheta34 , kTheta35 , kTheta36 ,
  kTheta37 , kTheta38 , kTheta45 , kTheta46 ,
  kTheta47 , kTheta48 , kTheta56 , kTheta57 ,
  kTheta58 , kTheta67 , kTheta68 , kTheta78 ,
  kPower_OQS , kNOscParams_OQS
}
 Definition of extra oscillation parameters for PMNS_OQS class (Open Quantum System decoherence model) kA_i Magnitude of decoherence vector component a_i in the Gell-Mann basis, with i = 1,...,8. These correspond to kTheta_ij Cosine of the angle between decoherence vectors a_i and a_j, kPower_OQS power index of decoherence energy dependence. More...
 
enum  NuType { Nu =1 , Nubar =-1 }
 Define the neutrino and antineutrino values expected by this implementation. More...
 
enum  PMNSMatrix {
  kFast , kPMNSSterile1 , kPMNSSterile2 , kPMNSSterile3 ,
  kDecay , kDeco , kNSI , kSNSI ,
  kIter , kNUNM , kLIV , kOQS ,
  kSiderealLIV
}
 Different types of PMNS matrices currently supported within the analysis LIV and SNSI still to be implemented at some point. More...
 

Public Member Functions

 OscProbCalcerOscProb (YAML::Node Config_)
 Default constructor.
 
 OscProbCalcerOscProb (std::string ConfigName_)
 Constructor which takes a file path, creates a YAML::Node and calls the default constructor.
 
virtual ~OscProbCalcerOscProb ()
 Destructor.
 
void SetupPropagator () final
 Setup Earth model.
 
void CalculateProbabilities () final
 Calculate some oscillation probabilities for a particular oscillation parameter set.
 
void CalcProbPMNS ()
 Calculate some oscillation probabilities for a particular oscillation parameter set.
 
void SetPath (int iCosineZ)
 Set the neutrino path for a given cosine value.
 
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.
 
void SetOscParams ()
 Return number of parameters needed for a particular type of PMNS matrix.
 
OscProb::PMNS_Base * GetPMNSObj ()
 Return a new instance of the appropriate PMNS object given OscType.
 
void SetPMNSParams ()
 Set parameters for PMNS_Base.
 
void SetSterileParams ()
 Set parameters for PMNS_Sterile.
 
void SetDecayParams ()
 Set parameters for PMNS_Decay.
 
void SetDecoParams ()
 Set parameters for PMNS_Deco.
 
void SetNSIParams ()
 Set parameters for PMNS_NSI and/or PMNS_SNSI.
 
void SetIterParams ()
 Set parameters for PMNS_Iter.
 
void SetNUNMParams ()
 Set parameters for PMNS_NUNM.
 
void SetLIVParams ()
 Set parameters for PMNS_LIV.
 
void SetSiderealLIVParams ()
 Set parameters for PMNS_SiderealLIV.
 
void SetOQSParams ()
 Set parameters for PMNS_OQS.
 
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

int fOscType
 Define the type for the PMNS matrix.
 

Private Attributes

OscProb::PremModel fPremModel
 Object handling the Earth model and the estimation of neutrino paths through the Earth depending on their direction Paths used by PMNS objects for neutrino propagation Earth model implemented as succession of spherical shells with uniform density.
 
std::string fPremFile
 String storing the path of the density table file used to setup the Earth model.
 
double fDetDepth
 Double storing the detector depth in km.
 
int fMaxGenFlavour
 Maximum generated flavour for ProbMatrix calculation.
 
int fMaxDetFlavour
 Maximum detected flavour for ProbMatrix calculation.
 
OscProb::PMNS_Base * fPMNSObj
 Pointer to generic PMNS object.
 

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 propagation in OscProb.

Note
You can read more here

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. Base parameters for standard 3x3 oscillation matrix, works as is for PMNS_Fast class DetDepth is the detector depth and is expected in km.

Enumerator
kTH12 
kTH23 
kTH13 
kDM12 
kDM23 
kDCP 
kNOscParams 

◆ OscParams_Decay

Definition of extra oscillation parameters for PMNS_Decay class kAlpha2 = m2/tau2, mass and lifetime of the 2nd state in the restframe, must be positive and units are eV^2 kAlpha3 = m3/tau3, mass and lifetime of the 3rd state in the restframe, must be positive and units are eV^2.

Enumerator
kAlpha2 
kAlpha3 
kNOscParams_Decay 

◆ OscParams_Deco

Definition of extra oscillation parameters for PMNS_Deco class kGamma21 decoherence parameter between mass states 1 and 2 kGamma31 decoherence parameter between mass states 3 and 1 kDecoAngle decoherence angle kPower power index of decoherence energy dependence.

Enumerator
kGamma21 
kGamma31 
kDecoAngle 
kPower 
kNOscParams_Deco 

◆ OscParams_Iter

Definition of extra oscillation parameters for PMNS_Iter class kPrec defines precision of the iterative method.

Enumerator
kPrec 
kNOscParams_Iter 

◆ OscParams_LIV

Definition of extra oscillation parameters for PMNS_LIV class (Lorentz Invariance Violation) kaT_j LIV coefficient of dimension j between 2 neutrino flavors with j = 3, 5 or 7 kcT_j LIV coefficient of dimension j between 2 neutrino flavors with j = 4, 6 or 8 kDelta_j complex phase between 2 neutrino flavors for non diag element with dimension j.

Enumerator
kaT_ee_3 
kaT_emu_3 
kaT_etau_3 
kaT_mumu_3 
kaT_mutau_3 
kaT_tautau_3 
kDelta_emu_3 
kDelta_etau_3 
kDelta_mutau_3 
kcT_ee_4 
kcT_emu_4 
kcT_etau_4 
kcT_mumu_4 
kcT_mutau_4 
kcT_tautau_4 
kDelta_emu_4 
kDelta_etau_4 
kDelta_mutau_4 
kaT_ee_5 
kaT_emu_5 
kaT_etau_5 
kaT_mumu_5 
kaT_mutau_5 
kaT_tautau_5 
kDelta_emu_5 
kDelta_etau_5 
kDelta_mutau_5 
kcT_ee_6 
kcT_emu_6 
kcT_etau_6 
kcT_mumu_6 
kcT_mutau_6 
kcT_tautau_6 
kDelta_emu_6 
kDelta_etau_6 
kDelta_mutau_6 
kaT_ee_7 
kaT_emu_7 
kaT_etau_7 
kaT_mumu_7 
kaT_mutau_7 
kaT_tautau_7 
kDelta_emu_7 
kDelta_etau_7 
kDelta_mutau_7 
kcT_ee_8 
kcT_emu_8 
kcT_etau_8 
kcT_mumu_8 
kcT_mutau_8 
kcT_tautau_8 
kDelta_emu_8 
kDelta_etau_8 
kDelta_mutau_8 
kNOscParams_LIV 

◆ OscParams_NSI

Definition of extra oscillation parameters for PMNS_NSI class kEps quantity reprensenting the intensity of NSI wrt standard matter effects between the different flavours kDelta complex phases between the different flavours (non diag elements kElecCoup electron coupling kUpCoup u-quark coupling kDownCoup d-quark coupling.

Enumerator
kEps_ee 
kEps_emu 
kEps_etau 
kEps_mumu 
kEps_mutau 
kEps_tautau 
kDelta_emu 
kDelta_etau 
kDelta_mutau 
kElecCoup 
kUpCoup 
kDownCoup 
kNOscParams_NSI 

◆ OscParams_NUNM

Definition of extra oscillation parameters for PMNS_NUNM class (non unitary neutrino mixing) kAlphaij quantify deviation from unitary wrt standard mixing between states i and j kPhiij complex phases for non diagonal elements between states i and j kFracVnc fraction of matter potential affecting NC.

Enumerator
kAlpha11 
kAlpha21 
kAlpha31 
kAlpha22 
kAlpha32 
kAlpha33 
kPhi21 
kPhi31 
kPhi32 
kFracVnc 
kNOscParams_NUNM 

◆ OscParams_OQS

Definition of extra oscillation parameters for PMNS_OQS class (Open Quantum System decoherence model) kA_i Magnitude of decoherence vector component a_i in the Gell-Mann basis, with i = 1,...,8. These correspond to kTheta_ij Cosine of the angle between decoherence vectors a_i and a_j, kPower_OQS power index of decoherence energy dependence.

Enumerator
kA1 
kA2 
kA3 
kA4 
kA5 
kA6 
kA7 
kA8 
kTheta12 
kTheta13 
kTheta14 
kTheta15 
kTheta16 
kTheta17 
kTheta18 
kTheta23 
kTheta24 
kTheta25 
kTheta26 
kTheta27 
kTheta28 
kTheta34 
kTheta35 
kTheta36 
kTheta37 
kTheta38 
kTheta45 
kTheta46 
kTheta47 
kTheta48 
kTheta56 
kTheta57 
kTheta58 
kTheta67 
kTheta68 
kTheta78 
kPower_OQS 
kNOscParams_OQS 

◆ OscParams_SiderealLIV

Extra oscillation parameters for PMNS_SiderealLIV class.

The sidereal LIV coefficients are defined in the Sun-centered celestial frame. A-type coefficients have one spatial index:

A^{X,Y,Z}_{alpha beta}

C-type coefficients have two spatial indices:

C^{XY}_{alpha beta}

Flavour indices: e = 0 mu = 1 tau = 2

Additional parameters define detector location, neutrino direction, and sidereal time.

Enumerator
aT_ee_X 
aT_ee_Y 
aT_ee_Z 
aT_emu_X 
aT_emu_Y 
aT_emu_Z 
aT_etau_X 
aT_etau_Y 
aT_etau_Z 
aT_mumu_X 
aT_mumu_Y 
aT_mumu_Z 
aT_mutau_X 
aT_mutau_Y 
aT_mutau_Z 
aT_tautau_X 
aT_tautau_Y 
aT_tautau_Z 
cT_ee_XX 
cT_ee_XY 
cT_ee_XZ 
cT_ee_YY 
cT_ee_YZ 
cT_ee_ZZ 
cT_emu_XX 
cT_emu_XY 
cT_emu_XZ 
cT_emu_YY 
cT_emu_YZ 
cT_emu_ZZ 
cT_etau_XX 
cT_etau_XY 
cT_etau_XZ 
cT_etau_YY 
cT_etau_YZ 
cT_etau_ZZ 
cT_mumu_XX 
cT_mumu_XY 
cT_mumu_XZ 
cT_mumu_YY 
cT_mumu_YZ 
cT_mumu_ZZ 
cT_mutau_XX 
cT_mutau_XY 
cT_mutau_XZ 
cT_mutau_YY 
cT_mutau_YZ 
cT_mutau_ZZ 
cT_tautau_XX 
cT_tautau_XY 
cT_tautau_XZ 
cT_tautau_YY 
cT_tautau_YZ 
cT_tautau_ZZ 
kLatitude 
kLongitude 
kAltitude 
kZenith 
kAzimuth 
kSiderealTime 
kOscParams_SiderealLIV 

◆ OscParams_SNSI

Definition of extra oscillation parameters for PMNS_SNSI class (scalar non standard interactions) Takes class PMNS_NSI as base with all parameters associated to it kLightMass mass of lightest neutrino WARNING : kEps expected in units of 1/mass^2 in MeV^-2 and not dimensionless like for PMNS_NSI.

Enumerator
kLightMass 
kNOscParams_SNSI 

◆ OscParams_Sterile1

Definition of extra oscillation parameters for PMNS_Sterile class with 1 additional neutrino kTHij -> mixing angle between states i and j kDeltaij -> CP violating phase between states i and j kDM1j -> mass squared difference between states 1 and j in eV^2.

Enumerator
kTH14 
kTH24 
kTH34 
kDM14 
kDelta14 
kDelta24 
kNOscParams_Sterile1 

◆ OscParams_Sterile2

Definition of extra oscillation parameters for PMNS_Sterile class with 2 additional neutrinos kTHij -> mixing angle between states i and j kDeltaij -> CP violating phase between states i and j kDM1j -> mass squared difference between states 1 and j in eV^2.

Enumerator
kTH15 
kTH25 
kTH35 
kTH45 
kDM15 
kDelta15 
kDelta25 
kDelta35 
kNOscParams_Sterile2 

◆ OscParams_Sterile3

Definition of extra oscillation parameters for PMNS_Sterile class with 3 additional neutrinos kTHij -> mixing angle between states i and j kDeltaij -> CP violating phase between states i and j kDM1j -> mass squared difference between states 1 and j in eV^2.

Enumerator
kTH16 
kTH26 
kTH36 
kTH46 
kTH56 
kDM16 
kDelta16 
kDelta26 
kDelta36 
kDelta46 
kNOscParams_Sterile3 

◆ PMNSMatrix

Different types of PMNS matrices currently supported within the analysis LIV and SNSI still to be implemented at some point.

Enumerator
kFast 
kPMNSSterile1 
kPMNSSterile2 
kPMNSSterile3 
kDecay 
kDeco 
kNSI 
kSNSI 
kIter 
kNUNM 
kLIV 
kOQS 
kSiderealLIV 

Constructor & Destructor Documentation

◆ OscProbCalcerOscProb() [1/2]

OscProbCalcerOscProb::OscProbCalcerOscProb ( YAML::Node Config_)

Default constructor.

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

◆ OscProbCalcerOscProb() [2/2]

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

◆ ~OscProbCalcerOscProb()

OscProbCalcerOscProb::~OscProbCalcerOscProb ( )
virtual

Destructor.

Member Function Documentation

◆ CalcProbPMNS()

void OscProbCalcerOscProb::CalcProbPMNS ( )

Calculate some oscillation probabilities for a particular oscillation parameter set.

Calculator oscillation probabilities with any PMNS object. This function both calculates and stores the oscillation probabilities in fWeightArray.

◆ CalculateProbabilities()

void OscProbCalcerOscProb::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 OscProbCalcerOscProb::DefineWeightArraySize ( )
finalvirtual

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.

◆ GetNCosineZ()

int OscProbCalcerOscProb::GetNCosineZ ( )

Auxiliary function to handle ignored cosineZ cases.

◆ GetPMNSObj()

OscProb::PMNS_Base * OscProbCalcerOscProb::GetPMNSObj ( )

Return a new instance of the appropriate PMNS object given OscType.

Returns
a PMNS object pointer

◆ PMNS_StrToInt()

int OscProbCalcerOscProb::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 OscProbCalcerOscProb::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/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.

◆ SetDecayParams()

void OscProbCalcerOscProb::SetDecayParams ( )

Set parameters for PMNS_Decay.

◆ SetDecoParams()

void OscProbCalcerOscProb::SetDecoParams ( )

Set parameters for PMNS_Deco.

◆ SetIterParams()

void OscProbCalcerOscProb::SetIterParams ( )

Set parameters for PMNS_Iter.

◆ SetLIVParams()

void OscProbCalcerOscProb::SetLIVParams ( )

Set parameters for PMNS_LIV.

◆ SetNSIParams()

void OscProbCalcerOscProb::SetNSIParams ( )

Set parameters for PMNS_NSI and/or PMNS_SNSI.

◆ SetNUNMParams()

void OscProbCalcerOscProb::SetNUNMParams ( )

Set parameters for PMNS_NUNM.

◆ SetOQSParams()

void OscProbCalcerOscProb::SetOQSParams ( )

Set parameters for PMNS_OQS.

◆ SetOscParams()

void OscProbCalcerOscProb::SetOscParams ( )

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

◆ SetPath()

void OscProbCalcerOscProb::SetPath ( int iCosineZ)

Set the neutrino path for a given cosine value.

Uses PremModel unless Linear OscMode, in which case a fixed baseline is used

Parameters
iCosineZthe index of the zenith bin (0 for Linear)

◆ SetPMNSParams()

void OscProbCalcerOscProb::SetPMNSParams ( )

Set parameters for PMNS_Base.

Returns
Sets relevant parameters for PMNS object

Set parameters for classes which inherits from PMNS_Base

◆ SetSiderealLIVParams()

void OscProbCalcerOscProb::SetSiderealLIVParams ( )

Set parameters for PMNS_SiderealLIV.

◆ SetSterileParams()

void OscProbCalcerOscProb::SetSterileParams ( )

Set parameters for PMNS_Sterile.

◆ SetupPropagator()

void OscProbCalcerOscProb::SetupPropagator ( )
finalvirtual

Setup Earth model.

Implements OscProbCalcerBase.

Member Data Documentation

◆ fDetDepth

double OscProbCalcerOscProb::fDetDepth
private

Double storing the detector depth in km.

◆ fMaxDetFlavour

int OscProbCalcerOscProb::fMaxDetFlavour
private

Maximum detected flavour for ProbMatrix calculation.

◆ fMaxGenFlavour

int OscProbCalcerOscProb::fMaxGenFlavour
private

Maximum generated flavour for ProbMatrix calculation.

◆ fOscType

int OscProbCalcerOscProb::fOscType

Define the type for the PMNS matrix.

◆ fPMNSObj

OscProb::PMNS_Base* OscProbCalcerOscProb::fPMNSObj
private

Pointer to generic PMNS object.

◆ fPremFile

std::string OscProbCalcerOscProb::fPremFile
private

String storing the path of the density table file used to setup the Earth model.

◆ fPremModel

OscProb::PremModel OscProbCalcerOscProb::fPremModel
private

Object handling the Earth model and the estimation of neutrino paths through the Earth depending on their direction Paths used by PMNS objects for neutrino propagation Earth model implemented as succession of spherical shells with uniform density.


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