From b93be13c3a5efbcc6ad6f68461294c94a67efd55 Mon Sep 17 00:00:00 2001 From: Felix Riehn <felix@matilda> Date: Fri, 30 Nov 2018 17:44:17 +0000 Subject: [PATCH] added primitive decay step length --- Documentation/Examples/cascade_example.cc | 37 +++++++++++++++++++++-- 1 file changed, 34 insertions(+), 3 deletions(-) diff --git a/Documentation/Examples/cascade_example.cc b/Documentation/Examples/cascade_example.cc index f208cf29..b4486335 100644 --- a/Documentation/Examples/cascade_example.cc +++ b/Documentation/Examples/cascade_example.cc @@ -337,12 +337,42 @@ class ProcessDecay : public corsika::process::BaseProcess<ProcessDecay> { public: ProcessDecay() {} void Init() {} + template <typename Particle> double MinStepLength(Particle& p) const { + EnergyType E = p.GetEnergy(); + MassType m = corsika::particles::GetMass(p.GetPID()); + // env.GetDensity(); + const MassDensityType density = 1.e3 * kilogram / ( 1_cm * 1_cm * 1_cm ); + + const double gamma = E / m / constants::cSquared; + // lifetimes not implemented yet + TimeType t0; + switch( p.GetPID() ){ + case Code::PiPlus : + t0 = 1.e-5 * 1_s; + break; + + case Code::KPlus : + t0 = 1.e-5 * 1_s; + break; + + default: + t0 = 1.e8 * 1_s; + break; + } + cout << "ProcessDecay: MinStep: t0: " << t0 << endl; + cout << "ProcessDecay: MinStep: gamma: " << gamma << endl; + cout << "ProcessDecay: MinStep: density: " << density << endl; + // return as column density + const double x0 = density * t0 * gamma * constants::c / kilogram * 1_cm * 1_cm; + cout << "ProcessDecay: MinStep: x0: " << x0 << endl; + return x0; } - template <typename Particle, typename Stack> + + template <typename Particle, typename Stack> void DoDiscrete(Particle& p, Stack& s) const { - } + } template <typename Particle, typename Trajectory, typename Stack> EProcessReturn DoContinuous(Particle&, Trajectory&, Stack&) const { @@ -359,7 +389,8 @@ int main() { tracking_line::TrackingLine<setup::Stack> tracking; stack_inspector::StackInspector<setup::Stack> p0(true); ProcessSplit p1; - const auto sequence = p0 + p1; + ProcessDecay p2; + const auto sequence = p0 + p1 + p2; setup::Stack stack; corsika::cascade::Cascade EAS(tracking, sequence, stack); -- GitLab