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 */
8 ///////////////////////////////////////////////////////////////////////////////
11 // Utility class to compute and draw Radiation Length Map //
14 ///////////////////////////////////////////////////////////////////////////////
16 #include "AliGenerator.h"
18 class AliLegoGenerator:
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);
28 virtual ~AliLegoGenerator() {}
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;}
39 virtual void SetRadiusRange(Float_t rmin, Float_t rmax)
40 {fRadMin=rmin; fRadMax=rmax;}
41 virtual void SetZMax(Float_t zmax)
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;}
53 Float_t PropagateCylinder(Float_t *x, Float_t *v, Float_t r, Float_t z);
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
61 Float_t fCoor1Min; // Minimum Coor1
62 Float_t fCoor1Max; // Maximum Coor1
63 Float_t fCoor2Min; // Minimum Coor2
64 Float_t fCoor2Max; // Maximum Coor2
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
71 ClassDef(AliLegoGenerator,1) //Lego generator