// WeakShowerMEs.h is a part of the PYTHIA event generator. // Copyright (C) 2017 Torbjorn Sjostrand. // PYTHIA is licenced under the GNU GPL version 2, see COPYING for details. // Please respect the MCnet Guidelines, see GUIDELINES for details. // Header file for the class containg matrix elements needed for // W/Z emission corrections in both the initial and final state shower. // WeakShowerMEs: contains the matrix elements. #ifndef Pythia8_WeakShowerMEs_H #define Pythia8_WeakShowerMEs_H #include "Pythia8/Basics.h" namespace Pythia8 { //========================================================================== // The WeakShowerMEs provides ME's needed for W/Z emission in ISR or FSR. // The 2 -> 2 MEs contain the correct kinematics, but for some of // the 2 -> 3 MEs some couplings have been switched off. // This class is used for ME corrections in the weak shower and for merging // whenever weak reclusterings are allowed. // Also be aware that no phase-space factors are included. class WeakShowerMEs { public: // Constructor. WeakShowerMEs() {} // Calculate the 2 to 2 ME qg -> qg, up to a known overall factor. double getMEqg2qg(double sH, double tH, double uH); // Calculate the 2 to 2 ME qq -> qq, up to a known overall factor. double getMEqq2qq(double sH, double tH, double uH, bool sameID); // Calculate the 2 to 2 ME gg -> gg, up to a known overall factor. double getMEgg2gg(double sH, double tH, double uH); // Calculate the 2 to 2 ME gg -> qqbar, up to a known overall factor. double getMEgg2qqbar(double sH, double tH, double uH); // Calculate the 2 to 2 ME qqbar -> gg, up to a known overall factor. double getMEqqbar2gg(double sH, double tH, double uH); // Calculate the 2 to 2 ME qqbar -> qqbar, up to a known overall factor. double getMEqqbar2qqbar(double sH, double tH, double uH, bool sameID); // Calculate the 2 to 3 ME uG -> uGZ, up to a known overall factor. double getMEqg2qgZ(Vec4 p1,Vec4 p2,Vec4 p3,Vec4 p4,Vec4 p5); // Calculate the 2 to 3 ME ud -> udZ, up to a known overall factor, // and with the coupling between Z and d set to zero. double getMEqq2qqZ(Vec4 p1,Vec4 p2,Vec4 p3,Vec4 p4,Vec4 p5); }; //========================================================================== } // end namespace Pythia8 #endif // Pythia8_WeakShowerMEs_H