OscProb
PMNS_Avg.h
Go to the documentation of this file.
1
22
23#ifndef PMNS_Avg_H
24#define PMNS_Avg_H
25
26#include "PMNS_Fast.h"
27#include "PremModel.h"
28
29namespace OscProb {
30
31 class PMNS_Avg : public PMNS_Fast {
32 public:
33 PMNS_Avg();
34 virtual ~PMNS_Avg();
35
36 virtual void SetPremModel(OscProb::PremModel& prem);
37
38 // Get probability averaged over a bin
39 virtual double AvgProb(
40 int flvi, int flvf, double E,
41 double dE);
43
44 virtual double AvgProbLoE(
45 int flvi, int flvf, double LoE,
46 double dLoE);
48
49 virtual double AvgProb(
50 int flvi, int flvf, double E, double cosT,
51 double dcosT);
53
54 virtual double AvgProb(int flvi, int flvf, double E, double dE,
55 double cosT,
56 double dcosT);
59
60 virtual double AvgProbLoE(
61 int flvi, int flvf, double LoE, double dLoE, double cosT,
62 double dcosT);
65
66 // Get probability
67 virtual double ExtrapolationProb(
68 int flvi, int flvf, double E,
69 double dE);
71
72 virtual double ExtrapolationProbLoE(
73 int flvi, int flvf, double LoE,
74 double dLoE);
76
77 virtual double ExtrapolationProbCosT(
78 int flvi, int flvf, double cosT,
79 double dcosT);
81
82 protected:
83 virtual void InitializeTaylorsVectors();
85
86 virtual void SetwidthBin(double dE,
87 double dcosT);
89
90 virtual void SetCosT(double cosT);
91
93 double LoE,
94 double dLoE);
96
98 double E, double cosT,
99 double dcosT);
101
102 virtual matrixC GetSamplePoints(double InvE, double dInvE, double cosT,
103 double dcosT);
107
108 // Construction of the K matrices
109 virtual void BuildKE(
110 double L);
111 virtual void BuildKcosT(
112 double L);
113
114 virtual double LnDerivative();
116
117 // Rotation from mass to flavor basis
118 virtual void rotateS();
119 virtual void rotateK();
120
121 // Multiplication rule between two pairs of (S,K)
122 virtual void MultiplicationRuleS();
123 virtual void MultiplicationRuleK(
124 complexD K[3][3]);
125
127 virtual void SolveK(complexD K[3][3], vectorD& lambda,
128 matrixC& V);
130
131 // Propagating
132 virtual void PropagatePathTaylor(
133 NuPath p);
134 virtual void PropagateTaylor();
135
136 virtual double AvgFormula(
137 int flvi, int flvf, double dbin, vectorD flambda,
138 matrixC fV);
140
141 virtual double AvgAlgo(
142 int flvi, int flvf, double LoE, double dLoE,
143 double L);
145
146 virtual double AvgAlgoCosT(
147 int flvi, int flvf, double E, double cosT,
148 double dcosT);
150
151 virtual double AvgAlgo(
152 int flvi, int flvf, double InvE, double dInvE, double cosT,
153 double dcosT);
155
156 virtual double AlgorithmDensityMatrix(
157 int flvi, int flvf);
159
160 virtual void RotateDensityM(
161 bool to_basis, matrixC V);
162
163 virtual void HadamardProduct(vectorD lambda,
164 double dbin);
166
167 virtual double AvgFormulaExtrapolation(
168 int flvi, int flvf, double dbin, vectorD flambda,
169 matrixC fV);
170
171 // Attributes
172
175
179
180 double fdInvE;
181
186
187 double fcosT;
188 double fdcosT;
189
191 [3];
194
196
197 // Variables for the compute of the derivation of one layer's length
199 int fdl;
201 double fminRsq;
202
203 // Copy of the earth model used
205 };
206
207} // namespace OscProb
208
209#endif
210
Implementation of oscillations of neutrinos in matter in a three-neutrino framework with a first orde...
Definition: PMNS_Avg.h:31
double fdInvE
Bin's width for the inverse of energy in GeV-1.
Definition: PMNS_Avg.h:180
vectorD flambdaCosT
Eigenvectors of K_cosTheta.
Definition: PMNS_Avg.h:192
virtual double AvgProbLoE(int flvi, int flvf, double LoE, double dLoE)
Definition: PMNS_Avg.cxx:539
matrixC fKflavor
K matrix in flavor basis for one layer.
Definition: PMNS_Avg.h:178
virtual double ExtrapolationProbLoE(int flvi, int flvf, double LoE, double dLoE)
Definition: PMNS_Avg.cxx:1157
virtual double AvgAlgoCosT(int flvi, int flvf, double E, double cosT, double dcosT)
Definition: PMNS_Avg.cxx:658
matrixC fVcosT
Eigenvalues of K_cosTheta.
Definition: PMNS_Avg.h:193
virtual void SetwidthBin(double dE, double dcosT)
Definition: PMNS_Avg.cxx:106
virtual void PropagateTaylor()
Propagate neutrino through full path.
Definition: PMNS_Avg.cxx:341
virtual void PropagatePathTaylor(NuPath p)
Propagate neutrino through a single path.
Definition: PMNS_Avg.cxx:353
virtual void rotateS()
Rotate the S matrix.
Definition: PMNS_Avg.cxx:226
matrixC fevolutionMatrixS
Definition: PMNS_Avg.h:173
matrixC fdensityMatrix
The neutrino density matrix state.
Definition: PMNS_Avg.h:195
matrixC fVInvE
Eigenvalues of K_invE.
Definition: PMNS_Avg.h:185
double fcosT
Cosine of neutrino angle.
Definition: PMNS_Avg.h:187
double fdcosT
Bin's width for angle.
Definition: PMNS_Avg.h:188
virtual void BuildKE(double L)
build K matrix for the inverse of energy in mass basis
Definition: PMNS_Avg.cxx:122
virtual void rotateK()
Rotate one K matrix.
Definition: PMNS_Avg.cxx:248
virtual void InitializeTaylorsVectors()
Definition: PMNS_Avg.cxx:48
virtual double ExtrapolationProb(int flvi, int flvf, double E, double dE)
Definition: PMNS_Avg.cxx:1121
OscProb::PremModel fPrem
Definition: PMNS_Avg.h:204
virtual void MultiplicationRuleK(complexD K[3][3])
Product between two K matrices.
Definition: PMNS_Avg.cxx:316
virtual void SolveK(complexD K[3][3], vectorD &lambda, matrixC &V)
Solve the K matrix.
Definition: PMNS_Avg.cxx:408
virtual void RotateDensityM(bool to_basis, matrixC V)
Apply rotation to the density matrix.
Definition: PMNS_Avg.cxx:872
virtual void HadamardProduct(vectorD lambda, double dbin)
to the density matrix
Definition: PMNS_Avg.cxx:908
virtual void MultiplicationRuleS()
Product between two S matrices.
Definition: PMNS_Avg.cxx:285
virtual double AvgAlgo(int flvi, int flvf, double LoE, double dLoE, double L)
Definition: PMNS_Avg.cxx:580
matrixC fSflavor
S matrix for one layer.
Definition: PMNS_Avg.h:176
virtual vectorD GetSamplePoints(double LoE, double dLoE)
Definition: PMNS_Avg.cxx:939
matrixC fKmass
K matrix in mass basis for one layer.
Definition: PMNS_Avg.h:177
virtual double LnDerivative()
Definition: PMNS_Avg.cxx:199
virtual double AvgFormulaExtrapolation(int flvi, int flvf, double dbin, vectorD flambda, matrixC fV)
Formula for the extrapolation of probability.
Definition: PMNS_Avg.cxx:1068
virtual void SetCosT(double cosT)
Set neutrino angle.
Definition: PMNS_Avg.cxx:97
virtual double AvgFormula(int flvi, int flvf, double dbin, vectorD flambda, matrixC fV)
Definition: PMNS_Avg.cxx:442
virtual void BuildKcosT(double L)
build K matrix for angle in flavor basis
Definition: PMNS_Avg.cxx:180
complexD fKInvE[3][3]
Definition: PMNS_Avg.h:182
virtual ~PMNS_Avg()
Destructor.
Definition: PMNS_Avg.cxx:41
double fDetRadius
Definition: PMNS_Avg.h:200
complexD fKcosT[3][3]
K matrix for neutrino angle for the entire path.
Definition: PMNS_Avg.h:191
virtual double AlgorithmDensityMatrix(int flvi, int flvf)
Definition: PMNS_Avg.cxx:847
virtual double ExtrapolationProbCosT(int flvi, int flvf, double cosT, double dcosT)
Definition: PMNS_Avg.cxx:1200
PMNS_Avg()
Constructor.
Definition: PMNS_Avg.cxx:26
virtual void SetPremModel(OscProb::PremModel &prem)
Definition: PMNS_Avg.cxx:89
virtual double AvgProb(int flvi, int flvf, double E, double dE)
Definition: PMNS_Avg.cxx:501
vectorD flambdaInvE
Eigenvectors of K_invE.
Definition: PMNS_Avg.h:184
Implementation of oscillations of neutrinos in matter in a three-neutrino framework.
Definition: PMNS_Fast.h:40
Implements an earth model with spherical shells.
Definition: PremModel.h:33
Some useful general definitions.
Definition: Absorption.h:6
std::complex< double > complexD
Definition: Definitions.h:21
std::vector< double > vectorD
Definition: Definitions.h:18
std::vector< vectorC > matrixC
Definition: Definitions.h:23
A struct representing a neutrino path segment.
Definition: NuPath.h:34