Removing warnings (alpha)
[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 // Utility class to make simple Glauber type calculations for collision geometries:
9 // Impact parameter, production points, reaction plane dependence
10 //
11 // Author: andreas.morsch@cern.ch
12
13 #include <TObject.h>
14 class TF1;
15 class TF2;
16
17 class AliFastGlauber : public TObject {
18  public:
19     AliFastGlauber();
20     virtual ~AliFastGlauber(){;}
21     void SetWoodSaxonParameters(Double_t r0, Double_t d, Double_t w, Double_t n)
22         {fWSr0 = r0; fWSd = d; fWSw = w; fWSn = n;}
23     void SetMaxImpact(Float_t bmax = 20.) {fgBMax = bmax;};
24     void SetHardCrossSection(Float_t xs = 6.6) {fSigmaHard = xs;}
25     
26     static Double_t WSb            (Double_t *xx, Double_t *par);
27     static Double_t WSbz           (Double_t *xx, Double_t *par);
28     static Double_t WSz            (Double_t *xx, Double_t *par);
29     static Double_t WSta           (Double_t *xx, Double_t *par);
30     static Double_t WStarfi        (Double_t *xx, Double_t *par);
31     static Double_t WStaa          (Double_t *xx, Double_t *par);
32     static Double_t WSgeo          (Double_t *xx, Double_t *par);
33     static Double_t WSbinary       (Double_t *xx, Double_t *par);
34     static Double_t WSN            (Double_t *xx, Double_t *par);
35     static Double_t WAlmond        (Double_t *xx, Double_t *par);
36     static Double_t WPathLength0   (Double_t *xx, Double_t *par);
37     static Double_t WPathLength    (Double_t *xx, Double_t *par);
38     static Double_t WIntRadius     (Double_t *xx, Double_t *par);
39     static Double_t WEnergyDensity (Double_t *xx, Double_t *par);
40     
41     void Init(Int_t mode = 0);
42     void DrawWSb();
43     void DrawThickness();
44     void DrawOverlap();
45     void DrawGeo();
46     void DrawBinary();
47     void DrawN();    
48     void DrawKernel(Double_t b = 0.);
49     void DrawAlmond(Double_t b = 0.);
50     void DrawPathLength0(Double_t b = 0., Int_t iopt = 0);
51     void DrawPathLength(Double_t b, Int_t ni = 1000, Int_t iopt = 0);
52     void DrawIntRadius(Double_t b = 0.);
53     void DrawEnergyDensity();
54     
55     Double_t CrossSection(Double_t b1, Double_t b2);
56     Double_t FractionOfHardCrossSection(Double_t b1, Double_t b2);
57     Double_t Binaries(Double_t b);
58     TF2* Kernel()  {return fgWStarfi;}
59     TF1* Overlap() {return fgWStaa;}
60     void SimulateTrigger(Int_t n);
61     void GetRandom(Float_t& b, Float_t& p, Float_t& mult);
62     void GetRandom(Int_t& bin, Bool_t& hard);
63     Float_t GetRandomImpactParameter(Float_t bmin, Float_t bmax);
64  protected:
65     static TF1*    fgWSb;            // Wood-Saxon Function (b)
66     static TF2*    fgWSbz;           // Wood-Saxon Function (b, z)
67     static TF1*    fgWSz;            // Wood-Saxon Function (b = b0, z)
68     static TF1*    fgWSta;           // Thickness Function
69     static TF2*    fgWStarfi;        // Kernel for Overlap Function
70     static TF1*    fgWStaa;          // Overlap Function
71     static TF2*    fgWAlmond;        // Interaction Almond
72     static TF1*    fgWPathLength0;   // Path Length as a function of phi
73     static TF1*    fgWPathLength;    // Path Length as a function of phi
74     static TF1*    fgWIntRadius;     // Interaction Radius
75     static TF1*    fgWSgeo;          // dSigma/db geometric
76     static TF1*    fgWSbinary;       // dSigma/db binary
77     static TF1*    fgWSN;            // dN/db binary
78     static TF1*    fgWEnergyDensity; // Energy density as a function of impact parameter
79     
80     Float_t fWSr0;           // Wood-Saxon Parameter r0
81     Float_t fWSd;            // Wood-Saxon Parameter d
82     Float_t fWSw;            // Wood-Saxon Parameter w
83     Float_t fWSn;            // Wood-Saxon Parameter n
84     Float_t fSigmaHard;      // Hard Cross Section
85     static Float_t fgBMax;   // Maximum Impact Parameter
86     
87     ClassDef(AliFastGlauber,1) // Event geometry simulation in the Glauber Model
88 };
89
90 #endif 
91
92
93