PYTHIA  8.312
Vincia.h
1 // Vincia.h is a part of the PYTHIA event generator.
2 // Copyright (C) 2024 Peter Skands, Torbjorn Sjostrand.
3 // PYTHIA is licenced under the GNU GPL v2 or later, see COPYING for details.
4 // Please respect the MCnet Guidelines, see GUIDELINES for details.
5 
6 // This file contains global header information for Vincia.
7 
8 #ifndef Pythia8_Vincia_H
9 #define Pythia8_Vincia_H
10 
11 // Maths headers.
12 #include <limits>
13 #include <cmath>
14 
15 // Include Pythia 8 headers.
16 #include "Pythia8/Event.h"
17 #include "Pythia8/ParticleData.h"
18 #include "Pythia8/PartonSystems.h"
19 #include "Pythia8/PhaseSpace.h"
20 #include "Pythia8/StandardModel.h"
21 #include "Pythia8/ShowerModel.h"
22 #include "Pythia8/ExternalMEs.h"
23 
24 // Include Vincia headers.
25 #include "Pythia8/VinciaAntennaFunctions.h"
26 #include "Pythia8/VinciaCommon.h"
27 #include "Pythia8/VinciaDiagnostics.h"
28 #include "Pythia8/VinciaEW.h"
29 #include "Pythia8/VinciaFSR.h"
30 #include "Pythia8/VinciaISR.h"
31 #include "Pythia8/VinciaMerging.h"
32 #include "Pythia8/VinciaMergingHooks.h"
33 #include "Pythia8/VinciaQED.h"
34 
35 // Define namespace inside which Vincia lives.
36 namespace Pythia8 {
37 
38 //==========================================================================
39 
40 // The Vincia class. Top-level handler class for the Vincia antenna
41 // shower model.
42 
43 class Vincia : public ShowerModel {
44 
45 public:
46 
47  // Constructor.
48  Vincia() = default;
49 
50  // Empty virtual destructor.
51  virtual ~Vincia() override = default;
52 
53  // Initialize.
54  bool init(MergingPtr mrgPtrIn, MergingHooksPtr mrgHooksPtrIn,
55  PartonVertexPtr partonVertexPtrIn,
56  WeightContainer* weightContainerPtrIn) override;
57 
58  // Function called from Pythia after the beam particles have been set up,
59  // so that showers may be initialized after the beams are initialized.
60  bool initAfterBeams() override {
61  // Initialise QED showers with beams initialised.
62  qedShowerHardPtr->init(beamAPtr, beamBPtr);
63  qedShowerSoftPtr->init(beamAPtr, beamBPtr);
64  ewShowerPtr->init(beamAPtr, beamBPtr);
65  return true;
66  }
67 
68  // Methods to get
69  TimeShowerPtr getTimeShower() const override { return timesPtr; }
70  TimeShowerPtr getTimeDecShower() const override { return timesDecPtr; }
71  SpaceShowerPtr getSpaceShower() const override { return spacePtr; }
72  MergingHooksPtr getMergingHooks() const override { return mergingHooksPtr; }
73  MergingPtr getMerging() const override { return mergingPtr; }
74 
75  // End-of-run statistics.
76  void onStat() override {
77  if (verbose >= Logger::REPORT) diagnosticsPtr->print(); }
78 
79  // Automatically set verbose level in all members.
80  void setVerbose(int verboseIn);
81 
82  // Public Vincia objects.
84  Resolution resolution{};
85  VinciaModulePtr ewShowerPtr{};
86  VinciaModulePtr qedShowerHardPtr{};
87  VinciaModulePtr qedShowerSoftPtr{};
88  VinciaColour colour{};
89  VinciaWeights vinWeights{};
90  MECs mecs{};
91 
92  // Auxiliary objects.
93  ExternalMEsPtr mg5mes{};
94  Rambo rambo{};
95 
96  // Vectors of antenna functions.
98  AntennaSetFSR antennaSetFSR{};
99  AntennaSetISR antennaSetISR{};
100 
101  // Pointers to Pythia classes.
103  WeightContainer* weightContainerPtr{};
104 
105  protected:
106 
107  // Method to initialise Vincia tune settings
108  bool initTune(int iTune);
109 
110  // Members for the FSR and ISR showers.
111  shared_ptr<VinciaFSR> timesPtr{};
112  shared_ptr<VinciaFSR> timesDecPtr{};
113  shared_ptr<VinciaISR> spacePtr{};
114 
115  // Merging pointers.
116  shared_ptr<VinciaMergingHooks> mergingHooksPtr{};
117  shared_ptr<VinciaMerging> mergingPtr{};
118 
119  // Pointer for diagnostics and profiling.
120  shared_ptr<VinciaDiagnostics> diagnosticsPtr{};
121 
122  private:
123 
124  // Verbosity level.
125  int verbose{0};
126 
127  // Merging flag.
128  bool doMerging{false};
129 
130 };
131 
132 //==========================================================================
133 
134 } // end Pythia8 namespace
135 
136 #endif // Pythia8_Vincia_H
shared_ptr< VinciaFSR > timesPtr
Members for the FSR and ISR showers.
Definition: Vincia.h:111
SusyLesHouches * slhaPtr
Pointers to Pythia classes.
Definition: Vincia.h:102
Definition: Weights.h:394
void setVerbose(int verboseIn)
Automatically set verbose level in all members.
Definition: Vincia.cc:360
Definition: VinciaCommon.h:211
Vincia()=default
Constructor.
bool init(MergingPtr mrgPtrIn, MergingHooksPtr mrgHooksPtrIn, PartonVertexPtr partonVertexPtrIn, WeightContainer *weightContainerPtrIn) override
Initialize.
Definition: Vincia.cc:25
VinciaCommon vinCom
Public Vincia objects.
Definition: Vincia.h:83
Definition: VinciaCommon.h:494
bool initTune(int iTune)
Method to initialise Vincia tune settings.
Definition: Vincia.cc:303
A class containing DGLAP splitting functions for limit checking.
Definition: VinciaAntennaFunctions.h:29
static constexpr int REPORT
Report verbosity level: print everything, including report messages.
Definition: Logger.h:135
Definition: SusyLesHouches.h:393
Class for storing Vincia weights.
Definition: VinciaWeights.h:22
shared_ptr< VinciaMergingHooks > mergingHooksPtr
Merging pointers.
Definition: Vincia.h:116
shared_ptr< VinciaDiagnostics > diagnosticsPtr
Pointer for diagnostics and profiling.
Definition: Vincia.h:120
Rambo flat phase-space generator.
Definition: PhaseSpace.h:636
TimeShowerPtr getTimeShower() const override
Methods to get.
Definition: Vincia.h:69
A simple class for containing evolution variable definitions.
Definition: VinciaCommon.h:382
bool initAfterBeams() override
Definition: Vincia.h:60
The AntennaSetFSR class. Simple container of FF and RF antenna functions.
Definition: VinciaAntennaFunctions.h:1125
The AntennaSetISR class. Simple container of II and IF antenna functions.
Definition: VinciaAntennaFunctions.h:1191
Header for classes to set beam momentum and interaction vertex spread.
Definition: Analysis.h:20
Definition: VinciaAntennaFunctions.h:1258
Definition: ShowerModel.h:28
Definition: Vincia.h:43
DGLAP dglap
Vectors of antenna functions.
Definition: Vincia.h:97
void onStat() override
End-of-run statistics.
Definition: Vincia.h:76
ExternalMEsPtr mg5mes
Auxiliary objects.
Definition: Vincia.h:93
virtual ~Vincia() override=default
Empty virtual destructor.