|
|
|||
File indexing completed on 2026-09-27 09:14:58
0001 // lAger: General Purpose l/A-event Generator 0002 // Copyright (C) 2016-2021 Sylvester Joosten <sjoosten@anl.gov> 0003 // 0004 // This file is part of lAger. 0005 // 0006 // lAger is free software: you can redistribute it and/or modify 0007 // it under the terms of the GNU General Public License as published by 0008 // the Free Shoftware Foundation, either version 3 of the License, or 0009 // (at your option) any later version. 0010 // 0011 // lAger is distributed in the hope that it will be useful, 0012 // but WITHOUT ANY WARRANTY; without even the implied warranty of 0013 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 0014 // GNU General Public License for more details. 0015 // 0016 // You should have received a copy of the GNU General Public License 0017 // along with lAger. If not, see <https://www.gnu.org/licenses/>. 0018 // 0019 0020 #ifndef LAGER_GEN_INITIAL_GENERATOR_LOADED 0021 #define LAGER_GEN_INITIAL_GENERATOR_LOADED 0022 0023 #include <lager/core/factory.hh> 0024 #include <lager/core/generator.hh> 0025 #include <lager/gen/initial/data.hh> 0026 0027 // ============================================================================= 0028 // main include file for beam generators 0029 // ============================================================================= 0030 0031 namespace lager { 0032 namespace initial { 0033 0034 // ============================================================================= 0035 // parent template for beam generators 0036 // ============================================================================= 0037 template <class Data, class... Input> 0038 class generator : public lager::generator<Data, Input...> { 0039 public: 0040 using data_type = Data; 0041 using base_type = lager::generator<Data, Input...>; 0042 0043 static factory<generator, const configuration&, const string_path&, 0044 std::shared_ptr<TRandom>> 0045 factory_instance; 0046 0047 generator(std::shared_ptr<TRandom> r) : base_type{std::move(r)} {} 0048 }; 0049 0050 template <class Data, class... Input> 0051 factory<generator<Data, Input...>, const configuration&, const string_path&, 0052 std::shared_ptr<TRandom>> 0053 generator<Data, Input...>::factory_instance; 0054 0055 // ============================================================================= 0056 // beam generator types 0057 // ============================================================================= 0058 using vertex_generator = generator<vertex>; 0059 using beam_generator = generator<beam, vertex>; 0060 using target_generator = generator<target, beam>; 0061 using photon_generator = generator<photon, beam, target>; 0062 0063 } // namespace initial 0064 } // namespace lager 0065 0066 #endif
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|