X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=ITS%2FAliITSresponseSSD.h;h=0d442ce2fcd39e0f2c7d360c336fbdadd4be46ca;hb=7e932df04cd67927e0efc8874df1ca8f4dbda200;hp=2e6a232e942810e51960866161b1d50687cbdae5;hpb=bff7ba712550b1d37d594847844a361c03306d77;p=u%2Fmrichter%2FAliRoot.git diff --git a/ITS/AliITSresponseSSD.h b/ITS/AliITSresponseSSD.h index 2e6a232e942..0d442ce2fcd 100644 --- a/ITS/AliITSresponseSSD.h +++ b/ITS/AliITSresponseSSD.h @@ -3,7 +3,6 @@ #include "AliITSresponse.h" -class TString; // response for SSD @@ -14,102 +13,125 @@ class AliITSresponseSSD : public AliITSresponse { 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 };