IAP GITLAB

Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • AirShowerPhysics/corsika
  • rulrich/corsika
  • AAAlvesJr/corsika
  • Andre/corsika
  • arrabito/corsika
  • Nikos/corsika
  • olheiser73/corsika
  • AirShowerPhysics/papers/corsika
  • pranav/corsika
9 results
Show changes
Showing
with 0 additions and 1517 deletions
/*
* (c) Copyright 2020 CORSIKA Project, corsika-project@lists.kit.edu
*
* This software is distributed under the terms of the GNU General Public
* Licence version 3 (GPL Version 3). See file LICENSE for a full version of
* the license.
*/
#pragma once
#include <corsika/process/ContinuousProcess.h>
#include <corsika/process/analytic_processors/ExecTimeImpl.h>
namespace corsika::process {
namespace analytic_processors {
namespace detail {
template <typename T>
class ExecTimeImpl;
}
/// Base for Continuous Implementation
template <class T, bool TCheck>
class Continuous;
/// Specialisation if class is not ContinuousProcess
template <class T>
class Continuous<T, false> {};
/// Specialisation if class is a ContinuousProcess
template <class T>
class Continuous<T, true> : public detail::ExecTimeImpl<T> {
private:
public:
template <typename Particle, typename Track>
EProcessReturn DoContinuous(Particle& p, Track const& t) {
this->start();
auto r = detail::ExecTimeImpl<T>::DoContinuous(p, t);
this->stop();
return r;
}
template <typename Particle, typename Track>
units::si::LengthType MaxStepLength(Particle const& p, Track const& track) const {
this->start();
auto r = T::MaxStepLength(p, track);
this->stop();
return r;
}
};
} // namespace analytic_processors
} // namespace corsika::process
\ No newline at end of file
/*
* (c) Copyright 2020 CORSIKA Project, corsika-project@lists.kit.edu
*
* This software is distributed under the terms of the GNU General Public
* Licence version 3 (GPL Version 3). See file LICENSE for a full version of
* the license.
*/
#pragma once
#include <corsika/process/DecayProcess.h>
#include <corsika/process/analytic_processors/ExecTimeImpl.h>
namespace corsika::process {
namespace analytic_processors {
namespace detail {
template <typename T>
class ExecTimeImpl;
}
/// Base for Decay Implementation
template <class T, bool TCheck>
class Decay;
/// Specialisation if class is not DecayProcess
template <class T>
class Decay<T, false> {};
/// Specialisation if class is a DecayProcess
template <class T>
class Decay<T, true> : public detail::ExecTimeImpl<T> {
private:
public:
template <typename Particle>
EProcessReturn DoDecay(Particle& p) {
this->start();
auto r = detail::ExecTimeImpl<T>::DoDecay(p);
this->stop();
return r;
}
template <typename Particle>
corsika::units::si::TimeType GetLifetime(Particle& p) {
this->start();
auto r = T::GetLifetime(p);
this->stop();
return r;
}
};
} // namespace analytic_processors
} // namespace corsika::process
\ No newline at end of file
/*
* (c) Copyright 2020 CORSIKA Project, corsika-project@lists.kit.edu
*
* This software is distributed under the terms of the GNU General Public
* Licence version 3 (GPL Version 3). See file LICENSE for a full version of
* the license.
*/
#pragma once
#include <corsika/process/InteractionProcess.h>
#include <corsika/process/analytic_processors/ExecTimeImpl.h>
namespace corsika::process {
namespace analytic_processors {
namespace detail {
template <typename T>
class ExecTimeImpl;
}
template <class T, bool TCheck>
class Interaction;
template <class T>
class Interaction<T, false> {};
template <class T>
class Interaction<T, true> : public detail::ExecTimeImpl<T> {
private:
public:
template <typename Particle>
EProcessReturn DoInteraction(Particle& p) {
this->start();
auto r = detail::ExecTimeImpl<T>::DoInteraction(p);
this->stop();
return r;
}
template <typename Particle>
corsika::units::si::GrammageType GetInteractionLength(Particle& p) {
this->start();
auto r = T::GetInteractionLength(p);
this->stop();
return r;
}
};
} // namespace analytic_processors
} // namespace corsika::process
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.