cepgen is hosted by Hepforge, IPPP Durham
CepGen 1.2.5
Central exclusive processes event generator
Loading...
Searching...
No Matches
MadGraphInterface.h
Go to the documentation of this file.
1/*
2 * CepGen: a central exclusive processes event generator
3 * Copyright (C) 2020-2023 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 CepGenAddOns_MadGraphWrapper_MadGraphInterface_h
20#define CepGenAddOns_MadGraphWrapper_MadGraphInterface_h
21
24
25namespace cepgen {
26 class MadGraphInterface : public SteeredObject<MadGraphInterface> {
27 public:
28 explicit MadGraphInterface(const ParametersList&);
29
31
32 std::string run() const;
33
35 static ParametersDescription extractParamCardParameters(const std::string&);
37 static std::string generateParamCard(const ParametersDescription&);
38
39 private:
40 static constexpr size_t cmd_buffer_size_ = 256;
41 static std::unordered_map<std::string, spdgid_t> mg5_parts_;
42
43 void generateLibrary(const fs::path&, const fs::path&, const fs::path&) const;
44 void parseExtraParticles();
45 void linkCards() const;
46 std::string prepareMadGraphProcess() const;
47
48 const std::string proc_;
49 const std::string model_;
50 const fs::path tmp_dir_;
51 const fs::path card_path_;
52 const fs::path log_filename_;
53 const fs::path standalone_cpp_path_;
54 const ParametersList extra_particles_, model_parameters_;
55
56 std::string extra_part_definitions_;
57 };
58} // namespace cepgen
59
60#endif
static ParametersDescription extractParamCardParameters(const std::string &)
Retrieve a CepGen-compatible parameters list from a MadGraph parameters card.
static ParametersDescription description()
static std::string generateParamCard(const ParametersDescription &)
Generate a MadGraph parameters card from CepGen user-steered parameters.
A description object for parameters collection.
Base user-steerable object.
Common namespace for this Monte Carlo generator.