Merge branch 'master' into TPCdev
[u/mrichter/AliRoot.git] / STEER / STEER / AliLegoGenerator.h
CommitLineData
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 18class AliLegoGenerator:
19public AliGenerator
8918e700 20{
21
34915916 22public:
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