8918e700 |
1 | #ifndef ALILEGOGENERATOR_H |
2 | #define ALILEGOGENERATOR_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 "AliGenerator.h" |
17 | |
34915916 |
18 | class AliLegoGenerator: |
19 | public AliGenerator |
8918e700 |
20 | { |
21 | |
34915916 |
22 | public: |
23 | AliLegoGenerator(); |
24 | |
25 | AliLegoGenerator(Int_t nc1, Float_t c1min, Float_t c1max, |
26 | Int_t nc2, Float_t c2min, Float_t c2max, |
27 | Float_t rmin, Float_t rmax, Float_t zmax); |
b23a502f |
28 | virtual ~AliLegoGenerator() {} |
34915916 |
29 | virtual void Generate(); |
30 | virtual void SetCoor1Range(Int_t nbin, Float_t c1min, Float_t c1max) |
31 | {fNCoor1=nbin; fCoor1Min=c1min; fCoor1Max=c1max;} |
32 | virtual Float_t CurCoor1() const {return fCurCoor1;} |
33 | virtual Int_t Coor1Bin() const {return fCoor1Bin;} |
34 | virtual void SetCoor2Range(Int_t nbin, Float_t c2min, Float_t c2max) |
35 | {fNCoor2=nbin; fCoor2Min=c2min; fCoor2Max=c2max;} |
36 | virtual Float_t CurCoor2() const {return fCurCoor2;} |
37 | virtual Int_t Coor2Bin() const {return fCoor2Bin;} |
38 | |
39 | virtual void SetRadiusRange(Float_t rmin, Float_t rmax) |
40 | {fRadMin=rmin; fRadMax=rmax;} |
41 | virtual void SetZMax(Float_t zmax) |
42 | {fZMax=zmax;} |
43 | |
44 | virtual Float_t ZMax() const {return fZMax;} |
45 | virtual Float_t RadMax() const {return fRadMax;} |
46 | virtual Int_t NCoor1() const {return fNCoor1;} |
47 | virtual Int_t NCoor2() const {return fNCoor2;} |
48 | virtual void Coor1Range(Float_t &c1min, Float_t &c1max) const |
49 | {c1min = fCoor1Min; c1max = fCoor1Max;} |
50 | virtual void Coor2Range(Float_t &c2min, Float_t &c2max) const |
51 | {c2min = fCoor2Min; c2max = fCoor2Max;} |
52 | |
53 | Float_t PropagateCylinder(Float_t *x, Float_t *v, Float_t r, Float_t z); |
54 | protected: |
55 | Float_t fRadMin; // Generation radius |
56 | Float_t fRadMax; // Maximum tracking radius |
57 | Float_t fZMax; // Maximum tracking Z |
58 | Int_t fNCoor1; // Number of bins in Coor1 |
59 | Int_t fNCoor2; // Number of bins in Coor2 |
60 | |
61 | Float_t fCoor1Min; // Minimum Coor1 |
62 | Float_t fCoor1Max; // Maximum Coor1 |
63 | Float_t fCoor2Min; // Minimum Coor2 |
64 | Float_t fCoor2Max; // Maximum Coor2 |
65 | |
66 | Int_t fCoor1Bin; //Current Coor1 bin |
67 | Int_t fCoor2Bin; //Current Coor2 bin |
68 | Float_t fCurCoor1; //Current Coor1 of track |
69 | Float_t fCurCoor2; //Current c2 of track |
70 | |
71 | ClassDef(AliLegoGenerator,1) //Lego generator |
8918e700 |
72 | }; |
73 | |
74 | #endif |
75 | |