]>
Commit | Line | Data |
---|---|---|
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 | 10 | class 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 |