]>
Commit | Line | Data |
---|---|---|
f7336fa3 | 1 | #ifndef TRDdigitizer_h |
2 | #define TRDdigitizer_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 | #include <TNamed.h> | |
9 | #include <TFile.h> | |
6f1e466d | 10 | #include <TF1.h> |
f7336fa3 | 11 | |
12 | #include "AliHit.h" | |
6f1e466d | 13 | #include "AliTRDdigit.h" |
f7336fa3 | 14 | #include "AliTRDconst.h" |
15 | #include "AliTRDgeometry.h" | |
6f1e466d | 16 | |
17 | class AliTRDdigitsManager; | |
f7336fa3 | 18 | |
19 | /////////////////////////////////////////////////////// | |
20 | // Produces digits from the hits information // | |
21 | /////////////////////////////////////////////////////// | |
22 | ||
f7336fa3 | 23 | class AliTRDdigitizer : public TNamed { |
24 | ||
25 | public: | |
26 | ||
27 | AliTRDdigitizer(); | |
28 | AliTRDdigitizer(const Text_t* name, const Text_t* title); | |
29 | ~AliTRDdigitizer(); | |
30 | ||
6f1e466d | 31 | virtual void Init(); |
32 | virtual Bool_t Open(const Char_t *name, Int_t nEvent = 0); | |
33 | virtual Bool_t MakeDigits(); | |
34 | virtual Bool_t WriteDigits(); | |
35 | ||
36 | virtual void SetGasGain(Float_t gasgain) { fGasGain = gasgain; }; | |
37 | virtual void SetNoise(Float_t noise) { fNoise = noise; }; | |
38 | virtual void SetChipGain(Float_t chipgain) { fChipGain = chipgain; }; | |
39 | virtual void SetADCoutRange(Float_t range) { fADCoutRange = range; }; | |
40 | virtual void SetADCinRange(Float_t range) { fADCinRange = range; }; | |
41 | virtual void SetADCthreshold(Int_t thresh) { fADCthreshold = thresh; }; | |
42 | virtual void SetDiffusion(Int_t diff_on = 1) { fDiffusionOn = diff_on; }; | |
43 | virtual void SetDiffusionT(Float_t diff) { fDiffusionT = diff; }; | |
44 | virtual void SetDiffusionL(Float_t diff) { fDiffusionL = diff; }; | |
45 | virtual void SetElAttach(Int_t el_on = 1) { fElAttachOn = el_on; }; | |
46 | virtual void SetElAttachProp(Float_t prop) { fElAttachProp = prop; }; | |
47 | virtual void SetExB(Int_t exb_on = 1) { fExBOn = exb_on; }; | |
48 | virtual void SetLorentzAngle(Float_t angle) { fLorentzAngle = angle; }; | |
49 | virtual void SetPadResponse(TF1 *PRF) { if (fPRF) delete fPRF; | |
50 | fPRF = PRF; }; | |
51 | ||
52 | AliTRDdigitsManager *Digits() { return fDigits; }; | |
53 | ||
54 | virtual Float_t GetGasGain() { return fGasGain; }; | |
55 | virtual Float_t GetNoise() { return fNoise; }; | |
56 | virtual Float_t GetChipGain() { return fChipGain; }; | |
57 | virtual Float_t GetADCoutRange() { return fADCoutRange; }; | |
58 | virtual Float_t GetADCinRange() { return fADCinRange; }; | |
59 | virtual Int_t GetADCthreshold() { return fADCthreshold; }; | |
60 | virtual Float_t GetDiffusionT() { return fDiffusionT; }; | |
61 | virtual Float_t GetDiffusionL() { return fDiffusionL; }; | |
62 | virtual Float_t GetElAttachProp() { return fElAttachProp; }; | |
63 | virtual Float_t GetLorentzAngle() { return fLorentzAngle; }; | |
64 | virtual TF1 *GetPadResponse() { return fPRF; }; | |
f7336fa3 | 65 | |
66 | protected: | |
67 | ||
6f1e466d | 68 | TFile *fInputFile; //! ALIROOT-filename |
69 | AliTRDdigitsManager *fDigits; //! TRD digits manager | |
70 | AliTRD *fTRD; //! TRD detector class | |
71 | AliTRDgeometry *fGeo; //! TRD geometry | |
f7336fa3 | 72 | |
6f1e466d | 73 | Int_t fEvent; //! Event number |
74 | ||
75 | Float_t fGasGain; // Gas gain | |
76 | Float_t fNoise; // Electronics noise | |
77 | Float_t fChipGain; // Electronics gain | |
78 | Float_t fADCoutRange; // ADC output range (number of channels) | |
79 | Float_t fADCinRange; // ADC input range (input charge) | |
80 | Int_t fADCthreshold; // ADC threshold in ADC channel | |
81 | Int_t fDiffusionOn; // Switch for the diffusion | |
82 | Float_t fDiffusionT; // Diffusion in transverse direction | |
83 | Float_t fDiffusionL; // Diffusion in longitudinal direction | |
84 | Int_t fElAttachOn; // Switch for the electron attachment | |
85 | Float_t fElAttachProp; // Propability for electron attachment (for 1m) | |
86 | Int_t fExBOn; // Switch for the ExB effects | |
87 | Float_t fLorentzAngle; // Lorentz angle | |
88 | Float_t fLorentzFactor; // Factor due to Lorentz force | |
89 | TF1 *fPRF; // Pad response function | |
f7336fa3 | 90 | |
91 | private: | |
92 | ||
93 | virtual Int_t Diffusion(Float_t driftlength, Float_t *xyz); | |
94 | virtual Int_t ExB(Float_t driftlength, Float_t *xyz); | |
f7336fa3 | 95 | |
6f1e466d | 96 | ClassDef(AliTRDdigitizer,1) // Produces TRD-Digits |
f7336fa3 | 97 | |
98 | }; | |
99 | ||
100 | #endif |