Some clean-up in AliITSresponse classes + coding conventions
[u/mrichter/AliRoot.git] / ITS / AliITSresponseSPDdubna.h
CommitLineData
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 9class TString;
10
12e7c97c 11
12#include "AliITSresponse.h"
409f8c84 13
14//----------------------------------------------
409f8c84 15// ITS response class for SPD
12e7c97c 16class 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.
125ostream& operator<<(ostream &os,AliITSresponseSPDdubna &source);
126istream& operator>>(istream &os,AliITSresponseSPDdubna &source);
127
409f8c84 128#endif