]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/AliITSresponseSSD.h
- AliITSInitGeometry.cxx (updated): fgkOldSSDcone changed from kTRUE to
[u/mrichter/AliRoot.git] / ITS / AliITSresponseSSD.h
index 0d442ce2fcd39e0f2c7d360c336fbdadd4be46ca..15ee0d8ecf9440153b467e7dab021d19d6c77e13 100644 (file)
@@ -1,37 +1,21 @@
 #ifndef ALIITSRESPONSESSD_H
 #define ALIITSRESPONSESSD_H
-#include "AliITSresponse.h"
+/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
+ * See cxx source for full Copyright notice                               */
 
+#include "AliITSresponse.h"
+#include <Riostream.h>
 
-// response for SSD
+/////////////////////////////////////////////////// 
+// Response class for SSD                        //
+//                                               //
+///////////////////////////////////////////////////
 
-//-----------------------------
 class AliITSresponseSSD : public AliITSresponse {
 
  public:
     AliITSresponseSSD();
-    AliITSresponseSSD(const char *dataType);
-    virtual ~AliITSresponseSSD();
-
-// Implementation of virtual member functions declared in AliITSresponse 
-    virtual void    SetDiffCoeff(Double_t p1,Double_t /* dummy */) {
-       // Diffusion coefficient
-      fDiffCoeff=p1; }
-    virtual void    DiffCoeff(Double_t &diffc,Double_t & /* dummy */) const {
-       // Get diffusion coefficient
-       diffc= fDiffCoeff;
-    }
-
-    virtual  void   SetNoiseParam(Double_t np, Double_t nn) {
-       // set noise par
-       fNoiseP=np; fNoiseN=nn;
-    }
-    virtual void    GetNoiseParam(Double_t &np, Double_t &nn) const {
-       // get noise par
-       np=fNoiseP; nn=fNoiseN;
-    }
-
+    virtual ~AliITSresponseSSD() {;}
     virtual void    SetParamOptions(const char *opt1, const char *opt2) {
        // parameters: "SetInvalid" to simulate the invalid strips
        fOption1=opt1; fOption2=opt2;
@@ -40,99 +24,57 @@ class AliITSresponseSSD : public AliITSresponse {
        // 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) {
-       // set number of param
-       fNPar=npar;
-    }
-
-    virtual  void   SetDetParam(Double_t *par);
-
-    // Parameters options
-    virtual Int_t   NDetParam() const {
-       // number of param
-       return fNPar;
-    }
-    virtual void    GetDetParam(Double_t *dpar) const; 
-
-    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(Double_t &sP, Double_t &sN) const {
-       // Get sigmas for the charge spread 
-       sP=fSigmaP; sN=fSigmaN;
-    }
-
-//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)); }
-
- //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
+    void SetADCpereV(Double_t a=120./24888.9){fADCpereV = a;}
+    Double_t DEvToADC(Double_t eV) const {return eV*fADCpereV;}
+    Int_t IEvToADC(Double_t eV) const { // Converts electron-hole pairs to
+      return ((Int_t) DEvToADC(eV)); }
+      
+    void SetKeVperADC(Double_t a=86.4/120.){fKeVperADC = a;}
+    Double_t ADCToKeV(Double_t adc) const {return adc*fKeVperADC;}
+
+    Double_t  GetCouplingPR() const {// couplings
+      return fCouplingPR;}
+    Double_t  GetCouplingPL() const {// couplings
+      return fCouplingPL;}
+    Double_t  GetCouplingNR() const {// couplings
+      return fCouplingNR;}
+    Double_t  GetCouplingNL() const {// couplings
+      return fCouplingNL;}
+    virtual void SetCouplings(Double_t pr, Double_t pl, Double_t nr, Double_t nl) {
+      fCouplingPR=pr; fCouplingPL=pl; fCouplingNR=nr; fCouplingNL=nl; }
+
+    Int_t GetZSThreshold() const { // ZS threshold
+      return fZSThreshold; }
+    virtual void SetZSThreshold(Int_t zsth) { fZSThreshold = zsth; }
+
+protected:
+    static const Float_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 
-    Double_t *fDetPar;         //[fNPar] Array of parameters
-
-    Double_t fNoiseP;          // Noise on Pside
-    Double_t fNoiseN;          // Noise on Nside
 
-    Double_t fSigmaP;          // Sigma charge spread on Pside
-    Double_t fSigmaN;          // Sigma charge spread on Nside
-    Double_t fDiffCoeff;       // Diffusion Coefficient
+    static const Double_t fgkfCouplingPR;  // default value for couplings
+    static const Double_t fgkfCouplingPL;  // default value for couplings
+    static const Double_t fgkfCouplingNR;  // default value for couplings
+    static const Double_t fgkfCouplingNL;  // default value for couplings
 
     Double_t fADCpereV;        // Constant to convert eV to ADC.
+    Double_t fKeVperADC;       // Constant to convert ADC to keV
+
+    Double_t  fCouplingPR;  // couplings
+    Double_t  fCouplingPL;  // couplings
+    Double_t  fCouplingNR;  // couplings
+    Double_t  fCouplingNL;  // couplings   
+
+    static const Int_t fgkZSThreshold; // threshold for the zero suppresion
+    Int_t fZSThreshold; 
 
-    TString fOption1;         // Simulate invalid strips option
+     TString fOption1;         // Simulate invalid strips option
     TString fOption2;         // Not used for the moment
 
  private:
     AliITSresponseSSD(const AliITSresponseSSD &source); // copy constructor
     AliITSresponseSSD& operator=(const AliITSresponseSSD &source); // ass. op.
 
-    ClassDef(AliITSresponseSSD,1) //Response class for SSD
+    ClassDef(AliITSresponseSSD,4) //Response class for SSD
 };
 #endif