]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/AliITSresponseSSD.h
Bug fix, thanks to Ludovic.
[u/mrichter/AliRoot.git] / ITS / AliITSresponseSSD.h
index 2e6a232e942810e51960866161b1d50687cbdae5..0d442ce2fcd39e0f2c7d360c336fbdadd4be46ca 100644 (file)
@@ -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
 };