File indexing completed on 2025-01-18 10:06:33
0001
0002
0003
0004
0005
0006
0007
0008 #ifndef Pythia8_Vincia_H
0009 #define Pythia8_Vincia_H
0010
0011
0012 #include <limits>
0013 #include <cmath>
0014
0015
0016 #include "Pythia8/Event.h"
0017 #include "Pythia8/ParticleData.h"
0018 #include "Pythia8/PartonSystems.h"
0019 #include "Pythia8/PhaseSpace.h"
0020 #include "Pythia8/StandardModel.h"
0021 #include "Pythia8/ShowerModel.h"
0022 #include "Pythia8/ExternalMEs.h"
0023
0024
0025 #include "Pythia8/VinciaAntennaFunctions.h"
0026 #include "Pythia8/VinciaCommon.h"
0027 #include "Pythia8/VinciaDiagnostics.h"
0028 #include "Pythia8/VinciaEW.h"
0029 #include "Pythia8/VinciaFSR.h"
0030 #include "Pythia8/VinciaISR.h"
0031 #include "Pythia8/VinciaMerging.h"
0032 #include "Pythia8/VinciaMergingHooks.h"
0033 #include "Pythia8/VinciaQED.h"
0034
0035
0036 namespace Pythia8 {
0037
0038
0039
0040
0041
0042
0043 class Vincia : public ShowerModel {
0044
0045 public:
0046
0047
0048 Vincia() = default;
0049
0050
0051 virtual ~Vincia() override = default;
0052
0053
0054 bool init(MergingPtr mrgPtrIn, MergingHooksPtr mrgHooksPtrIn,
0055 PartonVertexPtr partonVertexPtrIn,
0056 WeightContainer* weightContainerPtrIn) override;
0057
0058
0059
0060 bool initAfterBeams() override {
0061
0062 qedShowerHardPtr->init(beamAPtr, beamBPtr);
0063 qedShowerSoftPtr->init(beamAPtr, beamBPtr);
0064 ewShowerPtr->init(beamAPtr, beamBPtr);
0065 return true;
0066 }
0067
0068
0069 TimeShowerPtr getTimeShower() const override { return timesPtr; }
0070 TimeShowerPtr getTimeDecShower() const override { return timesDecPtr; }
0071 SpaceShowerPtr getSpaceShower() const override { return spacePtr; }
0072 MergingHooksPtr getMergingHooks() const override { return mergingHooksPtr; }
0073 MergingPtr getMerging() const override { return mergingPtr; }
0074
0075
0076 void onStat() override {
0077 if (verbose >= Logger::REPORT) diagnosticsPtr->print(); }
0078
0079
0080 void setVerbose(int verboseIn);
0081
0082
0083 VinciaCommon vinCom{};
0084 Resolution resolution{};
0085 VinciaModulePtr ewShowerPtr{};
0086 VinciaModulePtr qedShowerHardPtr{};
0087 VinciaModulePtr qedShowerSoftPtr{};
0088 VinciaColour colour{};
0089 VinciaWeights vinWeights{};
0090 MECs mecs{};
0091
0092
0093 ExternalMEsPtr mg5mes{};
0094 Rambo rambo{};
0095
0096
0097 DGLAP dglap{};
0098 AntennaSetFSR antennaSetFSR{};
0099 AntennaSetISR antennaSetISR{};
0100
0101
0102 SusyLesHouches* slhaPtr{};
0103 WeightContainer* weightContainerPtr{};
0104
0105 protected:
0106
0107
0108 bool initTune(int iTune);
0109
0110
0111 shared_ptr<VinciaFSR> timesPtr{};
0112 shared_ptr<VinciaFSR> timesDecPtr{};
0113 shared_ptr<VinciaISR> spacePtr{};
0114
0115
0116 shared_ptr<VinciaMergingHooks> mergingHooksPtr{};
0117 shared_ptr<VinciaMerging> mergingPtr{};
0118
0119
0120 shared_ptr<VinciaDiagnostics> diagnosticsPtr{};
0121
0122 private:
0123
0124
0125 int verbose{0};
0126
0127
0128 bool doMerging{false};
0129
0130 };
0131
0132
0133
0134 }
0135
0136 #endif