EvtGen
2.2.0
Monte Carlo generator of particle decays, in particular the weak decays of heavy flavour particles such as B mesons.
Toggle main menu visibility
Loading...
Searching...
No Matches
EvtGenExternal
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
26
#include "
EvtGenBase/EvtDecayBase.hh
"
27
#include "
EvtGenBase/EvtId.hh
"
28
#include "
EvtGenBase/EvtParticle.hh
"
29
#include "
EvtGenBase/EvtVector4R.hh
"
30
31
#include "
EvtGenModels/EvtAbsExternalGen.hh
"
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
44
#include "
EvtGenBase/EvtHepMCEvent.hh
"
45
46
#include <mutex>
47
48
// Description: Interface to the TAUOLA external generator
49
50
class
EvtTauolaEngine
:
public
EvtAbsExternalGen
{
51
public
:
52
EvtTauolaEngine
(
bool
useEvtGenRandom =
true
,
bool
seedTauolaFortran =
true
);
53
54
bool
doDecay
(
EvtParticle
* theMother )
override
;
55
56
void
initialise
()
override
;
57
58
protected
:
59
private
:
60
GenParticlePtr
createGenParticle
(
const
EvtParticle
* theParticle )
const
;
61
62
void
setUpPossibleTauModes
();
63
void
setOtherParameters
();
64
65
int
getModeInt
(
EvtDecayBase
* decayModel )
const
;
66
67
void
decayTauEvent
(
EvtParticle
* tauParticle );
68
69
bool
m_useEvtGenRandom
{
true
};
70
bool
m_seedTauolaFortran
{
true
};
71
72
// PDG standard code integer ID for tau particle
73
static
constexpr
int
m_tauPDG
{ 15 };
74
// Number of possible decay modes in Tauola
75
static
constexpr
int
m_nTauolaModes
{ 22 };
76
// Neutral and charged spin propagator choices
77
static
int
m_neutPropType
;
78
static
int
m_posPropType
;
79
static
int
m_negPropType
;
80
81
static
bool
m_initialised
;
82
static
std::mutex
m_tauola_mutex
;
83
};
84
85
#endif
86
87
#endif
EvtAbsExternalGen.hh
EvtDecayBase.hh
EvtHepMCEvent.hh
GenParticlePtr
HepMC3::GenParticlePtr GenParticlePtr
Definition
EvtHepMCEvent.hh:32
EvtId.hh
EvtParticle.hh
EvtVector4R.hh
EvtAbsExternalGen
Definition
EvtAbsExternalGen.hh:28
EvtDecayBase
Definition
EvtDecayBase.hh:33
EvtParticle
Definition
EvtParticle.hh:45
EvtTauolaEngine::m_posPropType
static int m_posPropType
Definition
EvtTauolaEngine.hh:78
EvtTauolaEngine::setUpPossibleTauModes
void setUpPossibleTauModes()
Definition
EvtTauolaEngine.cpp:108
EvtTauolaEngine::m_seedTauolaFortran
bool m_seedTauolaFortran
Definition
EvtTauolaEngine.hh:70
EvtTauolaEngine::initialise
void initialise() override
Definition
EvtTauolaEngine.cpp:57
EvtTauolaEngine::m_tauola_mutex
static std::mutex m_tauola_mutex
Definition
EvtTauolaEngine.hh:82
EvtTauolaEngine::m_negPropType
static int m_negPropType
Definition
EvtTauolaEngine.hh:79
EvtTauolaEngine::m_initialised
static bool m_initialised
Definition
EvtTauolaEngine.hh:81
EvtTauolaEngine::getModeInt
int getModeInt(EvtDecayBase *decayModel) const
Definition
EvtTauolaEngine.cpp:199
EvtTauolaEngine::EvtTauolaEngine
EvtTauolaEngine(bool useEvtGenRandom=true, bool seedTauolaFortran=true)
Definition
EvtTauolaEngine.cpp:52
EvtTauolaEngine::m_neutPropType
static int m_neutPropType
Definition
EvtTauolaEngine.hh:77
EvtTauolaEngine::decayTauEvent
void decayTauEvent(EvtParticle *tauParticle)
Definition
EvtTauolaEngine.cpp:339
EvtTauolaEngine::setOtherParameters
void setOtherParameters()
Definition
EvtTauolaEngine.cpp:214
EvtTauolaEngine::m_useEvtGenRandom
bool m_useEvtGenRandom
Definition
EvtTauolaEngine.hh:69
EvtTauolaEngine::doDecay
bool doDecay(EvtParticle *theMother) override
Definition
EvtTauolaEngine.cpp:310
EvtTauolaEngine::createGenParticle
GenParticlePtr createGenParticle(const EvtParticle *theParticle) const
Definition
EvtTauolaEngine.cpp:573
EvtTauolaEngine::m_tauPDG
static constexpr int m_tauPDG
Definition
EvtTauolaEngine.hh:73
EvtTauolaEngine::m_nTauolaModes
static constexpr int m_nTauolaModes
Definition
EvtTauolaEngine.hh:75
Generated by
1.17.0