]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TUHKMgen/UHKM/InitialStateHydjet.h
FindZeroMQ
[u/mrichter/AliRoot.git] / TUHKMgen / UHKM / InitialStateHydjet.h
index 520e17a2597eaea0022674a77fe28267ed5d251d..1ea88d9fba134d7d308594dc68e4f67ab2b8ccb9 100644 (file)
 #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 {
 
   Int_t fNevnt; //number of events
@@ -102,26 +96,20 @@ 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:
-  InitialParamsHydjet_t fParams;             // the list of initial state parameters
- private:
-  Double_t fVolEff;                           // the effective volume
-
- public:
-  InitialStateHydjet() : fParams(), fVolEff(0){};
+   
+  InitialStateHydjet() : fParams(), fVolEff(0), fBgen(0), fNpart(0), fNcoll(0) {};
   ~InitialStateHydjet() {};
   
   void SetVolEff(Double_t value) {fVolEff = value;}
@@ -134,14 +122,25 @@ class InitialStateHydjet : public InitialState {
   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 x);
-  Double_t f2(Double_t x, Double_t y);
+  
+  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);
+   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