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
EvtPHOTOS.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_PHOTOS
22
#ifndef EVTPHOTOS_HH
23
#define EVTPHOTOS_HH
24
25
#include "
EvtGenBase/EvtAbsRadCorr.hh
"
26
#include "
EvtGenBase/EvtHepMCEvent.hh
"
27
#include "
EvtGenBase/EvtId.hh
"
28
#include "
EvtGenBase/EvtParticle.hh
"
29
#include "
EvtGenBase/EvtVector4R.hh
"
30
31
#ifdef EVTGEN_HEPMC3
32
#include "HepMC3/Units.h"
33
34
#include "Photos/PhotosHepMC3Event.h"
35
#include "Photos/PhotosHepMC3Particle.h"
36
#else
37
#include "Photos/PhotosHepMCEvent.h"
38
#include "Photos/PhotosHepMCParticle.h"
39
#include "Photos/PhotosParticle.h"
40
#endif
41
42
#include <mutex>
43
#include <string>
44
45
class
EvtParticle
;
46
class
EvtAbsExternalGen
;
47
48
/*
49
* Description: EvtGen's interface to PHOTOS for generation of
50
* QED final-state radiation.
51
*/
52
53
class
EvtPHOTOS
:
public
EvtAbsRadCorr
{
54
public
:
55
EvtPHOTOS
(
const
std::string& photonType =
"gamma"
,
56
const
bool
useEvtGenRandom =
true
,
57
const
double
infraredCutOff = 1.0e-7,
58
const
double
maxWtInterference = 64.0 );
59
60
void
initialise
()
override
;
61
62
void
doRadCorr
(
EvtParticle
* theParticle )
override
;
63
64
private
:
65
GenParticlePtr
createGenParticle
(
const
EvtParticle
& theParticle,
66
bool
incoming )
const
;
67
68
int
getNumberOfPhotons
(
const
GenVertexPtr
theVertex )
const
;
69
70
// Use EvtGen's random number generator
71
bool
m_useEvtGenRandom
=
true
;
72
73
// Default settings for PHOTOS
74
// Minimum photon Energy (infrared cut-off).
75
double
m_infraredCutOff
= 1.0e-7;
76
// Maximum value of the interference weight
77
double
m_maxWtInterference
= 64.0;
78
79
// Default photon type, id, pdg number and mass
80
std::string
m_photonType
=
"gamma"
;
81
EvtId
m_gammaId
=
EvtId
( -1, -1 );
82
long
int
m_gammaPDG
= 22;
83
84
static
bool
m_initialised
;
85
static
std::mutex
m_photos_mutex
;
86
};
87
88
#endif
89
90
#endif
EvtAbsRadCorr.hh
EvtHepMCEvent.hh
GenVertexPtr
HepMC3::GenVertexPtr GenVertexPtr
Definition
EvtHepMCEvent.hh:33
GenParticlePtr
HepMC3::GenParticlePtr GenParticlePtr
Definition
EvtHepMCEvent.hh:32
EvtId.hh
EvtParticle.hh
EvtVector4R.hh
EvtAbsExternalGen
Definition
EvtAbsExternalGen.hh:28
EvtAbsRadCorr::EvtAbsRadCorr
EvtAbsRadCorr()
Definition
EvtAbsRadCorr.hh:30
EvtId
Definition
EvtId.hh:27
EvtPHOTOS::m_useEvtGenRandom
bool m_useEvtGenRandom
Definition
EvtPHOTOS.hh:71
EvtPHOTOS::m_photos_mutex
static std::mutex m_photos_mutex
Definition
EvtPHOTOS.hh:85
EvtPHOTOS::createGenParticle
GenParticlePtr createGenParticle(const EvtParticle &theParticle, bool incoming) const
Definition
EvtPHOTOS.cpp:232
EvtPHOTOS::m_maxWtInterference
double m_maxWtInterference
Definition
EvtPHOTOS.hh:77
EvtPHOTOS::m_initialised
static bool m_initialised
Definition
EvtPHOTOS.hh:84
EvtPHOTOS::m_infraredCutOff
double m_infraredCutOff
Definition
EvtPHOTOS.hh:75
EvtPHOTOS::getNumberOfPhotons
int getNumberOfPhotons(const GenVertexPtr theVertex) const
Definition
EvtPHOTOS.cpp:263
EvtPHOTOS::m_gammaPDG
long int m_gammaPDG
Definition
EvtPHOTOS.hh:82
EvtPHOTOS::doRadCorr
void doRadCorr(EvtParticle *theParticle) override
Definition
EvtPHOTOS.cpp:104
EvtPHOTOS::m_photonType
std::string m_photonType
Definition
EvtPHOTOS.hh:80
EvtPHOTOS::initialise
void initialise() override
Definition
EvtPHOTOS.cpp:51
EvtPHOTOS::EvtPHOTOS
EvtPHOTOS(const std::string &photonType="gamma", const bool useEvtGenRandom=true, const double infraredCutOff=1.0e-7, const double maxWtInterference=64.0)
Definition
EvtPHOTOS.cpp:41
EvtPHOTOS::m_gammaId
EvtId m_gammaId
Definition
EvtPHOTOS.hh:81
EvtParticle
Definition
EvtParticle.hh:45
Generated by
1.17.0