409f8c84 |
1 | #ifndef ALIITSRESPONSESPDDUBNA_H |
2 | #define ALIITSRESPONSESPDDUBNA_H |
12e7c97c |
3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * |
4 | * See cxx source for full Copyright notice */ |
5 | |
6 | /* $Id$ */ |
409f8c84 |
7 | |
12e7c97c |
8 | #include <TRandom.h> |
703a4e51 |
9 | class TString; |
10 | |
12e7c97c |
11 | |
12 | #include "AliITSresponse.h" |
409f8c84 |
13 | |
14 | //---------------------------------------------- |
409f8c84 |
15 | // ITS response class for SPD |
12e7c97c |
16 | class AliITSresponseSPDdubna : public AliITSresponse { |
f74211b0 |
17 | public: |
12e7c97c |
18 | AliITSresponseSPDdubna(); |
19 | virtual ~AliITSresponseSPDdubna(){}// destructror |
703a4e51 |
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 |
12e7c97c |
73 | // set noise and baseline |
703a4e51 |
74 | virtual void SetNoiseParam(Float_t n, Float_t b) { |
12e7c97c |
75 | fNoise=n; fBaseline=b;} |
703a4e51 |
76 | virtual void GetNoiseParam(Float_t &n, Float_t &b) const { |
12e7c97c |
77 | n=fNoise; b=fBaseline;} // get noise and baseline |
12e7c97c |
78 | // Zero-suppression option threshold |
703a4e51 |
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;} |
12e7c97c |
97 | // Get zero-suppression threshold |
703a4e51 |
98 | Float_t GetThreshold() const {return fThreshold;} |
12e7c97c |
99 | // Sets the coupling probabilities for columns and rows |
703a4e51 |
100 | void SetCouplings(Float_t ccol=0.,Float_t crow=0.){fCouplCol=ccol; |
12e7c97c |
101 | fCouplRow=crow;} |
102 | // Gets the coupling probabilities for columns and rows |
703a4e51 |
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;} |
12e7c97c |
107 | // Sets the fraction of dead pixels |
703a4e51 |
108 | void SetFractionDeadPixels(Float_t f=0.01){fDeadPixels = f;} |
12e7c97c |
109 | // Returns a logical if a pixels is dead or not |
703a4e51 |
110 | Bool_t IsPixelDead(Int_t mod,Int_t ix,Int_t iz) const ; |
f74211b0 |
111 | |
703a4e51 |
112 | ClassDef(AliITSresponseSPDdubna,3) // SPD response |
113 | |
f74211b0 |
114 | protected: |
703a4e51 |
115 | static const Float_t fgkNoiseDefault; // default for fNoise |
116 | static const Float_t fgkThresholdDefault; //default for fThreshold |
12e7c97c |
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. |
f74211b0 |
123 | }; |
12e7c97c |
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 | |
409f8c84 |
128 | #endif |