diff --git a/applications/c8_air_shower.cpp b/applications/c8_air_shower.cpp index cf6b72f2bf8ec0feb176becc0769263e58ff7e47..0837d31c409bc5905d6ffb0223fdfdbdd21dc8be 100644 --- a/applications/c8_air_shower.cpp +++ b/applications/c8_air_shower.cpp @@ -352,6 +352,8 @@ int main(int argc, char** argv) { // we make the axis much longer than the inj-core distance since the // profile will go beyond the core, depending on zenith angle ShowerAxis const showerAxis{injectionPos, (showerCore - injectionPos) * 1.2, env}; + auto const dX = 10_g / square(1_cm); //Binning of the writers along the shower axis + uint const nAxisBins = showerAxis.getMaximumX() / dX + 1; //Get maximum number of bins /* === END: CONSTRUCT GEOMETRY === */ double const emthinfrac = app["--emthin"]->as<double>(); @@ -370,7 +372,7 @@ int main(int argc, char** argv) { OutputManager output(app["--filename"]->as<std::string>(), seed, args.str(), outputDir); // register energy losses as output - EnergyLossWriter dEdX{showerAxis, 10_g / square(1_cm), 200}; + EnergyLossWriter dEdX{showerAxis, dX, nAxisBins}; output.add("energyloss", dEdX); DynamicInteractionProcess<StackType> heModel; @@ -432,7 +434,7 @@ int main(int argc, char** argv) { auto emContinuous = make_select(EMHadronSwitch(), emContinuousBethe, emContinuousProposal); - LongitudinalWriter profile{showerAxis, 200, 10_g / square(1_cm)}; + LongitudinalWriter profile{showerAxis, nAxisBins, dX}; output.add("profile", profile); LongitudinalProfile<SubWriter<decltype(profile)>> longprof{profile}; diff --git a/examples/cascade_examples/em_shower.cpp b/examples/cascade_examples/em_shower.cpp index a685d70f15e8e920e0b437eb73c8e50d039ad57c..614572bc930a80fc9f5313087e6bf03e949a2850 100644 --- a/examples/cascade_examples/em_shower.cpp +++ b/examples/cascade_examples/em_shower.cpp @@ -133,6 +133,8 @@ int main(int argc, char** argv) { ShowerAxis const showerAxis{injectionPos, (showerCore - injectionPos) * 1.02, env, false, 1000}; + auto const dX = 10_g / square(1_cm); //Binning of the writers along the shower axis + uint const nAxisBins = showerAxis.getMaximumX() / dX + 1; //Get maximum number of bins CORSIKA_LOG_INFO("Primary particle: {}", beamCode); CORSIKA_LOG_INFO("Zenith angle: {} (rad)", theta); @@ -143,7 +145,7 @@ int main(int argc, char** argv) { (showerCore - injectionPos).getNorm() * 1.02); // setup processes, decays and interactions - EnergyLossWriter energyloss{showerAxis, 10_g / square(1_cm), 200}; + EnergyLossWriter energyloss{showerAxis, dX, nAxisBins}; ParticleCut<SubWriter<decltype(energyloss)>> cut(5_MeV, 5_MeV, 100_GeV, 100_GeV, true, energyloss); @@ -165,7 +167,7 @@ int main(int argc, char** argv) { TrackWriter tracks; output.add("tracks", tracks); - LongitudinalWriter profile{showerAxis, 10_g / square(1_cm)}; + LongitudinalWriter profile{showerAxis, nAxisBins, dX}; output.add("profile", profile); LongitudinalProfile<SubWriter<decltype(profile)>> longprof{profile}; diff --git a/examples/cascade_examples/hybrid_MC.cpp b/examples/cascade_examples/hybrid_MC.cpp index b3241ffa9a39b52270aa81fb242aca9136fbb198..6d6841f56351f9e16a056dc12c3c315cfacfcb3b 100644 --- a/examples/cascade_examples/hybrid_MC.cpp +++ b/examples/cascade_examples/hybrid_MC.cpp @@ -206,6 +206,8 @@ int main(int argc, char** argv) { ShowerAxis const showerAxis{injectionPos, (showerCore - injectionPos) * 1.02, env, false, 1000}; + auto const dX = 10_g / square(1_cm); //Binning of the writers along the shower axis + uint const nAxisBins = showerAxis.getMaximumX() / dX + 1; //Get maximum number of bins CORSIKA_LOG_INFO("Primary particle: {}", beamCode); CORSIKA_LOG_INFO("Zenith angle: {} (rad)", theta); @@ -220,7 +222,7 @@ int main(int argc, char** argv) { OutputManager output("hybrid_MC_outputs"); // register energy losses as output - EnergyLossWriter dEdX{showerAxis, 10_g / square(1_cm), 200}; + EnergyLossWriter dEdX{showerAxis, dX, nAxisBins}; output.add("energyloss", dEdX); // create a track writer and register it with the output manager @@ -230,7 +232,7 @@ int main(int argc, char** argv) { ParticleCut<SubWriter<decltype(dEdX)>> cut(3_GeV, false, dEdX); BetheBlochPDG<SubWriter<decltype(dEdX)>> eLoss(dEdX); - LongitudinalWriter profile{showerAxis, 10_g / square(1_cm)}; + LongitudinalWriter profile{showerAxis, nAxisBins, dX}; output.add("profile", profile); LongitudinalProfile<SubWriter<decltype(profile)>> longprof{profile}; diff --git a/examples/cascade_examples/mars.cpp b/examples/cascade_examples/mars.cpp index f382ef11958fc3386592b0871f0ab241ce6490e0..e4c6945a8f6a8d5d07c9fefe3e1415be88861df7 100644 --- a/examples/cascade_examples/mars.cpp +++ b/examples/cascade_examples/mars.cpp @@ -303,8 +303,10 @@ int main(int argc, char** argv) { OutputManager output(app["--filename"]->as<std::string>()); ShowerAxis const showerAxis{injectionPos, (showerCore - injectionPos) * 1.2, env}; + auto const dX = 10_g / square(1_cm); //Binning of the writers along the shower axis + uint const nAxisBins = showerAxis.getMaximumX() / dX + 1; //Get maximum number of bins - EnergyLossWriter dEdX{showerAxis}; + EnergyLossWriter dEdX{showerAxis, dX, nAxisBins}; output.add("energyloss", dEdX); HEPEnergyType const emcut = 1_GeV; @@ -336,7 +338,7 @@ int main(int argc, char** argv) { auto emContinuous = make_select(EMHadronSwitch(), emContinuousBethe, emContinuousProposal); - LongitudinalWriter longprof{showerAxis}; + LongitudinalWriter longprof{showerAxis, nAxisBins, dX}; output.add("profile", longprof); LongitudinalProfile<SubWriter<decltype(longprof)>> profile{longprof}; diff --git a/examples/cascade_examples/radio_em_shower.cpp b/examples/cascade_examples/radio_em_shower.cpp index 9631ce895caeb73f2a24b798760ca190d31481a1..199946217e472e1b7fbce7f620d9aa3336f81437 100644 --- a/examples/cascade_examples/radio_em_shower.cpp +++ b/examples/cascade_examples/radio_em_shower.cpp @@ -157,6 +157,8 @@ int main(int argc, char** argv) { ShowerAxis const showerAxis{injectionPos, (showerCore - injectionPos) * 1.02, env, false, 1000}; + auto const dX = 10_g / square(1_cm); //Binning of the writers along the shower axis + uint const nAxisBins = showerAxis.getMaximumX() / dX + 1; //Get maximum number of bins // setup the radio antennas TimeType const groundHitTime{(showerCore - injectionPos).getNorm() / constants::c}; @@ -227,7 +229,7 @@ int main(int argc, char** argv) { // } // setup processes, decays and interactions - EnergyLossWriter energyloss{showerAxis, 10_g / square(1_cm), 200}; + EnergyLossWriter energyloss{showerAxis, dX, nAxisBins}; ParticleCut<SubWriter<decltype(energyloss)>> cut(5_MeV, 5_MeV, 100_GeV, 100_GeV, true, energyloss); @@ -249,7 +251,7 @@ int main(int argc, char** argv) { TrackWriter tracks; output.add("tracks", tracks); - LongitudinalWriter profile{showerAxis, 10_g / square(1_cm)}; + LongitudinalWriter profile{showerAxis, nAxisBins, dX}; output.add("profile", profile); LongitudinalProfile<SubWriter<decltype(profile)>> longprof{profile}; diff --git a/examples/cascade_examples/water.cpp b/examples/cascade_examples/water.cpp index c0f995f6370e5f3e5466f3bb27a195120efed9cb..5e398d5b5fa1089cbb91f865fa919aadff2f65d4 100644 --- a/examples/cascade_examples/water.cpp +++ b/examples/cascade_examples/water.cpp @@ -199,11 +199,13 @@ int main(int argc, char** argv) { // * longitutional profile ShowerAxis const showerAxis{injectionPos, 1.2 * injectorLength * downVec, env}; - LongitudinalWriter longiWriter{showerAxis, 5500, 1_g / square(1_cm)}; + auto const dX = 1_g / square(1_cm); //Binning of the writers along the shower axis + uint const nAxisBins = showerAxis.getMaximumX() / dX + 1; //Get maximum number of bins + LongitudinalWriter longiWriter{showerAxis, nAxisBins, dX}; LongitudinalProfile<SubWriter<decltype(longiWriter)>> longprof{longiWriter}; // * energy loss profile - EnergyLossWriter dEdX{showerAxis, 1_g / square(1_cm), 5500}; + EnergyLossWriter dEdX{showerAxis, dX, nAxisBins}; // * physical process list // particle production threshold diff --git a/examples/physics_examples/stopping_power.cpp b/examples/physics_examples/stopping_power.cpp index cbf1733ffe0c9a39af0380a4820df2bec0493975..28a9ff7f060979d905a3d6b691cc2bea7a2118a2 100644 --- a/examples/physics_examples/stopping_power.cpp +++ b/examples/physics_examples/stopping_power.cpp @@ -9,7 +9,6 @@ #include <corsika/media/Environment.hpp> #include <corsika/media/HomogeneousMedium.hpp> #include <corsika/media/IMediumModel.hpp> -#include <corsika/media/ShowerAxis.hpp> #include <corsika/framework/geometry/Sphere.hpp> #include <corsika/modules/BetheBlochPDG.hpp>