Update class version number
[u/mrichter/AliRoot.git] / ITS / AliITSresponseSSD.h
CommitLineData
b0f5e3fc 1#ifndef ALIITSRESPONSESSD_H
2#define ALIITSRESPONSESSD_H
3
4#include "AliITSresponse.h"
5
1ca7869b 6
b0f5e3fc 7// response for SSD
8
9//-----------------------------
6a407881 10class AliITSresponseSSD : public AliITSresponse {
11
12 public:
13 AliITSresponseSSD();
9de0700b 14 AliITSresponseSSD(const char *dataType);
6a407881 15 virtual ~AliITSresponseSSD();
6a407881 16
703a4e51 17// Implementation of virtual member functions declared in AliITSresponse
aacedc3e 18 virtual void SetDiffCoeff(Double_t p1,Double_t /* dummy */) {
6a407881 19 // Diffusion coefficient
703a4e51 20 fDiffCoeff=p1; }
aacedc3e 21 virtual void DiffCoeff(Double_t &diffc,Double_t & /* dummy */) const {
6a407881 22 // Get diffusion coefficient
703a4e51 23 diffc= fDiffCoeff;
6a407881 24 }
25
aacedc3e 26 virtual void SetNoiseParam(Double_t np, Double_t nn) {
6a407881 27 // set noise par
28 fNoiseP=np; fNoiseN=nn;
29 }
aacedc3e 30 virtual void GetNoiseParam(Double_t &np, Double_t &nn) const {
6a407881 31 // get noise par
32 np=fNoiseP; nn=fNoiseN;
33 }
34
703a4e51 35 virtual void SetParamOptions(const char *opt1, const char *opt2) {
6a407881 36 // parameters: "SetInvalid" to simulate the invalid strips
37 fOption1=opt1; fOption2=opt2;
38 }
703a4e51 39 virtual void ParamOptions(char *opt1,char *opt2) const {
6a407881 40 // options
41 strcpy(opt1,fOption1.Data()); strcpy(opt2,fOption2.Data());
42 }
43
44 // Number of parameters to be set
45 // 4 couplings, mean number of invalid strips, RMS of invalid strips
703a4e51 46 virtual void SetNDetParam(Int_t npar) {
6a407881 47 // set number of param
48 fNPar=npar;
49 }
50
aacedc3e 51 virtual void SetDetParam(Double_t *par);
6a407881 52
53 // Parameters options
bff7ba71 54 virtual Int_t NDetParam() const {
6a407881 55 // number of param
56 return fNPar;
57 }
aacedc3e 58 virtual void GetDetParam(Double_t *dpar) const;
6a407881 59
aacedc3e 60 virtual void SetSigmaSpread(Double_t p1, Double_t p2) {
6a407881 61 // Set sigmas of the charge spread function: Pside-Nside
62 // square of (microns)
63 fSigmaP=p1; fSigmaN=p2;
64 }
aacedc3e 65 virtual void SigmaSpread(Double_t &sP, Double_t &sN) const {
6a407881 66 // Get sigmas for the charge spread
67 sP=fSigmaP; sN=fSigmaN;
68 }
703a4e51 69
70//Declaration of member functions peculiar to this class
71
72// Sets electron-hole pairs to ADC value conversion factor
73// are rather arbitrary (need tuning)
74// minimum ionizing particle--> ~30000 pairs--> ADC channel 50
aacedc3e 75 void SetADCpereV(Double_t a=50./30000.0){fADCpereV = a;}
703a4e51 76// Converts electron-hole pairs to
77// ADC value conversion factor are rather arbitrary (need tuning)
78// minimum ionizing particle--> ~30000 pairs--> ADC channel 50
79 Double_t DEvToADC(Double_t eV){return eV*fADCpereV;}
80 Int_t IEvToADC(Double_t eV){ // Converts electron-hole pairs to
2aea926d 81 // ADC value
703a4e51 82 return ((Int_t) DEvToADC(eV)); }
83
84 //abstract methods in AliITSresponse not implemented in this class
aacedc3e 85 virtual void SetDriftSpeed(Double_t /* p1 */)
703a4e51 86 {NotImplemented("SetDriftSpeed");}
aacedc3e 87 virtual Double_t DriftSpeed() const
703a4e51 88 {NotImplemented("DrifSpeed"); return 0.;}
703a4e51 89 virtual void GiveCompressParam(Int_t *) const
90 {NotImplemented("GiveCompressParam");}
aacedc3e 91 virtual Double_t ChargeLoss() const
703a4e51 92 {NotImplemented("ChargeLoss"); return 0.;}
aacedc3e 93 virtual void SetThresholds(Double_t /* a */, Double_t /* b */)
703a4e51 94 {NotImplemented("SetThresholds");}
aacedc3e 95 virtual void Thresholds(Double_t & /* a */, Double_t & /* b */) const
703a4e51 96 {NotImplemented("Thresholds");}
97 virtual void SetZeroSupp(const char*)
98 {NotImplemented("SetZeroSupp");}
99 virtual const char *ZeroSuppOption() const
100 {NotImplemented("ZeroSuppression"); return "";}
aacedc3e 101 virtual void SetNSigmaIntegration(Double_t)
703a4e51 102 {NotImplemented("SetNSigmaIntegration");}
aacedc3e 103 virtual Double_t NSigmaIntegration() const
703a4e51 104 {NotImplemented("NSigmaIntegration"); return 0.;}
105 virtual void SetNLookUp(Int_t)
106 {NotImplemented("SetNLookUp");}
b0f5e3fc 107
6a407881 108 protected:
aacedc3e 109 static const Double_t fgkDiffCoeffDefault; //default for fDiffCoeff
703a4e51 110 static const TString fgkOption1Default; // default for fOption1
111 static const TString fgkOption2Default; // default for fOption2
aacedc3e 112 static const Double_t fgkNoiseNDefault; // default for fNoiseN
113 static const Double_t fgkNoisePDefault; // default for fNoiseP
703a4e51 114 static const Int_t fgkNParDefault; // default for fNPar
aacedc3e 115 static const Double_t fgkSigmaPDefault; //default for fSigmaP
116 static const Double_t fgkSigmaNDefault; //default for fSigmaP
6a407881 117 Int_t fNPar; // Number of detector param
aacedc3e 118 Double_t *fDetPar; //[fNPar] Array of parameters
6a407881 119
aacedc3e 120 Double_t fNoiseP; // Noise on Pside
121 Double_t fNoiseN; // Noise on Nside
b0f5e3fc 122
aacedc3e 123 Double_t fSigmaP; // Sigma charge spread on Pside
124 Double_t fSigmaN; // Sigma charge spread on Nside
125 Double_t fDiffCoeff; // Diffusion Coefficient
b0f5e3fc 126
aacedc3e 127 Double_t fADCpereV; // Constant to convert eV to ADC.
b0f5e3fc 128
6a407881 129 TString fOption1; // Simulate invalid strips option
130 TString fOption2; // Not used for the moment
703a4e51 131
132 private:
133 AliITSresponseSSD(const AliITSresponseSSD &source); // copy constructor
134 AliITSresponseSSD& operator=(const AliITSresponseSSD &source); // ass. op.
b0f5e3fc 135
73967338 136 ClassDef(AliITSresponseSSD,2) //Response class for SSD
6a407881 137};
b0f5e3fc 138#endif