First commit.
[u/mrichter/AliRoot.git] / FASTSIM / AliFastGlauber.h
1 #ifndef ALIFASTGLAUBER_H
2 #define ALIFASTGLAUBER_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id$ */
7
8 #include <TObject.h>
9 class TF1;
10 class TF2;
11
12 class AliFastGlauber : public TObject {
13  public:
14     AliFastGlauber();
15     virtual ~AliFastGlauber(){;}
16     void SetWoodSaxonParameters(Double_t r0, Double_t d, Double_t w, Double_t n)
17         {fWSr0 = r0; fWSd = d; fWSw = w; fWSn = n;}
18     void SetMaxImpact(Float_t bmax = 20.) {fbMax = bmax;};
19     void SetHardCrossSection(Float_t xs = 6.6) {fSigmaHard = xs;}
20     
21     static Double_t WSb      (Double_t *xx, Double_t *par);
22     static Double_t WSbz     (Double_t *xx, Double_t *par);
23     static Double_t WSz      (Double_t *xx, Double_t *par);
24     static Double_t WSta     (Double_t *xx, Double_t *par);
25     static Double_t WStarfi  (Double_t *xx, Double_t *par);
26     static Double_t WStaa    (Double_t *xx, Double_t *par);
27     static Double_t WSgeo    (Double_t *xx, Double_t *par);
28     static Double_t WSbinary (Double_t *xx, Double_t *par);
29     static Double_t WSN      (Double_t *xx, Double_t *par);
30     void Init(Int_t mode = 0);
31     void DrawWSb();
32     void DrawThickness();
33     void DrawOverlap();
34     void DrawGeo();
35     void DrawBinary();
36     void DrawN();    
37     void DrawKernel();
38     Double_t CrossSection(Double_t b1, Double_t b2);
39     Double_t FractionOfHardCrossSection(Double_t b1, Double_t b2);
40     Double_t Binaries(Double_t b);
41     TF2* Kernel()  {return fWStarfi;}
42     TF1* Overlap() {return fWStaa;}
43     void SimulateTrigger(Int_t n);
44     void GetRandom(Float_t& b, Float_t& p, Float_t& mult);
45     Float_t GetRandomImpactParameter(Float_t bmin, Float_t bmax);
46  protected:
47     static TF1*    fWSb;      // Wood-Saxon Function (b)
48     static TF2*    fWSbz;     // Wood-Saxon Function (b, z)
49     static TF1*    fWSz;      // Wood-Saxon Function (b = b0, z)
50     static TF1*    fWSta;     // Thickness Function
51     static TF2*    fWStarfi;  // Kernel for Overlap Function
52     static TF1*    fWStaa;    // Overlap Function
53     static TF1*    fWSgeo;    // dSigma/db geometric
54     static TF1*    fWSbinary; // dSigma/db binary
55     static TF1*    fWSN;      // dN/db binary
56     
57     Float_t fWSr0;      // Wood-Saxon Parameter r0
58     Float_t fWSd;       // Wood-Saxon Parameter d
59     Float_t fWSw;       // Wood-Saxon Parameter w
60     Float_t fWSn;       // Wood-Saxon Parameter n
61     Float_t fSigmaHard; // Hard Cross Section
62     static Float_t fbMax;    // Maximum Impact Parameter
63     
64     ClassDef(AliFastGlauber,1) // Event geometry simulation in the Glauber Model
65 };
66
67 #endif 
68
69
70