File indexing completed on 2025-01-18 10:06:20
0001
0002
0003
0004
0005
0006
0007
0008 #ifndef Pythia8_DireSplittingLibrary_H
0009 #define Pythia8_DireSplittingLibrary_H
0010
0011 #define DIRE_SPLITTINGLIBRARY_VERSION "2.002"
0012
0013 #include "Pythia8/Basics.h"
0014 #include "Pythia8/BeamParticle.h"
0015 #include "Pythia8/ParticleData.h"
0016 #include "Pythia8/PythiaStdlib.h"
0017 #include "Pythia8/Settings.h"
0018 #include "Pythia8/StandardModel.h"
0019
0020 #include "Pythia8/DireSplittings.h"
0021 #include "Pythia8/DireSplittingsQCD.h"
0022 #include "Pythia8/DireSplittingsQED.h"
0023 #include "Pythia8/DireSplittingsEW.h"
0024 #include "Pythia8/DireSplittingsU1new.h"
0025 #include "Pythia8/DireBasics.h"
0026 #include "Pythia8/DireHooks.h"
0027
0028 namespace Pythia8 {
0029
0030 class DireSpace;
0031 class DireTimes;
0032
0033
0034
0035 class DireSplittingLibrary {
0036
0037 public:
0038
0039
0040 DireSplittingLibrary() : infoPtr(0), settingsPtr(0), particleDataPtr(0),
0041 rndmPtr(0), beamAPtr(0), beamBPtr(0), coupSMPtr(0), hooksPtr(0),
0042 hasExternalHook(false) {}
0043 ~DireSplittingLibrary() { clear();}
0044
0045
0046 void init(Info* infoPtr, BeamParticle* beamA, BeamParticle* beamB,
0047 DireInfo* direInfo, DireHooks* hooks = NULL);
0048 void initFSR();
0049 void initISR();
0050 void clear();
0051
0052 void setTimesPtr (shared_ptr<DireTimes> fsrIn) {
0053 for (unordered_map<string,DireSplitting*>::iterator
0054 it = splittings.begin(); it != splittings.end(); ++it )
0055 it->second->setTimesPtr(fsrIn);
0056 }
0057 void setTimesDecPtr (shared_ptr<DireTimes> fsrIn) {
0058 for (unordered_map<string,DireSplitting*>::iterator
0059 it = splittings.begin(); it != splittings.end(); ++it )
0060 it->second->setTimesDecPtr(fsrIn);
0061 }
0062 void setSpacePtr (shared_ptr<DireSpace> isrIn) {
0063 for (unordered_map<string,DireSplitting*>::iterator
0064 it = splittings.begin(); it != splittings.end(); ++it )
0065 it->second->setSpacePtr(isrIn);
0066 }
0067
0068 unordered_map< string, DireSplitting* > getSplittings() { return splittings;}
0069
0070
0071 DireSplitting* operator[](string id);
0072 const DireSplitting* operator[](string id) const;
0073
0074
0075 vector<int> getSplittingRadBefID(const Event& event, int rad, int emt);
0076 vector<int> getSplittingRadBefID_new(const Event& event, int rad, int emt);
0077
0078
0079 vector<string> getSplittingName(const Event& event, int rad, int emt);
0080 vector<string> getSplittingName_new(const Event& event, int rad, int emt);
0081
0082
0083 int nEmissions(string name);
0084
0085 void setKernelHooks(DireHooks* hooks) {hooksPtr = hooks;}
0086
0087
0088 ulong fsrQCD_1_to_1_and_21,
0089 fsrQCD_1_to_21_and_1,
0090 fsrQCD_21_to_21_and_21a,
0091 fsrQCD_21_to_21_and_21b,
0092 fsrQCD_21_to_1_and_1a,
0093 fsrQCD_21_to_1_and_1b,
0094 fsrQCD_1_to_2_and_1_and_2,
0095 fsrQCD_1_to_1_and_1_and_1,
0096 fsrQCD_1_to_1_and_21_notPartial,
0097 fsrQCD_21_to_21_and_21_notPartial,
0098 fsrQCD_21_to_1_and_1_notPartial,
0099 fsrQCD_1_to_1_and_21_and_21,
0100 fsrQCD_1_to_1_and_1_and_1a,
0101 fsrQCD_1_to_1_and_1_and_1b,
0102 fsrQCD_1_to_1_and_2_and_2a,
0103 fsrQCD_1_to_1_and_2_and_2b,
0104 fsrQCD_1_to_1_and_3_and_3a,
0105 fsrQCD_1_to_1_and_3_and_3b,
0106 fsrQCD_1_to_1_and_4_and_4a,
0107 fsrQCD_1_to_1_and_4_and_4b,
0108 fsrQCD_1_to_1_and_5_and_5a,
0109 fsrQCD_1_to_1_and_5_and_5b,
0110 fsrQCD_21_to_21_and_21_and_21,
0111 fsrQCD_21_to_21_and_1_and_1a,
0112 fsrQCD_21_to_21_and_1_and_1b,
0113 fsrQCD_21_to_21_and_2_and_2a,
0114 fsrQCD_21_to_21_and_2_and_2b,
0115 fsrQCD_21_to_21_and_3_and_3a,
0116 fsrQCD_21_to_21_and_3_and_3b,
0117 fsrQCD_21_to_21_and_4_and_4a,
0118 fsrQCD_21_to_21_and_4_and_4b,
0119 fsrQCD_21_to_21_and_5_and_5a,
0120 fsrQCD_21_to_21_and_5_and_5b,
0121 isrQCD_1_to_1_and_21,
0122 isrQCD_21_to_1_and_1,
0123 isrQCD_21_to_21_and_21a,
0124 isrQCD_21_to_21_and_21b,
0125 isrQCD_1_to_21_and_1,
0126 isrQCD_1_to_2_and_1_and_2,
0127 isrQCD_1_to_1_and_1_and_1;
0128
0129
0130 ulong fsrQED_1_to_1_and_22,
0131 fsrQED_1_to_22_and_1,
0132 fsrQED_11_to_11_and_22,
0133 fsrQED_11_to_22_and_11,
0134 fsrQED_22_to_1_and_1a,
0135 fsrQED_22_to_1_and_1b,
0136 fsrQED_22_to_2_and_2a,
0137 fsrQED_22_to_2_and_2b,
0138 fsrQED_22_to_3_and_3a,
0139 fsrQED_22_to_3_and_3b,
0140 fsrQED_22_to_4_and_4a,
0141 fsrQED_22_to_4_and_4b,
0142 fsrQED_22_to_5_and_5a,
0143 fsrQED_22_to_5_and_5b,
0144 fsrQED_22_to_11_and_11a,
0145 fsrQED_22_to_11_and_11b,
0146 fsrQED_22_to_13_and_13a,
0147 fsrQED_22_to_13_and_13b,
0148 fsrQED_22_to_15_and_15a,
0149 fsrQED_22_to_15_and_15b,
0150 fsrQED_1_to_1_and_22_notPartial,
0151 fsrQED_11_to_11_and_22_notPartial,
0152 isrQED_1_to_1_and_22,
0153 isrQED_11_to_11_and_22,
0154 isrQED_1_to_22_and_1,
0155 isrQED_11_to_22_and_11,
0156 isrQED_22_to_1_and_1,
0157 isrQED_22_to_11_and_11;
0158
0159 ulong fsrEWK_1_to_1_and_23,
0160 fsrEWK_1_to_23_and_1,
0161 fsrEWK_23_to_1_and_1a,
0162 fsrEWK_23_to_1_and_1b,
0163 fsrEWK_24_to_1_and_1a,
0164 fsrEWK_24_to_1_and_1b,
0165 fsrEWK_25_to_24_and_24,
0166 fsrEWK_25_to_22_and_22,
0167 fsrEWK_25_to_21_and_21,
0168 fsrEWK_24_to_24_and_22,
0169 isrEWK_1_to_1_and_23;
0170
0171 ulong fsrU1N_1_to_1_and_22,
0172 fsrU1N_1_to_22_and_1,
0173 fsrU1N_11_to_11_and_22,
0174 fsrU1N_11_to_22_and_11,
0175 fsrU1N_22_to_1_and_1a,
0176 fsrU1N_22_to_1_and_1b,
0177 fsrU1N_22_to_2_and_2a,
0178 fsrU1N_22_to_2_and_2b,
0179 fsrU1N_22_to_3_and_3a,
0180 fsrU1N_22_to_3_and_3b,
0181 fsrU1N_22_to_4_and_4a,
0182 fsrU1N_22_to_4_and_4b,
0183 fsrU1N_22_to_5_and_5a,
0184 fsrU1N_22_to_5_and_5b,
0185 fsrU1N_22_to_11_and_11a,
0186 fsrU1N_22_to_11_and_11b,
0187 fsrU1N_22_to_13_and_13a,
0188 fsrU1N_22_to_13_and_13b,
0189 fsrU1N_22_to_15_and_15a,
0190 fsrU1N_22_to_15_and_15b,
0191 fsrU1N_22_to_211_and_211a,
0192 fsrU1N_22_to_211_and_211b,
0193 isrU1N_1_to_1_and_22,
0194 isrU1N_1_to_22_and_1,
0195 isrU1N_22_to_1_and_1,
0196 isrU1N_11_to_11_and_22,
0197 isrU1N_11_to_22_and_11,
0198 isrU1N_22_to_11_and_11;
0199
0200 private:
0201
0202 unordered_map< string, DireSplitting* > splittings;
0203 Info* infoPtr;
0204 Settings* settingsPtr;
0205 ParticleData* particleDataPtr;
0206 Rndm* rndmPtr;
0207 BeamParticle* beamAPtr;
0208 BeamParticle* beamBPtr;
0209 CoupSM* coupSMPtr;
0210 DireInfo* direInfoPtr;
0211
0212
0213 DireHooks* hooksPtr;
0214 bool hasExternalHook;
0215
0216 };
0217
0218
0219
0220 }
0221
0222 #endif