]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TRD/AliTRD.h
7f63a74cbb1f59efa35a6f320116d6fb7383e572
[u/mrichter/AliRoot.git] / TRD / AliTRD.h
1 #ifndef ALITRD_H
2 #define ALITRD_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                                 //
11 //                                                                        //
12 ////////////////////////////////////////////////////////////////////////////
13
14 #include <TLorentzVector.h>
15 #include <TVirtualMC.h>
16
17 #include "AliDetector.h"
18
19 #include "AliTRDTriggerL1.h"
20
21 class TFile;
22 class TLorentzVector;
23
24 class AliRun;
25 class AliDigit;
26 class AliRawReader;
27
28 class AliTRDhit;
29 class AliTRDsim;
30 class AliTRDgeometry;
31
32 class AliTRD : public AliDetector {
33
34  public:
35
36   AliTRD();
37   AliTRD(const char *name, const char *title);
38   virtual         ~AliTRD();
39
40   virtual void     Init();
41   virtual Int_t    IsVersion() const          = 0;
42   virtual void     ResetDigits();     
43
44   virtual void     CreateGeometry();
45   virtual void     CreateMaterials();
46   virtual void     DrawModule() const;
47
48   virtual void     Hits2Digits();
49   virtual void     Hits2SDigits();
50   virtual void     SDigits2Digits();
51   virtual void     Digits2Raw();
52   virtual Bool_t   Raw2SDigits(AliRawReader* rawReader);
53
54   virtual void     AddHit(Int_t, Int_t*, Float_t*)       { }; 
55   virtual void     AddHit(Int_t track, Int_t det, Float_t *hits
56                         , Int_t q, Float_t time, Bool_t inDrift); 
57
58   virtual void     SetTreeAddress();
59
60   virtual void     StepManager()              = 0; 
61   virtual void     StepManagerErmilova()      = 0;
62   virtual void     StepManagerGeant()         = 0;
63   virtual void     StepManagerFixedStep()     = 0;
64   virtual void     SelectStepManager(Int_t t) = 0;
65
66   virtual void     SetStepSize(Double_t s)    = 0;
67   virtual void     SetHits()                             { };
68   virtual void     SetDrawTR(Int_t idraw = 1)            { fDrawTR      = idraw;         };
69   virtual void     SetDisplayType(Int_t type = 0)        { fDisplayType = type;          };
70   virtual void     SetTR(Bool_t )             = 0;
71
72   virtual Bool_t   GetTR() const              = 0;
73   AliTRDgeometry  *GetGeometry() const                   { return fGeometry;             };
74
75   virtual AliDigitizer    *CreateDigitizer(AliRunDigitizer *manager) const; 
76   virtual AliTRDTriggerL1 *CreateTriggerDetector() const { return new AliTRDTriggerL1(); };
77   virtual AliLoader* MakeLoader(const char* topfoldername);
78
79  protected:
80
81   AliTRDgeometry  *fGeometry;           //  The TRD geometry
82
83           Float_t  fGasDensity;         //  The density of the drift gas
84           Float_t  fFoilDensity;        //  The density of the entrance window foil
85           Float_t  fGasNobleFraction;   //  The fraction of noble gas in the mixture
86
87           Int_t    fDrawTR;             //  Switches marking the TR photons in the display
88           Int_t    fDisplayType;        //  Display type (0: normal, 1: detailed) 
89
90  private:
91
92   AliTRD(const AliTRD &trd);
93   AliTRD  &operator=(const AliTRD &trd);
94
95   ClassDef(AliTRD,10)                   //  Transition Radiation Detector base class
96
97 };
98
99 #endif