EvtGen 2.2.0
Monte Carlo generator of particle decays, in particular the weak decays of heavy flavour particles such as B mesons.
Loading...
Searching...
No Matches
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
27#include "EvtGenBase/EvtId.hh"
28#include "EvtGenBase/EvtPDL.hh"
30
31#include "SHERPA/Main/Sherpa.H"
32
33#include <string>
34
35class EvtParticle;
37
38/* Description: EvtGen's interface to PHOTOS for generation of
39 * QED final state radiation.
40 */
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
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
Definition EvtId.hh:27
void doRadCorr(EvtParticle *p) override
static std::unique_ptr< SHERPA::Sherpa > m_sherpaGen
static std::mutex m_sherpa_mutex
static bool m_initialised
std::vector< std::string > m_configs
EvtSherpaPhotons(const bool useEvtGenRandom=true, const double infraredCutOff=1.0e-7, const int mode=2, const int useME=0)
std::vector< char * > addParameters()
const std::string m_photonType
void initialise() override