CORSIKA8  0.0.0
The framework to simulate particle cascades for astroparticle physics
MediumPropertyModel.hpp
1 /*
2  * (c) Copyright 2020 CORSIKA Project, corsika-project@lists.kit.edu
3  *
4  * This software is distributed under the terms of the GNU General Public
5  * Licence version 3 (GPL Version 3). See file LICENSE for a full version of
6  * the license.
7  */
8 
9 #pragma once
10 
11 #include <corsika/media/IMediumPropertyModel.hpp>
12 
13 namespace corsika {
14 
19  template <typename T>
20  class MediumPropertyModel : public T {
21 
22  Medium medium_;
23 
24  public:
30  template <typename... Args>
31  MediumPropertyModel(Medium const medium, Args&&... args);
32 
39  Medium getMedium(Point const&) const override;
40 
47  void setMedium(Medium const medium);
48 
49  }; // END: class MediumPropertyModel
50 
51 } // namespace corsika
52 
53 #include <corsika/detail/media/MediumPropertyModel.inl>
MediumPropertyModel(Medium const medium, Args &&... args)
Construct a MediumPropertyModel.
void setMedium(Medium const medium)
Set the medium type.
Medium getMedium(Point const &) const override
Evaluate the medium type at a given location.
The cascade namespace assembles all objects needed to simulate full particles cascades.
A model for the energy loss property of a medium.