Coding rule violations corrected.
[u/mrichter/AliRoot.git] / ITS / AliITSresponseSPD.h
1 #ifndef ALIITSRESPONSESPD_H
2 #define ALIITSRESPONSESPD_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /*
7 $Id$
8 */
9 #include "TRandom.h"
10 #include "AliITSresponse.h"
11 //----------------------------------------------
12 //
13 // ITS response class for SPD
14 //
15 class AliITSresponseSPD :  public AliITSresponse {
16  public:
17     AliITSresponseSPD(); // default constructor
18     virtual ~AliITSresponseSPD() {} // destructror
19
20     // Set Threshold and noise + threshold fluctuations parameter values
21     virtual  void   SetThresholds(Double_t thresh, Double_t sigma)
22         {fThresh=thresh; fSigma=sigma;}
23     // Get Threshold and noise + threshold fluctuations parameter values
24     virtual  void   Thresholds(Double_t &thresh, Double_t &sigma) const
25         {thresh=fThresh; sigma=fSigma;}
26
27     // set coupling parameters
28     virtual  void   SetCouplingParam(Double_t col, Double_t row)
29         {fCouplCol=col; fCouplRow=row;}   
30     // get coupling parameters
31     virtual  void   GetCouplingParam(Double_t &col, Double_t &row) const 
32         {col=fCouplCol; row=fCouplRow;}
33
34     //Returns just baseline value
35     Double_t GetBaseline() const {return fBaseline;}
36     // Set noise and baseline in one (abstract method of AliITSresponse)
37     virtual void SetNoiseParam(Double_t n,Double_t b)
38         {fNoise = n;fBaseline = b;}
39     // Get noise and baseline in one (abstract method of AliITSresponse)
40     virtual void GetNoiseParam(Double_t &n,Double_t &b) const
41         {n =fNoise;b = fBaseline;}
42     // Returns just noise value
43     Double_t GetNoise() const {return fNoise;} 
44     //Declaration of member functions peculiar to this class
45     // Applies a random noise and addes the baseline
46     Double_t ApplyBaselineAndNoise() const {return fBaseline+
47                                                fNoise*gRandom->Gaus();}
48
49     //Declaration of member functions peculiar to this class
50     // Sets the fraction of Dead SPD Pixels
51     void SetFractionDead(Double_t d=0.01){ fDeadPixels = d;}
52     // Retruns the fraction of Dead SPD Pixels
53     Double_t GetFractionDead() const {return fDeadPixels;}
54     // Returns a logical if a pixels is dead or not
55     Bool_t IsPixelDead(Int_t mod,Int_t ix,Int_t iz) const ;
56
57     //abstract methods in AliITSresponse not implemented in this class
58     virtual void SetDiffCoeff(Double_t,Double_t)
59       {NotImplemented("GiveCompressParam");}
60     virtual void DiffCoeff(Double_t &,Double_t &)const
61       {NotImplemented("GiveCompressParam");}
62     virtual void    GiveCompressParam(Int_t *) const
63       {NotImplemented("GiveCompressParam");}
64     virtual  void   SetDetParam(Double_t *)
65       {NotImplemented("SetDetParam");}
66     virtual void   GetDetParam(Double_t *) const 
67       {NotImplemented("GetDetParam");}
68     virtual  void   SetNDetParam(Int_t /* n */)
69       {NotImplemented("SetNDetParam");}
70     virtual Int_t  NDetParam() const
71       {NotImplemented("NDetParam"); return 0;}
72     virtual void   SetParamOptions(const char* /* a */,const char* /* b */)
73       {NotImplemented("SetParamOptions");}
74     virtual void   ParamOptions(char *,char*) const
75       {NotImplemented("ParamOptions");} 
76     virtual void   SetZeroSupp(const char*)
77       {NotImplemented("SetZeroSupp");}
78     virtual const char *ZeroSuppOption() const 
79       {NotImplemented("ZeroSuppression"); return "";}
80     virtual void    SetNSigmaIntegration(Double_t)
81       {NotImplemented("SetNSigmaIntegration");}
82     virtual Double_t NSigmaIntegration() const
83       {NotImplemented("NSigmaIntegration"); return 0.;}
84     virtual void    SetNLookUp(Int_t) 
85       {NotImplemented("SetNLookUp");}
86     virtual void    SetSigmaSpread(Double_t, Double_t) 
87       {NotImplemented("SetSigmaSpread");}
88     virtual void    SigmaSpread(Double_t & /* p1 */,Double_t & /* p2 */) const 
89       {NotImplemented("SigmaSpread");}
90
91  protected:
92     static const Double_t fgkDiffCoeffDefault; //default for fDiffCoeff
93     static const Double_t fgkThreshDefault; //default for fThresh
94     static const Double_t fgkSigmaDefault; //default for fSigma
95     Double_t fBaseline;        // Base-line value
96     Double_t fNoise;           // Gaussian noise scale
97     Double_t fThresh;          // Threshold value
98     Double_t fSigma;           // Noise + threshold fluctuations value
99     Double_t fCouplCol;        // Coupling probability along a column
100     Double_t fCouplRow;        // Coupling probability along a row
101     Double_t fDeadPixels;      // the fraction of dead pixels
102
103
104     ClassDef(AliITSresponseSPD,2) // SPD response
105 };
106
107 #endif