Implement symbolic links
[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   AliTRDv1(const AliTRDv1 &trd);
34   virtual ~AliTRDv1();
35   AliTRDv1 &operator=(const AliTRDv1 &trd);
36
37   virtual void     Copy(TObject &trd) const;
38   virtual void     Init();
39   virtual Int_t    IsVersion() const          { return 1;      }
40
41   virtual void     AddAlignableVolumes() const;
42   virtual void     CreateGeometry();
43   virtual void     CreateMaterials();
44   virtual void     CreateTRhit(Int_t det);
45
46   virtual void     StepManager();
47           void     StepManagerErmilova();
48           void     StepManagerGeant();
49           void     StepManagerFixedStep();
50           void     SelectStepManager(Int_t t);
51
52           void     SetStepSize(Double_t s)    { fStepSize = s; }
53           void     SetTR(Bool_t kTRUE)        { fTRon = kTRUE; }
54
55           Bool_t   GetTR() const              { return fTRon;  }
56   AliTRDsim       *GetTRDsim() const          { return fTR;    }
57
58  protected:
59
60           void    *StepManagerEntity();
61
62           Bool_t   fTRon;               //  Switch for TR simulation
63   AliTRDsim       *fTR;                 //  TR simulator
64
65           Int_t    fTypeOfStepManager;  //  Type of Step Manager.
66           Double_t fStepSize;           //  Used for the fixed step size
67
68  private:
69
70           Double_t BetheBloch(Double_t bg);
71           Double_t BetheBlochGeant(Double_t bg);
72   
73           TF1     *fDeltaE;             //  Energy distribution of the delta-electrons (Ermilova)
74           TF1     *fDeltaG;             //  Energy distribution of the
75
76           Float_t  fTrackLength0;       //  Save the track length at chamber entrance  
77           Int_t    fPrimaryTrackPid;    //  Save the id of the primary track  
78
79   ClassDef(AliTRDv1,5)                  //  Transition Radiation Detector version 1 (slow simulator)
80
81 };
82
83 #endif