Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-05 08:19:25

0001 /*******************************************************************************
0002  * Copyright (c) The JETSCAPE Collaboration, 2018
0003  *
0004  * Modular, task-based framework for simulating all aspects of heavy-ion collisions
0005  *
0006  * For the list of contributors see AUTHORS.
0007  *
0008  * Report issues at https://github.com/JETSCAPE/JETSCAPE/issues
0009  *
0010  * or via email to bugs.jetscape@gmail.com
0011  *
0012  * Distributed under the GNU General Public License 3.0 (GPLv3 or later).
0013  * See COPYING for details.
0014  ******************************************************************************/
0015 
0016 // Create a pythia collision at a specified point and return the two inital hard partons
0017 
0018 #ifndef EPEMGUN_H
0019 #define EPEMGUN_H
0020 
0021 #include "HardProcess.h"
0022 #include "JetScapeLogger.h"
0023 #include "Pythia8/Pythia.h"
0024 
0025 using namespace Jetscape;
0026 
0027 class epemGun : public HardProcess, public Pythia8::Pythia {
0028 
0029 private:
0030   //double pTHatMin;
0031   //double pTHatMax;
0032   double eCM;
0033   //bool FSR_on;
0034 
0035   // Allows the registration of the module so that it is available to be used by the Jetscape framework.
0036   static RegisterJetScapeModule<epemGun> reg;
0037 
0038   double sud_val_QG_w_M(double M, double h0, double h1, double h2, double E1);
0039   double sud_z_QG_w_M(double M, double cg, double cg1, double E2);
0040   double alpha_s(double q2);
0041 
0042 protected:
0043   std::uniform_real_distribution<double> ZeroOneDistribution;
0044 
0045 public:
0046   /** standard ctor
0047       @param xmlDir: Note that the environment variable PYTHIA8DATA takes precedence! So don't use it.
0048       @param printBanner: Suppress starting blurb. Should be set to true in production, credit where it's due
0049   */
0050   epemGun(string xmlDir = "DONTUSETHIS", bool printBanner = false)
0051       : Pythia8::Pythia(xmlDir, printBanner), HardProcess() {
0052     SetId("UninitializedepemGun");
0053   }
0054 
0055   ~epemGun();
0056 
0057   void InitTask();
0058   void Exec();
0059 
0060   // Getters
0061   //double GetpTHatMin() const { return pTHatMin; }
0062   //double GetpTHatMax() const { return pTHatMax; }
0063 
0064   // Cross-section information in mb and event weight.
0065   double GetSigmaGen() { return info.sigmaGen(); };
0066   double GetSigmaErr() { return info.sigmaErr(); };
0067   double GetEventWeight() { return info.weight(); };
0068 };
0069 
0070 #endif // EPEMGUN_H