1 #ifndef ALIITSRESPONSESSD_H
2 #define ALIITSRESPONSESSD_H
4 #include "AliITSresponse.h"
9 //-----------------------------
10 class AliITSresponseSSD : public AliITSresponse {
14 AliITSresponseSSD(const char *dataType);
15 virtual ~AliITSresponseSSD();
17 // Implementation of virtual member functions declared in AliITSresponse
18 virtual void SetDiffCoeff(Float_t p1,Float_t /* dummy */) {
19 // Diffusion coefficient
21 virtual void DiffCoeff(Float_t &diffc,Float_t & /* dummy */) const {
22 // Get diffusion coefficient
26 virtual void SetNoiseParam(Float_t np, Float_t nn) {
28 fNoiseP=np; fNoiseN=nn;
30 virtual void GetNoiseParam(Float_t &np, Float_t &nn) const {
32 np=fNoiseP; nn=fNoiseN;
35 virtual void SetParamOptions(const char *opt1, const char *opt2) {
36 // parameters: "SetInvalid" to simulate the invalid strips
37 fOption1=opt1; fOption2=opt2;
39 virtual void ParamOptions(char *opt1,char *opt2) const {
41 strcpy(opt1,fOption1.Data()); strcpy(opt2,fOption2.Data());
44 // Number of parameters to be set
45 // 4 couplings, mean number of invalid strips, RMS of invalid strips
46 virtual void SetNDetParam(Int_t npar) {
47 // set number of param
51 virtual void SetDetParam(Float_t *par);
54 virtual Int_t NDetParam() const {
58 virtual void GetDetParam(Float_t *dpar) const;
60 virtual void SetSigmaSpread(Float_t p1, Float_t p2) {
61 // Set sigmas of the charge spread function: Pside-Nside
62 // square of (microns)
63 fSigmaP=p1; fSigmaN=p2;
65 virtual void SigmaSpread(Float_t &sP, Float_t &sN) const {
66 // Get sigmas for the charge spread
67 sP=fSigmaP; sN=fSigmaN;
70 //Declaration of member functions peculiar to this class
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
75 void SetADCpereV(Float_t a=50./30000.0){fADCpereV = a;}
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
82 return ((Int_t) DEvToADC(eV)); }
84 //abstract methods in AliITSresponse not implemented in this class
85 virtual void SetDriftSpeed(Float_t /* p1 */)
86 {NotImplemented("SetDriftSpeed");}
87 virtual Float_t DriftSpeed() const
88 {NotImplemented("DrifSpeed"); return 0.;}
89 virtual void SetElectronics(Int_t /* i */)
90 {NotImplemented("SetElectronics");}
91 virtual Int_t Electronics() const {NotImplemented("Electronics"); return 0;}
92 virtual void GiveCompressParam(Int_t *) const
93 {NotImplemented("GiveCompressParam");}
94 virtual void SetMaxAdc(Float_t /* adc */) {NotImplemented("SetMaxAdc");}
95 virtual Float_t MaxAdc() const {NotImplemented("MaxAdc"); return 0.;}
96 virtual void SetDynamicRange(Float_t /*dr */)
97 {NotImplemented("SetDynamicRange");}
98 virtual Float_t DynamicRange() const
99 {NotImplemented("DynamicRange"); return 0.;}
100 virtual void SetChargeLoss(Float_t /* cl */)
101 {NotImplemented("SetChargeLoss"); }
102 virtual Float_t ChargeLoss() const
103 {NotImplemented("ChargeLoss"); return 0.;}
104 virtual void SetThresholds(Float_t /* a */, Float_t /* b */)
105 {NotImplemented("SetThresholds");}
106 virtual void Thresholds(Float_t & /* a */, Float_t & /* b */) const
107 {NotImplemented("Thresholds");}
108 virtual void SetZeroSupp(const char*)
109 {NotImplemented("SetZeroSupp");}
110 virtual const char *ZeroSuppOption() const
111 {NotImplemented("ZeroSuppression"); return "";}
112 virtual void SetNSigmaIntegration(Float_t)
113 {NotImplemented("SetNSigmaIntegration");}
114 virtual Float_t NSigmaIntegration() const
115 {NotImplemented("NSigmaIntegration"); return 0.;}
116 virtual void SetNLookUp(Int_t)
117 {NotImplemented("SetNLookUp");}
120 static const Float_t fgkDiffCoeffDefault; //default for fDiffCoeff
121 static const TString fgkOption1Default; // default for fOption1
122 static const TString fgkOption2Default; // default for fOption2
123 static const Float_t fgkNoiseNDefault; // default for fNoiseN
124 static const Float_t fgkNoisePDefault; // default for fNoiseP
125 static const Int_t fgkNParDefault; // default for fNPar
126 static const Float_t fgkSigmaPDefault; //default for fSigmaP
127 static const Float_t fgkSigmaNDefault; //default for fSigmaP
128 Int_t fNPar; // Number of detector param
129 Float_t *fDetPar; //[fNPar] Array of parameters
131 Float_t fNoiseP; // Noise on Pside
132 Float_t fNoiseN; // Noise on Nside
134 Float_t fSigmaP; // Sigma charge spread on Pside
135 Float_t fSigmaN; // Sigma charge spread on Nside
136 Float_t fDiffCoeff; // Diffusion Coefficient
138 Float_t fADCpereV; // Constant to convert eV to ADC.
140 TString fOption1; // Simulate invalid strips option
141 TString fOption2; // Not used for the moment
144 AliITSresponseSSD(const AliITSresponseSSD &source); // copy constructor
145 AliITSresponseSSD& operator=(const AliITSresponseSSD &source); // ass. op.
147 ClassDef(AliITSresponseSSD,1) //Response class for SSD