File indexing completed on 2026-08-06 09:20:01
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021 #ifndef EVTGEN_HH
0022 #define EVTGEN_HH
0023
0024 #include "EvtGenBase/EvtPDL.hh"
0025
0026 #include <list>
0027 #include <iostream>
0028
0029 class EvtParticle;
0030 class EvtRandomEngine;
0031 class EvtVector4R;
0032 class EvtStdHep;
0033 class EvtSpinDensity;
0034 class EvtAbsRadCorr;
0035 class EvtDecayBase;
0036 class EvtHepMCEvent;
0037
0038 class EvtGen {
0039 public:
0040 EvtGen( const std::string& decayName, const std::string& pdtTableName,
0041 EvtRandomEngine* randomEngine = 0, EvtAbsRadCorr* isrEngine = 0,
0042 const std::list<EvtDecayBase*>* extraModels = 0, int mixingType = 1,
0043 bool useXml = false );
0044
0045 EvtGen( const std::string& decayName, std::istream& pdtTableData,
0046 EvtRandomEngine* randomEngine = 0, EvtAbsRadCorr* isrEngine = 0,
0047 const std::list<EvtDecayBase*>* extraModels = 0, int mixingType = 1,
0048 bool useXml = false );
0049
0050 ~EvtGen();
0051
0052 void readUDecay( const std::string& udecay_name, bool useXml = false );
0053
0054 EvtHepMCEvent* generateDecay( int PDGid, EvtVector4R refFrameP4,
0055 EvtVector4R translation,
0056 EvtSpinDensity* spinDensity = 0 );
0057
0058 void generateDecay( EvtParticle* p );
0059
0060 private:
0061
0062 void initialize( const std::string& decayName, std::istream& pdtTable,
0063 EvtRandomEngine* randomEngine = 0,
0064 EvtAbsRadCorr* isrEngine = 0,
0065 const std::list<EvtDecayBase*>* extraModels = 0,
0066 int mixingType = 1, bool useXml = false );
0067
0068 EvtPDL _pdl;
0069 int _mixingType;
0070 };
0071
0072 #endif