Initial energy density as function of impact parameter added.
authormorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 12 Aug 2003 16:31:21 +0000 (16:31 +0000)
committermorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 12 Aug 2003 16:31:21 +0000 (16:31 +0000)
FASTSIM/AliFastGlauber.cxx
FASTSIM/AliFastGlauber.h

index c533fec..4082c2d 100644 (file)
 
 ClassImp(AliFastGlauber)
 
-TF1*    AliFastGlauber::fWSb          = NULL;     
-TF2*    AliFastGlauber::fWSbz         = NULL;    
-TF1*    AliFastGlauber::fWSz          = NULL;     
-TF1*    AliFastGlauber::fWSta         = NULL;    
-TF2*    AliFastGlauber::fWStarfi      = NULL; 
-TF2*    AliFastGlauber::fWAlmond      = NULL; 
-TF1*    AliFastGlauber::fWStaa        = NULL;   
-TF1*    AliFastGlauber::fWSgeo        = NULL;   
-TF1*    AliFastGlauber::fWSbinary     = NULL;   
-TF1*    AliFastGlauber::fWSN          = NULL;   
-TF1*    AliFastGlauber::fWPathLength0 = NULL;   
-TF1*    AliFastGlauber::fWPathLength  = NULL;
-TF1*    AliFastGlauber::fWIntRadius   = NULL;   
-Float_t AliFastGlauber::fbMax         = 0.;
+TF1*    AliFastGlauber::fWSb            = NULL;     
+TF2*    AliFastGlauber::fWSbz           = NULL;    
+TF1*    AliFastGlauber::fWSz            = NULL;     
+TF1*    AliFastGlauber::fWSta           = NULL;    
+TF2*    AliFastGlauber::fWStarfi        = NULL; 
+TF2*    AliFastGlauber::fWAlmond        = NULL; 
+TF1*    AliFastGlauber::fWStaa          = NULL;   
+TF1*    AliFastGlauber::fWSgeo          = NULL;   
+TF1*    AliFastGlauber::fWSbinary       = NULL;   
+TF1*    AliFastGlauber::fWSN            = NULL;   
+TF1*    AliFastGlauber::fWPathLength0   = NULL;   
+TF1*    AliFastGlauber::fWPathLength    = NULL;
+TF1*    AliFastGlauber::fWEnergyDensity = NULL;   
+TF1*    AliFastGlauber::fWIntRadius     = NULL;   
+Float_t AliFastGlauber::fbMax           = 0.;
 
 AliFastGlauber::AliFastGlauber()
 {
@@ -107,7 +108,9 @@ void AliFastGlauber::Init(Int_t mode)
     fWPathLength->SetParameter(1, 1000.);    
 
     fWIntRadius = new TF1("WIntRadius", WIntRadius, 0., fbMax, 1);
-    fWIntRadius->SetParameter(0, 0.);     
+    fWIntRadius->SetParameter(0, 0.);    
+
+
 //
 //  Overlap
 //
@@ -120,6 +123,10 @@ void AliFastGlauber::Init(Int_t mode)
     }
     
 //
+    fWEnergyDensity = new TF1("WEnergyDensity", WEnergyDensity, 0., 2. * fWSr0, 1);
+    fWEnergyDensity->SetParameter(0, fWSr0 + 1.);
+    
+//
 //  Geometrical Cross-Section
 //
     fWSgeo = new TF1("WSgeo", WSgeo, 0., fbMax, 0);
