cepgen is hosted by Hepforge, IPPP Durham
CepGen N/A
Central exclusive processes event generator
Interface.h
Go to the documentation of this file.
1/*
2 * CepGen: a central exclusive processes event generator
3 * Copyright (C) 2020-2025 Laurent Forthomme
4 *
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, either version 3 of the License, or
8 * any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
17 */
18
19#ifndef CepGenMadGraph_Interface_h
20#define CepGenMadGraph_Interface_h
21
25
26namespace cepgen::mg5amc {
27 class Interface final : public SteeredObject<Interface> {
28 public:
29 explicit Interface(const ParametersList&);
30
32
33 std::string run() const;
34
38 static std::string generateParamCard(const ParametersDescription&);
39
40 private:
41 static constexpr size_t cmd_buffer_size_ = 256;
42 static std::unordered_map<std::string, spdgid_t> mg5_parts_;
43
44 static void generateLibrary(const fs::path&, const fs::path&, const fs::path&);
45
46 void parseExtraParticles();
47 void linkCards() const;
48 std::string prepareMadGraphProcess() const;
49
50 const std::string proc_;
51 const std::string model_;
52 const fs::path tmp_dir_;
53 const fs::path card_path_;
54 const fs::path log_filename_;
55 const fs::path standalone_cpp_path_;
56 const ParametersList extra_particles_, model_parameters_;
57
58 std::string extra_part_definitions_;
59 };
60} // namespace cepgen::mg5amc
61
62#endif
A description object for parameters collection.
Base user-steerable object.
static std::string generateParamCard(const ParametersDescription &)
Generate a MadGraph parameters card from CepGen user-steered parameters.
static ParametersDescription extractParamCardParameters(const std::string &)
Retrieve a CepGen-compatible parameters list from a MadGraph parameters card.
static ParametersDescription description()
Interface(const ParametersList &)
std::string run() const