6 #ifndef ICEMC_SECONDARIES_HH 7 #define ICEMC_SECONDARIES_HH 17 #include "Primaries.h" 32 void Picky(
double *y_cumulative,
int NPROB_MAX,
double rnd,
double& y);
34 static const int NPROB_MAX=100;
37 double em_secondaries_max;
38 double had_secondaries_max;
41 double dsdy_muon_brems[7][NPROB_MAX];
42 double dsdy_muon_epair[7][NPROB_MAX];
43 double dsdy_muon_pn[7][NPROB_MAX];
45 double y_muon_brems[7][NPROB_MAX];
46 double y_muon_epair[7][NPROB_MAX];
47 double y_muon_pn[7][NPROB_MAX];
49 vector<double> vy_muon_brems[7];
51 vector<double> vy_muon_epair[7];
52 vector<double> vy_muon_pn[7];
54 double y_cumulative_muon_brems[7][NPROB_MAX];
55 double y_cumulative_muon_epair[7][NPROB_MAX];
56 double y_cumulative_muon_pn[7][NPROB_MAX];
58 double int_muon_brems[7];
60 double int_muon_epair[7];
61 double int_muon_pn[7];
63 double max_muon_brems;
64 double max_muon_epair;
67 double min_muon_brems;
68 double min_muon_epair;
71 double dsdy_tauon_brems[7][NPROB_MAX];
72 double dsdy_tauon_epair[7][NPROB_MAX];
73 double dsdy_tauon_pn[7][NPROB_MAX];
74 double dsdy_tauon_hadrdecay[7][NPROB_MAX];
75 double dsdy_tauon_edecay[7][NPROB_MAX];
76 double dsdy_tauon_mudecay[7][NPROB_MAX];
78 double y_tauon_brems[7][NPROB_MAX];
79 double y_tauon_epair[7][NPROB_MAX];
80 double y_tauon_pn[7][NPROB_MAX];
81 double y_tauon_hadrdecay[7][NPROB_MAX];
82 double y_tauon_edecay[7][NPROB_MAX];
83 double y_tauon_mudecay[7][NPROB_MAX];
85 double y_cumulative_tauon_brems[7][NPROB_MAX];
86 double y_cumulative_tauon_epair[7][NPROB_MAX];
87 double y_cumulative_tauon_pn[7][NPROB_MAX];
88 double y_cumulative_tauon_hadrdecay[7][NPROB_MAX];
89 double y_cumulative_tauon_edecay[7][NPROB_MAX];
90 double y_cumulative_tauon_mudecay[7][NPROB_MAX];
92 vector<double> vy_tauon_brems[7];
94 vector<double> vy_tauon_epair[7];
95 vector<double> vy_tauon_pn[7];
96 vector<double> vy_tauon_hadrdecay[7];
97 vector<double> vy_tauon_edecay[7];
98 vector<double> vy_tauon_mudecay[7];
100 double int_tauon_brems[7];
101 double int_tauon_epair[7];
102 double int_tauon_pn[7];
103 double int_tauon_hadrdecay[7];
104 double int_tauon_edecay[7];
105 double int_tauon_mudecay[7];
107 double max_tauon_brems;
108 double max_tauon_epair;
110 double max_tauon_hadrdecay;
111 double max_tauon_edecay;
112 double max_tauon_mudecay;
114 double min_tauon_brems;
115 double min_tauon_epair;
117 double min_tauon_hadrdecay;
118 double min_tauon_edecay;
119 double min_tauon_mudecay;
126 static const int N_TAUOLA=10001;
127 double tauola[N_TAUOLA][6];
128 ifstream tauolainfile;
131 void readData(
string,
string,
double (*)[NPROB_MAX],
double (*)[NPROB_MAX]);
132 void ReadSecondaries();
158 int secondary_e_noncons;
160 void GetSecondaries(
Settings *settings1,
string,
double,
double&,
double&,
int&,TH1F*);
163 void GetTauDecay(
string nuflavor,
string current,
string& taudecay,
double& emfrac_db,
double& hadfrac_db);
165 void GetEMFracDB(
double& emfrac_db,
double& hadfrac_db);
166 double GetDBViewAngle(
const Vector &refr,
const Vector &nnu);
168 double NFBWeight(
double ptau,
double taulength);
181 int& n_interactions,
int taumodes1);
184 static const bool interestedintaus=
false;
Reads in and stores input settings for the run.
Functions you need to generate a primary interaction including cross sections and picking charged cur...
This class represents a three-vector. Operators are overloaded to provide for the familiar operations...