Skip to content
Dominik Baack edited this page Jun 12, 2017 · 14 revisions

TOC

  1. Table of content
  2. What is Cor++?
  3. What can Cor++ be used for?
  4. How is Cor++ designed and developed?
  5. What does the version numbers stand for?
  6. Which modules are included?
  7. What modules are currently developed?
  8. How can I use the module X?
  9. How can I contribute?
  10. How can I report feature requests, bugs or problems?

What is Cor++?

Cor++ or Cor-PlusPlus is a collection of multiple modules, written in C++ 11, for the cosmic air shower simulation framework CORSIKA. The focus for this project lies on increasing the performance and easier customization of the simulation. The number of modules is steadily increasing.

What can Cor++ be used for?

Cor++ can be used for many different purposes and easily expanded. Currently following modules are implemented:

  • Dynstack: Replace the internal particle storage and grants access to all particles generated during the simulation. For example this can be used to remove particle not seen by the experiment at an early production stage.
  • RemoteControl: Implements a network layer into corsika. This can be used to control the simulation or send/receive data during the simulation.

How is Cor++ designed and developed?

Cor++ is designed in multiple functional independent modules each with its own directory. Shared code is located in the lib folder that includes a collection of different functions and classes. The development mainly take place in branches that get merged into the main branch. Depending on the type of change the version number get changed according to the description below. For each major feature a tarball will be created and uploaded here.

What does the version numbers stand for?

The version number scheme follows the [semantic versioning](the http://semver.org/) guidelines. This means the version number is distributed between three numbers of type X.Y.Z.

Which modules are included?

See What can Cor++ be used for? for a list of currently included modules and What modules are currently developed? for a list of modules with are currently in development stage.

What modules are currently developed?

Most of the time multiple modules are in development to add new features or expand the functionality of existing ones. Currently this modules are in an early development stage:

  • DynRNG: Multiple fast Random-Number-Generators with different characteristics for quality and speed
  • DynIO: More controllable file IO layer that allows buffered access for better removal of shower
  • CerRay: GPU or high parallel implementation of cherenkov light generation.

How can I use the module X?

CORSIKA includes all currently stable modules. Simply select the module in the coconut compile script and read the appropriated section in this wiki for further documentation for different modules.

How can I contribute?

The offical way:

  1. Create a GitHub account
  2. Fork this project
  3. Add your documented changes to the forked project
  4. Write a testing script for bigger projects
  5. Commit a pull request that includes all your changes including the tests

If, for some reason, it is not possible to use the official way write an E-Mail and we can figure out a way.

How can I report feature requests, bugs or problems?

For bugs and problems write and issue that includes your selected settings in coconut, the steering card and the output of CORSIKA. If, for privacy reasons, it is not possible to upload one of the files you can send them per mail and comment this in the issue. Features requests should be written as clearly and specific as possible. Currently there is only one person working on this projected with a limited amount of time. I will try to implement as much as possible.