]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TRD/AliTRDv1.h
EMCAL geometry can be created independently form anything now
[u/mrichter/AliRoot.git] / TRD / AliTRDv1.h
1 #ifndef ALITRDV1_H
2 #define ALITRDV1_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 //  Manager and hits classes for set: TRD version 1                       //
11 //                                                                        //
12 ////////////////////////////////////////////////////////////////////////////
13
14 // Energy spectrum of the delta-rays 
15 Double_t Ermilova(Double_t *x, Double_t *par);
16 Double_t IntSpecGeant(Double_t *x, Double_t *par);
17  
18 #include "AliTRD.h"
19
20 class TF1;
21 class TTree;
22 class TFile;
23
24 class AliTRDsim;
25
26 //_____________________________________________________________________________
27 class AliTRDv1 : public AliTRD {
28
29  public:
30
31   AliTRDv1();
32   AliTRDv1(const char *name, const char *title);
33   virtual ~AliTRDv1();
34
35   virtual void     Init();
36   virtual Int_t    IsVersion() const          { return 1;      }
37
38   virtual void     AddAlignableVolumes() const;
39   virtual void     CreateGeometry();
40   virtual void     CreateMaterials();
41   virtual void     CreateTRhit(Int_t det);
42
43   virtual void     StepManager();
44           void     StepManagerErmilova();
45           void     StepManagerGeant();
46           void     StepManagerFixedStep();
47           void     SelectStepManager(Int_t t);
48
49           void     SetStepSize(Double_t s)    { fStepSize = s; }
50           void     SetTR(Bool_t kTRUE)        { fTRon = kTRUE; }
51
52           Bool_t   GetTR() const              { return fTRon;  }
53   AliTRDsim       *GetTRDsim() const          { return fTR;    }
54
55  protected:
56
57           void    *StepManagerEntity();
58
59           Bool_t   fTRon;               //  Switch for TR simulation
60   AliTRDsim       *fTR;                 //  TR simulator
61
62           Int_t    fTypeOfStepManager;  //  Type of Step Manager.
63           Double_t fStepSize;           //  Used for the fixed step size
64
65  private:
66   AliTRDv1(const AliTRDv1 &trd);
67   AliTRDv1 &operator=(const AliTRDv1 &trd);
68
69           Double_t BetheBloch(Double_t bg);
70           Double_t BetheBlochGeant(Double_t bg);
71   
72           TF1     *fDeltaE;             //  Energy distribution of the delta-electrons (Ermilova)
73           TF1     *fDeltaG;             //  Energy distribution of the
74
75           Float_t  fTrackLength0;       //  Save the track length at chamber entrance  
76           Int_t    fPrimaryTrackPid;    //  Save the id of the primary track  
77
78   ClassDef(AliTRDv1,5)                  //  Transition Radiation Detector version 1 (slow simulator)
79
80 };
81
82 #endif