#include "AliITSresponse.h"
-class TString;
// response for SSD
AliITSresponseSSD();
AliITSresponseSSD(const char *dataType);
virtual ~AliITSresponseSSD();
- AliITSresponseSSD(const AliITSresponseSSD &source); // copy constructor
- AliITSresponseSSD& operator=(const AliITSresponseSSD &source); // ass. op.
- virtual void SetDiffCoeff(Float_t p1=0.,Float_t dummy=0.) {
+// Implementation of virtual member functions declared in AliITSresponse
+ virtual void SetDiffCoeff(Double_t p1,Double_t /* dummy */) {
// Diffusion coefficient
- fDiffCoeff=p1;dummy = 0.0;
- }
- virtual void DiffCoeff(Float_t &diffc,Float_t &dummy) {
+ fDiffCoeff=p1; }
+ virtual void DiffCoeff(Double_t &diffc,Double_t & /* dummy */) const {
// Get diffusion coefficient
- diffc= fDiffCoeff;dummy = 0.0;
+ diffc= fDiffCoeff;
}
- virtual void SetNoiseParam(Float_t np=420., Float_t nn=625.) {
+ virtual void SetNoiseParam(Double_t np, Double_t nn) {
// set noise par
fNoiseP=np; fNoiseN=nn;
}
- virtual void GetNoiseParam(Float_t &np, Float_t &nn) {
+ virtual void GetNoiseParam(Double_t &np, Double_t &nn) const {
// get noise par
np=fNoiseP; nn=fNoiseN;
}
- virtual void SetParamOptions(const char *opt1="", const char *opt2="") {
+ virtual void SetParamOptions(const char *opt1, const char *opt2) {
// parameters: "SetInvalid" to simulate the invalid strips
fOption1=opt1; fOption2=opt2;
}
- virtual void ParamOptions(char *opt1,char *opt2) {
+ virtual void ParamOptions(char *opt1,char *opt2) const {
// options
strcpy(opt1,fOption1.Data()); strcpy(opt2,fOption2.Data());
}
// Number of parameters to be set
// 4 couplings, mean number of invalid strips, RMS of invalid strips
- virtual void SetNDetParam(Int_t npar=6) {
+ virtual void SetNDetParam(Int_t npar) {
// set number of param
fNPar=npar;
}
- virtual void SetDetParam(Float_t *par);
+ virtual void SetDetParam(Double_t *par);
// Parameters options
virtual Int_t NDetParam() const {
// number of param
return fNPar;
}
- virtual void GetDetParam(Float_t *dpar);
+ virtual void GetDetParam(Double_t *dpar) const;
- virtual void SetDataType(const char *data="simulated") {
- // Type of data - real or simulated
- fDataType=data;
- }
- virtual const char *DataType() const {
- // Get data type
- return fDataType.Data();
- }
-
- virtual void SetSigmaSpread(Float_t p1=3., Float_t p2=2.) {
+ virtual void SetSigmaSpread(Double_t p1, Double_t p2) {
// Set sigmas of the charge spread function: Pside-Nside
// square of (microns)
fSigmaP=p1; fSigmaN=p2;
}
- virtual void SigmaSpread(Float_t &sP, Float_t &sN) {
+ virtual void SigmaSpread(Double_t &sP, Double_t &sN) const {
// Get sigmas for the charge spread
sP=fSigmaP; sN=fSigmaN;
}
- virtual void SetADCpereV(Float_t a=50./30000.0){ // Sets electron-hole
- // pairs to ADC value conversion factor are rather arbitrary
- // (need tuning) minimum ionizing particle--> ~30000 pairs--> ADC
- // channel 50
- fADCpereV = a;
- }
- virtual Double_t DEvToADC(Double_t eV){ // Converts electron-hole pairs to
- // ADC value conversion factor are rather arbitrary (need tuning)
- // minimum ionizing particle--> ~30000 pairs--> ADC channel 50
- return eV*fADCpereV;
- }
- virtual Int_t IEvToADC(Double_t eV){ // Converts electron-hole pairs to
+
+//Declaration of member functions peculiar to this class
+
+// Sets electron-hole pairs to ADC value conversion factor
+// are rather arbitrary (need tuning)
+// minimum ionizing particle--> ~30000 pairs--> ADC channel 50
+ void SetADCpereV(Double_t a=50./30000.0){fADCpereV = a;}
+// Converts electron-hole pairs to
+// ADC value conversion factor are rather arbitrary (need tuning)
+// minimum ionizing particle--> ~30000 pairs--> ADC channel 50
+ Double_t DEvToADC(Double_t eV){return eV*fADCpereV;}
+ Int_t IEvToADC(Double_t eV){ // Converts electron-hole pairs to
// ADC value
- return ((Int_t) DEvToADC(eV));
- }
+ return ((Int_t) DEvToADC(eV)); }
+
+ //abstract methods in AliITSresponse not implemented in this class
+ virtual void SetDriftSpeed(Double_t /* p1 */)
+ {NotImplemented("SetDriftSpeed");}
+ virtual Double_t DriftSpeed() const
+ {NotImplemented("DrifSpeed"); return 0.;}
+ virtual void GiveCompressParam(Int_t *) const
+ {NotImplemented("GiveCompressParam");}
+ virtual Double_t ChargeLoss() const
+ {NotImplemented("ChargeLoss"); return 0.;}
+ virtual void SetThresholds(Double_t /* a */, Double_t /* b */)
+ {NotImplemented("SetThresholds");}
+ virtual void Thresholds(Double_t & /* a */, Double_t & /* b */) const
+ {NotImplemented("Thresholds");}
+ virtual void SetZeroSupp(const char*)
+ {NotImplemented("SetZeroSupp");}
+ virtual const char *ZeroSuppOption() const
+ {NotImplemented("ZeroSuppression"); return "";}
+ virtual void SetNSigmaIntegration(Double_t)
+ {NotImplemented("SetNSigmaIntegration");}
+ virtual Double_t NSigmaIntegration() const
+ {NotImplemented("NSigmaIntegration"); return 0.;}
+ virtual void SetNLookUp(Int_t)
+ {NotImplemented("SetNLookUp");}
protected:
+ static const Double_t fgkDiffCoeffDefault; //default for fDiffCoeff
+ static const TString fgkOption1Default; // default for fOption1
+ static const TString fgkOption2Default; // default for fOption2
+ static const Double_t fgkNoiseNDefault; // default for fNoiseN
+ static const Double_t fgkNoisePDefault; // default for fNoiseP
+ static const Int_t fgkNParDefault; // default for fNPar
+ static const Double_t fgkSigmaPDefault; //default for fSigmaP
+ static const Double_t fgkSigmaNDefault; //default for fSigmaP
Int_t fNPar; // Number of detector param
- Float_t *fDetPar; //[fNPar] Array of parameters
+ Double_t *fDetPar; //[fNPar] Array of parameters
- Float_t fNoiseP; // Noise on Pside
- Float_t fNoiseN; // Noise on Nside
+ Double_t fNoiseP; // Noise on Pside
+ Double_t fNoiseN; // Noise on Nside
- Float_t fSigmaP; // Sigma charge spread on Pside
- Float_t fSigmaN; // Sigma charge spread on Nside
- Float_t fDiffCoeff; // Diffusion Coefficient
+ Double_t fSigmaP; // Sigma charge spread on Pside
+ Double_t fSigmaN; // Sigma charge spread on Nside
+ Double_t fDiffCoeff; // Diffusion Coefficient
- Float_t fADCpereV; // Constant to convert eV to ADC.
+ Double_t fADCpereV; // Constant to convert eV to ADC.
TString fOption1; // Simulate invalid strips option
TString fOption2; // Not used for the moment
- TString fDataType; // Type of data - real or simulated
+
+ private:
+ AliITSresponseSSD(const AliITSresponseSSD &source); // copy constructor
+ AliITSresponseSSD& operator=(const AliITSresponseSSD &source); // ass. op.
ClassDef(AliITSresponseSSD,1) //Response class for SSD
};