Some clean-up in AliITSresponse classes + coding conventions
[u/mrichter/AliRoot.git] / ITS / AliITSresponseSPDdubna.h
1 #ifndef ALIITSRESPONSESPDDUBNA_H
2 #define ALIITSRESPONSESPDDUBNA_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id$ */
7
8 #include <TRandom.h>
9 class TString;
10
11
12 #include "AliITSresponse.h"
13
14 //----------------------------------------------
15 // ITS response class for SPD
16 class AliITSresponseSPDdubna : public AliITSresponse {
17  public:
18   AliITSresponseSPDdubna();
19   virtual ~AliITSresponseSPDdubna(){}// destructror
20  
21 //abstract methods in AliITSresponse not implemented in this class
22     virtual void    GiveCompressParam(Int_t *) const
23       {NotImplemented("GiveCompressParam");}
24     virtual void    SetDriftSpeed(Float_t /* p1 */)
25       {NotImplemented("SetDriftSpeed");}
26     virtual Float_t DriftSpeed() const 
27       {NotImplemented("DrifSpeed"); return 0.;}
28     virtual void   SetElectronics(Int_t /* i */) 
29                     {NotImplemented("SetElectronics");}
30     virtual Int_t Electronics() const {NotImplemented("Electronics"); return 0;}
31     virtual void SetMaxAdc(Float_t /* adc */) {NotImplemented("SetMaxAdc");}
32     virtual Float_t MaxAdc() const {NotImplemented("MaxAdc"); return 0.;}
33     virtual void    SetDynamicRange(Float_t /*dr */) 
34       {NotImplemented("SetDynamicRange");}
35     virtual Float_t DynamicRange() const 
36       {NotImplemented("DynamicRange"); return 0.;}
37     virtual void    SetChargeLoss(Float_t /* cl */)
38       {NotImplemented("SetChargeLoss"); }
39     virtual Float_t ChargeLoss() const 
40       {NotImplemented("ChargeLoss"); return 0.;}
41     virtual void    SetDiffCoeff(Float_t /* a */, Float_t /* b */)
42       {NotImplemented("SetDiffCoeff");}
43     virtual void    DiffCoeff(Float_t & /* a */,Float_t & /* b */) const
44       {NotImplemented("DiffCoeff");}
45     virtual  void   SetDetParam(Float_t *)
46       {NotImplemented("SetDetParam");}
47     virtual void   GetDetParam(Float_t *) const 
48       {NotImplemented("GetDetParam");}
49     virtual  void   SetNDetParam(Int_t /* n */)
50       {NotImplemented("SetNDetParam");}
51     virtual Int_t  NDetParam() const
52       {NotImplemented("NDetParam"); return 0;}
53     virtual void   SetParamOptions(const char* /* a */,const char* /* b */)
54       {NotImplemented("SetParamOptions");}
55     virtual void   ParamOptions(char *,char*) const
56       {NotImplemented("ParamOptions");} 
57     virtual void   SetZeroSupp(const char*)
58       {NotImplemented("SetZeroSupp");}
59     virtual const char *ZeroSuppOption() const 
60       {NotImplemented("ZeroSuppression"); return "";}
61     virtual void    SetNSigmaIntegration(Float_t)
62       {NotImplemented("SetNSigmaIntegration");}
63     virtual Float_t NSigmaIntegration() const
64       {NotImplemented("NSigmaIntegration"); return 0.;}
65     virtual void    SetNLookUp(Int_t) 
66       {NotImplemented("SetNLookUp");}
67     virtual void    SetSigmaSpread(Float_t, Float_t) 
68       {NotImplemented("SetSigmaSpread");}
69     virtual void    SigmaSpread(Float_t & /* p1 */,Float_t & /* p2 */) const 
70       {NotImplemented("SigmaSpread");}
71
72 // Implementation of virtual member functions declared in AliITSresponse 
73   // set noise and baseline
74   virtual void SetNoiseParam(Float_t n, Float_t b) {
75     fNoise=n; fBaseline=b;}
76   virtual void GetNoiseParam(Float_t &n, Float_t &b) const {
77     n=fNoise; b=fBaseline;} // get noise and baseline
78   // Zero-suppression option threshold
79   virtual void SetThresholds(Float_t th, Float_t /* dum */) {fThreshold=th;}
80   virtual void Thresholds(Float_t & thr, Float_t & /*dum */) const
81     {thr = fThreshold;}
82
83   // Prints out the content of this class in ASCII format.
84   virtual void Print(ostream *os) const;
85
86   // Reads in the content of this class in the format of Print
87   virtual void Read(istream *is);
88
89 //Declaration of member functions peculiar to this class
90   // Applies a random noise and addes the baseline
91   Float_t ApplyBaselineAndNoise() const {return fBaseline+
92                                                  fNoise*gRandom->Gaus();}
93   //Returns just baseline value
94   Float_t GetBaseline() const {return fBaseline;}
95   // Returns just noise value
96   Float_t GetNoise() const {return fNoise;} 
97   // Get zero-suppression threshold
98   Float_t GetThreshold() const {return fThreshold;}
99   // Sets the coupling probabilities for columns and rows
100   void SetCouplings(Float_t ccol=0.,Float_t crow=0.){fCouplCol=ccol;
101                                                        fCouplRow=crow;}
102   // Gets the coupling probabilities for columns and rows
103   void GetCouplings(Float_t &ccol,Float_t &crow) const 
104               {ccol=fCouplCol; crow=fCouplRow;}
105   // Returns the fraction of dead pixels
106   Float_t GetFractionDeadPixels() const {return fDeadPixels;}
107   // Sets the fraction of dead pixels
108   void SetFractionDeadPixels(Float_t f=0.01){fDeadPixels = f;}
109   // Returns a logical if a pixels is dead or not
110   Bool_t IsPixelDead(Int_t mod,Int_t ix,Int_t iz) const ;
111
112   ClassDef(AliITSresponseSPDdubna,3) // SPD response
113     
114  protected:
115   static const Float_t fgkNoiseDefault; // default for fNoise
116   static const Float_t fgkThresholdDefault; //default for fThreshold
117   Float_t fNoise;           // Noise value
118   Float_t fBaseline;        // Baseline value
119   Float_t fCouplCol;        // Coupling Probability along columns
120   Float_t fCouplRow;        // Coupling Probability along rows
121   Float_t fThreshold;       // Zero-Suppression threshold
122   Float_t fDeadPixels;      // Fraction of dead pixels.
123 };
124 // Input and output function for standard C++ input/output.
125 ostream& operator<<(ostream &os,AliITSresponseSPDdubna &source);
126 istream& operator>>(istream &os,AliITSresponseSPDdubna &source);
127
128 #endif