Back to home page

sPhenix code displayed by LXR

 
 

    


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

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 #ifndef JETSCAPEEVENTHEADER_H
0017 #define JETSCAPEEVENTHEADER_H
0018 
0019 namespace Jetscape {
0020 
0021 /**
0022      Container for a multitude of event-related information
0023      such as xsec, centrality, ...
0024    */
0025 class JetScapeEventHeader {
0026 
0027 public:
0028   JetScapeEventHeader(){};
0029   // ~JetScapeEventHeader(){};
0030   // JetScapeEventHeader(const JetScapeEventHeader &c); //copy constructor
0031 
0032   /* const Parton& getParton(int idx) const; */
0033   /* const vector<Parton>& getPartonCollection() const; */
0034   /* void addParton(Parton &p); */
0035   /* void addPartonShower(shared_ptr<PartonShower> ps); */
0036   /* void deleteParton(int idx); */
0037 
0038   // ============================ Initial Hard Process =================================
0039   /// Initial Hard Process: Get cross section
0040   /// Note: In most cases, this value becomes more precise as more events are created.
0041   /// It is recommended to use the last event's value
0042   double GetSigmaGen() { return SigmaGen; };
0043   /// Initial Hard Process: Set cross section
0044   void SetSigmaGen(double d) { SigmaGen = d; };
0045 
0046   /// Initial Hard Process: Get uncertainty on the cross section
0047   /// Note: In most cases, this value becomes more smaller as more events are created.
0048   /// It is recommended to use the last event's value
0049   double GetSigmaErr() { return SigmaErr; };
0050   /// Initial Hard Process: Set uncertainty on the cross section
0051   void SetSigmaErr(double d) { SigmaErr = d; };
0052 
0053     /// Initial Hard Process: pt-hat
0054   double GetPtHat() { return PtHat; };
0055   void SetPtHat(double d) { PtHat = d; };
0056 
0057   /// Initial Hard Process: Get additionally created weight (e.g. pythia.event().weight())
0058   double GetEventWeight() { return EventWeight; };
0059   /// Initial Hard Process: Set additionally created weight (e.g. pythia.event().weight())
0060   void SetEventWeight(double d) { EventWeight = d; };
0061 
0062   // ============================ Initial State =================================
0063   /// Initial State: Get number of participants
0064   double GetNpart() { return Npart; };
0065   /// Initial State: Get number of participants
0066   void SetNpart(double d) { Npart = d; };
0067 
0068   /// Initial State: Get number of binary collisions
0069   double GetNcoll() { return Ncoll; };
0070   /// Initial State: Get number of binary collisions
0071   void SetNcoll(double d) { Ncoll = d; };
0072 
0073   /// Initial State: Get total entropy
0074   double GetTotalEntropy() { return TotalEntropy; };
0075   /// Initial State: Get total entropy
0076   void SetTotalEntropy(double d) { TotalEntropy = d; };
0077 
0078   // ============================ Hydro =================================
0079   /// Hydro: Get (2nd order) event plane angle
0080   double GetEventPlaneAngle() { return EventPlaneAngle; };
0081   /// Hydro: Set (2nd order) event plane angle
0082   void SetEventPlaneAngle(double d) { EventPlaneAngle = d; };
0083 
0084 private:
0085   // ============================ Initial Hard Process =================================
0086   double SigmaGen = -1;
0087   double SigmaErr = -1;
0088   double PtHat = -1;
0089   double EventWeight = 1;
0090 
0091   // ============================ Initial State =================================
0092   double Npart = -1; // could be int, but using double to allow averaged values
0093   double Ncoll = -1; // could be int, but using double to allow averaged values
0094   double TotalEntropy = -1;
0095 
0096   // ============================ Hydro =================================
0097   double EventPlaneAngle = -999;
0098 
0099   // ============================ Other possible options =================================
0100   // IS:
0101   // double Eccentricity;
0102   // double ImpactParameter;
0103 
0104   // Hydro:
0105   // angles, eccentricities
0106 
0107   // Eloss:
0108   // Switching criteria
0109 
0110   // Potential for consistency checks:
0111   // TotalEntropy from Free Streaming and from Hydro
0112 
0113   // Potential file-wide parameters (should be implemented in a different class)
0114 
0115   // IS:
0116   // string NuclearDensity; // (Woods-Saxon?)
0117   // string SaturationModel; // (IP-SAT, MCKLN, ...)
0118 
0119   // Inital Hard Process:
0120   // ptHat_min, ptHat_max
0121   // generator name, npdf,
0122 
0123   // Hydro:
0124   // EOS
0125 
0126   // Free Streaming:
0127   // Name, version
0128 
0129   // Hadronization:
0130   // type (colorless/colored, reco, ...)
0131 };
0132 
0133 } // end namespace Jetscape
0134 
0135 #endif // JETSCAPEEVENTHEADER_H