icemc
 All Classes Namespaces Files Functions Variables Friends Macros Pages
Taumodel.hh
Go to the documentation of this file.
1 
2 //class Taumodel:
4 #include <algorithm>
5 #include <numeric>
6 #include <iostream>
7 #include <string>
8 #include <sstream>
9 #include <fstream>
10 #include <iomanip>
11 #include <vector>
12 #ifndef __CINT__
13 #include "Primaries.h"
14 #include "Settings.h"
15 #endif
16 class TH1F;
17 class Vector;
18 class Settings;
19 class TRandom3;
20 class Primaries;
21 class Interaction;
22 class IceModel;
23 
24 using std::vector;
25 using std::ifstream;
26 using std::string;
27 
28 class Taumodel: public TObject
29 {
30 
31 private: //stuff other programs arent allowed to touch
32 
38  double B0,B1,E0;
39 
40  double mT;
41  double cT;
42  double p;
44 
45  //p, the Density of Standard Rock. g/cm^3
46  double A;
47  double Mn;
49  vector<double> mydensityvector;
51  vector<double> myavgdensityvector;
53  vector<double> myenergyvector;
54  vector<double> myPsurvvector;
55  vector<double> etaufarray;
56  vector<double> PDFarray;
60  void GetDensityVectors(IceModel *antarctica1,Interaction *interaction1, Vector nchord, double step, double Distance,int &totalnusteps,int &crust_entered, int &mantle_entered, int &core_entered);
63  void GetEnergyVector(double Etau_final, double step,int totalnusteps, int &totalsteps, double &totaltaudistance, double pnu);
64 
67  void GetTauSurvVector(double step, int totalsteps);
68 public:
69  Taumodel();
70  double ptauf;
71  double weight_tau_prob;
72  int inu;
74 
78  double GetTauWeight(Primaries *primary1, Settings *settings1,IceModel*antarctica1,Interaction *interaction1,
79  double pnu, int nu_nubar,
80  double& ptauf,
81  int& crust_entered, // 1 or 0
82  int& mantle_entered, // 1 or 0
83  int& core_entered);//include secondaries?
84 
85 
86 }; //class Taumodel
87