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 */
12 #include "AliITSresponse.h"
14 //----------------------------------------------
15 // ITS response class for SPD
16 class AliITSresponseSPDdubna : public AliITSresponse {
18 AliITSresponseSPDdubna();
19 virtual ~AliITSresponseSPDdubna(){}// destructror
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");}
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
83 // Prints out the content of this class in ASCII format.
84 virtual void Print(ostream *os) const;
86 // Reads in the content of this class in the format of Print
87 virtual void Read(istream *is);
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;
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 ;
112 ClassDef(AliITSresponseSPDdubna,3) // SPD response
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.
124 // Input and output function for standard C++ input/output.
125 ostream& operator<<(ostream &os,AliITSresponseSPDdubna &source);
126 istream& operator>>(istream &os,AliITSresponseSPDdubna &source);