GetRandom returning impact parameter bin and flag for hard process added.
authormorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 3 Jun 2003 13:13:20 +0000 (13:13 +0000)
committermorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 3 Jun 2003 13:13:20 +0000 (13:13 +0000)
FASTSIM/AliFastGlauber.cxx
FASTSIM/AliFastGlauber.h

index 3efc6d2..77abdcd 100644 (file)
@@ -15,6 +15,9 @@
 
 /*
 $Log$
+Revision 1.3  2003/04/21 09:35:53  morsch
+Protection against division by 0 in Binaries().
+
 Revision 1.2  2003/04/14 14:23:44  morsch
 Correction in Binaries().
 
@@ -319,7 +322,7 @@ Double_t AliFastGlauber::WSgeo(Double_t* x, Double_t* par)
 Double_t AliFastGlauber::WSbinary(Double_t* x, Double_t* par)
 {
 //
-//  Geometrical Cross-Section
+//  Number of binary collisions
 //
     Double_t b     = x[0];
     Double_t sigma = par[0];
@@ -332,7 +335,7 @@ Double_t AliFastGlauber::WSbinary(Double_t* x, Double_t* par)
 Double_t AliFastGlauber::WSN(Double_t* x, Double_t* par)
 {
 //
-//  Geometrical Cross-Section
+//  Number of hard processes per event
 //
     Double_t b     = x[0];
     Double_t y;
@@ -401,6 +404,34 @@ void AliFastGlauber::GetRandom(Float_t& b, Float_t& p, Float_t& mult)
        mult = 6000./fWSN->Eval(0.) * mu;
 }
 
+void AliFastGlauber::GetRandom(Int_t& bin, Bool_t& hard)
+{
+    //
+    // Gives back a random impact parameter bin, and hard trigger decission
+    //
+       Float_t b  = fWSgeo->GetRandom();
+       Float_t mu = fWSN->Eval(b) * fSigmaHard;
+       Float_t p  = 1.-TMath::Exp(-mu);
+       if (b < 5.) {
+           bin = 1;
+       } else if (b <  8.6) {
+           bin = 2;
+       } else if (b < 11.2) {
+           bin = 3;
+       } else if (b < 13.2) {
+           bin = 4;
+       } else {
+           bin = 5;
+       }
+       
+       hard = kFALSE;
+       
+       Float_t r = gRandom->Rndm();
+       
+       if (r < p) hard = kTRUE;
+}
+
+
 Float_t  AliFastGlauber::GetRandomImpactParameter(Float_t bmin, Float_t bmax)
 {
     //
index 2c4f10d..3670fd1 100644 (file)
@@ -42,6 +42,7 @@ class AliFastGlauber : public TObject {
     TF1* Overlap() {return fWStaa;}
     void SimulateTrigger(Int_t n);
     void GetRandom(Float_t& b, Float_t& p, Float_t& mult);
+    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)