forked from joaoabcoelho/OscProb
-
Notifications
You must be signed in to change notification settings - Fork 0
/
EigenPoint.h
49 lines (35 loc) · 1.35 KB
/
EigenPoint.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
////////////////////////////////////////////////////////////////////////
/// \struct OscProb::EigenPoint
///
/// \brief Struct to organise eigensystems for caching
///
/// This struct allows for comparisons of eigensystems based on
/// the neutrino energy, nu-nubar status, path density and Z/A.
///
/// \author Joao Coelho - coelho\@lal.in2p3.fr
////////////////////////////////////////////////////////////////////////
#ifndef EIGENPOINT_H
#define EIGENPOINT_H
#include <complex>
#include <vector>
#include "NuPath.h"
// A shorthand...
typedef std::complex<double> complexD;
namespace OscProb {
struct EigenPoint {
/// Constructor
EigenPoint(int numNus=3, double e = 0, NuPath p = NuPath(0,0), bool n=false);
/// Set eigensystem parameters
void SetVars(double e = 0, NuPath p = NuPath(0,0), bool n=false);
double fEnergy; ///< Neutrino energy
NuPath fPath; ///< Neutrino path
bool fNubar; ///< Nu-Nubar flag
double fNE; ///< Energy-density
void SetNE(); ///< Set energy-density
bool operator < (const EigenPoint &rhs) const; ///< Comparison operator
bool operator == (const EigenPoint &rhs) const; ///< Identity operator
std::vector<double> fEval; ///< Eigenvalues to be cached
std::vector< std::vector<complexD> > fEvec; ///< Eigenvectors to be cached
};
}
#endif