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.
EvtGen.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 EVTGEN_HH
22 #define EVTGEN_HH
23 
24 #include "EvtGenBase/EvtPDL.hh"
25 
26 #include <list>
27 #include <iostream>
28 
29 class EvtParticle;
30 class EvtRandomEngine;
31 class EvtVector4R;
32 class EvtStdHep;
33 class EvtSpinDensity;
34 class EvtAbsRadCorr;
35 class EvtDecayBase;
36 class EvtHepMCEvent;
37 
38 class EvtGen {
39  public:
40  EvtGen( const std::string& decayName, const std::string& pdtTableName,
41  EvtRandomEngine* randomEngine = 0, EvtAbsRadCorr* isrEngine = 0,
42  const std::list<EvtDecayBase*>* extraModels = 0, int mixingType = 1,
43  bool useXml = false );
44 
45  EvtGen( const std::string& decayName, std::istream& pdtTableData,
46  EvtRandomEngine* randomEngine = 0, EvtAbsRadCorr* isrEngine = 0,
47  const std::list<EvtDecayBase*>* extraModels = 0, int mixingType = 1,
48  bool useXml = false );
49 
50  ~EvtGen();
51 
52  void readUDecay( const std::string& udecay_name, bool useXml = false );
53 
54  EvtHepMCEvent* generateDecay( int PDGid, EvtVector4R refFrameP4,
55  EvtVector4R translation,
56  EvtSpinDensity* spinDensity = 0 );
57 
58  void generateDecay( EvtParticle* p );
59 
60  private:
61 
62  void initialize( const std::string& decayName, std::istream& pdtTable,
63  EvtRandomEngine* randomEngine = 0,
64  EvtAbsRadCorr* isrEngine = 0,
65  const std::list<EvtDecayBase*>* extraModels = 0,
66  int mixingType = 1, bool useXml = false );
67 
70 };
71 
72 #endif
void initialize(const std::string &decayName, std::istream &pdtTable, EvtRandomEngine *randomEngine=0, EvtAbsRadCorr *isrEngine=0, const std::list< EvtDecayBase * > *extraModels=0, int mixingType=1, bool useXml=false)
Definition: EvtGen.cpp:87
EvtPDL _pdl
Definition: EvtGen.hh:68
int _mixingType
Definition: EvtGen.hh:69
Definition: EvtGen.hh:38
EvtGen(const std::string &decayName, const std::string &pdtTableName, EvtRandomEngine *randomEngine=0, EvtAbsRadCorr *isrEngine=0, const std::list< EvtDecayBase * > *extraModels=0, int mixingType=1, bool useXml=false)
Definition: EvtGen.cpp:62
EvtHepMCEvent * generateDecay(int PDGid, EvtVector4R refFrameP4, EvtVector4R translation, EvtSpinDensity *spinDensity=0)
Definition: EvtGen.cpp:163
void readUDecay(const std::string &udecay_name, bool useXml=false)
Definition: EvtGen.cpp:139
Definition: EvtPDL.hh:36
~EvtGen()
Definition: EvtGen.cpp:50