]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TUHKMgen/UHKM/InitialStateHydjet.h
FindZeroMQ
[u/mrichter/AliRoot.git] / TUHKMgen / UHKM / InitialStateHydjet.h
index 5fc6d0972e3cbd360c3bd729997d87d0ffc0b524..1ea88d9fba134d7d308594dc68e4f67ab2b8ccb9 100644 (file)
@@ -1,3 +1,10 @@
+// InitialStateHydjet is the class which controls the entire 
+// event simulation (input parameters, physics, output)
+// InitialStateHydjet inherits from class InitialState
+// MultIni() member function initializes PYQUEN and calculates the average soft multiplicities 
+// Initialize() member function calls the PYQUEN soubroutine for the hard part of the event
+// The resonance decay is performed by the function InitialState::Evolve()
+
 /*                                                                            
                                                                             
         Nikolai Amelin, Ludmila Malinina, Timur Pocheptsov (C) JINR/Dubna
 
 */
 
-#ifndef INITIALSTATEHYDJET_INCLUDED
-#define INITIALSTATEHYDJET_INCLUDED
+#ifndef INITIALSTATEHYDJET_H
+#define INITIALSTATEHYDJET_H
 
-#ifndef DATABASE_PDG
-#include "DatabasePDG.h"
-#endif
-#ifndef PARTICLE_INCLUDED
-#include "Particle.h"
-#endif
-#ifndef INITIAL_STATE
 #include "InitialState.h"
-#endif
+
+class ParticleAllocator;
+
+const Int_t kNPartTypes = 1000;
 
 struct InitialParamsHydjet_t {
 
@@ -53,7 +56,7 @@ struct InitialParamsHydjet_t {
    Double_t fEpsilon;     //coordinate asymmetry parameter
   
    Int_t fDecay;    // flag to switch on/off hadron decays<0: decays off,>=0: decays on, (default: 0)
-   Int_t fWeakDecay;    //flag to switch on/off weak hadron decays <0: decays off, >0: decays on, (default: 0)
+   Double_t fWeakDecay;    //flag to switch on/off weak hadron decays <0: decays off, >0: decays on, (default: 0)
    Int_t fPythDecay;    //Flag to choose how to decay resonances in high-pt part, fPythDecay: 0 by PYTHIA decayer, 
                                      //1 by FASTMC decayer(mstj(21)=0)  
   
@@ -93,45 +96,51 @@ struct InitialParamsHydjet_t {
                                   // gluons (0: small-angular, 1: wide-angular, 2:collinear) (default: 0).
   
   
-
   Int_t    fNPartTypes;                   //counter of hadron species  
-  Int_t    fPartEnc[1000];                 //Hadron encodings. Maximal number of hadron species is 100!!!
-  Double_t fPartMult[2000];                //Multiplicities of hadron species
-  Double_t fPartMu[2000];                //Chemical potentials of hadron species
-
-  Double_t fMuTh[1000];                    //Chemical potentials at thermal freezeout of hadron species
+  Int_t    fPartEnc[kNPartTypes];                 //Hadron encodings. Maximal number of hadron species is 100!!!
+  Double_t fPartMult[2*kNPartTypes];                //Multiplicities of hadron species
+  Double_t fPartMu[2*kNPartTypes];                //Chemical potentials of hadron species
 
+  Double_t fMuTh[kNPartTypes];                    //Chemical potentials at thermal freezeout of hadron species
 
 };
 
+
 class InitialStateHydjet : public InitialState {
  public:
-  InitialStateHydjet() : fParams(), fVolEff(0){};
+   
+  InitialStateHydjet() : fParams(), fVolEff(0), fBgen(0), fNpart(0), fNcoll(0) {};
   ~InitialStateHydjet() {};
   
   void SetVolEff(Double_t value) {fVolEff = value;}
-  Double_t GetVolEff() {return fVolEff;}
-  virtual Double_t GetTime() {return fParams.fDecay;}
+  Double_t GetVolEff() const {return fVolEff;}
+  //  virtual Double_t GetTime() {return fParams.fDecay;}
+  virtual Bool_t RunDecays() {return (fParams.fDecay>0 ? kTRUE : kFALSE);}
   virtual Int_t GetNev() {return fParams.fNevnt;}
   virtual Double_t GetWeakDecayLimit() {return fParams.fWeakDecay;}  
   
   virtual void Initialize(List_t &source, ParticleAllocator &allocator);
   virtual Bool_t ReadParams();
   virtual Bool_t MultIni();
+  virtual void GetCentrality(Double_t& b, Double_t & npart, Double_t & nbin)
+      {b = fBgen; npart = fNpart; nbin = fNcoll;}
+  
   Bool_t IniOfThFreezeoutParameters();
-  Double_t f(Double_t);
-  Double_t f2(Double_t, Double_t);
-   
-  Double_t SimpsonIntegrator(Double_t, Double_t, Double_t);
-  Double_t SimpsonIntegrator2(Double_t, Double_t);
-  Double_t MidpointIntegrator2(Double_t, Double_t);
- public:
-  InitialParamsHydjet_t fParams;             // the list of initial state parameters  
   
- private:
-  Double_t fVolEff;                           // the effective volume
-
+  InitialParamsHydjet_t fParams;             // the list of initial state parameters
+  
+  private:
+   Double_t fVolEff;                     // the effective volume
+   // Collision geometry
+   Double_t    fBgen;                       // Generated impact parameter
+   Double_t    fNpart;                      // Number of participants
+   Double_t    fNcoll;                      // Number of collisions 
+      
+   Double_t F2(Double_t x, Double_t y);
+   
+   Double_t SimpsonIntegrator(Double_t a, Double_t b, Double_t phi);
+   Double_t SimpsonIntegrator2(Double_t a, Double_t b);
+   Double_t MidpointIntegrator2(Double_t a, Double_t b);
 };
 
 #endif