]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/AliITSCalibrationSPD.h
Temporary fix for 2 overlaps in SPD/FMD (M. Sitta)
[u/mrichter/AliRoot.git] / ITS / AliITSCalibrationSPD.h
index 9ce872f3156f42a49dd906f10e9c5966c94045fb..3ce02f15212a80559233dc82e37964a65fa989d2 100644 (file)
@@ -3,12 +3,10 @@
 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
  * See cxx source for full Copyright notice                               */
 
-
+/* $Id$ */
 #include "TRandom.h"
 #include "AliITSCalibration.h"
-#include "TArrayI.h"
-#include "AliITSresponseSPD.h"
-
+#include "TArrayS.h"
 
 ////////////////////////////////////////////////////
 //                                                //
@@ -19,34 +17,33 @@ class AliITSCalibrationSPD :  public AliITSCalibration {
     AliITSCalibrationSPD(); // default constructor
     virtual ~AliITSCalibrationSPD() {;} // destructror
 
-    // Set Threshold and noise + threshold fluctuations parameter values
-    virtual  void   SetThresholds(Double_t thresh, Double_t sigma)
-       {fThresh=thresh; fSigma=sigma;}
-    // Get Threshold and noise + threshold fluctuations parameter values
-    virtual  void   Thresholds(Double_t &thresh, Double_t &sigma) const
-       {thresh=fThresh; sigma=fSigma;}
-    //Returns just baseline value
-    Double_t GetBaseline() const {return fBaseline;}
-    // Set noise and baseline in one (abstract method of AliITSCalibration)
-    virtual void SetNoiseParam(Double_t n,Double_t b)
-        {fNoise = n;fBaseline = b;}
-    // Get noise and baseline in one (abstract method of AliITSCalibration)
-    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();}
+    virtual void   ClearBad();
+
+    virtual Int_t  GetNrBad() const;
+    virtual Int_t  GetNrBadInChip(Int_t chip) const;
+    virtual Int_t  GetNrBadInColumn(Int_t col) const;
+
+    virtual Int_t  GetBadColAt(UInt_t index) const;
+    virtual Int_t  GetBadRowAt(UInt_t index) const;
+    virtual void   GetBadPixel(Int_t index, Int_t &row, Int_t &col) const;
+
+    virtual Int_t  GetNrBadSingle() const {return fNrBad;}
+    virtual void   SetNrBadSingle(UInt_t nr) {fNrBad=nr;} // used to be called SetNrBad, but misleading
+    virtual void   SetBadList(TArrayS badlist) {fBadChannels=badlist;}
+    virtual void   SetNrBad(UInt_t /*nr*/); // Use SetNrBadSingle!!!
+
+    virtual Bool_t IsBad() const;
+    virtual Bool_t IsChipBad(Int_t chip) const;
+    virtual Bool_t IsColumnBad(Int_t col) const;
+    virtual Bool_t IsPixelBad(Int_t col, Int_t row) const;
+
+    virtual void   SetChipBad(UInt_t chip);
+    virtual void   UnSetChipBad(UInt_t chip);
+
+    virtual void   AddBad(UInt_t col, UInt_t row);
 
-    //Declaration of member functions peculiar to this class
-    // Sets the fraction of Dead SPD Pixels
-    void SetFractionDead(Double_t d=0.01){ fDeadPixels = d;}
-    // Retruns the fraction of Dead SPD Pixels
-    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 ;
+    virtual Int_t  GetChipIndexFromCol(UInt_t col) const;
+    //    virtual Int_t  GetChipFromChipIndex(UInt_t index) const;
 
     virtual void    GiveCompressParam(Int_t *) const
       {NotImplemented("GiveCompressParam");}
@@ -62,27 +59,13 @@ class AliITSCalibrationSPD :  public AliITSCalibration {
       {NotImplemented("SetSigmaSpread");}
     virtual void    SigmaSpread(Double_t & /* p1 */,Double_t & /* p2 */) const 
       {NotImplemented("SigmaSpread");}
-    void SetNBadChannels(Int_t n) {fBadChannels.Set(n);}
-    void AddBadChannel(Int_t bad,Int_t i) {fBadChannels.AddAt(bad,i);}
-    TArrayI GetBadChannels() const {return fBadChannels;}
-    virtual void SetCouplingParam(Double_t col, Double_t row) {((AliITSresponseSPD*)fResponse)->SetCouplingParam(col,row);}
-    virtual void GetCouplingParam(Double_t &col, Double_t &row) const {((AliITSresponseSPD*)fResponse)->GetCouplingParam(col, row);} 
-    virtual void SetParamOptions(const char* a,const char* b) {((AliITSresponseSPD*)fResponse)->SetParamOptions(a,b);}
-    virtual void GetParamOptions(char *a,char* b) const {((AliITSresponseSPD*)fResponse)->ParamOptions(a,b);}
 
  protected:
-    // 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 fDeadPixels;      // the fraction of dead pixels
-    TArrayI fBadChannels;     // Array with bad channels info (N, row0,col0,row1,col1...rowN,colN)
+    UInt_t   fNrBad;           // Nr of SINGLE bad pixels
+    TArrayS  fBadChannels;     // Array with bad channels info (col0,row0,col1...rowN) N = fNrBad
+    Bool_t   fBadChip[5];      // Is chip completely dead?
 
-    ClassDef(AliITSCalibrationSPD,2) // SPD response
+    ClassDef(AliITSCalibrationSPD,8) // SPD response
 };
 
 #endif