Casting to eliminate constructor ambiguity
[u/mrichter/AliRoot.git] / STEER / AliLego.h
CommitLineData
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
20class AliLegoGenerator;
21
fe4da5cc 22class AliLego : public TNamed {
23
24private:
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
34public:
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 49class AliLegoGenerator : public AliGenerator
50{
51public:
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);
66private:
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