]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/AliITSresponseSPD.h
Example macro for the creation of tags (P.Christakoglou)
[u/mrichter/AliRoot.git] / ITS / AliITSresponseSPD.h
index ac67827ef24bdb03d234c34367f792599b8c1ac7..ee5a93b69920ab5c2acaee2c69562b80d4dbfbd1 100644 (file)
@@ -6,10 +6,8 @@
 /*
 $Id$
 */
-
+#include "TRandom.h"
 #include "AliITSresponse.h"
-#include <TString.h>
-
 //----------------------------------------------
 //
 // ITS response class for SPD
@@ -18,43 +16,92 @@ class AliITSresponseSPD :  public AliITSresponse {
  public:
     AliITSresponseSPD(); // default constructor
     virtual ~AliITSresponseSPD() {} // destructror
-    // Configuration methods
-    // sets the diffusion coeffeciant.
-    virtual  void   SetDiffCoeff(Float_t p1=0) {fDiffCoeff=p1;}
-    // returns the diffusion coeffeciant
-    virtual  Float_t   DiffCoeff() {return fDiffCoeff;}
+
     // Set Threshold and noise + threshold fluctuations parameter values
-    virtual  void   SetThresholds(Float_t thresh=2000, Float_t sigma=280)
+    virtual  void   SetThresholds(Double_t thresh, Double_t sigma)
        {fThresh=thresh; fSigma=sigma;}
     // Get Threshold and noise + threshold fluctuations parameter values
-    virtual  void   Thresholds(Float_t &thresh, Float_t &sigma)
+    virtual  void   Thresholds(Double_t &thresh, Double_t &sigma) const
        {thresh=fThresh; sigma=fSigma;}
+
     // set coupling parameters
-    virtual  void   SetNoiseParam(Float_t col=0., Float_t row=0.)
-       {fCouplCol=col; fCouplRow=row;}   
+    virtual  void   SetCouplingParam(Double_t col, Double_t row)
+        {fCouplCol=col; fCouplRow=row;}   
     // get coupling parameters
-    virtual  void   GetNoiseParam(Float_t &col, Float_t &row)
-       {col=fCouplCol; row=fCouplRow;}
+    virtual  void   GetCouplingParam(Double_t &col, Double_t &row) const 
+        {col=fCouplCol; row=fCouplRow;}
+
+    //Returns just baseline value
+    Double_t GetBaseline() const {return fBaseline;}
+    // Set noise and baseline in one (abstract method of AliITSresponse)
+    virtual void SetNoiseParam(Double_t n,Double_t b)
+        {fNoise = n;fBaseline = b;}
+    // Get noise and baseline in one (abstract method of AliITSresponse)
+    virtual void GetNoiseParam(Double_t &n,Double_t &b) const
+        {n =fNoise;b = fBaseline;}
+    // Returns just noise value
+    Double_t GetNoise() const {return fNoise;} 
+    //Declaration of member functions peculiar to this class
+    // Applies a random noise and addes the baseline
+    Double_t ApplyBaselineAndNoise() const {return fBaseline+
+                                               fNoise*gRandom->Gaus();}
+
+    //Declaration of member functions peculiar to this class
     // Sets the fraction of Dead SPD Pixels
-    virtual void SetFractionDead(Float_t d=0.01){ fDeadPixels = d;}
+    void SetFractionDead(Double_t d=0.01){ fDeadPixels = d;}
     // Retruns the fraction of Dead SPD Pixels
-    virtual Float_t GetFractionDead(){return fDeadPixels;}
-    // Type of data - real or simulated
-    virtual void    SetDataType(char *data="simulated") {fDataType=data;}
-    // Get data typer
-    virtual const char  *DataType() {return fDataType.Data();}
+    Double_t GetFractionDead() const {return fDeadPixels;}
+    // Returns a logical if a pixels is dead or not
+    Bool_t IsPixelDead(Int_t mod,Int_t ix,Int_t iz) const ;
+
+    //abstract methods in AliITSresponse not implemented in this class
+    virtual void SetDiffCoeff(Double_t,Double_t)
+      {NotImplemented("GiveCompressParam");}
+    virtual void DiffCoeff(Double_t &,Double_t &)const
+      {NotImplemented("GiveCompressParam");}
+    virtual void    GiveCompressParam(Int_t *) const
+      {NotImplemented("GiveCompressParam");}
+    virtual  void   SetDetParam(Double_t *)
+      {NotImplemented("SetDetParam");}
+    virtual void   GetDetParam(Double_t *) const 
+      {NotImplemented("GetDetParam");}
+    virtual  void   SetNDetParam(Int_t /* n */)
+      {NotImplemented("SetNDetParam");}
+    virtual Int_t  NDetParam() const
+      {NotImplemented("NDetParam"); return 0;}
+    virtual void   SetParamOptions(const char* /* a */,const char* /* b */)
+      {NotImplemented("SetParamOptions");}
+    virtual void   ParamOptions(char *,char*) const
+      {NotImplemented("ParamOptions");} 
+    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");}
+    virtual void    SetSigmaSpread(Double_t, Double_t) 
+      {NotImplemented("SetSigmaSpread");}
+    virtual void    SigmaSpread(Double_t & /* p1 */,Double_t & /* p2 */) const 
+      {NotImplemented("SigmaSpread");}
 
  protected:
-    Float_t fDiffCoeff;       // Sigma diffusion coefficient (not used) 
-    Float_t fThresh;          // Threshold value
-    Float_t fSigma;           // Noise + threshold fluctuations value
-    Float_t fCouplCol;        // Coupling probability along a column
-    Float_t fCouplRow;        // Coupling probability along a row
-    Float_t fDeadPixels;      // the fraction of dead pixels
+    static const Double_t fgkDiffCoeffDefault; //default for fDiffCoeff
+    static const Double_t fgkThreshDefault; //default for fThresh
+    static const Double_t fgkSigmaDefault; //default for fSigma
+    Double_t fBaseline;        // Base-line value
+    Double_t fNoise;           // Gaussian noise scale
+    Double_t fThresh;          // Threshold value
+    Double_t fSigma;           // Noise + threshold fluctuations value
+    Double_t fCouplCol;        // Coupling probability along a column
+    Double_t fCouplRow;        // Coupling probability along a row
+    Double_t fDeadPixels;      // the fraction of dead pixels
 
-    TString fDataType;        // Type of data - real or simulated
 
-    ClassDef(AliITSresponseSPD,1) // SPD response
+    ClassDef(AliITSresponseSPD,3) // SPD response
 };
 
 #endif