b0f5e3fc |
1 | #ifndef ALIITSRESPONSE_H |
2 | #define ALIITSRESPONSE_H |
3 | |
4 | |
5 | #include <TObject.h> |
6 | #include <TF1.h> |
7 | #include "AliITSsegmentation.h" |
8 | |
9 | class AliITSgeom; |
10 | |
11 | //---------------------------------------------- |
12 | // |
13 | // ITS response virtual base class |
14 | // |
15 | class AliITSresponse : |
16 | public TObject { |
17 | public: |
18 | // |
19 | // Configuration methods |
20 | // |
21 | |
22 | // Set maximum Adc-count value |
23 | virtual void SetMaxAdc(Float_t p1) {} |
24 | // Get maximum Adc-count value |
25 | virtual Float_t MaxAdc() {return 0.;} |
26 | |
27 | // Set maximum Adc-magic value |
28 | virtual void SetMagicValue(Float_t p1) {} |
29 | // Get maximum Adc-magic value |
30 | virtual Float_t MagicValue() {return 0.0;} |
31 | |
32 | // Diffusion coefficient |
33 | virtual void SetDiffCoeff(Float_t) =0; |
34 | // Get diffusion coefficient |
35 | virtual Float_t DiffCoeff() =0; |
36 | virtual Float_t Qref() {return 0.;} |
37 | |
38 | // Temperature |
39 | virtual void SetTemperature(Float_t) {} |
40 | // Get temperature |
41 | virtual Float_t Temperature() {return 0.;} |
42 | // Type of data - real or simulated |
43 | virtual void SetDataType(char *data) =0; |
44 | // Get data type |
be33dccb |
45 | virtual char *DataType() =0; |
b0f5e3fc |
46 | |
47 | |
48 | |
49 | // parameters: "same" or read from "file" or "SetInvalid" or ... |
50 | virtual void SetParamOptions(Option_t *opt1, Option_t *opt2) {} |
51 | virtual void SetNoiseParam(Float_t, Float_t) {} |
52 | // gain, coupling ... |
53 | // Number of parameters to be set |
54 | virtual void SetNDetParam(Int_t) {} |
55 | virtual void SetDetParam(Float_t *) {} |
56 | |
57 | // Parameters options |
58 | virtual void ParamOptions(Option_t *&, Option_t *&) {} |
59 | virtual Int_t NDetParam() {return 0;} |
60 | virtual void GetDetParam(Float_t *) {} |
61 | virtual void GetNoiseParam(Float_t&, Float_t&) {} |
62 | |
63 | // Zero-suppression option - could be 1D, 2D or non-ZS |
64 | virtual void SetZeroSupp(Option_t *opt) {} |
65 | // Get zero-suppression option |
66 | virtual Option_t *ZeroSuppOption() {return "";} |
67 | // Set thresholds |
68 | virtual void SetThresholds(Float_t, Float_t) {} |
69 | virtual void Thresholds(Float_t &, Float_t &) {} |
70 | // Set min val |
71 | virtual void SetMinVal(Int_t) {}; |
72 | virtual Int_t MinVal() {return 0;}; |
73 | |
74 | // Set filenames |
75 | virtual void SetFilenames(char *,char *,char *) {} |
76 | // Filenames |
be33dccb |
77 | virtual void Filenames(const char *, const char *,const char *) {} |
b0f5e3fc |
78 | |
79 | |
80 | virtual Float_t DriftSpeed() {return 0.;} |
81 | virtual Bool_t OutputOption() {return kFALSE;} |
82 | virtual void GiveCompressParam(Int_t *x) {} |
83 | |
84 | // |
85 | // Detector type response methods |
86 | // Set number of sigmas over which cluster disintegration is performed |
87 | virtual void SetNSigmaIntegration(Float_t p1) {} |
88 | // Get number of sigmas over which cluster disintegration is performed |
89 | virtual Float_t NSigmaIntegration() {return 0.;} |
90 | // Set sigmas of the charge spread function |
91 | virtual void SetSigmaSpread(Float_t p1, Float_t p2) {} |
92 | // Get sigmas for the charge spread |
93 | virtual void SigmaSpread(Float_t &s1, Float_t &s2) {} |
94 | |
95 | |
96 | // Pulse height from scored quantity (eloss) |
97 | virtual Float_t IntPH(Float_t eloss) {return 0.;} |
98 | // Charge disintegration |
99 | virtual Float_t IntXZ(AliITSsegmentation *) {return 0.;} |
100 | |
101 | ClassDef(AliITSresponse,1) // Detector type response virtual base class |
102 | }; |
103 | #endif |
104 | |
105 | |
106 | |
107 | |
108 | |
109 | |
110 | |