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 177 additions and 446 deletions
......@@ -2,9 +2,8 @@
/*
* (c) Copyright 2021 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.
* This software is distributed under the terms of the 3-clause BSD license.
* See file LICENSE for a full version of the license.
*/
#pragma once
......@@ -47,7 +46,7 @@ namespace corsika {
/**
* Enable compression for this streamer.
*/
void enableCompression(int const level = 3);
void enableCompression(int const level = 9);
/**
* Finalize the streamer construction.
......
/*
* (c) Copyright 2021 CORSIKA Project, corsika-project@lists.kit.edu
*
* This software is distributed under the terms of the 3-clause BSD license.
* See file LICENSE for a full version of the license.
*/
#pragma once
#include <boost/filesystem.hpp>
#include <yaml-cpp/yaml.h>
#include <string>
namespace corsika {
/**
* This class automates the construction of simple tabular
* YAML files using the YAML::StreamWriter.
*/
class YAMLStreamer {
public:
inline void writeYAML(YAML::Node const& node,
boost::filesystem::path const& path) const;
}; // class YAMLStreamer
} // namespace corsika
#include <corsika/detail/output/YAMLStreamer.inl>
/*
* (c) Copyright 2024 CORSIKA Project, corsika-project@lists.kit.edu
*
* This software is distributed under the terms of the 3-clause BSD license.
* See file LICENSE for a full version of the license.
*/
namespace corsika::setup {
/**
\file SetupC7TrackedParticles.hpp
set of particles that should be tracked by corsika. all others should decay.
this is the corsika 7 configuration
*/
std::set<Code> C7trackedParticles{
Code::Proton, Code::Neutron, Code::AntiProton, Code::AntiNeutron,
Code::PiPlus, Code::PiMinus, Code::Pi0, Code::KPlus,
Code::KMinus, Code::K0Long, Code::K0Short, Code::Lambda,
Code::LambdaBar, Code::SigmaPlus, Code::SigmaPlusBar, Code::SigmaMinus,
Code::SigmaMinusBar, Code::Xi0, Code::Xi0Bar, Code::OmegaMinus,
Code::OmegaPlusBar, Code::MuPlus, Code::MuMinus};
} // namespace corsika::setup
\ 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/media/Environment.hpp>
#include <corsika/media/IMagneticFieldModel.hpp>
#include <corsika/media/IMediumModel.hpp>
#include <corsika/media/IMediumPropertyModel.hpp>
#include <corsika/media/IRefractiveIndexModel.hpp>
namespace corsika::setup {
/**
Definition of the default environemnt model interface. Each model
interface provides properties of the environment in a position
bdependent way.
*/
using EnvironmentInterface = IMediumPropertyModel<IMagneticFieldModel<IMediumModel>>;
using Environment = Environment<EnvironmentInterface>;
} // end namespace corsika::setup
/*
* (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.
* This software is distributed under the terms of the 3-clause BSD license.
* See file LICENSE for a full version of the license.
*/
#pragma once
......
/*
* (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.
* This software is distributed under the terms of the 3-clause BSD license.
* See file LICENSE for a full version of the license.
*/
#include <corsika/detail/setup/SetupStack.hpp>
......@@ -24,18 +23,21 @@ namespace corsika::setup {
/*
* the version with history
*/
using Stack = detail::StackWithHistory;
template <typename TEnvironment>
using Stack = typename detail::StackGenerator<TEnvironment>::StackWithHistory;
#else // WITH_HISTORY
/*
* the version without history
* the version without history (and geometry data and weights)
*/
using Stack = detail::StackWithGeometry;
template <typename TEnvironment>
using Stack = typename detail::StackGenerator<TEnvironment>::StackWithWeight;
#endif
// the correct secondary stack view
using StackView = typename Stack::stack_view_type;
template <typename TEnvironment>
using StackView = typename Stack<TEnvironment>::stack_view_type;
} // namespace corsika::setup
/*
* (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.
* This software is distributed under the terms of the 3-clause BSD license.
* See file LICENSE for a full version of the license.
*/
#pragma once
......
/*
* (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.
* This software is distributed under the terms of the 3-clause BSD license.
* See file LICENSE for a full version of the license.
*/
#pragma once
#include <corsika/framework/core/ParticleProperties.hpp>
#include <corsika/framework/core/PhysicalUnits.hpp>
#include <corsika/framework/geometry/PhysicalGeometry.hpp>
#include <corsika/framework/stack/Stack.hpp>
#include <string>
......@@ -22,8 +22,8 @@ namespace corsika::dummy_stack {
*/
/**
however, conceptually we need to provide fake data. A stack without data does not
work...
* However, conceptually we need to provide fake data. A stack without data does not
* work...
*/
struct NoData { /* nothing */
......@@ -40,6 +40,14 @@ namespace corsika::dummy_stack {
void setParticleData(super_type& /*parent*/, const std::tuple<NoData>& /*v*/) {}
std::string asString() const { return "dummy-data"; }
// unfortunately we need those dummy getter
// for some more complex tests with "history"
HEPEnergyType getEnergy() const { return 0_GeV; }
MomentumVector getMomentum() const {
return MomentumVector(get_root_CoordinateSystem(), {0_GeV, 0_GeV, 0_GeV});
}
Code getPID() const { return Code::Unknown; }
};
/**
......@@ -67,10 +75,12 @@ namespace corsika::dummy_stack {
int getCapacity() const { return entries_; }
/**
* Function to copy particle at location i2 in stack to i1
* Function to copy particle at location i2 in stack to i1.
*/
void copy(const int /*i1*/, const int /*i2*/) {}
void swap(const int, const int) {}
void incrementSize() { entries_++; }
void decrementSize() { entries_--; }
......
/*
* (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.
* This software is distributed under the terms of the 3-clause BSD license.
* See file LICENSE for a full version of the license.
*/
#pragma once
......
/*
* (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/framework/core/ParticleProperties.hpp>
#include <corsika/framework/core/PhysicalUnits.hpp>
#include <corsika/framework/stack/Stack.hpp>
#include <corsika/framework/geometry/Point.hpp>
#include <corsika/framework/geometry/Vector.hpp>
#include <corsika/framework/geometry/PhysicalGeometry.hpp>
#include <corsika/stack/VectorStack.hpp>
#include <algorithm>
#include <tuple>
#include <vector>
namespace corsika::nuclear_stack {
/**
*
* Define ParticleInterface for NuclearStackExtension Stack derived from
* ParticleInterface of Inner stack class
*
* Add A and Z data to existing stack (currently VectorStack) of particle
* properties. This is done via inheritance, not via CombinedStack since the nuclear
* data is stored ONLY when needed (for nuclei) and not for all particles. Thus, this is
* a new, derived Stack object.
*
* Only for Code::Nucleus particles A and Z are stored, not for all
* normal elementary particles.
*
* Thus in your code, make sure to always check <code>
* particle.getPID()==Code::Nucleus </code> before attempting to
* read any nuclear information.
*/
template <template <typename> class InnerParticleInterface,
typename StackIteratorInterface>
struct NuclearParticleInterface
: public InnerParticleInterface<StackIteratorInterface> {
typedef InnerParticleInterface<StackIteratorInterface> super_type;
public:
typedef std::tuple<Code, HEPEnergyType, DirectionVector, Point, TimeType,
unsigned short, unsigned short>
nuclear_particle_data_type;
typedef std::tuple<Code, MomentumVector, Point, TimeType, unsigned short,
unsigned short>
nuclear_particle_data_momentum_type;
/**
*
* @param v which is a tuple containing: PID, kinetic Energy, DirectionVector,
* Position, Time
*/
void setParticleData(typename super_type::particle_data_type const& v);
/**
*
* @param v which is a tuple containing: PID, kinetic Energy, DirectionVector,
* Position, Time, A, Z
*/
void setParticleData(nuclear_particle_data_type const& v);
/**
*
* @param p the parent particle
* @param v which is a tuple containing: PID, Momentum Vector, Position,
* Time
*/
void setParticleData(super_type& p, typename super_type::particle_data_type const& v);
/**
*
* @param p the parent particle
* @param v which is a tuple containing: PID, Momentum Vector, Position,
* Time, A, Z
*/
void setParticleData(super_type& p, nuclear_particle_data_type const& v);
/**
*
* @param v which is a tuple containing: PID, Total Energy, MomentumVector, Position,
* Time
*/
void setParticleData(typename super_type::particle_data_momentum_type const& v);
/**
*
* @param v which is a tuple containing: PID, Total Energy, MomentumVector, Position,
* Time, A, Z
*/
void setParticleData(nuclear_particle_data_momentum_type const& v);
/**
*
* @param p parent particle
* @param v which is a tuple containing: PID, Total Energy, MomentumVector, Position,
* Time
*/
void setParticleData(super_type& p,
typename super_type::particle_data_momentum_type const& v);
/**
*
* @param p parent particle
* @param v which is a tuple containing: PID, Total Energy, MomentumVector, Position,
* Time, A, Z
*/
void setParticleData(super_type& p, nuclear_particle_data_momentum_type const& v);
std::string asString() const;
/**
* @name individual setters
* @{
*/
void setNuclearA(const unsigned short vA) {
super_type::getStackData().setNuclearA(super_type::getIndex(), vA);
}
void setNuclearZ(const unsigned short vZ) {
super_type::getStackData().setNuclearZ(super_type::getIndex(), vZ);
}
/// @}
/**
* @name individual getters
* @{
*/
int getNuclearA() const {
return super_type::getStackData().getNuclearA(super_type::getIndex());
}
int getNuclearZ() const {
return super_type::getStackData().getNuclearZ(super_type::getIndex());
}
/// @}
/**
* Overwrite normal getPDG function with nuclear version
*/
PDGCode getPDG() const;
/**
* Overwrite normal setMomentum function with nuclear version
*/
void setMomentum(MomentumVector const& v);
/**
* Overwrite normal getMomentum function with nuclear version
*/
MomentumVector getMomentum() const;
/**
* Overwrite normal getEnergy function with nuclear version
*/
void setEnergy(HEPEnergyType const& e);
/**
* Overwrite normal getVelocity function with nuclear version
*/
VelocityVector getVelocity() const;
/**
* Overwrite normal getMass function with nuclear version
*/
HEPMassType getMass() const;
/**
* Overwrite normal getParticleCharge function with nuclear version
*/
ElectricChargeType getCharge() const;
/**
* Overwrite normal getEnergy function with nuclear version
*/
HEPEnergyType getEnergy() const;
/**
* Overwirte normal getChargeNumber function with nuclear version
**/
int16_t getChargeNumber() const;
int getNucleusRef() const {
return super_type::getStackData().getNucleusRef(super_type::getIndex());
} // LCOV_EXCL_LINE
protected:
void setNucleusRef(const int vR) {
super_type::getStackData().setNucleusRef(super_type::getIndex(), vR);
}
bool isNucleus() const {
return super_type::getStackData().isNucleus(super_type::getIndex());
}
};
/**
* @class NuclearStackExtension
*
* Memory implementation of adding nuclear inforamtion to the
* existing particle stack defined in class InnerStackImpl.
*
* Inside the NuclearStackExtension class there is a dedicated
* fNucleusRef index, where fNucleusRef[i] is referring to the
* correct A and Z for a specific particle index i. fNucleusRef[i]
* == -1 means that this is not a nucleus, and a subsequent call to
* getNucleusA would produce an exception.
*/
template <typename InnerStackImpl>
class NuclearStackExtensionImpl : public InnerStackImpl {
typedef InnerStackImpl super_type;
public:
typedef std::vector<int> nucleus_ref_type;
typedef std::vector<unsigned short> nuclear_a_type;
typedef std::vector<unsigned short> nuclear_z_type;
NuclearStackExtensionImpl() = default;
NuclearStackExtensionImpl(NuclearStackExtensionImpl<InnerStackImpl> const&) = default;
NuclearStackExtensionImpl(NuclearStackExtensionImpl<InnerStackImpl>&&) = default;
NuclearStackExtensionImpl<InnerStackImpl>& operator=(
NuclearStackExtensionImpl<InnerStackImpl> const&) = default;
NuclearStackExtensionImpl<InnerStackImpl>& operator=(
NuclearStackExtensionImpl<InnerStackImpl>&&) = default;
void init() { super_type::init(); }
void dump() { super_type::dump(); }
void clear();
unsigned int getSize() const { return nucleusRef_.size(); }
unsigned int getCapacity() const { return nucleusRef_.capacity(); }
void setNuclearA(const unsigned int i, const unsigned short vA) {
nuclearA_[getNucleusRef(i)] = vA;
}
void setNuclearZ(const unsigned int i, const unsigned short vZ) {
nuclearZ_[getNucleusRef(i)] = vZ;
}
void setNucleusRef(const unsigned int i, const int v) { nucleusRef_[i] = v; }
int getNuclearA(const unsigned int i) const { return nuclearA_[getNucleusRef(i)]; }
int getNuclearZ(const unsigned int i) const { return nuclearZ_[getNucleusRef(i)]; }
// this function will create new storage for Nuclear Properties, and return the
// reference to it
int getNucleusNextRef();
int getNucleusRef(const unsigned int i) const;
bool isNucleus(const unsigned int i) const { return nucleusRef_[i] >= 0; }
/**
* Function to copy particle at location i1 in stack to i2
*/
void copy(const unsigned int i1, const unsigned int i2);
/**
* Function to copy particle at location i2 in stack to i1
*/
void swap(const unsigned int i1, const unsigned int i2);
void incrementSize();
void decrementSize();
private:
/// the actual memory to store particle data
nucleus_ref_type nucleusRef_;
nuclear_a_type nuclearA_;
nuclear_z_type nuclearZ_;
}; // end class NuclearStackExtensionImpl
template <typename TInnerStack, template <typename> typename PI_>
using NuclearStackExtension =
Stack<NuclearStackExtensionImpl<typename TInnerStack::stack_data_type>, PI_>;
//
template <typename TStackIter>
using ExtendedParticleInterfaceType =
NuclearParticleInterface<VectorStack::pi_type, TStackIter>;
// the particle data stack with extra nuclear information:
using ParticleDataStack =
NuclearStackExtension<VectorStack, ExtendedParticleInterfaceType>;
} // namespace corsika::nuclear_stack
#include <corsika/detail/stack/NuclearStackExtension.inl>
/*
* (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.
* This software is distributed under the terms of the 3-clause BSD license.
* See file LICENSE for a full version of the license.
*/
#pragma once
#include <corsika/framework/core/ParticleProperties.hpp>
#include <corsika/framework/core/PhysicalUnits.hpp>
#include <corsika/framework/core/EnergyMomentumOperations.hpp>
#include <corsika/framework/stack/Stack.hpp>
#include <corsika/framework/geometry/Point.hpp>
......@@ -33,52 +33,56 @@ namespace corsika {
typedef ParticleBase<TStackIterator> super_type;
public:
/**
* particle data information content.
*
* PID, Ekin, direction, position, time.
*/
typedef std::tuple<Code, HEPEnergyType, DirectionVector, Point, TimeType>
particle_data_type;
typedef std::tuple<Code, MomentumVector, Point, TimeType> particle_data_momentum_type;
std::string asString() const;
/**
* Set data of new particle.
* secondary particle data information content.
*
* @param v tuple containing: PID, Momentum Vector, Position, Time
* PID, Ekin, direction.
*/
typedef std::tuple<Code, HEPEnergyType, DirectionVector> secondary_data_type;
/**
* secondary particle data information content with position and time update.
*
* MomentumVector is only used to determine the DirectionVector, the normalization
* is lost.
* PID, Ekin, direction, delta-Position, delta-Time.
*/
void setParticleData(particle_data_type const& v);
typedef std::tuple<Code, HEPEnergyType, DirectionVector, Vector<length_d>, TimeType>
secondary_extended_data_type;
std::string asString() const;
/**
* Set data of new particle.
*
* @param p parent particle
* @param v tuple containing: PID, Momentum Vector, Position, Time
* @param v tuple containing of type particle_data_type
*
* MomentumVector is only used to determine the DirectionVector, the normalization
* is lost.
*/
void setParticleData(ParticleInterface<TStackIterator> const& p,
particle_data_type const& v);
void setParticleData(particle_data_type const& v);
/**
* Set data of new particle.
*
* @param v tuple containing: PID, kinetic Energy, Direction Vector, Position, Time
*
* @param parent parent particle
* @param v tuple containing of type secondary_data_type.
*/
void setParticleData(particle_data_momentum_type const& v);
void setParticleData(ParticleInterface<TStackIterator> const& parent,
secondary_data_type const& v);
/**
* Set data of new particle.
*
* @param p parent particle
* @param v tuple containing: PID, kinetic Energy, Direction Vector, Position, Time
*
* @param parent parent particle
* @param v tuple containing of type secondary_extended_data_type.
*/
void setParticleData(ParticleInterface<TStackIterator> const& p,
particle_data_momentum_type const& v);
void setParticleData(ParticleInterface<TStackIterator> const& parent,
secondary_extended_data_type const& v);
///! Set particle corsika::Code
void setPID(Code const id) {
......@@ -96,23 +100,6 @@ namespace corsika {
super_type::getStackData().setKineticEnergy(super_type::getIndex(), ekin);
}
/**
The MomentumVector v is used to determine the DirectionVector, and to update the
particle energy.
*/
void setMomentum(MomentumVector const& v) {
HEPMomentumType const P = v.getNorm();
if (P == 0_eV) {
super_type::getStackData().setKineticEnergy(super_type::getIndex(), 0_eV);
super_type::getStackData().setDirection(
super_type::getIndex(), DirectionVector(v.getCoordinateSystem(), {0, 0, 0}));
} else {
super_type::getStackData().setKineticEnergy(
super_type::getIndex(),
sqrt(square(getMass()) + square(P)) - this->getMass());
super_type::getStackData().setDirection(super_type::getIndex(), v / P);
}
}
//! Set direction
void setDirection(DirectionVector const& v) {
super_type::getStackData().setDirection(super_type::getIndex(), v);
......@@ -137,11 +124,11 @@ namespace corsika {
return super_type::getStackData().getKineticEnergy(super_type::getIndex());
}
//! Get direction
DirectionVector getDirection() const {
DirectionVector const& getDirection() const {
return super_type::getStackData().getDirection(super_type::getIndex());
}
//! Get position
Point getPosition() const {
Point const& getPosition() const {
return super_type::getStackData().getPosition(super_type::getIndex());
}
//! Get time
......@@ -159,7 +146,7 @@ namespace corsika {
}
//! Get momentum
MomentumVector getMomentum() const {
auto const P = sqrt(square(getEnergy()) - square(this->getMass()));
auto const P = calculate_momentum(this->getEnergy(), this->getMass());
return super_type::getStackData().getDirection(super_type::getIndex()) * P;
}
//! Get mass of particle
......@@ -168,7 +155,7 @@ namespace corsika {
//! Get electric charge
ElectricChargeType getCharge() const { return get_charge(this->getPID()); }
//! Get kinetic energy
//! Get total energy
HEPEnergyType getEnergy() const { return this->getKineticEnergy() + this->getMass(); }
//! Get charge number
......@@ -177,7 +164,7 @@ namespace corsika {
};
/**
* Memory implementation of the most simple (stupid) particle stack object.
* Memory implementation of the most simple particle stack object.
*
* @note if we ever want to have off-shell particles, we need to
* add momentum as HEPMomentumType, and a lot of care.
......@@ -217,19 +204,19 @@ namespace corsika {
Code getPID(size_t i) const { return dataPID_[i]; }
HEPEnergyType getKineticEnergy(size_t i) const { return dataEkin_[i]; }
DirectionVector getDirection(size_t i) const { return direction_[i]; }
Point getPosition(size_t i) const { return position_[i]; }
DirectionVector const& getDirection(size_t i) const { return direction_[i]; }
Point const& getPosition(size_t i) const { return position_[i]; }
TimeType getTime(size_t i) const { return time_[i]; }
/**
* Function to copy particle at location i2 in stack to i1
* Function to copy particle at location i2 in stack to i1.
*/
void copy(size_t i1, size_t i2);
void copy(size_t const i1, size_t const i2);
/**
* Function to copy particle at location i2 in stack to i1
* Function to copy particle at location i2 in stack to i1.
*/
void swap(size_t i1, size_t i2);
void swap(size_t const i1, size_t const i2);
void incrementSize();
void decrementSize();
......
/*
* (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.
* This software is distributed under the terms of the 3-clause BSD license.
* See file LICENSE for a full version of the license.
*/
#pragma once
......@@ -23,7 +22,7 @@ namespace corsika::weights {
* 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
* operator will deliver access to these function.
*/
/**
......@@ -53,7 +52,7 @@ namespace corsika::weights {
/**
* @class WeightData
*
* definition of stack-data object to store geometry information
* definition of stack-data object to store geometry information.
*/
class WeightData {
......
/*
* (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.
* This software is distributed under the terms of the 3-clause BSD license.
* See file LICENSE for a full version of the license.
*/
#pragma once
......
/*
* (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.
* This software is distributed under the terms of the 3-clause BSD license.
* See file LICENSE for a full version of the license.
*/
#pragma once
......
/*
* (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.
* This software is distributed under the terms of the 3-clause BSD license.
* See file LICENSE for a full version of the license.
*/
#pragma once
......
/*
* (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.
* This software is distributed under the terms of the 3-clause BSD license.
* See file LICENSE for a full version of the license.
*/
#pragma once
......
/*
* (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.
* This software is distributed under the terms of the 3-clause BSD license.
* See file LICENSE for a full version of the license.
*/
#pragma once
......@@ -67,10 +66,8 @@ namespace corsika::history {
/**
* @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
* corresponding definition of a stack-readout object, the iteractor
* dereference operator will deliver access to these function.
*/
template <typename T, typename TEvent>
class HistoryDataInterface : public T {
......
/*
* (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.
* This software is distributed under the terms of the 3-clause BSD license.
* See file LICENSE for a full version of the license.
*/
#pragma once
......
#!/usr/bin/env python3
#
# (c) Copyright 2020 CORSIKA Project, corsika-project@lists.kit.edu
#
# This software is distributed under the terms of the 3-clause BSD license.
# See file LICENSE for a full version of the license.
#
"""
Run clang-format with the style file in the CORSIKA repository.
By default it finds new files and files with modifications with respect to the current master and prints the filenames which need clang-formatting. Returns 1 if there are files which need modifications and 0 otherwise, so it can be used as a test.
By default it finds new files and files with modifications with respect
to the current master and prints the filenames which need clang-formatting.
Returns 1 if there are files which need modifications and 0 otherwise,
so it can be used as a test.
"""
import argparse
import subprocess as subp
import os
......
#!/usr/bin/env python3
#
# (c) Copyright 2020 CORSIKA Project, corsika-project@lists.kit.edu
#
# This software is distributed under the terms of the 3-clause BSD license.
# See file LICENSE for a full version of the license.
#
"""
Script to crawl all files (hpp,inl,cpp) in a directory structure and
check if there is an initial comment block within each file that
resembles the CORSIKA 8 copyright notice.
Exceptions can be specified in `excludeDirs` and `excludedFiles`.
"""
import os
import sys, getopt
import re
......@@ -10,9 +26,8 @@ import re
text = """/*
* (c) Copyright YEAR 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.
* This software is distributed under the terms of the 3-clause BSD license.
* See file LICENSE for a full version of the license.
*/\n
"""
......