]>
Commit | Line | Data |
---|---|---|
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 |