@@ -211,7 +218,7 @@ void AliFastGlauber::DrawKernel(Double_t b)
 void AliFastGlauber::DrawAlmond(Double_t b)
 {
 //
-//  Draw Kernel
+//  Draw Interaction Almond
 //
     TCanvas *c7 = new TCanvas("c7","Almond",400,10,600,700);
     c7->cd();
@@ -222,7 +229,7 @@ void AliFastGlauber::DrawAlmond(Double_t b)
 void AliFastGlauber::DrawPathLength0(Double_t b)
 {
 //
-//  Draw Kernel
+//  Draw Path Length
 //
     TCanvas *c8 = new TCanvas("c8","Path Length",400,10,600,700);
     c8->cd();
@@ -235,7 +242,7 @@ void AliFastGlauber::DrawPathLength0(Double_t b)
 void AliFastGlauber::DrawPathLength(Double_t b , Int_t ni)
 {
 //
-//  Draw Kernel
+//  Draw Path Length
 //
     TCanvas *c9 = new TCanvas("c9","Path Length",400,10,600,700);
     c9->cd();
@@ -251,7 +258,7 @@ void AliFastGlauber::DrawPathLength(Double_t b , Int_t ni)
 void AliFastGlauber::DrawIntRadius(Double_t b)
 {
 //
-//  Draw Kernel
+//  Draw Interaction Radius
 //
     TCanvas *c10 = new TCanvas("c10","Interaction Radius",400,10,600,700);
     c10->cd();
@@ -260,6 +267,17 @@ void AliFastGlauber::DrawIntRadius(Double_t b)
     fWIntRadius->Draw();
 }
 
+void AliFastGlauber::DrawEnergyDensity()
+{
+//
+//  Draw energy density
+//
+    TCanvas *c11 = new TCanvas("c11","Energy Density",400, 10, 600, 700);
+    c11->cd();
+    fWEnergyDensity->SetMinimum(0.);
+    fWEnergyDensity->Draw();
+}
+
 Double_t AliFastGlauber::WSb(Double_t* x, Double_t* par)
 {
 //
@@ -273,6 +291,7 @@ Double_t AliFastGlauber::WSb(Double_t* x, Double_t* par)
     Double_t n   = par[3];
     
     Double_t y  = n * (1.+w*(xx/r0)*(xx/r0))/(1.+TMath::Exp((xx-r0)/d));
+
     return y;
 }
 
@@ -290,6 +309,7 @@ Double_t AliFastGlauber::WSbz(Double_t* x, Double_t* par)
     Double_t n   = par[3];
     Double_t xx  = TMath::Sqrt(bb*bb+zz*zz);
     Double_t y  = n * (1.+w*(xx/r0)*(xx/r0))/(1.+TMath::Exp((xx-r0)/d));
+
     return y;
 }
 
@@ -307,7 +327,7 @@ Double_t AliFastGlauber::WSz(Double_t* x, Double_t* par)
     Double_t n   = par[3];
     Double_t xx  = TMath::Sqrt(bb*bb+zz*zz);
     Double_t y  = n * (1.+w*(xx/r0)*(xx/r0))/(1.+TMath::Exp((xx-r0)/d));
-//    if (y < 1.e-6) y = 0;
+
     return y;
 }
 
@@ -551,6 +571,20 @@ Double_t AliFastGlauber::WSN(Double_t* x, Double_t* /*par*/)
     return y;
 }
 
