/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice */
-/*
-$Id$
-*/
-#include "TRandom.h"
+
#include "AliITSresponse.h"
-//----------------------------------------------
-//
-// ITS response class for SPD
-//
+///////////////////////////////////////////
+// //
+// ITS response class for SPD //
+///////////////////////////////////////////
+
class AliITSresponseSPD : public AliITSresponse {
public:
AliITSresponseSPD(); // default constructor
- virtual ~AliITSresponseSPD() {} // destructror
-
- // Set Threshold and noise + threshold fluctuations parameter values
- virtual void SetThresholds(Double_t thresh, Double_t sigma)
- {fThresh=thresh; fSigma=sigma;}
- // Get Threshold and noise + threshold fluctuations parameter values
- virtual void Thresholds(Double_t &thresh, Double_t &sigma) const
- {thresh=fThresh; sigma=fSigma;}
-
- // set coupling parameters
- virtual void SetCouplingParam(Double_t col, Double_t row)
- {fCouplCol=col; fCouplRow=row;}
- // get coupling parameters
- virtual void GetCouplingParam(Double_t &col, Double_t &row) const
- {col=fCouplCol; row=fCouplRow;}
+ virtual ~AliITSresponseSPD() {;} // destructror
- //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();}
+ virtual void SetCouplingOption(const char *opt) { // Options: "old" or "new"
+ fCouplOpt=opt;}
+ virtual void CouplingOption(char *opt) const {
+ strcpy(opt,fCouplOpt.Data());}
+ virtual void SetSigmaDiffusionAsymmetry(Double_t ecc)
+ {fEccDiff=ecc;}
+ virtual void GetSigmaDiffusionAsymmetry(Double_t &ecc) const
+ {ecc=fEccDiff;}
- //Declaration of member functions peculiar to this class
- // Sets the fraction of Dead SPD Pixels
- void SetFractionDead(Double_t d=0.01){ fDeadPixels = d;}
- // Retruns the fraction of Dead SPD Pixels
- 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 ;
+ protected:
- //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");}
+ static const Float_t fgkDiffCoeffDefault; //default for fDiffCoeff
+ static const TString fgkCouplingOptDefault; // type of pixel Coupling (old or new)
+ static const Float_t fgkEccentricityDiffDefault;//default for fCouplRow
- protected:
- 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 fCouplOpt; // Coupling Option
+ Float_t fEccDiff; // Eccentricity (i.e. asymmetry parameter) in the Gaussian Diffusion
- ClassDef(AliITSresponseSPD,3) // SPD response
+ ClassDef(AliITSresponseSPD,6) // SPD base response class
};
#endif