Problems with the HP compiler fixed
[u/mrichter/AliRoot.git] / ITS / AliITSresponseSDD.h
CommitLineData
b0f5e3fc 1#ifndef ALIITSRESPONSESDD_H
2#define ALIITSRESPONSESDD_H
3
4#include "AliITSresponse.h"
5
6// response for SDD
7
8class AliITSresponseSDD :
9 public AliITSresponse {
10public:
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
169protected:
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