13 #include <CCfits/CCfits>
15 #include "distribution.h"
16 #include "fileHelper.h"
24 std::vector<double> ekin;
25 std::vector<std::vector<double>> flux;
26 std::vector<Tproperties> spec;
28 std::map<std::pair<int,int>,
double> massDict = {{{1,1}, 0.938}, {{-1,1}, 0.938},
29 {{1,0}, 0.000511}, {{-1,0}, 0.000511},
30 {{1,2}, 2.*0.938}, {{-1,2}, 2.*0.938},
31 {{1,3}, 3.*0.938}, {{-1,3}, 3.*0.938},
32 {{2,3}, 3.*0.938}, {{-2,3}, 3.*0.938},
33 {{2,4}, 4.*0.938}, {{-2,4}, 4.*0.938},
34 {{3,6}, 6.*0.938}, {{3,7}, 7.*0.938},
35 {{4,7}, 7.*0.938}, {{4,9}, 9.*0.938},
36 {{4,10}, 10.*0.938}, {{5,10}, 10.*0.938},
37 {{5,11}, 11.*0.938}, {{6,12}, 12.*0.938},
38 {{6,13}, 13.*0.938}, {{6,14}, 14.*0.938},
40 {{7,15}, 15.*0.938}, {{8,16}, 16.*0.938},
41 {{8,17}, 17.*0.938}, {{8,18}, 18.*0.938},
42 {{9,19}, 19.*0.938}, {{10,20}, 20.*0.938},
43 {{10,21}, 21.*0.938}, {{10,22}, 22.*0.938},
45 {{11,23}, 23.*0.938}, {{12,24}, 24.*0.938},
46 {{12,25}, 25.*0.938}, {{12,26}, 26.*0.938},
47 {{13,26}, 26.*0.938}, {{13,27}, 27.*0.938},
48 {{14,28}, 28.*0.938}, {{14,29}, 29.*0.938},
49 {{14,30}, 30.*0.938}, {{14,32}, 32.*0.938},
51 {{16,32}, 32.*0.938}, {{16,33}, 33.*0.938},
52 {{16,34}, 34.*0.938}, {{16,36}, 36.*0.938},
53 {{17,35}, 35.*0.938}, {{17,36}, 36.*0.938},
54 {{17,37}, 37.*0.938}, {{18,36}, 36.*0.938},
55 {{18,37}, 37.*0.938}, {{18,38}, 38.*0.938},
56 {{18,40}, 40.*0.938}, {{19,39}, 39.*0.938},
57 {{19,40}, 40.*0.938}, {{19,41}, 41.*0.938},
58 {{20,40}, 40.*0.938}, {{20,41}, 41.*0.938},
59 {{20,42}, 42.*0.938}, {{20,43}, 43.*0.938},
60 {{20,44}, 44.*0.938}, {{20,46}, 46.*0.938},
61 {{20,48}, 48.*0.938}, {{21,45}, 45.*0.938},
62 {{22,44}, 44.*0.938}, {{22,46}, 46.*0.938},
63 {{22,47}, 47.*0.938}, {{22,48}, 48.*0.938},
64 {{22,49}, 49.*0.938}, {{22,50}, 50.*0.938},
65 {{23,49}, 49.*0.938}, {{23,50}, 50.*0.938},
66 {{23,51}, 51.*0.938}, {{24,50}, 50.*0.938},
67 {{24,51}, 51.*0.938}, {{24,52}, 52.*0.938},
68 {{24,53}, 53.*0.938}, {{24,54}, 54.*0.938},
69 {{25,53}, 53.*0.938}, {{25,54}, 54.*0.938},
70 {{25,55}, 55.*0.938}, {{26,54}, 54.*0.938},
71 {{26,55}, 55.*0.938}, {{26,56}, 56.*0.938},
72 {{26,57}, 57.*0.938}, {{26,58}, 58.*0.938},
73 {{26,60}, 60.*0.938}, {{27,57}, 57.*0.938},
74 {{27,59}, 59.*0.938}, {{28,56}, 56.*0.938},
75 {{28,58}, 58.*0.938}, {{28,59}, 59.*0.938},
76 {{28,60}, 60.*0.938}, {{28,61}, 61.*0.938},
77 {{28,62}, 62.*0.938}, {{28,64}, 64.*0.938}
79 void readFITS(std::string);
80 void readGALPROP(CCfits::FITS*);
81 void readDRAGON(CCfits::FITS*);
84 void rescaleWithP2(
int);
85 void modulate(
const Spectrum&,
const std::vector<Distribution>&,
int);
88 void forceField(
const Spectrum&,
double,
int);
89 void forceField(
const Spectrum&,
double);
90 void output(std::string, std::string);
91 void output(std::string,
int i);
92 void output(std::string);
93 void rescaleFlux(
double);
98 Spectrum(
const std::vector<Tproperties>&,
const std::vector<double>&);
102 void output(std::string, std::string, std::string, std::string,
int,
double);
104 std::vector<double>
getEkin()
const;
105 std::vector<Tproperties>
getSpec()
const;
110 void forceField(
int,
const Spectrum&,
double);