-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathsourcesMC.h
103 lines (71 loc) · 1.88 KB
/
sourcesMC.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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
#ifndef __sourcesMC_H
#define __sourcesMC_H
#include <iostream>
#include <fstream>
#include <stdio.h>
#include <string>
#include <math.h>
#include <vector>
class Input;
class randgen;
using namespace std;
// **********************************************************************************************************************
class propagation_model {
public:
// methods
propagation_model(Input*); //constructor
~propagation_model();
double GetD(double, Input*);
inline double GetD_cm2s(int ie) { return D_vec[ie]*1.e28; }
// attributes
vector<double> energy_vec;
double E0;
double delta;
double D0;
vector<double> D_vec;
double L;
double xsun;
double ysun;
double zsun;
};
// **********************************************************************************************************************
class event {
public:
// methods
event(Input*, randgen*, vector<double>);
~event();
double GetDistance(propagation_model*);
// attributes
double age;
double age_sec;
double radius;
double theta;
double x;
double y;
double z;
double energy_output;
double alpha;
double cut;
};
// **********************************************************************************************************************
class sourcesMC {
public:
sourcesMC();
sourcesMC(Input*);
~sourcesMC();
vector<double> compute_SNR_spectrum(vector<double>, Input*, event*);
void evolve(Input*);
long int linearized_index(Input*, int, int);
protected:
vector<double> E_vec;
double dimE;
double Emin;
double Emax;
//vector<double> current_spectrum;
vector<double> total_spectrum;
propagation_model* propmodel;
randgen* myrandom;
long int Nevents;
};
// **********************************************************************************************************************
#endif