IAP GITLAB

Skip to content
Snippets Groups Projects
stack_example.cc 1.58 KiB
Newer Older

/**
 * (c) Copyright 2018 CORSIKA Project, corsika-project@lists.kit.edu
 *
 * See file AUTHORS for a list of contributors.
 *
 * 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/particles/ParticleProperties.h>
ralfulrich's avatar
ralfulrich committed
#include <corsika/stack/super_stupid/SuperStupidStack.h>
ralfulrich's avatar
ralfulrich committed

#include <corsika/geometry/Point.h>
#include <corsika/geometry/RootCoordinateSystem.h>

Ralf Ulrich's avatar
Ralf Ulrich committed
#include <cassert>
ralfulrich's avatar
ralfulrich committed
#include <iomanip>
#include <iostream>
ralfulrich's avatar
ralfulrich committed

ralfulrich's avatar
ralfulrich committed
using namespace corsika::units::si;
using namespace corsika::stack;
ralfulrich's avatar
ralfulrich committed
using namespace std;

void fill(corsika::stack::super_stupid::SuperStupidStack& s) {
ralfulrich's avatar
ralfulrich committed
  const geometry::CoordinateSystem& rootCS =
      geometry::RootCoordinateSystem::GetInstance().GetRootCoordinateSystem();
  for (int i = 0; i < 11; ++i) {
ralfulrich's avatar
ralfulrich committed
    s.AddParticle(corsika::particles::Code::Electron, 1.5_GeV * i,
                  stack::super_stupid::MomentumVector(rootCS, {0_GeV, 0_GeV, 1_GeV}),
                  geometry::Point(rootCS, 0_m, 0_m, 0_m), 0_ns);
void read(corsika::stack::super_stupid::SuperStupidStack& s) {
Ralf Ulrich's avatar
Ralf Ulrich committed
  assert(s.GetSize() == 11); // stack has 11 particles
  HEPEnergyType total_energy;
  int i = 0;
  for (auto& p : s) {
    total_energy += p.GetEnergy();
    // particles are electrons with 1.5 GeV energy times i
    assert(p.GetPID() == corsika::particles::Code::Electron);
ralfulrich's avatar
ralfulrich committed
    assert(p.GetEnergy() == 1.5_GeV * (i++));
Ralf Ulrich's avatar
Ralf Ulrich committed
  // assert(total_energy == 82.5_GeV);
int main() {
  corsika::stack::super_stupid::SuperStupidStack s;
ralfulrich's avatar
ralfulrich committed
  fill(s);
  read(s);
  return 0;
}