Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-09-27 09:14:59

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 PCSIM_GEN_LA_GENERATOR_LOADED
0021 #define PCSIM_GEN_LA_GENERATOR_LOADED
0022 
0023 #include <lager/core/generator.hh>
0024 #include <lager/gen/initial/generator.hh>
0025 #include <lager/gen/lA/generator.hh>
0026 #include <lager/gen/lA_event.hh>
0027 #include <lager/proc/decay/lA.hh>
0028 #include <lager/proc/detector/detector.hh>
0029 #include <lager/proc/reconstruction/lA.hh>
0030 #include <memory>
0031 
0032 namespace lager {
0033 
0034 class lA_generator : public event_generator<lA_event, lA_data> {
0035 public:
0036   using base_type = event_generator<lA_event, lA_data>;
0037 
0038   lA_generator(const configuration& cf, const string_path& path,
0039                std::shared_ptr<TRandom> r);
0040 
0041 protected:
0042   virtual lA_data generate_initial() const;
0043   virtual void build_event(lA_event& e) const;
0044 
0045 private:
0046   // initial state generators
0047   std::shared_ptr<initial::vertex_generator> vertex_gen_;
0048   std::shared_ptr<initial::beam_generator> lepton_gen_;
0049   std::shared_ptr<initial::beam_generator> ion_gen_;
0050   std::shared_ptr<initial::target_generator> target_gen_;
0051   std::shared_ptr<initial::photon_generator> photon_gen_;
0052   // event processors
0053   std::shared_ptr<decay::lA> decay_proc_;
0054   std::shared_ptr<detector::detector> detector_proc_;
0055   std::shared_ptr<reconstruction::lA> rc_proc_;
0056 };
0057 
0058 } // namespace lager
0059 
0060 #endif