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
EvtSherpaPhotons.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_SHERPA
22
#ifndef EVTSHERPAPHOTONS_HH
23
#define EVTSHERPAPHOTONS_HH
24
25
#include "
EvtGenBase/EvtAbsRadCorr.hh
"
26
#include "
EvtGenBase/EvtHepMCEvent.hh
"
27
#include "
EvtGenBase/EvtId.hh
"
28
#include "
EvtGenBase/EvtPDL.hh
"
29
#include "
EvtGenBase/EvtParticle.hh
"
30
31
#include "SHERPA/Main/Sherpa.H"
32
33
#include <string>
34
35
class
EvtParticle
;
36
class
EvtAbsExternalGen
;
37
38
/* Description: EvtGen's interface to PHOTOS for generation of
39
* QED final state radiation.
40
*/
41
class
EvtSherpaPhotons
:
public
EvtAbsRadCorr
{
42
public
:
43
EvtSherpaPhotons
(
const
bool
useEvtGenRandom =
true
,
44
const
double
infraredCutOff = 1.0e-7,
const
int
mode = 2,
45
const
int
useME = 0 );
46
47
void
initialise
()
override
;
48
49
void
doRadCorr
(
EvtParticle
* p )
override
;
50
51
private
:
52
// Provides vector of pointers to the configuration strings for Sherpa
53
std::vector<char*>
addParameters
();
54
55
// Updates the particle properties table of Sherpa
56
void
updateParticleLists
();
57
58
// Vector containing the configuration strings for Sherpa
59
// INIT_ONLY=6 intialises the Sherpa objects without launching simulation.
60
std::vector<std::string>
m_configs
{
"Sherpa"
,
"INIT_ONLY=6"
};
61
62
// Use EvtGen's random number generator
63
bool
m_useEvtGenRandom
=
true
;
64
65
// Default settings for PHOTONS++
66
// Minimum photon Energy (infrared cut-off).
67
double
m_infraredCutOff
= 1.0e-7;
68
// Switches on (default) the hard emission corrections (mode 2),
69
// otherwise follow the soft-photon only approach (mode 1).
70
int
m_mode
= 2;
71
// Switches off (default) or on the exact matrix-element corrections (works only for mode 2)
72
int
m_useME
= 0;
73
74
// Default photon properties
75
const
std::string
m_photonType
=
"gamma"
;
76
EvtId
m_gammaId
=
EvtId
( -1, -1 );
77
long
int
m_gammaPDG
= 22;
78
79
// The Sherpa instance.
80
static
std::unique_ptr<SHERPA::Sherpa>
m_sherpaGen
;
81
static
bool
m_initialised
;
82
static
std::mutex
m_sherpa_mutex
;
83
};
84
85
#endif
86
87
#endif
EvtAbsRadCorr.hh
EvtHepMCEvent.hh
EvtId.hh
EvtPDL.hh
EvtParticle.hh
EvtAbsExternalGen
Definition
EvtAbsExternalGen.hh:28
EvtAbsRadCorr::EvtAbsRadCorr
EvtAbsRadCorr()
Definition
EvtAbsRadCorr.hh:30
EvtId
Definition
EvtId.hh:27
EvtParticle
Definition
EvtParticle.hh:45
EvtSherpaPhotons::m_gammaPDG
long int m_gammaPDG
Definition
EvtSherpaPhotons.hh:77
EvtSherpaPhotons::updateParticleLists
void updateParticleLists()
Definition
EvtSherpaPhotons.cpp:149
EvtSherpaPhotons::doRadCorr
void doRadCorr(EvtParticle *p) override
Definition
EvtSherpaPhotons.cpp:198
EvtSherpaPhotons::m_useEvtGenRandom
bool m_useEvtGenRandom
Definition
EvtSherpaPhotons.hh:63
EvtSherpaPhotons::m_infraredCutOff
double m_infraredCutOff
Definition
EvtSherpaPhotons.hh:67
EvtSherpaPhotons::m_sherpaGen
static std::unique_ptr< SHERPA::Sherpa > m_sherpaGen
Definition
EvtSherpaPhotons.hh:80
EvtSherpaPhotons::m_sherpa_mutex
static std::mutex m_sherpa_mutex
Definition
EvtSherpaPhotons.hh:82
EvtSherpaPhotons::m_useME
int m_useME
Definition
EvtSherpaPhotons.hh:72
EvtSherpaPhotons::m_mode
int m_mode
Definition
EvtSherpaPhotons.hh:70
EvtSherpaPhotons::m_initialised
static bool m_initialised
Definition
EvtSherpaPhotons.hh:81
EvtSherpaPhotons::m_configs
std::vector< std::string > m_configs
Definition
EvtSherpaPhotons.hh:60
EvtSherpaPhotons::EvtSherpaPhotons
EvtSherpaPhotons(const bool useEvtGenRandom=true, const double infraredCutOff=1.0e-7, const int mode=2, const int useME=0)
Definition
EvtSherpaPhotons.cpp:45
EvtSherpaPhotons::addParameters
std::vector< char * > addParameters()
Definition
EvtSherpaPhotons.cpp:132
EvtSherpaPhotons::m_gammaId
EvtId m_gammaId
Definition
EvtSherpaPhotons.hh:76
EvtSherpaPhotons::m_photonType
const std::string m_photonType
Definition
EvtSherpaPhotons.hh:75
EvtSherpaPhotons::initialise
void initialise() override
Definition
EvtSherpaPhotons.cpp:55
Generated by
1.17.0