+Double_t AliFastGlauber::WEnergyDensity(Double_t* x, Double_t* par)
+{
+//
+//  Initial energy density as a function of the impact parameter
+//
+    Double_t b     = x[0];
+    Double_t rA    = par[0];
+    
+    Double_t saa   = (TMath::Pi() - 2. * TMath::ASin(b/ 2./ rA)) * rA * rA - b * TMath::Sqrt(rA * rA - b * b/ 4.);
+    Double_t taa   = fWStaa->Eval(b);
+    
+    return (taa/saa);
+}
+
 void AliFastGlauber::SimulateTrigger(Int_t n)
 {
     //
index df1e4d4..5bb2e26 100644 (file)
@@ -18,19 +18,20 @@ class AliFastGlauber : public TObject {
     void SetMaxImpact(Float_t bmax = 20.) {fbMax = bmax;};
     void SetHardCrossSection(Float_t xs = 6.6) {fSigmaHard = xs;}
     
-    static Double_t WSb          (Double_t *xx, Double_t *par);
-    static Double_t WSbz         (Double_t *xx, Double_t *par);
-    static Double_t WSz          (Double_t *xx, Double_t *par);
-    static Double_t WSta         (Double_t *xx, Double_t *par);
-    static Double_t WStarfi      (Double_t *xx, Double_t *par);
-    static Double_t WStaa        (Double_t *xx, Double_t *par);
-    static Double_t WSgeo        (Double_t *xx, Double_t *par);
-    static Double_t WSbinary     (Double_t *xx, Double_t *par);
-    static Double_t WSN          (Double_t *xx, Double_t *par);
-    static Double_t WAlmond      (Double_t *xx, Double_t *par);
-    static Double_t WPathLength0 (Double_t *xx, Double_t *par);
-    static Double_t WPathLength  (Double_t *xx, Double_t *par);
-    static Double_t WIntRadius   (Double_t *xx, Double_t *par);
+    static Double_t WSb            (Double_t *xx, Double_t *par);
+    static Double_t WSbz           (Double_t *xx, Double_t *par);
+    static Double_t WSz            (Double_t *xx, Double_t *par);
+    static Double_t WSta           (Double_t *xx, Double_t *par);
+    static Double_t WStarfi        (Double_t *xx, Double_t *par);
+    static Double_t WStaa          (Double_t *xx, Double_t *par);
+    static Double_t WSgeo          (Double_t *xx, Double_t *par);
+    static Double_t WSbinary       (Double_t *xx, Double_t *par);
+    static Double_t WSN            (Double_t *xx, Double_t *par);
+    static Double_t WAlmond        (Double_t *xx, Double_t *par);
+    static Double_t WPathLength0   (Double_t *xx, Double_t *par);
+    static Double_t WPathLength    (Double_t *xx, Double_t *par);
+    static Double_t WIntRadius     (Double_t *xx, Double_t *par);
+    static Double_t WEnergyDensity (Double_t *xx, Double_t *par);
     
     void Init(Int_t mode = 0);
     void DrawWSb();
@@ -39,11 +40,12 @@ class AliFastGlauber : public TObject {
     void DrawGeo();
     void DrawBinary();
     void DrawN();    
-    void DrawKernel(Double_t b);
-    void DrawAlmond(Double_t b);
-    void DrawPathLength0(Double_t b);
+    void DrawKernel(Double_t b = 0.);
+    void DrawAlmond(Double_t b = 0.);
+    void DrawPathLength0(Double_t b = 0.);
     void DrawPathLength(Double_t b, Int_t ni = 1000);
-    void DrawIntRadius(Double_t b);
+    void DrawIntRadius(Double_t b = 0.);
+    void DrawEnergyDensity();
     
     Double_t CrossSection(Double_t b1, Double_t b2);
     Double_t FractionOfHardCrossSection(Double_t b1, Double_t b2);
@@ -55,25 +57,26 @@ class AliFastGlauber : public TObject {
     void GetRandom(Int_t& bin, Bool_t& hard);
     Float_t GetRandomImpactParameter(Float_t bmin, Float_t bmax);
  protected:
-    static TF1*    fWSb;         // Wood-Saxon Function (b)
-    static TF2*    fWSbz;        // Wood-Saxon Function (b, z)
-    static TF1*    fWSz;         // Wood-Saxon Function (b = b0, z)
-    static TF1*    fWSta;        // Thickness Function
-    static TF2*    fWStarfi;     // Kernel for Overlap Function
-    static TF1*    fWStaa;       // Overlap Function
-    static TF2*    fWAlmond;     // Interaction Almond
-    static TF1*    fWPathLength0;// Path Length as a function of phi
-    static TF1*    fWPathLength; // Path Length as a function of phi
-    static TF1*    fWIntRadius;  // Interaction Radius
-    static TF1*    fWSgeo;       // dSigma/db geometric
-    static TF1*    fWSbinary;    // dSigma/db binary
-    static TF1*    fWSN;         // dN/db binary
+    static TF1*    fWSb;            // Wood-Saxon Function (b)
+    static TF2*    fWSbz;           // Wood-Saxon Function (b, z)
+    static TF1*    fWSz;            // Wood-Saxon Function (b = b0, z)
+    static TF1*    fWSta;           // Thickness Function
+    static TF2*    fWStarfi;        // Kernel for Overlap Function
+    static TF1*    fWStaa;          // Overlap Function
+    static TF2*    fWAlmond;        // Interaction Almond
+    static TF1*    fWPathLength0;   // Path Length as a function of phi
+    static TF1*    fWPathLength;    // Path Length as a function of phi
+    static TF1*    fWIntRadius;     // Interaction Radius
+    static TF1*    fWSgeo;          // dSigma/db geometric
+    static TF1*    fWSbinary;       // dSigma/db binary
+    static TF1*    fWSN;            // dN/db binary
+    static TF1*    fWEnergyDensity; // Energy density as a function of impact parameter
     
-    Float_t fWSr0;      // Wood-Saxon Parameter r0
-    Float_t fWSd;       // Wood-Saxon Parameter d
-    Float_t fWSw;       // Wood-Saxon Parameter w
-    Float_t fWSn;       // Wood-Saxon Parameter n
-    Float_t fSigmaHard; // Hard Cross Section
+    Float_t fWSr0;           // Wood-Saxon Parameter r0
+    Float_t fWSd;            // Wood-Saxon Parameter d
+    Float_t fWSw;            // Wood-Saxon Parameter w
+    Float_t fWSn;            // Wood-Saxon Parameter n
+    Float_t fSigmaHard;      // Hard Cross Section
     static Float_t fbMax;    // Maximum Impact Parameter
     
     ClassDef(AliFastGlauber,1) // Event geometry simulation in the Glauber Model