evtgen is hosted by Hepforge, IPPP Durham
EvtGen  2.0.0
Monte Carlo generator of particle decays, in particular the weak decays of heavy flavour particles such as B mesons.
EvtExternalGenFactory.hh
Go to the documentation of this file.
1 
2 /***********************************************************************
3 * Copyright 1998-2020 CERN for the benefit of the EvtGen authors *
4 * *
5 * This file is part of EvtGen. *
6 * *
7 * EvtGen is free software: you can redistribute it and/or modify *
8 * it under the terms of the GNU General Public License as published by *
9 * the Free Software Foundation, either version 3 of the License, or *
10 * (at your option) any later version. *
11 * *
12 * EvtGen is distributed in the hope that it will be useful, *
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
15 * GNU General Public License for more details. *
16 * *
17 * You should have received a copy of the GNU General Public License *
18 * along with EvtGen. If not, see <https://www.gnu.org/licenses/>. *
19 ***********************************************************************/
20 
21 #ifndef EVTEXTERNALGENFACTORY_HH
22 #define EVTEXTERNALGENFACTORY_HH
23 
25 
26 #include <map>
27 
28 // Description: A factory type method to create engines for external physics
29 // generators like Pythia.
30 
32  public:
33  enum genId
34  {
38  };
39 
41 
43 
45 
46  void definePythiaGenerator( std::string xmlDir, bool convertPhysCodes,
47  bool useEvtGenRandom = true );
48  void definePhotosGenerator( std::string photonType = "gamma",
49  bool useEvtGenRandom = true );
50  void defineTauolaGenerator( bool useEvtGenRandom = true );
51 
52  //methods to add configuration commands to the pythia generators
53  //void addPythiaCommand( std::string generator, std::string module, std::string param, std::string value);
54  //void addPythia6Command(std::string generator, std::string module, std::string param, std::string value);
55 
56  protected:
59 
60  typedef std::map<int, EvtAbsExternalGen*> ExtGenMap;
61  typedef std::map<int, std::map<std::string, std::vector<std::string>>> ExtGenCommandMap;
62 
63  private:
65 
68 };
69 
70 #endif
std::map< int, EvtAbsExternalGen * > ExtGenMap
static EvtExternalGenFactory * getInstance()
std::map< int, std::map< std::string, std::vector< std::string > > > ExtGenCommandMap
ExtGenCommandMap _extGenCommandMap
EvtAbsExternalGen * getGenerator(int genId=0)
void definePythiaGenerator(std::string xmlDir, bool convertPhysCodes, bool useEvtGenRandom=true)
void defineTauolaGenerator(bool useEvtGenRandom=true)
EvtExternalGenFactory(const EvtExternalGenFactory &)
void definePhotosGenerator(std::string photonType="gamma", bool useEvtGenRandom=true)