b0f5e3fc |
1 | #ifndef ALIITSRESPONSESDD_H |
2 | #define ALIITSRESPONSESDD_H |
3 | |
4 | #include "AliITSresponse.h" |
5 | |
6 | // response for SDD |
7 | |
8 | class AliITSresponseSDD : |
9 | public AliITSresponse { |
10 | public: |
11 | // |
12 | // Configuration methods |
13 | // |
14 | |
15 | AliITSresponseSDD(); |
16 | virtual ~AliITSresponseSDD() { |
17 | // destructor |
18 | } |
19 | AliITSresponseSDD(const AliITSresponseSDD &source); // copy constructor |
20 | AliITSresponseSDD& operator=(const AliITSresponseSDD &source); // ass. op. |
21 | |
22 | virtual void SetMaxAdc(Float_t p1=1023) { |
23 | // Adc-count saturation value |
24 | fMaxAdc=p1; |
25 | } |
26 | virtual Float_t MaxAdc() { |
27 | // Get maximum Adc-count value |
28 | return fMaxAdc; |
29 | } |
30 | |
31 | virtual void SetMagicValue(Float_t p1=450.) { |
32 | // Set maximum Adc-magic value |
33 | fTopValue=p1; |
34 | } |
35 | virtual Float_t MagicValue() { |
36 | // Get maximum Adc-magic value |
37 | return fTopValue; |
38 | } |
39 | |
40 | virtual void SetDiffCoeff(Float_t p1=5.) { |
41 | // Diffusion coefficient |
42 | fDiffCoeff=p1; |
43 | } |
44 | virtual Float_t DiffCoeff() { |
45 | // Get diffusion coefficient |
46 | return fDiffCoeff; |
47 | } |
48 | |
49 | virtual void SetQref(Float_t p1=120.) { |
50 | // Coulomb repulsion |
51 | fQref=p1; |
52 | } |
53 | virtual Float_t Qref() { |
54 | // qref |
55 | return fQref; |
56 | } |
57 | |
58 | virtual void SetDriftSpeed(Float_t p1=7.5) { |
59 | // Drift velocity |
60 | fDriftSpeed=p1; |
61 | } |
62 | virtual Float_t DriftSpeed() { |
63 | // drift speed |
64 | return fDriftSpeed; |
65 | } |
66 | |
67 | virtual void SetTemperature(Float_t p1=23.) { |
68 | // Temperature |
69 | fTemperature=p1; |
70 | } |
71 | virtual Float_t Temperature() { |
72 | // Get temperature |
73 | return fTemperature; |
74 | } |
75 | |
76 | virtual void SetDataType(char *data="simulated") { |
77 | // Type of data - real or simulated |
78 | fDataType=data; |
79 | } |
be33dccb |
80 | virtual char *DataType() { |
b0f5e3fc |
81 | // Get data type |
be33dccb |
82 | return fDataType; |
b0f5e3fc |
83 | } |
84 | |
85 | virtual void SetParamOptions(Option_t *opt1="same",Option_t *opt2="same"){ |
86 | // Parameters: "same" or read from "file" |
87 | fParam1=opt1; fParam2=opt2; |
88 | } |
89 | virtual void ParamOptions(Option_t *&opt1,Option_t *&opt2) { |
90 | // options |
91 | opt1=fParam1; opt2=fParam2; |
92 | } |
93 | |
94 | virtual void SetNoiseParam(Float_t n=3., Float_t b=20.){ |
95 | // Noise and baseline |
96 | fNoise=n; fBaseline=b; |
97 | } |
98 | virtual void GetNoiseParam(Float_t &n, Float_t &b) { |
99 | // get noise param |
100 | n=fNoise; b=fBaseline; |
101 | } |
102 | |
103 | virtual void SetZeroSupp(Option_t *opt="2D") { |
104 | // Zero-suppression option - could be 1D, 2D or non-ZS |
105 | fOption=opt; |
106 | } |
107 | virtual Option_t *ZeroSuppOption() { |
108 | // Get zero-suppression option |
109 | return fOption; |
110 | } |
111 | virtual void SetMinVal(Int_t mv=4) { |
112 | // Min value used in 2D - could be used as a threshold setting |
113 | fMinVal = mv; |
114 | } |
115 | virtual Int_t MinVal() { |
116 | // min val |
117 | return fMinVal; |
118 | } |
119 | |
120 | virtual void SetFilenames(char *f1=0,char *f2=0, char *f3=0) { |
121 | // Set filenames - input, output, parameters .... |
122 | fFileName1=f1; fFileName2=f2; fFileName3=f3; |
123 | } |
be33dccb |
124 | virtual void Filenames(const char*input,const char*baseline,const char*param) { |
b0f5e3fc |
125 | // Filenames |
126 | input=fFileName1; baseline=fFileName2; param=fFileName3; |
127 | } |
128 | |
129 | |
130 | virtual void SetOutputOption(Bool_t write=kFALSE) { |
131 | // set output option |
132 | fWrite = write; |
133 | } |
134 | Bool_t OutputOption() { |
135 | // output option |
136 | return fWrite; |
137 | } |
138 | // |
139 | // Compression parameters |
140 | virtual void SetCompressParam(Int_t cp[8]); |
141 | void GiveCompressParam(Int_t *x); |
142 | |
143 | // |
144 | // Detector type response methods |
145 | virtual void SetNSigmaIntegration(Float_t p1) { |
146 | // Set number of sigmas over which cluster disintegration is performed |
147 | } |
148 | virtual Float_t NSigmaIntegration() { |
149 | // Get number of sigmas over which cluster disintegration is performed |
150 | return 0.; |
151 | } |
152 | virtual void SetSigmaSpread(Float_t p1, Float_t p2) { |
153 | // Set sigmas of the charge spread function |
154 | } |
155 | virtual void SigmaSpread(Float_t &s1, Float_t &s2) { |
156 | // Get sigmas for the charge spread |
157 | } |
158 | |
159 | virtual Float_t IntPH(Float_t eloss) { |
160 | // Pulse height from scored quantity (eloss) |
161 | return 0.; |
162 | } |
163 | virtual Float_t IntXZ(AliITSsegmentation *) { |
164 | // Charge disintegration |
165 | return 0.; |
166 | } |
167 | |
168 | |
169 | protected: |
170 | |
171 | Int_t fCPar[8]; // Hardware compression parameters |
172 | //Int_t fNDetPar; // Number of detector param |
173 | //Float_t fDetPar[fNDetPar]; |
174 | |
175 | Float_t fNoise; // Noise |
176 | Float_t fBaseline; // Baseline |
177 | Float_t fTopValue; // still unclear to me |
178 | Float_t fTemperature; // Temperature |
179 | Float_t fDriftSpeed; // Drift velocity |
180 | |
181 | Float_t fMaxAdc; // Adc saturation value |
182 | Float_t fDiffCoeff; // Diffusion Coefficient |
183 | Float_t fQref; // Coulomb repulsion |
184 | |
185 | Int_t fZeroSuppFlag; // Zero-suppression flag |
186 | Int_t fMinVal; // Min value used in 2D zero-suppression algo |
187 | |
188 | Bool_t fWrite; // Write option for the compression algorithms |
189 | Option_t *fOption; // Zero-suppresion option (1D, 2D or none) |
190 | Option_t *fParam1; // Read baselines from file option |
191 | Option_t *fParam2; // Read compression algo thresholds from file |
192 | |
be33dccb |
193 | char* fDataType; // input keys : run, module # |
194 | char* fFileName1; // input keys : run, module # |
195 | char* fFileName2; // baseline & noise val or output coded // signal or monitored bgr. |
196 | char* fFileName3; // param values or output coded signal |
b0f5e3fc |
197 | |
198 | ClassDef(AliITSresponseSDD,1) // SDD response |
199 | |
200 | }; |
201 | #endif |
202 | |
203 | |
204 | |
205 | |
206 | |
207 | |
208 | |