11 #include <corsika/media/IRefractiveIndexModel.hpp> 12 #include <corsika/media/LayeredSphericalAtmosphereBuilder.hpp> 14 #include <corsika/media/NuclearComposition.hpp> 17 #include <corsika/detail/media/LayeredSphericalAtmosphereBuilder.hpp> 66 struct AtmosphereLayerParameters {
75 typedef std::array<AtmosphereLayerParameters, 5> AtmosphereParameters;
83 auto constexpr grammage(
double const v) {
return v * 1_g / (1_cm * 1_cm); }
85 std::array<AtmosphereParameters,
87 AtmosphereId::LastAtmosphere)> constexpr atmosphereParameterList{
88 {{{{4_km, grammage(1222.6562), 994186.38_cm},
89 {10_km, grammage(1144.9069), 878153.55_cm},
90 {40_km, grammage(1305.5948), 636143.04_cm},
91 {100_km, grammage(540.1778), 772170.16_cm},
92 {112.8_km, grammage(1), 1e9_cm}}},
93 {{{4_km, grammage(1173.9861), 919546_cm},
94 {10_km, grammage(1205.7625), 963267.92_cm},
95 {40_km, grammage(1386.7807), 614315_cm},
96 {100_km, grammage(555.8935), 739059.6_cm},
97 {112.8_km, grammage(1), 1e9_cm}}},
98 {{{4_km, grammage(1240.48), 933697_cm},
99 {10_km, grammage(1117.85), 765229_cm},
100 {40_km, grammage(1210.9), 636790_cm},
101 {100_km, grammage(608.2128), 733793.8_cm},
102 {112.8_km, grammage(1), 1e9_cm}}},
103 {{{4_km, grammage(1285.2782), 1088310_cm},
104 {10_km, grammage(1173.1616), 935485_cm},
105 {40_km, grammage(1320.4561), 635137_cm},
106 {100_km, grammage(680.6803), 727312.6_cm},
107 {112.8_km, grammage(1), 1e9_cm}}},
108 {{{4_km, grammage(1251.474), 1032310_cm},
109 {10_km, grammage(1173.321), 925528_cm},
110 {40_km, grammage(1307.826), 645330_cm},
111 {100_km, grammage(763.1139), 720851.4_cm},
112 {112.8_km, grammage(1), 1e9_cm}}},
113 {{{4_km, grammage(113.3362), 923077_cm},
114 {10_km, grammage(1226.5761), 1109960_cm},
115 {40_km, grammage(1382.6933), 630217_cm},
116 {100_km, grammage(685.6073), 726901.3_cm},
117 {112.8_km, grammage(1), 1e9_cm}}},
118 {{{4_km, grammage(1262.7013), 1059360_cm},
119 {10_km, grammage(1139.0249), 888814_cm},
120 {10_km, grammage(1270.2886), 639902_cm},
121 {40_km, grammage(681.4061), 727251.8_cm},
122 {112.8_km, grammage(1), 1e9_cm}}},
123 {{{4_km, grammage(1210.4), 970276_cm},
124 {10_km, grammage(1103.8629), 820946_cm},
125 {40_km, grammage(1215.3545), 639074_cm},
126 {100_km, grammage(629.7611), 731776.5_cm},
127 {112.8_km, grammage(1), 1e9_cm}}},
128 {{{4_km, grammage(1130.74), 867358_cm},
129 {10_km, grammage(1052.05), 741208_cm},
130 {40_km, grammage(1137.21), 633846_cm},
131 {100_km, grammage(442.512), 759850_cm},
132 {112.8_km, grammage(1), 5.4303203e9_cm}}},
133 {{{4_km, grammage(1183.70), 875221_cm},
134 {10_km, grammage(1108.06), 753212_cm},
135 {40_km, grammage(1424.02), 545846_cm},
136 {100_km, grammage(207.595), 793043_cm},
137 {112.8_km, grammage(1), 5.9787908e9_cm}}},
138 {{{4_km, grammage(1177.19), 861745_cm},
139 {10_km, grammage(1125.11), 765925_cm},
140 {40_km, grammage(1304.77), 581351_cm},
141 {100_km, grammage(433.823), 775155_cm},
142 {112.8_km, grammage(1), 7.4095699e9_cm}}},
143 {{{4_km, grammage(1139.99), 861913_cm},
144 {10_km, grammage(1073.82), 744955_cm},
145 {40_km, grammage(1052.96), 675928_cm},
146 {100_km, grammage(492.503), 829627_cm},
147 {112.8_km, grammage(1), 5.8587010e9_cm}}},
148 {{{2.67_km, grammage(1133.10), 861730_cm},
149 {5.33_km, grammage(1101.20), 826340_cm},
150 {8_km, grammage(1085.00), 790950_cm},
151 {100_km, grammage(1098.00), 682800_cm},
152 {112.8_km, grammage(1), 26798156e9_cm}}},
153 {{{6.67_km, grammage(1079.00), 764170_cm},
154 {13.33_km, grammage(1071.90), 699910_cm},
155 {20_km, grammage(1182.00), 635650_cm},
156 {100_km, grammage(1647.10), 551010_cm},
157 {112.8_km, grammage(1), 59.329575e9_cm}}},
158 {{{8_km, grammage(1198.5972), 945766.30_cm},
159 {18.1_km, grammage(1198.8796), 681780.12_cm},
160 {34.5_km, grammage(1419.4152), 620224.52_cm},
161 {100_km, grammage(730.6380), 728157.92_cm},
162 {112.8_km, grammage(1), 1e9_cm}}},
163 {{{8.3_km, grammage(1179.5010), 939228.66_cm},
164 {12.9_km, grammage(1172.4883), 787969.34_cm},
165 {34_km, grammage(1437.4911), 620008.53_cm},
166 {100_km, grammage(761.3281), 724585.33_cm},
167 {112.8_km, grammage(1), 1e9_cm}}},
168 {{{5.9_km, grammage(1202.8804), 977139.52_cm},
169 {12.0_km, grammage(1148.6275), 858087.01_cm},
170 {34.5_km, grammage(1432.0312), 614451.60_cm},
171 {100_km, grammage(696.42788), 730875.73_cm},
172 {112.8_km, grammage(1), 1e9_cm}}},
173 {{{9_km, grammage(1175.3347), 986169.72_cm},
174 {14.6_km, grammage(1180.3694), 793171.45_cm},
175 {33_km, grammage(1614.5404), 600120.95_cm},
176 {100_km, grammage(755.56438), 725247.87_cm},
177 {112.8_km, grammage(1), 1e9_cm}}},
178 {{{8_km, grammage(1196.9290), 985241.1_cm},
179 {13_km, grammage(1173.2537), 819245.00_cm},
180 {33.5_km, grammage(1502.1837), 611220.86_cm},
181 {100_km, grammage(750.89704), 725797.06_cm},
182 {112.8_km, grammage(1), 1e9_cm}}},
183 {{{7_km, grammage(1183.6071), 954248.34_cm},
184 {11.4_km, grammage(1143.0425), 800005.34_cm},
185 {37_km, grammage(1322.9748), 629568.93_cm},
186 {100_km, grammage(655.67307), 737521.77_cm},
187 {112.8_km, grammage(1), 1e9_cm}}}}};
202 template <
typename TEnvironmentInterface,
204 typename TEnvironment,
typename... TArgs>
206 Point const& center, TArgs... args);
210 {Code::Nitrogen, Code::Oxygen, Code::Argon}, {0.78479, .21052, 0.00469}};
214 #include <corsika/detail/media/CORSIKA7Atmospheres.inl>
`, since they are used everywhere as integral part of the framework.
AtmosphereId
Atmosphere Ids following the CORSIKA 7 5-layered atmosphere models.
Describes the composition of matter Allowes and handles the creation of custom matter compositions...
void create_5layer_atmosphere(TEnvironment &env, AtmosphereId const atmId, Point const ¢er, TArgs... args)
Function to create a CORSIKA 7 5-layer atmosphere.