|
|
|||
File indexing completed on 2026-08-06 09:20:04
0001 0002 /*********************************************************************** 0003 * Copyright 1998-2020 CERN for the benefit of the EvtGen authors * 0004 * * 0005 * This file is part of EvtGen. * 0006 * * 0007 * EvtGen is free software: you can redistribute it and/or modify * 0008 * it under the terms of the GNU General Public License as published by * 0009 * the Free Software Foundation, either version 3 of the License, or * 0010 * (at your option) any later version. * 0011 * * 0012 * EvtGen is distributed in the hope that it will be useful, * 0013 * but WITHOUT ANY WARRANTY; without even the implied warranty of * 0014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 0015 * GNU General Public License for more details. * 0016 * * 0017 * You should have received a copy of the GNU General Public License * 0018 * along with EvtGen. If not, see <https://www.gnu.org/licenses/>. * 0019 ***********************************************************************/ 0020 0021 #ifndef EVTEXTERNALGENFACTORY_HH 0022 #define EVTEXTERNALGENFACTORY_HH 0023 0024 #include "EvtGenModels/EvtAbsExternalGen.hh" 0025 0026 #include <map> 0027 0028 // Description: A factory type method to create engines for external physics 0029 // generators like Pythia. 0030 0031 class EvtExternalGenFactory { 0032 public: 0033 enum genId 0034 { 0035 PythiaGenId = 0, 0036 PhotosGenId, 0037 TauolaGenId 0038 }; 0039 0040 static EvtExternalGenFactory* getInstance(); 0041 0042 EvtAbsExternalGen* getGenerator( int genId = 0 ); 0043 0044 void initialiseAllGenerators(); 0045 0046 void definePythiaGenerator( std::string xmlDir, bool convertPhysCodes, 0047 bool useEvtGenRandom = true ); 0048 void definePhotosGenerator( std::string photonType = "gamma", 0049 bool useEvtGenRandom = true ); 0050 void defineTauolaGenerator( bool useEvtGenRandom = true ); 0051 0052 //methods to add configuration commands to the pythia generators 0053 //void addPythiaCommand( std::string generator, std::string module, std::string param, std::string value); 0054 //void addPythia6Command(std::string generator, std::string module, std::string param, std::string value); 0055 0056 protected: 0057 EvtExternalGenFactory(); 0058 ~EvtExternalGenFactory(); 0059 0060 typedef std::map<int, EvtAbsExternalGen*> ExtGenMap; 0061 typedef std::map<int, std::map<std::string, std::vector<std::string>>> ExtGenCommandMap; 0062 0063 private: 0064 EvtExternalGenFactory( const EvtExternalGenFactory& ){}; 0065 0066 ExtGenMap _extGenMap; 0067 ExtGenCommandMap _extGenCommandMap; 0068 }; 0069 0070 #endif
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|