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.
EvtTauolaEngine.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 #ifdef EVTGEN_TAUOLA
22 
23 #ifndef EVTTAUOLAENGINE_HH
24 #define EVTTAUOLAENGINE_HH
25 
27 #include "EvtGenBase/EvtId.hh"
30 
32 
33 #ifdef EVTGEN_HEPMC3
34 #include "HepMC3/Relatives.h"
35 #include "HepMC3/Units.h"
36 
37 #include "Tauola/TauolaHepMC3Event.h"
38 #include "Tauola/TauolaHepMC3Particle.h"
39 #else
40 #include "Tauola/TauolaHepMCEvent.h"
41 #include "Tauola/TauolaHepMCParticle.h"
42 #include "Tauola/TauolaParticle.h"
43 #endif
45 
46 #include <map>
47 #include <vector>
48 
49 // Description: Interface to the TAUOLA external generator
50 
51 class EvtTauolaEngine : public EvtAbsExternalGen {
52  public:
53  EvtTauolaEngine( bool useEvtGenRandom = true );
54 
55  bool doDecay( EvtParticle* theMother ) override;
56 
57  void initialise() override;
58 
59  protected:
60  private:
61  bool _initialised;
62  int _tauPDG, _nTauolaModes;
63  int _neutPropType, _posPropType, _negPropType;
64 
65  GenParticlePtr createGenParticle( EvtParticle* theParticle );
66 
67  void setUpPossibleTauModes();
68  void setOtherParameters();
69 
70  int getModeInt( EvtDecayBase* decayModel );
71 
72  void decayTauEvent( EvtParticle* tauParticle );
73 };
74 
75 #endif
76 
77 #endif
HepMC::GenParticle * GenParticlePtr
virtual void initialise()=0
virtual bool doDecay(EvtParticle *theMother)=0