]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ITS/AliITSCalibrationSSD.h
Calibration framework improved (E. Crescio)
[u/mrichter/AliRoot.git] / ITS / AliITSCalibrationSSD.h
1 #ifndef ALIITSCALIBRATIONSSD_H
2 #define ALIITSCALIBRATIONSSD_H
3  
4 #include "AliITSCalibration.h"
5 #include "AliITSresponseSSD.h"
6
7 //////////////////////////////////////////////
8 // Response class for SSD                   //
9 //                                          //
10 //////////////////////////////////////////////
11 class AliITSCalibrationSSD : public AliITSCalibration {
12
13  public:
14     AliITSCalibrationSSD();
15     AliITSCalibrationSSD(const char *dataType);
16     virtual ~AliITSCalibrationSSD();
17     virtual  void   SetNoiseParam(Double_t np, Double_t nn) {
18         // set noise par
19         fNoiseP=np; fNoiseN=nn;
20     }
21     virtual void    GetNoiseParam(Double_t &np, Double_t &nn) const {
22         // get noise par
23         np=fNoiseP; nn=fNoiseN;
24     }
25
26     virtual  void   SetNDetParam(Int_t npar) {
27         // set number of param
28         fNPar=npar;
29     }
30     virtual  void   SetDetParam(Double_t *par);
31
32     // Parameters options
33     virtual Int_t   NDetParam() const {
34         // number of param
35         return fNPar;
36     }
37     virtual void    GetDetParam(Double_t *dpar) const; 
38
39     virtual void    SetSigmaSpread(Double_t p1, Double_t p2) {
40         // Set sigmas of the charge spread function: Pside-Nside
41         // square of (microns)
42         fSigmaP=p1; fSigmaN=p2;
43     }
44     virtual void    SigmaSpread(Double_t &sP, Double_t &sN) const {
45         // Get sigmas for the charge spread 
46         sP=fSigmaP; sN=fSigmaN;
47     }
48
49     virtual void   SetThresholds(Double_t /* a */, Double_t /* b */)
50       {NotImplemented("SetThresholds");}
51     virtual void   Thresholds(Double_t & /* a */, Double_t & /* b */) const 
52       {NotImplemented("Thresholds");}
53   
54     virtual void SetParamOptions(const char *opt1, const char *opt2) {((AliITSresponseSSD*)fResponse)->SetParamOptions(opt1,opt2);}
55     virtual void GetParamOptions(char *opt1,char *opt2) const {((AliITSresponseSSD*)fResponse)->ParamOptions(opt1,opt2);}
56     virtual void SetADCpereV(Double_t a=50./30000.0) {((AliITSresponseSSD*)fResponse)->SetADCpereV(a);}
57     virtual Double_t GetDEvToADC(Double_t eV) const {return ((AliITSresponseSSD*)fResponse)->DEvToADC(eV);}
58     virtual Int_t IEvToADC(Double_t eV) const {return ((AliITSresponseSSD*)fResponse)->IEvToADC(eV);} 
59
60  protected:
61     static const Double_t fgkNoiseNDefault; // default for fNoiseN
62     static const Double_t fgkNoisePDefault; // default for fNoiseP
63     static const Int_t fgkNParDefault; // default for fNPar
64     static const Double_t fgkSigmaPDefault; //default for fSigmaP
65     static const Double_t fgkSigmaNDefault; //default for fSigmaP
66     Int_t   fNPar;            // Number of detector param 
67     Double_t *fDetPar;         //[fNPar] Array of parameters
68
69     Double_t fNoiseP;          // Noise on Pside
70     Double_t fNoiseN;          // Noise on Nside
71
72     Double_t fSigmaP;          // Sigma charge spread on Pside
73     Double_t fSigmaN;          // Sigma charge spread on Nside
74     
75  private:
76     AliITSCalibrationSSD(const AliITSCalibrationSSD &source); // copy constructor
77     AliITSCalibrationSSD& operator=(const AliITSCalibrationSSD &source); // ass. op.
78
79     ClassDef(AliITSCalibrationSSD,1) //Response class for SSD
80 };
81 #endif