]> git.uio.no Git - u/mrichter/AliRoot.git/blob - STEER/AliLego.h
Precision parameter for pT sampling plus corresponding getter introduced.
[u/mrichter/AliRoot.git] / STEER / AliLego.h
1 #ifndef ALILego_H
2 #define ALILego_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 ///////////////////////////////////////////////////////////////////////////////
9 //                                                                           //
10 //                                                                           //
11 //    Utility class to compute and draw Radiation Length Map                 //
12 //                                                                           //
13 //                                                                           //
14 ///////////////////////////////////////////////////////////////////////////////
15
16 #include <TH2.h>
17
18 #include "AliGenerator.h"
19
20 class AliLegoGenerator;
21
22 class AliLego : public TNamed  {
23
24 private:
25   AliLegoGenerator *fGener;     //Lego generator
26    Float_t    fTotRadl;         //Total Radiation length
27    Float_t    fTotAbso;         //Total absorption length
28    Float_t    fTotGcm2;         //Total G/CM2 traversed
29    TH2F      *fHistRadl;        //Radiation length map 
30    TH2F      *fHistAbso;        //Interaction length map
31    TH2F      *fHistGcm2;        //g/cm2 length map
32    TH2F      *fHistReta;        //Radiation length map as a function of eta
33    
34 public:
35   AliLego();
36   AliLego(const char *title, Int_t ntheta,Float_t themin,
37           Float_t themax, Int_t nphi, Float_t phimin,
38           Float_t phimax,Float_t rmin,Float_t rmax,Float_t zmax);
39   virtual ~AliLego();
40   virtual void  StepManager();
41   virtual void  BeginEvent();
42   virtual void  FinishEvent();
43   virtual void  FinishRun();
44   
45   ClassDef(AliLego,1) //Utility class to compute and draw Radiation Length Map
46
47 };
48
49 class AliLegoGenerator : public AliGenerator
50 {
51 public:
52   AliLegoGenerator() {}
53   AliLegoGenerator(Int_t ntheta, Float_t themin, Float_t themax,
54                    Int_t nphi, Float_t phimin, Float_t phimax,
55                    Float_t rmin, Float_t rmax, Float_t zmax);
56   void    Generate();
57   Float_t CurTheta() const {return fCurTheta;}
58   Int_t   ThetaBin() const {return fThetaBin;}
59   Float_t CurPhi() const {return fCurPhi;}
60   Float_t ZMax() const {return fZMax;}
61   Float_t RadMax() const {return fRadMax;}
62   Int_t   PhiBin() const {return fPhiBin;}
63   Int_t   Nphi() const {return fNphi;}
64   Int_t   Ntheta() const {return fNtheta;}
65   Float_t       PropagateCylinder(Float_t *x, Float_t *v, Float_t r, Float_t z);
66 private:
67    Float_t    fRadMin;          //Generation radius
68    Float_t    fRadMax;          //Maximum tracking radius
69    Float_t    fZMax;            //Maximum tracking Z
70    Int_t      fNtheta;          //Number of bins in Theta
71    Int_t      fNphi;            //Number of bins in Phi
72    Int_t      fThetaBin;        //Current theta bin
73    Int_t      fPhiBin;          //Current phi bin
74    Float_t    fCurTheta;        //Current theta of track
75    Float_t    fCurPhi;          //Current phi of track
76
77   ClassDef(AliLegoGenerator,1) //Lego generator
78 };
79
80 #endif
81