EarthModel.h
Go to the documentation of this file.
1 
2 
3 
4 
5 
6 
7 #ifndef EARTHMODEL_H
8 #define EARTHMODEL_H
9 #include <list>
10 #include <vector>
11 
12 namespace osc {
13  class EarthModel
14  {
15  public:
16  EarthModel(const char* which, double tol);
17 
18  double Ne(double r);
19 
20  double Density(double r);
21 
22  double ZoverA(double r);
23 
24  void GetLayers(std::vector<double>& rlo,
25  std::vector<double>& rhi,
26  std::vector<double>& ne);
27 
28  void LineProfile(double prodL, double cosQ, double rdet,
29  std::list<double>& Ls,
30  std::list<double>& Ns);
31  private:
32  void InitPREM();
33  void InitStacey();
34  double DensityPREM(double r);
35  double DensityStacey(double r);
36  double AveNe(double r1, double r2, int nsample);
37  void MakeLayers(double tol);
38  int IntersectLineAndCircle(double x1, double y1,
39  double x2, double y2,
40  double r,
41  double* xa, double* ya,
42  double* xb, double* yb);
43  private:
44  int fModelID;
45  double fRouterCore;
46  double fRearth;
47  std::vector<double> fRregion;
48 
49  std::vector<double> fRlo;
50  std::vector<double> fRhi;
51  std::vector<double> fNe;
52  };
53 }
54 #endif
55 
EarthModel(const char *which, double tol)
Definition: EarthModel.cxx:18
std::vector< double > fNe
Definition: EarthModel.h:51
double fRearth
Definition: EarthModel.h:46
std::vector< double > fRregion
Definition: EarthModel.h:47
const double rdet
Definition: LBNENuWeight.cc:13
double fRouterCore
Definition: EarthModel.h:45
void MakeLayers(double tol)
Definition: EarthModel.cxx:278
double DensityStacey(double r)
Definition: EarthModel.cxx:105
void GetLayers(std::vector< double > &rlo, std::vector< double > &rhi, std::vector< double > &ne)
Definition: EarthModel.cxx:324
int IntersectLineAndCircle(double x1, double y1, double x2, double y2, double r, double *xa, double *ya, double *xb, double *yb)
Definition: EarthModel.cxx:517
double Ne(double r)
Definition: EarthModel.cxx:33
void LineProfile(double prodL, double cosQ, double rdet, std::list< double > &Ls, std::list< double > &Ns)
Definition: EarthModel.cxx:339
double AveNe(double r1, double r2, int nsample)
Definition: EarthModel.cxx:266
Definition: EarthModel.h:12
double DensityPREM(double r)
Definition: EarthModel.cxx:69
std::vector< double > fRlo
Definition: EarthModel.h:49
double ZoverA(double r)
Definition: EarthModel.cxx:258
std::vector< double > fRhi
Definition: EarthModel.h:50
double Density(double r)
Definition: EarthModel.cxx:39