diff --git a/Stack/DummyStack/testDummyStack.cc b/Stack/DummyStack/testDummyStack.cc deleted file mode 100644 index 41a5731589d0909405f11de46188784eb9fa710b..0000000000000000000000000000000000000000 --- a/Stack/DummyStack/testDummyStack.cc +++ /dev/null @@ -1,41 +0,0 @@ -/* - * (c) Copyright 2018 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. - */ - -#include <corsika/stack/dummy/DummyStack.h> - -using namespace corsika; -using namespace corsika::stack; - -#include <catch2/catch.hpp> - -#include <tuple> - -TEST_CASE("DummyStack", "[stack]") { - - using TestStack = dummy::DummyStack; - - dummy::NoData noData; - - SECTION("write node") { - - TestStack s; - s.AddParticle(std::tuple<dummy::NoData>{noData}); - CHECK(s.getEntries() == 1); - } - - SECTION("stack fill and cleanup") { - - TestStack s; - // add 99 particles, each 10th particle is a nucleus with A=i and Z=A/2! - for (int i = 0; i < 99; ++i) { s.AddParticle(std::tuple<dummy::NoData>{noData}); } - - CHECK(s.getEntries() == 99); - for (int i = 0; i < 99; ++i) s.GetNextParticle().Delete(); - CHECK(s.getEntries() == 0); - } -} diff --git a/Stack/GeometryNodeStackExtension/CMakeLists.txt b/Stack/GeometryNodeStackExtension/CMakeLists.txt deleted file mode 100644 index 8d7a3c7d06606e871892cf99b9bc37a7b9a8bbad..0000000000000000000000000000000000000000 --- a/Stack/GeometryNodeStackExtension/CMakeLists.txt +++ /dev/null @@ -1,38 +0,0 @@ -set (GeometryNodeStackExtension_HEADERS GeometryNodeStackExtension.h) -set (GeometryNodeStackExtension_NAMESPACE corsika/stack/node) - -add_library (GeometryNodeStackExtension INTERFACE) - -CORSIKA_COPY_HEADERS_TO_NAMESPACE (GeometryNodeStackExtension ${GeometryNodeStackExtension_NAMESPACE} ${GeometryNodeStackExtension_HEADERS}) - -target_link_libraries ( - GeometryNodeStackExtension - INTERFACE - CORSIKAstackinterface - CORSIKAunits - CORSIKAparticles - CORSIKAgeometry - ) - -target_include_directories ( - GeometryNodeStackExtension - INTERFACE - $<BUILD_INTERFACE:${PROJECT_BINARY_DIR}/include> - $<INSTALL_INTERFACE:include> - ) - -install ( - FILES - ${GeometryNodeStackExtension_HEADERS} - DESTINATION - include/${GeometryNodeStackExtension_NAMESPACE} - ) - -# ---------------- -# code unit testing - CORSIKA_ADD_TEST(testGeometryNodeStackExtension) - target_link_libraries ( - testGeometryNodeStackExtension - GeometryNodeStackExtension - CORSIKAtesting - ) diff --git a/Stack/GeometryNodeStackExtension/GeometryNodeStackExtension.h b/Stack/GeometryNodeStackExtension/GeometryNodeStackExtension.h deleted file mode 100644 index d33997b8eecddca3d53be9fd4f1f7b1b95ad4835..0000000000000000000000000000000000000000 --- a/Stack/GeometryNodeStackExtension/GeometryNodeStackExtension.h +++ /dev/null @@ -1,99 +0,0 @@ -/* - * (c) Copyright 2018 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/logging/Logging.h> -#include <corsika/stack/Stack.h> - -#include <tuple> -#include <utility> -#include <vector> - -namespace corsika::stack::node { - - /** - * @class GeometryDataInterface - * - * corresponding defintion of a stack-readout object, the iteractor - * dereference operator will deliver access to these function - // defintion of a stack-readout object, the iteractor dereference - // operator will deliver access to these function - */ - template <typename T, typename TEnvType> - class GeometryDataInterface : public T { - - protected: - using T::GetStack; - using T::GetStackData; - - public: - using T::GetIndex; - using BaseNodeType = typename TEnvType::BaseNodeType; - - public: - // default version for particle-creation from input data - void SetParticleData(const std::tuple<BaseNodeType const*> v) { - SetNode(std::get<0>(v)); - } - void SetParticleData(GeometryDataInterface& parent, - const std::tuple<BaseNodeType const*>) { - SetNode(parent.GetNode()); // copy Node from parent particle! - } - void SetParticleData() { SetNode(nullptr); } - void SetParticleData(GeometryDataInterface& parent) { - SetNode(parent.GetNode()); // copy Node from parent particle! - } - - std::string as_string() const { return fmt::format("node={}", fmt::ptr(GetNode())); } - - void SetNode(BaseNodeType const* v) { GetStackData().SetNode(GetIndex(), v); } - BaseNodeType const* GetNode() const { return GetStackData().GetNode(GetIndex()); } - }; - - // definition of stack-data object to store geometry information - template <typename TEnvType> - - /** - * @class GeometryData - * - * definition of stack-data object to store geometry information - */ - class GeometryData { - - public: - using BaseNodeType = typename TEnvType::BaseNodeType; - - // these functions are needed for the Stack interface - void Clear() { fNode.clear(); } - unsigned int GetSize() const { return fNode.size(); } - unsigned int GetCapacity() const { return fNode.size(); } - void Copy(const int i1, const int i2) { fNode[i2] = fNode[i1]; } - void Swap(const int i1, const int i2) { std::swap(fNode[i1], fNode[i2]); } - - // custom data access function - void SetNode(const int i, BaseNodeType const* v) { fNode[i] = v; } - BaseNodeType const* GetNode(const int i) const { return fNode[i]; } - - // these functions are also needed by the Stack interface - void IncrementSize() { fNode.push_back(nullptr); } - void DecrementSize() { - if (fNode.size() > 0) { fNode.pop_back(); } - } - - // custom private data section - private: - std::vector<const BaseNodeType*> fNode; - }; - - template <typename T, typename TEnv> - struct MakeGeometryDataInterface { - typedef GeometryDataInterface<T, TEnv> type; - }; - -} // namespace corsika::stack::node diff --git a/Stack/GeometryNodeStackExtension/testGeometryNodeStackExtension.cc b/Stack/GeometryNodeStackExtension/testGeometryNodeStackExtension.cc deleted file mode 100644 index b566c2c8ebed2848b243a28bd0b21b28219fcfc1..0000000000000000000000000000000000000000 --- a/Stack/GeometryNodeStackExtension/testGeometryNodeStackExtension.cc +++ /dev/null @@ -1,90 +0,0 @@ -/* - * (c) Copyright 2018 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. - */ - -#include <corsika/stack/CombinedStack.h> -#include <corsika/stack/dummy/DummyStack.h> -#include <corsika/stack/node/GeometryNodeStackExtension.h> - -using namespace corsika; -using namespace corsika::stack; - -#include <catch2/catch.hpp> - -#include <iostream> -using namespace std; - -// this is our dummy environment, it only knows its trivial BaseNodeType -class DummyEnv { -public: - typedef int BaseNodeType; -}; - -// the GeometryNode stack needs to know the type of geometry-nodes from the DummyEnv: -template <typename TStackIter> -using DummyGeometryDataInterface = - typename corsika::stack::node::MakeGeometryDataInterface<TStackIter, DummyEnv>::type; - -// combine dummy stack with geometry information for tracking -template <typename TStackIter> -using StackWithGeometryInterface = - corsika::stack::CombinedParticleInterface<dummy::DummyStack::MPIType, - DummyGeometryDataInterface, TStackIter>; - -using TestStack = - corsika::stack::CombinedStack<typename stack::dummy::DummyStack::StackImpl, - stack::node::GeometryData<DummyEnv>, - StackWithGeometryInterface>; - -TEST_CASE("GeometryNodeStackExtension", "[stack]") { - - dummy::NoData noData; - - SECTION("write node") { - - const int data = 5; - - TestStack s; - s.AddParticle(std::make_tuple(noData), std::tuple<const int*>{&data}); - - CHECK(s.getEntries() == 1); - } - - SECTION("write/read node") { - const int data = 15; - - TestStack s; - auto p = s.AddParticle(std::make_tuple(noData)); - p.SetNode(&data); - CHECK(s.getEntries() == 1); - - const auto pout = s.GetNextParticle(); - CHECK(*(pout.GetNode()) == 15); - } - - SECTION("stack fill and cleanup") { - - const int data = 16; - - TestStack s; - // add 99 particles, each 10th particle is a nucleus with A=i and Z=A/2! - for (int i = 0; i < 99; ++i) { - auto p = s.AddParticle(std::tuple<dummy::NoData>{noData}); - p.SetNode(&data); - } - - CHECK(s.getEntries() == 99); - double v = 0; - for (int i = 0; i < 99; ++i) { - auto p = s.GetNextParticle(); - v += *(p.GetNode()); - p.Delete(); - } - CHECK(v == 99 * data); - CHECK(s.getEntries() == 0); - } -} diff --git a/Stack/History/CMakeLists.txt b/Stack/History/CMakeLists.txt deleted file mode 100644 index 2a47b86189bef946269e8f2815a51b2cfcf171f6..0000000000000000000000000000000000000000 --- a/Stack/History/CMakeLists.txt +++ /dev/null @@ -1,69 +0,0 @@ -set ( - HISTORY_HEADERS - EventType.hpp - Event.hpp - HistorySecondaryProducer.hpp - HistoryObservationPlane.hpp - HistoryStackExtension.hpp - SecondaryParticle.hpp - ) - -set ( - HISTORY_NAMESPACE - corsika/stack/history - ) - -if (WITH_HISTORY) - set ( - HISTORY_SOURCES - HistoryObservationPlane.cpp - ) - add_library (CORSIKAhistory STATIC ${HISTORY_SOURCES}) - set (IS_INTERFACE "") -else (WITH_HISTORY) - add_library (CORSIKAhistory INTERFACE) - set (IS_INTERFACE "INTERFACE") -endif (WITH_HISTORY) - -CORSIKA_COPY_HEADERS_TO_NAMESPACE (CORSIKAhistory ${HISTORY_NAMESPACE} ${HISTORY_HEADERS}) - -target_link_libraries ( - CORSIKAhistory - ${IS_INTERFACE} - CORSIKAparticles - CORSIKAgeometry - CORSIKAprocesssequence # for HistoryObservationPlane - CORSIKAsetup # for HistoryObservationPlane - CORSIKAlogging - SuperStupidStack - NuclearStackExtension # for testHistoryView.cc - C8::ext::boost # for HistoryObservationPlane - ) - -target_include_directories ( - CORSIKAhistory - INTERFACE - $<BUILD_INTERFACE:${PROJECT_BINARY_DIR}/include> - $<INSTALL_INTERFACE:include/include> - ) - -install ( - FILES ${HISTORY_HEADERS} - DESTINATION include/${HISTORY_NAMESPACE} - ) - -# ---------------- -# code unit testing -CORSIKA_ADD_TEST(testHistoryStack) -target_link_libraries ( - testHistoryStack - CORSIKAhistory - CORSIKAtesting - DummyStack - ) -CORSIKA_ADD_TEST(testHistoryView) -target_link_libraries ( - testHistoryView - CORSIKAhistory - CORSIKAtesting - ) diff --git a/Stack/History/Event.hpp b/Stack/History/Event.hpp deleted file mode 100644 index 901d9db8f7c327f1ff4dab9f931114a5a1dc7b69..0000000000000000000000000000000000000000 --- a/Stack/History/Event.hpp +++ /dev/null @@ -1,68 +0,0 @@ -/* - * (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/logging/Logging.h> -#include <corsika/particles/ParticleProperties.h> -#include <corsika/stack/history/EventType.hpp> -#include <corsika/stack/history/SecondaryParticle.hpp> - -#include <memory> -#include <optional> -#include <vector> - -namespace corsika::history { - - class Event; - using EventPtr = std::shared_ptr<history::Event>; - - class Event { - - size_t projectile_index_ = 0; //!< index of projectile on stack - std::vector<SecondaryParticle> secondaries_; - EventPtr parent_event_; - - EventType type_ = EventType::Uninitialized; - - std::optional<corsika::particles::Code> targetCode_; - - public: - Event() = default; - - void setParentEvent(EventPtr const& evt) { parent_event_ = evt; } - - bool hasParentEvent() const { return bool(parent_event_); } - EventPtr& parentEvent() { return parent_event_; } - EventPtr const& parentEvent() const { return parent_event_; } - - void setProjectileIndex(size_t i) { projectile_index_ = i; } - size_t projectileIndex() const { return projectile_index_; } - - size_t addSecondary(units::si::HEPEnergyType energy, - geometry::Vector<units::si::hepmomentum_d> const& momentum, - particles::Code pid) { - secondaries_.emplace_back(energy, momentum, pid); - return secondaries_.size() - 1; - } - - std::vector<SecondaryParticle> const& secondaries() const { return secondaries_; } - - void setTargetCode(const particles::Code t) { targetCode_ = t; } - - std::string as_string() const { - return fmt::format("hasParent={}, projIndex={}, Nsec={}", hasParentEvent(), - projectile_index_, secondaries_.size()); - } - - EventType eventType() const { return type_; } - - void setEventType(EventType t) { type_ = t; } - }; - -} // namespace corsika::history diff --git a/Stack/History/EventType.hpp b/Stack/History/EventType.hpp deleted file mode 100644 index 4781d5c64c085684a8ea139abda2aa856b56cd66..0000000000000000000000000000000000000000 --- a/Stack/History/EventType.hpp +++ /dev/null @@ -1,13 +0,0 @@ -/* - * (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 - -namespace corsika::history { - enum class EventType { Uninitialized, Interaction, Decay }; -} diff --git a/Stack/History/HistoryObservationPlane.cpp b/Stack/History/HistoryObservationPlane.cpp deleted file mode 100644 index 6a8c94ec7d9e33686383dadf479ef56e413d5522..0000000000000000000000000000000000000000 --- a/Stack/History/HistoryObservationPlane.cpp +++ /dev/null @@ -1,85 +0,0 @@ -/* - * (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. - */ - -#include <corsika/logging/Logging.h> -#include <corsika/stack/history/HistoryObservationPlane.hpp> - -#include <boost/histogram/ostream.hpp> - -#include <iomanip> -#include <iostream> - -using namespace corsika::units::si; -using namespace corsika::history; -using namespace corsika; - -HistoryObservationPlane::HistoryObservationPlane(setup::Stack const& stack, - geometry::Plane const& obsPlane, - bool deleteOnHit) - : stack_{stack} - , plane_{obsPlane} - , deleteOnHit_{deleteOnHit} {} - -corsika::process::EProcessReturn HistoryObservationPlane::DoContinuous( - setup::Stack::ParticleType const& particle, setup::Trajectory const& trajectory) { - TimeType const timeOfIntersection = - (plane_.GetCenter() - trajectory.GetLine().GetR0()).dot(plane_.GetNormal()) / - trajectory.GetLine().GetV0().dot(plane_.GetNormal()); - - if (timeOfIntersection < TimeType::zero()) { return process::EProcessReturn::eOk; } - - if (plane_.IsAbove(trajectory.GetLine().GetR0()) == - plane_.IsAbove(trajectory.GetPosition(1))) { - return process::EProcessReturn::eOk; - } - - C8LOG_DEBUG(fmt::format("HistoryObservationPlane: Particle detected: pid={}", - particle.GetPID())); - - auto const pid = particle.GetPID(); - if (particles::IsMuon(pid)) { fillHistoryHistogram(particle); } - - if (deleteOnHit_) { - return process::EProcessReturn::eParticleAbsorbed; - } else { - return process::EProcessReturn::eOk; - } -} - -LengthType HistoryObservationPlane::MaxStepLength(setup::Stack::ParticleType const&, - setup::Trajectory const& trajectory) { - TimeType const timeOfIntersection = - (plane_.GetCenter() - trajectory.GetLine().GetR0()).dot(plane_.GetNormal()) / - trajectory.GetLine().GetV0().dot(plane_.GetNormal()); - - if (timeOfIntersection < TimeType::zero()) { - return std::numeric_limits<double>::infinity() * 1_m; - } - - auto const pointOfIntersection = trajectory.GetLine().GetPosition(timeOfIntersection); - return (trajectory.GetLine().GetR0() - pointOfIntersection).norm() * 1.0001; -} - -void HistoryObservationPlane::fillHistoryHistogram( - setup::Stack::ParticleType const& muon) { - double const muon_energy = muon.GetEnergy() / 1_GeV; - - int genctr{0}; - Event const* event = muon.GetEvent().get(); - while (event) { - auto const projectile = stack_.cfirst() + event->projectileIndex(); - if (event->eventType() == EventType::Interaction) { - genctr++; - double const projEnergy = projectile.GetEnergy() / 1_GeV; - int const pdg = static_cast<int>(particles::GetPDG(projectile.GetPID())); - - histogram_(muon_energy, projEnergy, pdg); - } - event = event->parentEvent().get(); // projectile.GetEvent().get(); - } -} diff --git a/Stack/History/HistoryObservationPlane.hpp b/Stack/History/HistoryObservationPlane.hpp deleted file mode 100644 index fb67ca7f9b8897cb6d6f2b11c6ce02101a5ea653..0000000000000000000000000000000000000000 --- a/Stack/History/HistoryObservationPlane.hpp +++ /dev/null @@ -1,60 +0,0 @@ -/* - * (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/geometry/Plane.h> -#include <corsika/process/ContinuousProcess.h> -#include <corsika/setup/SetupStack.h> -#include <corsika/setup/SetupTrajectory.h> -#include <corsika/units/PhysicalUnits.h> - -#include <boost/histogram.hpp> - -#include <functional> - -namespace corsika::history { - namespace detail { - inline auto hist_factory() { - namespace bh = boost::histogram; - namespace bha = bh::axis; - auto h = bh::make_histogram( - bha::regular<float, bha::transform::log>{11 * 5, 1e0, 1e11, "muon energy"}, - bha::regular<float, bha::transform::log>{11 * 5, 1e0, 1e11, - "projectile energy"}, - bha::category<int, bh::use_default, bha::option::growth_t>{ - {211, -211, 2212, -2212}, "projectile PDG"}); - return h; - } - } // namespace detail - - class HistoryObservationPlane - : public corsika::process::ContinuousProcess<HistoryObservationPlane> { - public: - HistoryObservationPlane(setup::Stack const&, geometry::Plane const&, bool = true); - - corsika::units::si::LengthType MaxStepLength( - corsika::setup::Stack::ParticleType const&, - corsika::setup::Trajectory const& vTrajectory); - - corsika::process::EProcessReturn DoContinuous( - corsika::setup::Stack::ParticleType const& vParticle, - corsika::setup::Trajectory const& vTrajectory); - - auto const& histogram() const { return histogram_; } - - private: - void fillHistoryHistogram(setup::Stack::ParticleType const&); - - setup::Stack const& stack_; - geometry::Plane const plane_; - bool const deleteOnHit_; - - decltype(detail::hist_factory()) histogram_ = detail::hist_factory(); - }; -} // namespace corsika::history diff --git a/Stack/History/HistorySecondaryProducer.hpp b/Stack/History/HistorySecondaryProducer.hpp deleted file mode 100644 index 792a83d9538ee742c75b4474b1399edfd6139645..0000000000000000000000000000000000000000 --- a/Stack/History/HistorySecondaryProducer.hpp +++ /dev/null @@ -1,59 +0,0 @@ -/* - * (c) Copyright 2018 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/stack/SecondaryView.h> -#include <corsika/stack/history/Event.hpp> - -#include <corsika/logging/Logging.h> - -#include <boost/type_index.hpp> - -#include <memory> -#include <type_traits> -#include <utility> - -namespace corsika::history { - - //! mix-in class for SecondaryView that fills secondaries into an \class Event - template <class T1, template <class> class T2> - class HistorySecondaryProducer { - public: - EventPtr event_; - static bool constexpr has_event{true}; - - public: - template <typename Particle> - HistorySecondaryProducer(Particle const& p) - : event_{std::make_shared<Event>()} { - C8LOG_TRACE("HistorySecondaryProducer::HistorySecondaryProducer"); - event_->setProjectileIndex(p.GetIndex()); - event_->setParentEvent(p.GetEvent()); - } - - /** - * Method is called after a new Secondary has been created on the - * SecondaryView. Extra logic can be introduced here. - * - * The input Particle is the new secondary that was produced and - * is of course a reference into the SecondaryView itself. - */ - template <typename Particle> - auto new_secondary(Particle& sec) { - C8LOG_TRACE("HistorySecondaryProducer::new_secondary(sec)"); - - // store particles at production time in Event here - auto const sec_index = - event_->addSecondary(sec.GetEnergy(), sec.GetMomentum(), sec.GetPID()); - sec.SetParentEventIndex(sec_index); - sec.SetEvent(event_); - } - }; - -} // namespace corsika::history diff --git a/Stack/History/HistoryStackExtension.hpp b/Stack/History/HistoryStackExtension.hpp deleted file mode 100644 index 67a38b79617b8a5a5dca62fa6485ff17926f927a..0000000000000000000000000000000000000000 --- a/Stack/History/HistoryStackExtension.hpp +++ /dev/null @@ -1,139 +0,0 @@ -/* - * (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/logging/Logging.h> -#include <corsika/stack/Stack.h> - -#include <memory> -#include <utility> -#include <vector> - -namespace corsika::history { - - /** - * @class HistoryData - * - * definition of stack-data object to store history information this - * is vector with shared_ptr<TEvent>, where TEvent is a free - * template parameter for customization. - */ - template <typename TEvent> - class HistoryData { - using EventPtr = - std::shared_ptr<TEvent>; //!< Pointer to the event where this particle was created - using ParentEventIndex = int; //!< index to TEvent::secondaries_ - using DataType = std::pair<EventPtr, ParentEventIndex>; - - public: - // these functions are needed for the Stack interface - void Clear() { historyData_.clear(); } - unsigned int GetSize() const { return historyData_.size(); } - unsigned int GetCapacity() const { return historyData_.size(); } - void Copy(const int i1, const int i2) { historyData_[i2] = historyData_[i1]; } - void Swap(const int i1, const int i2) { - std::swap(historyData_[i1], historyData_[i2]); - } - - // custom data access function - void SetEvent(const int i, EventPtr v) { historyData_[i].first = std::move(v); } - const EventPtr& GetEvent(const int i) const { return historyData_[i].first; } - EventPtr& GetEvent(const int i) { return historyData_[i].first; } - - void SetParentEventIndex(const int i, ParentEventIndex v) { - historyData_[i].second = std::move(v); - } - ParentEventIndex GetParentEventIndex(const int i) const { - return historyData_[i].second; - } - - // these functions are also needed by the Stack interface - void IncrementSize() { historyData_.push_back(DataType{}); } - void DecrementSize() { - if (historyData_.size() > 0) { historyData_.pop_back(); } - } - - // custom private data section - private: - std::vector<DataType> historyData_; - }; - - /** - * @class HistoryDataInterface - * - * corresponding defintion of a stack-readout object, the iteractor - * dereference operator will deliver access to these function - // defintion of a stack-readout object, the iteractor dereference - // operator will deliver access to these function - */ - template <typename T, typename TEvent> - class HistoryDataInterface : public T { - protected: - using T::GetStack; - using T::GetStackData; - - public: - using T::GetIndex; - - public: - // create a new particle from scratch - void SetParticleData() { - C8LOG_TRACE("HistoyDatatInterface::SetParticleData()"); - GetStackData().SetParentEventIndex(GetIndex(), -1); - } - - // create a new particle as secondary of a parent - void SetParticleData(HistoryDataInterface& /*parent*/) { - C8LOG_TRACE("HistoyDatatInterface::SetParticleData(parnt)"); - SetParticleData(); - } - - void SetEvent(const std::shared_ptr<TEvent>& v) { - GetStackData().SetEvent(GetIndex(), v); - } - - void SetParentEventIndex(int index) { - GetStackData().SetParentEventIndex(GetIndex(), index); - } - - std::shared_ptr<TEvent> GetEvent() const { - return GetStackData().GetEvent(GetIndex()); - } - - int GetParentEventIndex() const { - return GetStackData().GetParentEventIndex(GetIndex()); - } - - std::string as_string() const { - return fmt::format("i_parent={}, [evt: {}]", GetParentEventIndex(), - (bool(GetEvent()) ? GetEvent()->as_string() : "n/a")); - } - }; - - template <typename T, typename TEvent> - struct MakeHistoryDataInterface { - typedef HistoryDataInterface<T, TEvent> type; - }; - -} // namespace corsika::history - -// for user-friendlyness we create the HistoryDataInterface type -// with the histoy::Event data content right here: - -#include <corsika/stack/history/Event.hpp> - -namespace corsika::history { - - template <typename TStackIter> - using HistoryEventDataInterface = - typename history::MakeHistoryDataInterface<TStackIter, history::Event>::type; - - using HistoryEventData = history::HistoryData<history::Event>; - -} // namespace corsika::history diff --git a/Stack/History/SecondaryParticle.hpp b/Stack/History/SecondaryParticle.hpp deleted file mode 100644 index 249ea95bf97dec8313621e7d69a05ca4646db115..0000000000000000000000000000000000000000 --- a/Stack/History/SecondaryParticle.hpp +++ /dev/null @@ -1,37 +0,0 @@ -/* - * (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/geometry/Vector.h> -#include <corsika/particles/ParticleProperties.h> -#include <corsika/units/PhysicalUnits.h> - -#include <vector> - -namespace corsika::history { - - /** - * This class stores the non-common properties of secondaries in an event. All - * other (common) properties are available via the event itself or its projectile. - */ - struct SecondaryParticle { - units::si::HEPEnergyType const energy_; - geometry::Vector<units::si::hepmomentum_d> const momentum_; - particles::Code const pid_; - - public: - SecondaryParticle(units::si::HEPEnergyType energy, - geometry::Vector<units::si::hepmomentum_d> momentum, - particles::Code pid) - : energy_{energy} - , momentum_{momentum} - , pid_{pid} {} - }; - -} // namespace corsika::history diff --git a/Stack/History/testHistoryStack.cc b/Stack/History/testHistoryStack.cc deleted file mode 100644 index c068bdb6942ed57bcd705b8b001d8293267ce383..0000000000000000000000000000000000000000 --- a/Stack/History/testHistoryStack.cc +++ /dev/null @@ -1,66 +0,0 @@ -/* - * (c) Copyright 2018 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. - */ - -#include <corsika/stack/CombinedStack.h> -#include <corsika/stack/dummy/DummyStack.h> -#include <corsika/stack/history/HistoryStackExtension.hpp> - -#include <catch2/catch.hpp> - -using namespace corsika; -using namespace corsika::stack; - -// this is our dummy environment, it only knows its trivial BaseNodeType -class DummyEvent { -private: - size_t parent_; - std::vector<int> secondaries_; - -public: - DummyEvent() {} - DummyEvent(const size_t parent) { parent_ = parent; } - - size_t getParentIndex() { return parent_; } - void addSecondary(const int particle) { secondaries_.push_back(particle); } - int multiplicity() const { return secondaries_.size(); } -}; - -// the GeometryNode stack needs to know the type of geometry-nodes from the DummyEnv: -template <typename TStackIter> -using DummyHistoryDataInterface = - typename history::MakeHistoryDataInterface<TStackIter, DummyEvent>::type; - -// combine dummy stack with geometry information for tracking -template <typename TStackIter> -using StackWithHistoryInterface = - corsika::stack::CombinedParticleInterface<dummy::DummyStack::MPIType, - DummyHistoryDataInterface, TStackIter>; - -using TestStack = - corsika::stack::CombinedStack<typename stack::dummy::DummyStack::StackImpl, - history::HistoryData<DummyEvent>, - StackWithHistoryInterface>; - -using EvtPtr = std::shared_ptr<DummyEvent>; - -TEST_CASE("HistoryStackExtension", "[stack]") { - - logging::SetLevel(logging::level::debug); - - const dummy::NoData noData; - TestStack s; - - auto p = s.AddParticle(std::tuple<dummy::NoData>{noData}); - - SECTION("add lone particle") { - CHECK(s.getEntries() == 1); - - EvtPtr evt = p.GetEvent(); - CHECK(evt == nullptr); - } -} diff --git a/Stack/History/testHistoryView.cc b/Stack/History/testHistoryView.cc deleted file mode 100644 index 588537198209b498af7358e27838fc3540c30590..0000000000000000000000000000000000000000 --- a/Stack/History/testHistoryView.cc +++ /dev/null @@ -1,221 +0,0 @@ -/* - * (c) Copyright 2018 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. - */ - -#include <corsika/stack/history/Event.hpp> -#include <corsika/stack/history/HistorySecondaryProducer.hpp> -#include <corsika/stack/history/HistoryStackExtension.hpp> - -#include <corsika/stack/CombinedStack.h> -#include <corsika/stack/dummy/DummyStack.h> -#include <corsika/stack/nuclear_extension/NuclearStackExtension.h> - -#include <corsika/logging/Logging.h> - -#include <catch2/catch.hpp> - -using namespace corsika; -using namespace corsika::geometry; -using namespace corsika::units::si; - -/** - Need to replicate setup::SetupStack in a maximally simplified - way, but with real particle data - */ - -// combine dummy stack with geometry information for tracking -template <typename TStackIter> -using StackWithHistoryInterface = corsika::stack::CombinedParticleInterface< - stack::nuclear_extension::ParticleDataStack::MPIType, - history::HistoryEventDataInterface, TStackIter>; - -using TestStack = corsika::stack::CombinedStack< - typename stack::nuclear_extension::ParticleDataStack::StackImpl, - history::HistoryEventData, StackWithHistoryInterface>; - -/* - See Issue 161 - - unfortunately clang does not support this in the same way (yet) as - gcc, so we have to distinguish here. If clang cataches up, we - could remove the clang branch here and also in - corsika::Cascade. The gcc code is much more generic and - universal. If we could do the gcc version, we won't had to define - StackView globally, we could do it with MakeView whereever it is - actually needed. Keep an eye on this! - */ -#if defined(__clang__) -using TheTestStackView = corsika::stack::SecondaryView<typename TestStack::StackImpl, - StackWithHistoryInterface, - history::HistorySecondaryProducer>; -#elif defined(__GNUC__) || defined(__GNUG__) -using TheTestStackView = - corsika::stack::MakeView<TestStack, history::HistorySecondaryProducer>::type; -#endif - -using TestStackView = TheTestStackView; - -template <typename Event> -int count_generations(Event const* event) { - int genCounter = 0; - while (event) { - event = event->parentEvent().get(); - genCounter++; - } - - return genCounter; -} - -TEST_CASE("HistoryStackExtension", "[stack]") { - - logging::SetLevel(logging::level::debug); - - geometry::CoordinateSystem& dummyCS = - geometry::RootCoordinateSystem::GetInstance().GetRootCoordinateSystem(); - - // in this test we only use one singel stack ! - TestStack stack; - - // add primary particle - auto p0 = stack.AddParticle( - std::make_tuple(particles::Code::Electron, 1.5_GeV, - corsika::stack::MomentumVector(dummyCS, {1_GeV, 1_GeV, 1_GeV}), - Point(dummyCS, {1 * meter, 1 * meter, 1 * meter}), 100_s)); - - CHECK(stack.getEntries() == 1); - corsika::history::EventPtr evt = p0.GetEvent(); - CHECK(evt == nullptr); - CHECK(count_generations(evt.get()) == 0); - - SECTION("interface test, view") { - - // add secondaries, 1st generation - TestStackView hview0(p0); - - auto const ev0 = p0.GetEvent(); - CHECK(ev0 == nullptr); - - C8LOG_DEBUG("loop VIEW"); - - // add 5 secondaries - for (int i = 0; i < 5; ++i) { - auto sec = hview0.AddSecondary( - std::make_tuple(particles::Code::Electron, 1.5_GeV, - corsika::stack::MomentumVector(dummyCS, {1_GeV, 1_GeV, 1_GeV}), - Point(dummyCS, {1 * meter, 1 * meter, 1 * meter}), 100_s)); - - CHECK(sec.GetParentEventIndex() == i); - CHECK(sec.GetEvent() != nullptr); - CHECK(sec.GetEvent()->parentEvent() == nullptr); - CHECK(count_generations(sec.GetEvent().get()) == 1); - } - - // read 1st genertion particle particle - auto p1 = stack.GetNextParticle(); - CHECK(count_generations(p1.GetEvent().get()) == 1); - - TestStackView hview1(p1); - - auto const ev1 = p1.GetEvent(); - - // add second generation of secondaries - // add 10 secondaries - for (int i = 0; i < 10; ++i) { - auto sec = hview1.AddSecondary( - std::make_tuple(particles::Code::Electron, 1.5_GeV, - corsika::stack::MomentumVector(dummyCS, {1_GeV, 1_GeV, 1_GeV}), - Point(dummyCS, {1 * meter, 1 * meter, 1 * meter}), 100_s)); - - CHECK(sec.GetParentEventIndex() == i); - CHECK(sec.GetEvent()->parentEvent() == ev1); - CHECK(sec.GetEvent()->parentEvent()->parentEvent() == ev0); - - CHECK(count_generations(sec.GetEvent().get()) == 2); - - const auto org_projectile = stack.at(sec.GetEvent()->projectileIndex()); - CHECK(org_projectile.GetEvent() == sec.GetEvent()->parentEvent()); - } - - // read 2nd genertion particle particle - auto p2 = stack.GetNextParticle(); - - TestStackView hview2(p2); - - auto const ev2 = p2.GetEvent(); - - // add third generation of secondaries - // add 15 secondaries - for (int i = 0; i < 15; ++i) { - C8LOG_TRACE("loop, view: " + std::to_string(i)); - - auto sec = hview2.AddSecondary( - std::make_tuple(particles::Code::Electron, 1.5_GeV, - corsika::stack::MomentumVector(dummyCS, {1_GeV, 1_GeV, 1_GeV}), - Point(dummyCS, {1 * meter, 1 * meter, 1 * meter}), 100_s)); - C8LOG_TRACE("loop, ---- "); - - CHECK(sec.GetParentEventIndex() == i); - CHECK(sec.GetEvent()->parentEvent() == ev2); - CHECK(sec.GetEvent()->parentEvent()->parentEvent() == ev1); - CHECK(sec.GetEvent()->parentEvent()->parentEvent()->parentEvent() == ev0); - - CHECK(count_generations(sec.GetEvent().get()) == 3); - } - } - - SECTION("also test projectile access") { - - C8LOG_TRACE("projectile test"); - - // add secondaries, 1st generation - TestStackView hview0(p0); - auto proj0 = hview0.GetProjectile(); - auto const ev0 = p0.GetEvent(); - CHECK(ev0 == nullptr); - - C8LOG_TRACE("loop"); - - // add 5 secondaries - for (int i = 0; i < 5; ++i) { - C8LOG_TRACE("loop " + std::to_string(i)); - auto sec = proj0.AddSecondary( - std::make_tuple(particles::Code::Electron, 1.5_GeV, - corsika::stack::MomentumVector(dummyCS, {1_GeV, 1_GeV, 1_GeV}), - Point(dummyCS, {1 * meter, 1 * meter, 1 * meter}), 100_s)); - - CHECK(sec.GetParentEventIndex() == i); - CHECK(sec.GetEvent() != nullptr); - CHECK(sec.GetEvent()->parentEvent() == nullptr); - } - CHECK(stack.getEntries() == 6); - - // read 1st genertion particle particle - auto p1 = stack.GetNextParticle(); - - TestStackView hview1(p1); - auto proj1 = hview1.GetProjectile(); - auto const ev1 = p1.GetEvent(); - - // add second generation of secondaries - // add 10 secondaries - for (int i = 0; i < 10; ++i) { - auto sec = proj1.AddSecondary( - std::make_tuple(particles::Code::Electron, 1.5_GeV, - corsika::stack::MomentumVector(dummyCS, {1_GeV, 1_GeV, 1_GeV}), - Point(dummyCS, {1 * meter, 1 * meter, 1 * meter}), 100_s)); - - CHECK(sec.GetParentEventIndex() == i); - CHECK(sec.GetEvent()->parentEvent() == ev1); - CHECK(sec.GetEvent()->secondaries().size() == i + 1); - CHECK(sec.GetEvent()->parentEvent()->parentEvent() == ev0); - - const auto org_projectile = stack.at(sec.GetEvent()->projectileIndex()); - CHECK(org_projectile.GetEvent() == sec.GetEvent()->parentEvent()); - } - CHECK(stack.getEntries() == 16); - } -} diff --git a/corsika/framework/core/PhysicalUnits.hpp b/corsika/framework/core/PhysicalUnits.hpp index a9769c00d3fcae0027c0602a78d60255e8169f72..185a65fceb1903fadc6850efdb6bcccda93df53d 100644 --- a/corsika/framework/core/PhysicalUnits.hpp +++ b/corsika/framework/core/PhysicalUnits.hpp @@ -1,4 +1,4 @@ -n/* +/* * (c) Copyright 2020 CORSIKA Project, corsika-project@lists.kit.edu * * This software is distributed under the terms of the GNU General Public diff --git a/corsika/framework/geometry/BaseVector.hpp b/corsika/framework/geometry/BaseVector.hpp index b094f6d435a3da0034c54089e90aa7e0c3da5c38..f689d49dc49e9797e5056aee96e86d808c05d298 100644 --- a/corsika/framework/geometry/BaseVector.hpp +++ b/corsika/framework/geometry/BaseVector.hpp @@ -1,4 +1,4 @@ -n/* +/* * (c) Copyright 2020 CORSIKA Project, corsika-project@lists.kit.edu * * This software is distributed under the terms of the GNU General Public diff --git a/corsika/framework/geometry/CoordinateSystem.hpp b/corsika/framework/geometry/CoordinateSystem.hpp index 31f57d395c3253c64fb2d0b02936e1d6d3114664..32fbba52eab658d46db63867f53307a634d73174 100644 --- a/corsika/framework/geometry/CoordinateSystem.hpp +++ b/corsika/framework/geometry/CoordinateSystem.hpp @@ -1,4 +1,4 @@ -n/* +/* * (c) Copyright 2020 CORSIKA Project, corsika-project@lists.kit.edu * * This software is distributed under the terms of the GNU General Public diff --git a/corsika/framework/geometry/Helix.hpp b/corsika/framework/geometry/Helix.hpp index eb10b51e4eec9fd8ffa2585290abdcde6f832299..5bd9fac77b71ec5e80ba54d26a19b6a3ab7b9d86 100644 --- a/corsika/framework/geometry/Helix.hpp +++ b/corsika/framework/geometry/Helix.hpp @@ -1,4 +1,4 @@ -n/* +/* * (c) Copyright 2020 CORSIKA Project, corsika-project@lists.kit.edu * * This software is distributed under the terms of the GNU General Public diff --git a/corsika/framework/geometry/IVolume.hpp b/corsika/framework/geometry/IVolume.hpp index 4983b3de16272bc3c8b70f3f8a566ce1df6b6828..59b9acb55fccc764dedf920ec1855bb195ab8e94 100644 --- a/corsika/framework/geometry/IVolume.hpp +++ b/corsika/framework/geometry/IVolume.hpp @@ -1,4 +1,4 @@ -n/* +/* * (c) Copyright 2020 CORSIKA Project, corsika-project@lists.kit.edu * * This software is distributed under the terms of the GNU General Public diff --git a/corsika/framework/geometry/Line.hpp b/corsika/framework/geometry/Line.hpp index 21bf263c8395f5de630dd50f6b790620bb0ecc89..cdb03d6245945a421d31badeae339fa49d9ef71f 100644 --- a/corsika/framework/geometry/Line.hpp +++ b/corsika/framework/geometry/Line.hpp @@ -1,4 +1,4 @@ -n/* +/* * (c) Copyright 2020 CORSIKA Project, corsika-project@lists.kit.edu * * This software is distributed under the terms of the GNU General Public diff --git a/corsika/framework/geometry/Plane.hpp b/corsika/framework/geometry/Plane.hpp index 928b04ebeda61f7f6f98dc73a1e94022d9ad3df6..9b2eacade48f5d9913d5b5311f1ae595cbcde039 100644 --- a/corsika/framework/geometry/Plane.hpp +++ b/corsika/framework/geometry/Plane.hpp @@ -1,4 +1,4 @@ -n/* +/* * (c) Copyright 2020 CORSIKA Project, corsika-project@lists.kit.edu * * This software is distributed under the terms of the GNU General Public diff --git a/corsika/framework/geometry/QuantityVector.hpp b/corsika/framework/geometry/QuantityVector.hpp index c8787712c67134581364ca1ce99b1da6b37b5445..235237afe59b8ffbf19413e625e7bdd1178a18e8 100644 --- a/corsika/framework/geometry/QuantityVector.hpp +++ b/corsika/framework/geometry/QuantityVector.hpp @@ -1,4 +1,4 @@ -n/* +/* * (c) Copyright 2020 CORSIKA Project, corsika-project@lists.kit.edu * * This software is distributed under the terms of the GNU General Public diff --git a/corsika/framework/geometry/RootCoordinateSystem.hpp b/corsika/framework/geometry/RootCoordinateSystem.hpp index 7f73cdb29d0af4104e12ee91a3a907ce7b016420..08244fb54cda6166c9f7ca33abb3ac01b0715466 100644 --- a/corsika/framework/geometry/RootCoordinateSystem.hpp +++ b/corsika/framework/geometry/RootCoordinateSystem.hpp @@ -1,4 +1,4 @@ -n/* +/* * (c) Copyright 2020 CORSIKA Project, corsika-project@lists.kit.edu * * This software is distributed under the terms of the GNU General Public diff --git a/corsika/framework/geometry/Sphere.hpp b/corsika/framework/geometry/Sphere.hpp index 99f26939862b31256ddc18839d9e78d858a41acd..cea283b3d3b1cc14fb2ea877e93512258d2a2d09 100644 --- a/corsika/framework/geometry/Sphere.hpp +++ b/corsika/framework/geometry/Sphere.hpp @@ -1,4 +1,4 @@ -n/* +/* * (c) Copyright 2020 CORSIKA Project, corsika-project@lists.kit.edu * * This software is distributed under the terms of the GNU General Public diff --git a/corsika/framework/geometry/Vector.hpp b/corsika/framework/geometry/Vector.hpp index ddc0738f5b3b60e335c2f7fbc9665467135e680b..0d37c66c7afb5460e09a8f0001ad248bbe59835c 100644 --- a/corsika/framework/geometry/Vector.hpp +++ b/corsika/framework/geometry/Vector.hpp @@ -1,4 +1,4 @@ -n/* +/* * (c) Copyright 2020 CORSIKA Project, corsika-project@lists.kit.edu * * This software is distributed under the terms of the GNU General Public diff --git a/corsika/framework/process/BaseProcess.hpp b/corsika/framework/process/BaseProcess.hpp index 597499167da7acdae6193a950e90272845555a93..e91651d12ea99cafd40718ae288a869852a5cf35 100644 --- a/corsika/framework/process/BaseProcess.hpp +++ b/corsika/framework/process/BaseProcess.hpp @@ -1,4 +1,4 @@ -n/* +/* * (c) Copyright 2020 CORSIKA Project, corsika-project@lists.kit.edu * * This software is distributed under the terms of the GNU General Public diff --git a/corsika/framework/process/BoundaryCrossingProcess.hpp b/corsika/framework/process/BoundaryCrossingProcess.hpp index 8d56350ab9d26022766680660bf35208e3d2490e..1e9a4bdee4eb3de6de009e7a1274bddb3e967d2a 100644 --- a/corsika/framework/process/BoundaryCrossingProcess.hpp +++ b/corsika/framework/process/BoundaryCrossingProcess.hpp @@ -1,4 +1,4 @@ -n/* +/* * (c) Copyright 2020 CORSIKA Project, corsika-project@lists.kit.edu * * This software is distributed under the terms of the GNU General Public diff --git a/corsika/framework/process/ContinuousProcess.hpp b/corsika/framework/process/ContinuousProcess.hpp index a0a1e1dee0d467632b5819f61151ac1106a6109f..1343c082272a8e0e49830e53c164f985abe5e860 100644 --- a/corsika/framework/process/ContinuousProcess.hpp +++ b/corsika/framework/process/ContinuousProcess.hpp @@ -1,4 +1,4 @@ -n/* +/* * (c) Copyright 2020 CORSIKA Project, corsika-project@lists.kit.edu * * This software is distributed under the terms of the GNU General Public diff --git a/corsika/framework/process/DecayProcess.hpp b/corsika/framework/process/DecayProcess.hpp index 95953f75b39f30ea360d1e63a53e1c702806c50b..64298dc3442176149f6cd7747219f7d2a9bac482 100644 --- a/corsika/framework/process/DecayProcess.hpp +++ b/corsika/framework/process/DecayProcess.hpp @@ -1,4 +1,4 @@ -n/* +/* * (c) Copyright 2020 CORSIKA Project, corsika-project@lists.kit.edu * * This software is distributed under the terms of the GNU General Public @@ -39,5 +39,6 @@ namespace corsika { InverseTimeType getInverseLifetime(TParticle const& particle) { return 1. / ref().getLifetime(particle); } + }; } // namespace corsika diff --git a/corsika/framework/process/InteractionProcess.hpp b/corsika/framework/process/InteractionProcess.hpp index b3f51aebc5dd2b05d6d46d19a204bd7df922e892..f80480926c74b5f908e3fe7b4c85643a30cfeadd 100644 --- a/corsika/framework/process/InteractionProcess.hpp +++ b/corsika/framework/process/InteractionProcess.hpp @@ -1,4 +1,4 @@ -n/* +/* * (c) Copyright 2020 CORSIKA Project, corsika-project@lists.kit.edu * * This software is distributed under the terms of the GNU General Public diff --git a/corsika/framework/process/ProcessReturn.hpp b/corsika/framework/process/ProcessReturn.hpp index fab4f628daea92560a00244c16da881f6b7521d0..eef7058d09c171df53686fb4850a77d9e92c91c5 100644 --- a/corsika/framework/process/ProcessReturn.hpp +++ b/corsika/framework/process/ProcessReturn.hpp @@ -1,4 +1,4 @@ -n/* +/* * (c) Copyright 2020 CORSIKA Project, corsika-project@lists.kit.edu * * This software is distributed under the terms of the GNU General Public diff --git a/corsika/framework/process/ProcessSequence.hpp b/corsika/framework/process/ProcessSequence.hpp index be499bf8b788f0384689609162bdd169dbab695a..70337e1099d09cd4945d7f557f2a1661dedc0d0b 100644 --- a/corsika/framework/process/ProcessSequence.hpp +++ b/corsika/framework/process/ProcessSequence.hpp @@ -1,4 +1,4 @@ -n/* +/* * (c) Copyright 2020 CORSIKA Project, corsika-project@lists.kit.edu * * This software is distributed under the terms of the GNU General Public diff --git a/corsika/framework/random/ExponentialDistribution.hpp b/corsika/framework/random/ExponentialDistribution.hpp index 77b351941d1a7a8e2c09ea2074df0427a77189ec..7bd855632d3c6a4de0ceb4a10109c98f02472a9f 100644 --- a/corsika/framework/random/ExponentialDistribution.hpp +++ b/corsika/framework/random/ExponentialDistribution.hpp @@ -1,4 +1,4 @@ -n/* +/* * (c) Copyright 2020 CORSIKA Project, corsika-project@lists.kit.edu * * This software is distributed under the terms of the GNU General Public diff --git a/corsika/framework/stack/CombinedStack.hpp b/corsika/framework/stack/CombinedStack.hpp index 89424775d54a6daaaa31ee5451c87336be6a2fdb..5dfbbfe126f0025f488eab5f91babac0914d4732 100644 --- a/corsika/framework/stack/CombinedStack.hpp +++ b/corsika/framework/stack/CombinedStack.hpp @@ -131,7 +131,7 @@ namespace corsika { template <typename Stack1Impl, typename Stack2Impl, template <typename> typename _PI> using CombinedStack = Stack<CombinedStackImpl<Stack1Impl, Stack2Impl>, _PI>; - + } // namespace corsika #include <corsika/detail/framework/stack/CombinedStack.inl> diff --git a/corsika/framework/utility/CorsikaFenv.hpp b/corsika/framework/utility/CorsikaFenv.hpp index e9837943f92771ce1d787872793bab3352ef74c5..f3be6389cc865415017a98478470fef98d666774 100644 --- a/corsika/framework/utility/CorsikaFenv.hpp +++ b/corsika/framework/utility/CorsikaFenv.hpp @@ -1,4 +1,4 @@ -n/* +/* * (c) Copyright 2020 CORSIKA Project, corsika-project@lists.kit.edu * * This software is distributed under the terms of the GNU General Public @@ -28,4 +28,4 @@ int fedisableexcept(int excepts); #else #include <corsika/detail/framework/utility/CorsikaFenvFallback.inl> #endif -#endif \ No newline at end of file +#endif diff --git a/corsika/framework/utility/Singleton.hpp b/corsika/framework/utility/Singleton.hpp index 9b1b7ea500f1d723ab46fb6326ee854a1cac0c4a..78a7df97b6c0aa3c221a5404eaa68dcfde6afce6 100644 --- a/corsika/framework/utility/Singleton.hpp +++ b/corsika/framework/utility/Singleton.hpp @@ -1,4 +1,4 @@ -n/* +/* * (c) Copyright 2020 CORSIKA Project, corsika-project@lists.kit.edu * * This software is distributed under the terms of the GNU General Public diff --git a/corsika/framework/utility/detail/COMBoost.inl b/corsika/framework/utility/detail/COMBoost.inl index 95ac32b4b6eee8940248ce30e4c912277b4013e5..aa6af48349ed06df019e709eaadf2d8693b56289 100644 --- a/corsika/framework/utility/detail/COMBoost.inl +++ b/corsika/framework/utility/detail/COMBoost.inl @@ -19,107 +19,107 @@ namespace corsika::utl { - auto const& COMBoost::GetRotationMatrix() const { return fRotation; } - - //! transforms a 4-momentum from lab frame to the center-of-mass frame - template <typename FourVector> - FourVector COMBoost::toCoM(const FourVector& p) const { - using namespace corsika::units::si; - auto pComponents = p.GetSpaceLikeComponents().GetComponents(rotatedCS_); - Eigen::Vector3d eVecRotated = pComponents.eVector; - Eigen::Vector2d lab; - - lab << (p.GetTimeLikeComponent() * (1 / 1_GeV)), - (eVecRotated(2) * (1 / 1_GeV).magnitude()); - - auto const boostedZ = boost_ * lab; - auto const E_CoM = boostedZ(0) * 1_GeV; - - eVecRotated(2) = boostedZ(1) * (1_GeV).magnitude(); - - return FourVector( - E_CoM, corsika::geometry::Vector<hepmomentum_d>(rotatedCS_, eVecRotated)); + auto const& COMBoost::GetRotationMatrix() const { return fRotation; } + + //! transforms a 4-momentum from lab frame to the center-of-mass frame + template <typename FourVector> + FourVector COMBoost::toCoM(const FourVector& p) const { + using namespace corsika::units::si; + auto pComponents = p.GetSpaceLikeComponents().GetComponents(rotatedCS_); + Eigen::Vector3d eVecRotated = pComponents.eVector; + Eigen::Vector2d lab; + + lab << (p.GetTimeLikeComponent() * (1 / 1_GeV)), + (eVecRotated(2) * (1 / 1_GeV).magnitude()); + + auto const boostedZ = boost_ * lab; + auto const E_CoM = boostedZ(0) * 1_GeV; + + eVecRotated(2) = boostedZ(1) * (1_GeV).magnitude(); + + return FourVector(E_CoM, + corsika::geometry::Vector<hepmomentum_d>(rotatedCS_, eVecRotated)); + } + + //! transforms a 4-momentum from the center-of-mass frame back to lab frame + template <typename FourVector> + FourVector COMBoost::fromCoM(const FourVector& p) const { + using namespace corsika::units::si; + auto pCM = p.GetSpaceLikeComponents().GetComponents(rotatedCS_); + auto const Ecm = p.GetTimeLikeComponent(); + + Eigen::Vector2d com; + com << (Ecm * (1 / 1_GeV)), (pCM.eVector(2) * (1 / 1_GeV).magnitude()); + + C8LOG_TRACE( + "COMBoost::fromCoM Ecm={} GeV" + " pcm={} GeV (norm = {} GeV), invariant mass={} GeV", + Ecm / 1_GeV, pCM / 1_GeV, pCM.norm() / 1_GeV, p.GetNorm() / 1_GeV); + + auto const boostedZ = inverseBoost_ * com; + auto const E_lab = boostedZ(0) * 1_GeV; + + pCM.eVector(2) = boostedZ(1) * (1_GeV).magnitude(); + + geometry::Vector<typename decltype(pCM)::dimension> pLab{rotatedCS_, pCM}; + pLab.rebase(originalCS_); + + FourVector f(E_lab, pLab); + + C8LOG_TRACE("COMBoost::fromCoM --> Elab={} GeV", + " plab={} GeV (norm={} GeV) " + " GeV), invariant mass = {}", + E_lab / 1_GeV, f.GetNorm() / 1_GeV, pLab.GetComponents(), + pLab.norm() / 1_GeV); + + return f; + } + + COMBoost::COMBoost(FourVector<HEPEnergyType, Vector<hepmomentum_d>> const& Pprojectile, + const HEPMassType massTarget) + : fCS(Pprojectile.GetSpaceLikeComponents().GetCoordinateSystem()) { + auto const pProjectile = Pprojectile.GetSpaceLikeComponents(); + auto const pProjNorm = pProjectile.norm(); + auto const a = (pProjectile / pProjNorm).GetComponents().eVector; + auto const a1 = a(0), a2 = a(1); + + auto const s = sgn(a(2)); + auto const c = 1 / (1 + s * a(2)); + + Eigen::Matrix3d A, B; + + if (s > 0) { + A << 1, 0, -a1, // comment to prevent clang-format + 0, 1, -a2, // . + a1, a2, 1; // . + B << -a1 * a1 * c, -a1 * a2 * c, 0, // . + -a1 * a2 * c, -a2 * a2 * c, 0, // . + 0, 0, -(a1 * a1 + a2 * a2) * c; // . + + } else { + A << 1, 0, a1, // comment to prevent clang-format + 0, -1, -a2, // . + a1, a2, -1; // . + B << -a1 * a1 * c, -a1 * a2 * c, 0, // . + +a1 * a2 * c, +a2 * a2 * c, 0, // . + 0, 0, (a1 * a1 + a2 * a2) * c; // . } - //! transforms a 4-momentum from the center-of-mass frame back to lab frame - template <typename FourVector> - FourVector COMBoost::fromCoM(const FourVector& p) const { - using namespace corsika::units::si; - auto pCM = p.GetSpaceLikeComponents().GetComponents(rotatedCS_); - auto const Ecm = p.GetTimeLikeComponent(); - - Eigen::Vector2d com; - com << (Ecm * (1 / 1_GeV)), (pCM.eVector(2) * (1 / 1_GeV).magnitude()); + fRotation = A + B; - C8LOG_TRACE( - "COMBoost::fromCoM Ecm={} GeV" - " pcm={} GeV (norm = {} GeV), invariant mass={} GeV", - Ecm / 1_GeV, pCM / 1_GeV, pCM.norm() / 1_GeV, p.GetNorm() / 1_GeV); + // calculate boost + double const beta = pProjNorm / (Pprojectile.GetTimeLikeComponent() + massTarget); - auto const boostedZ = inverseBoost_ * com; - auto const E_lab = boostedZ(0) * 1_GeV; + /* Accurracy matters here, beta = 1 - epsilon for ultra-relativistic boosts */ + double const coshEta = 1 / std::sqrt((1 + beta) * (1 - beta)); + //~ double const coshEta = 1 / std::sqrt((1-beta*beta)); + double const sinhEta = -beta * coshEta; - pCM.eVector(2) = boostedZ(1) * (1_GeV).magnitude(); - - geometry::Vector<typename decltype(pCM)::dimension> pLab{rotatedCS_, pCM}; - pLab.rebase(originalCS_); - - FourVector f(E_lab, pLab); - - C8LOG_TRACE("COMBoost::fromCoM --> Elab={} GeV", - " plab={} GeV (norm={} GeV) " - " GeV), invariant mass = {}", - E_lab / 1_GeV, f.GetNorm() / 1_GeV, pLab.GetComponents(), - pLab.norm() / 1_GeV); - - return f; - } + std::cout << "COMBoost (1-beta)=" << 1 - beta << " gamma=" << coshEta << std::endl; + std::cout << " det = " << fRotation.determinant() - 1 << std::endl; - COMBoost::COMBoost(FourVector<HEPEnergyType, Vector<hepmomentum_d>> const& Pprojectile, - const HEPMassType massTarget) - : fCS(Pprojectile.GetSpaceLikeComponents().GetCoordinateSystem()) { - auto const pProjectile = Pprojectile.GetSpaceLikeComponents(); - auto const pProjNorm = pProjectile.norm(); - auto const a = (pProjectile / pProjNorm).GetComponents().eVector; - auto const a1 = a(0), a2 = a(1); + fBoost << coshEta, sinhEta, sinhEta, coshEta; - auto const s = sgn(a(2)); - auto const c = 1 / (1 + s * a(2)); - - Eigen::Matrix3d A, B; - - if (s > 0) { - A << 1, 0, -a1, // comment to prevent clang-format - 0, 1, -a2, // . - a1, a2, 1; // . - B << -a1 * a1 * c, -a1 * a2 * c, 0, // . - -a1 * a2 * c, -a2 * a2 * c, 0, // . - 0, 0, -(a1 * a1 + a2 * a2) * c; // . - - } else { - A << 1, 0, a1, // comment to prevent clang-format - 0, -1, -a2, // . - a1, a2, -1; // . - B << -a1 * a1 * c, -a1 * a2 * c, 0, // . - +a1 * a2 * c, +a2 * a2 * c, 0, // . - 0, 0, (a1 * a1 + a2 * a2) * c; // . - } - - fRotation = A + B; - - // calculate boost - double const beta = pProjNorm / (Pprojectile.GetTimeLikeComponent() + massTarget); - - /* Accurracy matters here, beta = 1 - epsilon for ultra-relativistic boosts */ - double const coshEta = 1 / std::sqrt((1 + beta) * (1 - beta)); - //~ double const coshEta = 1 / std::sqrt((1-beta*beta)); - double const sinhEta = -beta * coshEta; - - std::cout << "COMBoost (1-beta)=" << 1 - beta << " gamma=" << coshEta << std::endl; - std::cout << " det = " << fRotation.determinant() - 1 << std::endl; - - fBoost << coshEta, sinhEta, sinhEta, coshEta; - - fInverseBoost << coshEta, -sinhEta, -sinhEta, coshEta; - } + fInverseBoost << coshEta, -sinhEta, -sinhEta, coshEta; + } } // namespace corsika::utl diff --git a/corsika/media/FlatExponential.hpp b/corsika/media/FlatExponential.hpp index 2e21772d4cd1a104f133ece3e73b5fb55a936d60..704e69b4516dc80ead4938301d48801b2cccca96 100644 --- a/corsika/media/FlatExponential.hpp +++ b/corsika/media/FlatExponential.hpp @@ -1,4 +1,4 @@ -n/* +/* * (c) Copyright 2020 CORSIKA Project, corsika-project@lists.kit.edu * * This software is distributed under the terms of the GNU General Public diff --git a/corsika/process/EnergyLoss.hpp b/corsika/process/EnergyLoss.hpp index 6378824d21eedbc431a9fabf9b3d4c85bad7840c..656f644c0c93ff98ac2d322de7a7ce6f678d45af 100644 --- a/corsika/process/EnergyLoss.hpp +++ b/corsika/process/EnergyLoss.hpp @@ -28,7 +28,6 @@ namespace corsika { void MomentumUpdate(setup::Stack::ParticleType&, units::si::HEPEnergyType Enew); public: - template <typename TDim> EnergyLoss(geometry::Point const& injectionPoint, geometry::Vector<TDim> const& direction) @@ -75,4 +74,3 @@ namespace corsika { return 0.0001_g / square(1_cm); }); } // namespace corsika - diff --git a/corsika/process/HadronicElasticModel.hpp b/corsika/process/HadronicElasticModel.hpp index 3b15c4b52593094345f7e77078761b1a70aec523..0466a037ec5fed6339ebd43f8b339746e65bdd2a 100644 --- a/corsika/process/HadronicElasticModel.hpp +++ b/corsika/process/HadronicElasticModel.hpp @@ -40,8 +40,7 @@ namespace corsika::HadronicElasticModel { using inveV2 = decltype(1 / units::si::square(units::si::electronvolt)); corsika::RNG& fRNG = - corsika::RNGManager::GetInstance().GetRandomStream( - "HadronicElasticModel"); + corsika::RNGManager::GetInstance().GetRandomStream("HadronicElasticModel"); inveV2 B(eV2 s) const; corsika::units::si::CrossSectionType CrossSection(SquaredHEPEnergyType s) const; @@ -59,4 +58,3 @@ namespace corsika::HadronicElasticModel { }; } // namespace corsika::HadronicElasticModel - diff --git a/corsika/process/ObservationPlane.hpp b/corsika/process/ObservationPlane.hpp index 5749e69d95b99fe15f0329c518b61b3358bdb615..3ac64e263539824e439544409d28aeb94cccafa7 100644 --- a/corsika/process/ObservationPlane.hpp +++ b/corsika/process/ObservationPlane.hpp @@ -31,13 +31,11 @@ namespace corsika::observation_plane { geometry::Vector<units::si::dimensionless_d> const&, std::string const&, bool = true); - corsika::EProcessReturn DoContinuous( - corsika::Stack::ParticleType const& vParticle, - corsika::Trajectory const& vTrajectory); + corsika::EProcessReturn DoContinuous(corsika::Stack::ParticleType const& vParticle, + corsika::Trajectory const& vTrajectory); - corsika::units::si::LengthType MaxStepLength( - corsika::Stack::ParticleType const&, - corsika::Trajectory const& vTrajectory); + corsika::units::si::LengthType MaxStepLength(corsika::Stack::ParticleType const&, + corsika::Trajectory const& vTrajectory); void ShowResults() const; void Reset(); @@ -53,5 +51,3 @@ namespace corsika::observation_plane { geometry::Vector<units::si::dimensionless_d> const xAxis_, yAxis_; }; } // namespace corsika::observation_plane - - diff --git a/corsika/process/ParticleCut.hpp b/corsika/process/ParticleCut.hpp index 5674e2c0306fb2ab82ebd1a8fa62c7053a3fca53..435eb09f3eca7bc731ae7f3916e61c263beb78f4 100644 --- a/corsika/process/ParticleCut.hpp +++ b/corsika/process/ParticleCut.hpp @@ -67,5 +67,3 @@ namespace corsika { }; } // namespace particle_cut } // namespace corsika - - diff --git a/corsika/process/Pythia/Decay.hpp b/corsika/process/Pythia/Decay.hpp index f8cfa8f97a6fdc3b222f09c8a7e21978c9e757a3..20bbf96943e9d48aee30e876c676e3dc2ae25bd6 100644 --- a/corsika/process/Pythia/Decay.hpp +++ b/corsika/process/Pythia/Decay.hpp @@ -23,18 +23,16 @@ namespace corsika { typedef corsika::Vector<corsika::units::si::hepmomentum_d> MomentumVector; - class Decay : public corsika::DecayProcess<Decay> - { + class Decay : public corsika::DecayProcess<Decay> { - const std::vector<particles::Code> fTrackedParticles; - int fCount = 0; + const std::vector<particles::Code> fTrackedParticles; + int fCount = 0; public: - Decay(std::vector<corsika::Code>); ~Decay(); - void SetParticleListStable(std::vector<particles::Code> const& ); + void SetParticleListStable(std::vector<particles::Code> const&); void SetUnstable(const corsika::Code); void SetStable(const corsika::Code); diff --git a/corsika/process/Pythia/Interaction.hpp b/corsika/process/Pythia/Interaction.hpp index 27634e0f0159f854d1cf268abaae264a53c7d939..e5d473f98904c64362eeaea7f3812981a686c978 100644 --- a/corsika/process/Pythia/Interaction.hpp +++ b/corsika/process/Pythia/Interaction.hpp @@ -39,12 +39,10 @@ namespace corsika::pythia { } bool CanInteract(const corsika::Code); - void ConfigureLabFrameCollision(const corsika::Code, - const corsika::Code, + void ConfigureLabFrameCollision(const corsika::Code, const corsika::Code, const corsika::units::si::HEPEnergyType); std::tuple<corsika::units::si::CrossSectionType, corsika::units::si::CrossSectionType> - GetCrossSection(const corsika::Code BeamId, - const corsika::Code TargetId, + GetCrossSection(const corsika::Code BeamId, const corsika::Code TargetId, const corsika::units::si::HEPEnergyType CoMenergy); template <typename TParticle> @@ -59,8 +57,7 @@ namespace corsika::pythia { corsika::EProcessReturn DoInteraction(TProjectile&); private: - corsika::RNG& fRNG = - corsika::RNGManager::GetInstance().GetRandomStream("pythia"); + corsika::RNG& fRNG = corsika::RNGManager::GetInstance().GetRandomStream("pythia"); Pythia8::Pythia fPythia; Pythia8::SigmaTotal fSigma; const bool fInternalDecays = true; diff --git a/corsika/process/Pythia/Random.hpp b/corsika/process/Pythia/Random.hpp index 339a9cf8790a3f78c9e7c36e13ab569e130d417b..3858be7933eafae27d2c8f5cfe8d9527478da65b 100644 --- a/corsika/process/Pythia/Random.hpp +++ b/corsika/process/Pythia/Random.hpp @@ -20,8 +20,7 @@ namespace corsika { private: std::uniform_real_distribution<double> fDist; - corsika::RNG& fRNG = - corsika::RNGManager::GetInstance().GetRandomStream("pythia"); + corsika::RNG& fRNG = corsika::RNGManager::GetInstance().GetRandomStream("pythia"); }; } // namespace pythia diff --git a/corsika/process/QGSJetII/Interaction.hpp b/corsika/process/QGSJetII/Interaction.hpp index dbe201090fde8c9367897ff1177deedf3155d424..fd331d75aac0bb42dca79c03dc520258317a3ba0 100644 --- a/corsika/process/QGSJetII/Interaction.hpp +++ b/corsika/process/QGSJetII/Interaction.hpp @@ -37,9 +37,8 @@ namespace corsika::qgsjetII { } corsika::units::si::CrossSectionType GetCrossSection( - const corsika::Code, const corsika::Code, - const corsika::units::si::HEPEnergyType, const unsigned int Abeam = 0, - const unsigned int Atarget = 0) const; + const corsika::Code, const corsika::Code, const corsika::units::si::HEPEnergyType, + const unsigned int Abeam = 0, const unsigned int Atarget = 0) const; template <typename TParticle> corsika::units::si::GrammageType GetInteractionLength(TParticle const&) const; @@ -53,8 +52,7 @@ namespace corsika::qgsjetII { corsika::EProcessReturn DoInteraction(TProjectile&); private: - corsika::RNG& fRNG = - corsika::RNGManager::GetInstance().GetRandomStream("qgran"); + corsika::RNG& fRNG = corsika::RNGManager::GetInstance().GetRandomStream("qgran"); const int maxMassNumber_ = 208; }; diff --git a/corsika/process/QGSJetII/QGSJetIIStack.hpp b/corsika/process/QGSJetII/QGSJetIIStack.hpp index 9bd8512d1eeced3b31fd7e6142d6c5a43d90391c..403fa90322c13f3e8bd2da2a3abfd3d5a035456f 100644 --- a/corsika/process/QGSJetII/QGSJetIIStack.hpp +++ b/corsika/process/QGSJetII/QGSJetIIStack.hpp @@ -51,7 +51,8 @@ namespace corsika::qgsjetII { using namespace corsika::units::si; return qgarr14_.esp[i][0] * 1_GeV; } - MomentumVector GetMomentum(const unsigned int i, const corsika::CoordinateSystem& CS) const { + MomentumVector GetMomentum(const unsigned int i, + const corsika::CoordinateSystem& CS) const { using namespace corsika::units::si; geometry::QuantityVector<hepmomentum_d> components = {qgarr14_.esp[i][2] * 1_GeV, qgarr14_.esp[i][3] * 1_GeV, @@ -115,7 +116,9 @@ namespace corsika::qgsjetII { GetStackData().GetId(GetIndex())); } - MomentumVector GetMomentum(const corsika::CoordinateSystem& CS) const { return GetStackData().GetMomentum(GetIndex(), CS); } + MomentumVector GetMomentum(const corsika::CoordinateSystem& CS) const { + return GetStackData().GetMomentum(GetIndex(), CS); + } void SetMomentum(const MomentumVector& v) { GetStackData().SetMomentum(GetIndex(), v); diff --git a/corsika/process/Sibyll/Interaction.hpp b/corsika/process/Sibyll/Interaction.hpp index f89245b217d249061c530dd488cda22f7c66a90e..9c263aaa59b6dc1f1d617ce6ef9fc70fb21a934c 100644 --- a/corsika/process/Sibyll/Interaction.hpp +++ b/corsika/process/Sibyll/Interaction.hpp @@ -65,8 +65,7 @@ namespace corsika::sibyll { corsika::EProcessReturn DoInteraction(TProjectile&); private: - corsika::RNG& RNG_ = - corsika::RNGManager::GetInstance().GetRandomStream("s_rndm"); + corsika::RNG& RNG_ = corsika::RNGManager::GetInstance().GetRandomStream("s_rndm"); // FOR NOW keep trackedParticles private, could be configurable std::vector<particles::Code> const trackedParticles_ = { particles::Code::PiPlus, particles::Code::PiMinus, diff --git a/corsika/process/Sibyll/NuclearInteraction.hpp b/corsika/process/Sibyll/NuclearInteraction.hpp index 7a0fe1dfc4e87beaa68479595c114cf946f671ec..a587bf0f82fa002c089ac4cca36848d669c4ac07 100644 --- a/corsika/process/Sibyll/NuclearInteraction.hpp +++ b/corsika/process/Sibyll/NuclearInteraction.hpp @@ -59,8 +59,7 @@ namespace corsika::sibyll { TEnvironment const& environment_; corsika::sibyll::Interaction& hadronicInteraction_; std::map<corsika::Code, int> targetComponentsIndex_; - corsika::RNG& RNG_ = - corsika::RNGManager::GetInstance().GetRandomStream("s_rndm"); + corsika::RNG& RNG_ = corsika::RNGManager::GetInstance().GetRandomStream("s_rndm"); static constexpr int gNSample_ = 500; // number of samples in MC estimation of cross section static constexpr unsigned int gMaxNucleusAProjectile_ = 56; diff --git a/corsika/process/Sibyll/SibStack.hpp b/corsika/process/Sibyll/SibStack.hpp index e17e2c536f58ab1908f5333a96b17f1b917ef14a..1217468313febf5f11782e01ed67c0980f6179b4 100644 --- a/corsika/process/Sibyll/SibStack.hpp +++ b/corsika/process/Sibyll/SibStack.hpp @@ -130,8 +130,7 @@ namespace corsika::sibyll { void SetPID(const int v) { GetStackData().SetId(GetIndex(), v); } corsika::sibyll::SibyllCode GetPID() const { - return static_cast<corsika::sibyll::SibyllCode>( - GetStackData().GetId(GetIndex())); + return static_cast<corsika::sibyll::SibyllCode>(GetStackData().GetId(GetIndex())); } MomentumVector GetMomentum() const { return GetStackData().GetMomentum(GetIndex()); } diff --git a/corsika/process/StackInspector.hpp b/corsika/process/StackInspector.hpp index 0b2d8aaf7e17b5b83a09352b14fa00ed56f79d30..ff9169d4d5ddd00efe9929d882b646cf4e214dfd 100644 --- a/corsika/process/StackInspector.hpp +++ b/corsika/process/StackInspector.hpp @@ -50,4 +50,3 @@ namespace corsika { } // namespace stack_inspector } // namespace corsika - diff --git a/corsika/process/SwitchProcess.hpp b/corsika/process/SwitchProcess.hpp index 1ade22295e4f8dfbc98ea512cb462524e6fe351c..2c08016fd5c89c83ca1ed9d3dad89a2e0b9033b5 100644 --- a/corsika/process/SwitchProcess.hpp +++ b/corsika/process/SwitchProcess.hpp @@ -98,4 +98,3 @@ namespace corsika::switch_process { } }; } // namespace corsika::switch_process - diff --git a/corsika/process/TrackWriter.hpp b/corsika/process/TrackWriter.hpp index 3af5fdda68233dc5f45adce7bf8d6ebcfcaa7b93..d0f9d84622b2c6726daae7f43ae3522806e46a9f 100644 --- a/corsika/process/TrackWriter.hpp +++ b/corsika/process/TrackWriter.hpp @@ -38,4 +38,3 @@ namespace corsika::track_writer { }; } // namespace corsika::track_writer - diff --git a/corsika/setup/SetupTrajectory.hpp b/corsika/setup/SetupTrajectory.hpp index 70204abd29bcd351a70dacfcc3714a93a88455e7..a20d1db3d43f573234e5cd18b7a122fb29494e92 100644 --- a/corsika/setup/SetupTrajectory.hpp +++ b/corsika/setup/SetupTrajectory.hpp @@ -1,4 +1,4 @@ -n/* +/* * (c) Copyright 2020 CORSIKA Project, corsika-project@lists.kit.edu * * This software is distributed under the terms of the GNU General Public diff --git a/tests/common/testTestStack.h b/tests/common/testTestStack.h index c71d2922b3a14cf0cc85bc799cd275932bda98e9..a905231fbf78279df6723cd0ab03ddcb35088e4e 100644 --- a/tests/common/testTestStack.h +++ b/tests/common/testTestStack.h @@ -1,4 +1,4 @@ -n/* +/* * (c) Copyright 2018 CORSIKA Project, corsika-project@lists.kit.edu * * This software is distributed under the terms of the GNU General Public diff --git a/tests/framework/testCOMBoost.cpp b/tests/framework/testCOMBoost.cpp index 12e1e3a0dffe13fc56699e4bcf22706aa6a6074e..7cc37dd49456fd3733148b610c4e41f3f9110f3a 100644 --- a/tests/framework/testCOMBoost.cpp +++ b/tests/framework/testCOMBoost.cpp @@ -233,9 +233,6 @@ TEST_CASE("boosts") { auto const sqrt_s_lab = sqrt(s(eProjectileLab + targetMass, pProjectileLab.getComponents(rootCS))); - auto const sqrt_s_lab = - sqrt(s(eProjectileLab + targetMass, pProjectileLab.GetComponents(rootCS))); - // define boost to com frame COMBoost boost(PprojLab, targetMass);