ce1ca50a47ab3d66bb626da30b6d79fc9318368c
[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=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   }
80   virtual char  *DataType() {
81     // Get data type
82     return fDataType;
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   }
124   virtual void   Filenames(const char*input,const char*baseline,const char*param) {
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   
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 
197   
198   ClassDef(AliITSresponseSDD,1) // SDD response 
199     
200     };
201 #endif
202
203
204
205
206
207
208