]>
Commit | Line | Data |
---|---|---|
fe4da5cc | 1 | #ifndef ALILego_H |
2 | #define ALILego_H | |
3da30618 | 3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * |
4 | * See cxx source for full Copyright notice */ | |
5 | ||
6 | /* $Id$ */ | |
7 | ||
fe4da5cc | 8 | /////////////////////////////////////////////////////////////////////////////// |
9 | // // | |
10 | // // | |
11 | // Utility class to compute and draw Radiation Length Map // | |
12 | // // | |
13 | // // | |
14 | /////////////////////////////////////////////////////////////////////////////// | |
15 | ||
16 | #include <TH2.h> | |
17 | ||
b13db077 | 18 | #include "AliGenerator.h" |
19 | ||
20 | class AliLegoGenerator; | |
21 | ||
fe4da5cc | 22 | class AliLego : public TNamed { |
23 | ||
24 | private: | |
b13db077 | 25 | AliLegoGenerator *fGener; //Lego generator |
fe4da5cc | 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(); | |
b13db077 | 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); | |
fe4da5cc | 39 | virtual ~AliLego(); |
fe4da5cc | 40 | virtual void StepManager(); |
dffd31ef | 41 | virtual void BeginEvent(); |
42 | virtual void FinishEvent(); | |
43 | virtual void FinishRun(); | |
fe4da5cc | 44 | |
45 | ClassDef(AliLego,1) //Utility class to compute and draw Radiation Length Map | |
46 | ||
47 | }; | |
48 | ||
b13db077 | 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 | ||
fe4da5cc | 80 | #endif |
81 |