]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ITS/AliITSresponseSDD.h
63a90dbc48e43f13ba6f14476402b4eae8ce4957
[u/mrichter/AliRoot.git] / ITS / AliITSresponseSDD.h
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=1024) {
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=96.95) {
32     // Set maximum Adc-top value
33     fTopValue=p1;
34     //it was 1024
35   }
36   virtual Float_t MagicValue()  {
37     // Get maximum Adc-top value
38     return fTopValue;
39   }                       
40   
41   virtual void    SetDiffCoeff(Float_t p1=2.8,Float_t p2=28.) {
42     // Diffusion coefficients
43     fDiffCoeff=p1;
44     fDiffCoeff1=p2;
45   }
46   virtual void DiffCoeff(Float_t&diff,Float_t&diff1) {
47     // Get diffusion coefficients
48     diff = fDiffCoeff;
49     diff1 = fDiffCoeff1;
50   } 
51   
52   virtual void    SetDriftSpeed(Float_t p1=7.5) {
53     // Drift velocity
54     fDriftSpeed=p1;
55   }
56   virtual Float_t DriftSpeed() {
57     // drift speed
58     return fDriftSpeed;
59   } 
60   
61   virtual void    SetTemperature(Float_t p1=23.) {
62     // Temperature
63     fTemperature=p1;
64   }
65   virtual Float_t Temperature() {
66     // Get temperature
67     return fTemperature;
68   } 
69   
70   virtual void    SetDataType(const char *data="simulated") {
71     // Type of data - real or simulated
72     fDataType=data;
73   }
74   virtual const char  *DataType() const {
75     // Get data type
76     return fDataType.Data();
77   } 
78   
79   virtual void SetParamOptions(const char *opt1="same",const char *opt2="same"){
80     // Parameters: "same" or read from "file" 
81     fParam1=opt1; fParam2=opt2;
82   }
83   virtual void   ParamOptions(char *opt1,char *opt2) {
84     // options
85     strcpy(opt1,fParam1.Data()); strcpy(opt2,fParam2.Data());
86   }
87   
88   virtual  void  SetNoiseParam(Float_t n=1.8, Float_t b=20.){
89     // Noise and baseline
90     fNoise=n; fBaseline=b;
91   }   
92   virtual  void  GetNoiseParam(Float_t &n, Float_t &b) {
93     // get noise param
94     n=fNoise; b=fBaseline;
95   }  
96
97   virtual  void  SetDo10to8(Bool_t bitcomp=kTRUE) {
98     // set the option for 10 to 8 bit compression
99     fBitComp = bitcomp;
100   }
101
102   Bool_t Do10to8() {
103     // get 10 to 8 compression option
104     return fBitComp;
105   }   
106   
107   virtual void    SetZeroSupp (const char *opt="2D") {
108     // Zero-suppression option - could be 1D, 2D or non-ZS 
109     fOption=opt;
110   }
111   virtual const char *ZeroSuppOption() const {
112     // Get zero-suppression option
113     return fOption.Data();
114   }
115   virtual  void  SetMinVal(Int_t mv=4) {
116     // Min value used in 2D - could be used as a threshold setting
117     fMinVal = mv;
118   }
119   virtual Int_t  MinVal() {
120     // min val
121     return fMinVal;
122   }
123   
124   virtual void   SetFilenames(const char *f1="",const char *f2="",const char *f3="") {
125     // Set filenames - input, output, parameters ....
126     fFileName1=f1; fFileName2=f2; fFileName3=f3;
127   }
128   virtual void   Filenames(char *input,char *baseline,char *param) {
129     // Filenames
130    strcpy(input,fFileName1.Data());  strcpy(baseline,fFileName2.Data());  
131    strcpy(param,fFileName3.Data());
132   }     
133   
134   
135   virtual  void  SetOutputOption(Bool_t write=kFALSE) {
136     // set output option
137     fWrite = write;
138   }
139   Bool_t OutputOption()  {
140     // output option
141     return fWrite;
142   }
143   // 
144   // Compression parameters
145   virtual  void  SetCompressParam(Int_t cp[8]); 
146   void  GiveCompressParam(Int_t *x);
147   
148   //  
149   // Detector type response methods
150   virtual void    SetNSigmaIntegration(Float_t p1=4.) {
151     // Set number of sigmas over which cluster disintegration is performed
152     fNsigmas=p1;
153   }
154   virtual Float_t NSigmaIntegration() {
155     // Get number of sigmas over which cluster disintegration is performed
156     return fNsigmas;
157   }
158   virtual void    SetSigmaSpread(Float_t p1, Float_t p2) {
159     // Set sigmas of the charge spread function
160   }
161   virtual void    SigmaSpread(Float_t &s1, Float_t &s2) {
162     // Get sigmas for the charge spread 
163   }
164   
165   virtual Float_t IntPH(Float_t eloss) {
166     // Pulse height from scored quantity (eloss)
167     return 0.;
168   }
169   virtual Float_t IntXZ(AliITSsegmentation *) {
170     // Charge disintegration 
171     return 0.;
172   }
173   
174   
175 protected:
176   
177   Int_t     fCPar[8];        // Hardware compression parameters
178   
179   Float_t   fNoise;          // Noise
180   Float_t   fBaseline;       // Baseline
181   Float_t   fTopValue;       // still unclear to me 
182   Float_t   fTemperature;    // Temperature 
183   Float_t   fDriftSpeed;     // Drift velocity
184   
185   Float_t    fMaxAdc;        // Adc saturation value
186   Float_t    fDiffCoeff;     // Diffusion Coefficient (scaling the time)
187   Float_t    fDiffCoeff1;    // Diffusion Coefficient (constant term)
188   Float_t    fNsigmas;       // Number of sigmas over which charge disintegration 
189                              // is performed 
190   
191   Int_t      fZeroSuppFlag;  // Zero-suppression flag
192   Int_t      fMinVal;        // Min value used in 2D zero-suppression algo
193   
194   Bool_t     fWrite;         // Write option for the compression algorithms
195   Bool_t     fBitComp;       // 10 to 8 bit compression option
196
197   TString    fOption;        // Zero-suppresion option (1D, 2D or none)
198   TString    fParam1;        // Read baselines from file option
199   TString    fParam2;        // Read compression algo thresholds from file 
200   
201   TString         fDataType;         // data type - real or simulated
202   TString         fFileName1;        // input keys : run, module #
203   TString         fFileName2;        // baseline & noise val or output coded                                                 // signal or monitored bgr.
204   TString         fFileName3;        // param values or output coded signal 
205   
206   ClassDef(AliITSresponseSDD,1) // SDD response 
207     
208     };
209 #endif
210
211
212
213
214
215
216