Line data Source code
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 :
15 : #include "AliDetector.h"
16 : #include "AliTRDTrigger.h"
17 :
18 : class AliRawReader;
19 :
20 : class AliTRDgeometry;
21 : class AliTriggerDetector;
22 :
23 : class AliTRD : public AliDetector {
24 :
25 : public:
26 :
27 : AliTRD();
28 : AliTRD(const char *name, const char *title);
29 : virtual ~AliTRD();
30 :
31 : virtual void Init();
32 : virtual Int_t IsVersion() const = 0;
33 : virtual void ResetDigits();
34 :
35 : virtual void CreateGeometry();
36 : virtual void CreateMaterials();
37 :
38 : virtual void Hits2Digits();
39 : virtual void Hits2SDigits();
40 : virtual void SDigits2Digits();
41 : virtual void Digits2Raw();
42 : virtual Bool_t Raw2SDigits(AliRawReader* rawReader);
43 :
44 0 : virtual void AddHit(Int_t, Int_t*, Float_t*) { };
45 : virtual void AddHit(Int_t track, Int_t det, Float_t *hits
46 : , Int_t q, Float_t time, Bool_t inDrift);
47 :
48 : virtual void SetTreeAddress();
49 :
50 : virtual void StepManager() = 0;
51 :
52 : virtual void SetStepSize(Double_t s) = 0;
53 0 : virtual void SetHits() { };
54 : virtual void SetTR(Bool_t ) = 0;
55 :
56 : virtual Bool_t GetTR() const = 0;
57 :
58 2 : AliTRDgeometry *GetGeometry() const { return fGeometry; };
59 : virtual AliDigitizer *CreateDigitizer(AliDigitizationInput* digInput) const;
60 : virtual AliLoader *MakeLoader(const char* topfoldername);
61 12 : virtual AliTriggerDetector *CreateTriggerDetector() const { return new AliTRDTrigger(); }
62 0 : void SetPrimaryIonisation(Bool_t flag = kTRUE) {fPrimaryIonisation = flag;}
63 : protected:
64 :
65 : AliTRDgeometry *fGeometry; // The TRD geometry
66 :
67 : Float_t fGasDensity; // The density of the drift gas
68 : Float_t fFoilDensity; // The density of the entrance window foil
69 : Float_t fGasNobleFraction; // The fraction of noble gas in the mixture
70 : Bool_t fPrimaryIonisation; // switch between Fluka(true) and geant3(false)
71 : private:
72 :
73 : AliTRD(const AliTRD &trd);
74 : AliTRD &operator=(const AliTRD &trd);
75 :
76 20 : ClassDef(AliTRD,12) // Transition Radiation Detector base class
77 :
78 : };
79 :
80 : #endif
|