Merge with TRD-develop
[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 //  Manager and hits classes for set:TRD version 1    //
10 ////////////////////////////////////////////////////////
11
12 // Energy spectrum of the delta-rays 
13 Double_t Ermilova(Double_t *x, Double_t *par);
14  
15 #include "AliTRD.h"
16
17 class TF1;
18
19 class AliTRDsim;
20
21 //_____________________________________________________________________________
22 class AliTRDv1 : public AliTRD {
23
24  public:
25
26   AliTRDv1();
27   AliTRDv1(const char *name, const char *title);
28   AliTRDv1(const AliTRDv1 &trd);
29   virtual ~AliTRDv1();
30   AliTRDv1 &operator=(const AliTRDv1 &trd);
31
32   virtual void       Copy(TObject &trd);
33   virtual void       CreateGeometry();
34   virtual void       CreateMaterials();
35   virtual void       CreateTRhit(Int_t det);
36   virtual Int_t      IsVersion() const          { return 1; };
37   virtual void       StepManager();
38   virtual void       Init();
39
40           void       SetSensPlane(Int_t iplane = 0);
41           void       SetSensChamber(Int_t ichamber = 0);
42           void       SetSensSector(Int_t isector);
43           void       SetSensSector(Int_t isector, Int_t nsector);
44
45           AliTRDsim *CreateTR();
46
47           Int_t      GetSensPlane() const       { return fSensPlane;       };
48           Int_t      GetSensChamber() const     { return fSensChamber;     };
49           Int_t      GetSensSector() const      { return fSensSector;      };
50           Int_t      GetSensSectorRange() const { return fSensSectorRange; };
51
52           AliTRDsim *GetTR() const              { return fTR;              };
53
54  protected:
55
56   Int_t        fIdSens;                 // Sensitive volume identifier
57
58   Int_t        fIdChamber1;             // Driftchamber volume identifier
59   Int_t        fIdChamber2;             // Driftchamber volume identifier 
60   Int_t        fIdChamber3;             // Driftchamber volume identifier 
61
62   Int_t        fSensSelect;             // Switch to select only parts of the detector
63   Int_t        fSensPlane;              // Sensitive detector plane
64   Int_t        fSensChamber;            // Sensitive detector chamber
65   Int_t        fSensSector;             // Sensitive detector sector 
66   Int_t        fSensSectorRange;        // Sensitive detector range
67
68   AliTRDsim   *fTR;                     // TR simulator
69
70  private:
71
72   virtual Double_t BetheBloch(Double_t bg);
73
74   TF1         *fDeltaE;                 // Energy distribution of the delta-electrons
75    
76   ClassDef(AliTRDv1,1)                  // Transition Radiation Detector version 1 (slow simulator)
77
78 };
79
80 #endif