]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ITS/AliITSresponseSDD.h
Release version of ITS code
[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=1024) {
32     // Set maximum Adc-top value
33     fTopValue=p1;
34     //it was 96.95
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    SetZeroSupp (const char *opt="2D") {
98     // Zero-suppression option - could be 1D, 2D or non-ZS 
99     fOption=opt;
100   }
101   virtual const char *ZeroSuppOption() const {
102     // Get zero-suppression option
103     return fOption.Data();
104   }
105   virtual  void  SetMinVal(Int_t mv=4) {
106     // Min value used in 2D - could be used as a threshold setting
107     fMinVal = mv;
108   }
109   virtual Int_t  MinVal() {
110     // min val
111     return fMinVal;
112   }
113   
114   virtual void   SetFilenames(const char *f1="",const char *f2="",const char *f3="") {
115     // Set filenames - input, output, parameters ....
116     fFileName1=f1; fFileName2=f2; fFileName3=f3;
117   }
118   virtual void   Filenames(char *input,char *baseline,char *param) {
119     // Filenames
120    strcpy(input,fFileName1.Data());  strcpy(baseline,fFileName2.Data());  
121    strcpy(param,fFileName3.Data());
122   }     
123   
124   
125   virtual  void  SetOutputOption(Bool_t write=kFALSE) {
126     // set output option
127     fWrite = write;
128   }
129   Bool_t OutputOption()  {
130     // output option
131     return fWrite;
132   }
133   // 
134   // Compression parameters
135   virtual  void  SetCompressParam(Int_t cp[8]); 
136   void  GiveCompressParam(Int_t *x);
137   
138   //  
139   // Detector type response methods
140   virtual void    SetNSigmaIntegration(Float_t p1=4.) {
141     // Set number of sigmas over which cluster disintegration is performed
142     fNsigmas=p1;
143   }
144   virtual Float_t NSigmaIntegration() {
145     // Get number of sigmas over which cluster disintegration is performed
146     return fNsigmas;
147   }
148   virtual void    SetSigmaSpread(Float_t p1, Float_t p2) {
149     // Set sigmas of the charge spread function
150   }
151   virtual void    SigmaSpread(Float_t &s1, Float_t &s2) {
152     // Get sigmas for the charge spread 
153   }
154   
155   virtual Float_t IntPH(Float_t eloss) {
156     // Pulse height from scored quantity (eloss)
157     return 0.;
158   }
159   virtual Float_t IntXZ(AliITSsegmentation *) {
160     // Charge disintegration 
161     return 0.;
162   }
163   
164   
165 protected:
166   
167   Int_t     fCPar[8];        // Hardware compression parameters
168   
169   Float_t   fNoise;          // Noise
170   Float_t   fBaseline;       // Baseline
171   Float_t   fTopValue;       // still unclear to me 
172   Float_t   fTemperature;    // Temperature 
173   Float_t   fDriftSpeed;     // Drift velocity
174   
175   Float_t    fMaxAdc;        // Adc saturation value
176   Float_t    fDiffCoeff;     // Diffusion Coefficient (scaling the time)
177   Float_t    fDiffCoeff1;    // Diffusion Coefficient (constant term)
178   Float_t    fNsigmas;       // Number of sigmas over which charge disintegration 
179                              // is performed 
180   
181   Int_t      fZeroSuppFlag;  // Zero-suppression flag
182   Int_t      fMinVal;        // Min value used in 2D zero-suppression algo
183   
184   Bool_t     fWrite;         // Write option for the compression algorithms
185   TString    fOption;        // Zero-suppresion option (1D, 2D or none)
186   TString    fParam1;        // Read baselines from file option
187   TString    fParam2;        // Read compression algo thresholds from file 
188   
189   TString         fDataType;         // data type - real or simulated
190   TString         fFileName1;        // input keys : run, module #
191   TString         fFileName2;        // baseline & noise val or output coded                                                 // signal or monitored bgr.
192   TString         fFileName3;        // param values or output coded signal 
193   
194   ClassDef(AliITSresponseSDD,1) // SDD response 
195     
196     };
197 #endif
198
199
200
201
202
203
204