/*
$Id$
*/
-
+#include "TRandom.h"
#include "AliITSresponse.h"
-#include <TString.h>
-
//----------------------------------------------
//
// ITS response class for SPD
public:
AliITSresponseSPD(); // default constructor
virtual ~AliITSresponseSPD() {} // destructror
- // Configuration methods
- // sets the diffusion coeffeciant.
- virtual void SetDiffCoeff(Float_t p1=0) {fDiffCoeff=p1;}
- // returns the diffusion coeffeciant
- virtual Float_t DiffCoeff() {return fDiffCoeff;}
+
// Set Threshold and noise + threshold fluctuations parameter values
- virtual void SetThresholds(Float_t thresh=2000, Float_t sigma=280)
+ virtual void SetThresholds(Double_t thresh, Double_t sigma)
{fThresh=thresh; fSigma=sigma;}
// Get Threshold and noise + threshold fluctuations parameter values
- virtual void Thresholds(Float_t &thresh, Float_t &sigma)
+ virtual void Thresholds(Double_t &thresh, Double_t &sigma) const
{thresh=fThresh; sigma=fSigma;}
+
// set coupling parameters
- virtual void SetNoiseParam(Float_t col=0., Float_t row=0.)
- {fCouplCol=col; fCouplRow=row;}
+ virtual void SetCouplingParam(Double_t col, Double_t row)
+ {fCouplCol=col; fCouplRow=row;}
// get coupling parameters
- virtual void GetNoiseParam(Float_t &col, Float_t &row)
- {col=fCouplCol; row=fCouplRow;}
+ virtual void GetCouplingParam(Double_t &col, Double_t &row) const
+ {col=fCouplCol; row=fCouplRow;}
+
+ //Returns just baseline value
+ Double_t GetBaseline() const {return fBaseline;}
+ // Set noise and baseline in one (abstract method of AliITSresponse)
+ virtual void SetNoiseParam(Double_t n,Double_t b)
+ {fNoise = n;fBaseline = b;}
+ // Get noise and baseline in one (abstract method of AliITSresponse)
+ virtual void GetNoiseParam(Double_t &n,Double_t &b) const
+ {n =fNoise;b = fBaseline;}
+ // Returns just noise value
+ Double_t GetNoise() const {return fNoise;}
+ //Declaration of member functions peculiar to this class
+ // Applies a random noise and addes the baseline
+ Double_t ApplyBaselineAndNoise() const {return fBaseline+
+ fNoise*gRandom->Gaus();}
+
+ //Declaration of member functions peculiar to this class
// Sets the fraction of Dead SPD Pixels
- virtual void SetFractionDead(Float_t d=0.01){ fDeadPixels = d;}
+ void SetFractionDead(Double_t d=0.01){ fDeadPixels = d;}
// Retruns the fraction of Dead SPD Pixels
- virtual Float_t GetFractionDead(){return fDeadPixels;}
- // Type of data - real or simulated
- virtual void SetDataType(char *data="simulated") {fDataType=data;}
- // Get data typer
- virtual const char *DataType() {return fDataType.Data();}
+ Double_t GetFractionDead() const {return fDeadPixels;}
+ // Returns a logical if a pixels is dead or not
+ Bool_t IsPixelDead(Int_t mod,Int_t ix,Int_t iz) const ;
+
+ //abstract methods in AliITSresponse not implemented in this class
+ virtual void SetDiffCoeff(Double_t,Double_t)
+ {NotImplemented("GiveCompressParam");}
+ virtual void DiffCoeff(Double_t &,Double_t &)const
+ {NotImplemented("GiveCompressParam");}
+ virtual void GiveCompressParam(Int_t *) const
+ {NotImplemented("GiveCompressParam");}
+ virtual void SetDetParam(Double_t *)
+ {NotImplemented("SetDetParam");}
+ virtual void GetDetParam(Double_t *) const
+ {NotImplemented("GetDetParam");}
+ virtual void SetNDetParam(Int_t /* n */)
+ {NotImplemented("SetNDetParam");}
+ virtual Int_t NDetParam() const
+ {NotImplemented("NDetParam"); return 0;}
+ virtual void SetParamOptions(const char* /* a */,const char* /* b */)
+ {NotImplemented("SetParamOptions");}
+ virtual void ParamOptions(char *,char*) const
+ {NotImplemented("ParamOptions");}
+ virtual void SetZeroSupp(const char*)
+ {NotImplemented("SetZeroSupp");}
+ virtual const char *ZeroSuppOption() const
+ {NotImplemented("ZeroSuppression"); return "";}
+ virtual void SetNSigmaIntegration(Double_t)
+ {NotImplemented("SetNSigmaIntegration");}
+ virtual Double_t NSigmaIntegration() const
+ {NotImplemented("NSigmaIntegration"); return 0.;}
+ virtual void SetNLookUp(Int_t)
+ {NotImplemented("SetNLookUp");}
+ virtual void SetSigmaSpread(Double_t, Double_t)
+ {NotImplemented("SetSigmaSpread");}
+ virtual void SigmaSpread(Double_t & /* p1 */,Double_t & /* p2 */) const
+ {NotImplemented("SigmaSpread");}
protected:
- Float_t fDiffCoeff; // Sigma diffusion coefficient (not used)
- Float_t fThresh; // Threshold value
- Float_t fSigma; // Noise + threshold fluctuations value
- Float_t fCouplCol; // Coupling probability along a column
- Float_t fCouplRow; // Coupling probability along a row
- Float_t fDeadPixels; // the fraction of dead pixels
+ static const Double_t fgkDiffCoeffDefault; //default for fDiffCoeff
+ static const Double_t fgkThreshDefault; //default for fThresh
+ static const Double_t fgkSigmaDefault; //default for fSigma
+ Double_t fBaseline; // Base-line value
+ Double_t fNoise; // Gaussian noise scale
+ Double_t fThresh; // Threshold value
+ Double_t fSigma; // Noise + threshold fluctuations value
+ Double_t fCouplCol; // Coupling probability along a column
+ Double_t fCouplRow; // Coupling probability along a row
+ Double_t fDeadPixels; // the fraction of dead pixels
- TString fDataType; // Type of data - real or simulated
- ClassDef(AliITSresponseSPD,1) // SPD response
+ ClassDef(AliITSresponseSPD,3) // SPD response
};
#endif