#ifndef ALIITSRESPONSESSD_H
#define ALIITSRESPONSESSD_H
-
-#include "AliITSresponse.h"
-
-// response for SSD
-
-//-----------------------------
-class AliITSresponseSSD :
-public AliITSresponse {
+/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
+ * See cxx source for full Copyright notice */
-public:
-
- AliITSresponseSSD();
- virtual ~AliITSresponseSSD();
- AliITSresponseSSD(const AliITSresponseSSD &source); // copy constructor
- AliITSresponseSSD& operator=(const AliITSresponseSSD &source); // ass. op.
-
- virtual void SetDiffCoeff(Float_t p1=0.) {
- // Diffusion coefficient
- fDiffCoeff=p1;
- }
- virtual Float_t DiffCoeff() {
- // Get diffusion coefficient
- return fDiffCoeff;
- }
-
- virtual void SetNoiseParam(Float_t np=420., Float_t nn=625.) {
- // set noise par
- fNoiseP=np; fNoiseN=nn;
- }
- virtual void GetNoiseParam(Float_t &np, Float_t &nn) {
- // get noise par
- np=fNoiseP; nn=fNoiseN;
- }
-
- virtual void SetParamOptions(Option_t *opt1="", Option_t *opt2="") {
- // parameters: "SetInvalid" to simulate the invalid strips
- fOption1=opt1; fOption2=opt2;
- }
- virtual void ParamOptions(Option_t *&opt1,Option_t *&opt2) {
- // options
- opt1=fOption1; opt2=fOption2;
- }
-
- // Number of parameters to be set
- // 4 couplings, mean number of invalid strips, RMS of invalid strips
- virtual void SetNDetParam(Int_t npar=6) {
- // set number of param
- fNPar=npar;
- }
-
- virtual void SetDetParam(Float_t *par);
-
- // Parameters options
- virtual Int_t NDetParam() {
- // number of param
- return fNPar;
- }
- virtual void GetDetParam(Float_t *dpar);
+#include "AliITSresponse.h"
+#include <Riostream.h>
+
+///////////////////////////////////////////////////
+// Response class for SSD //
+// //
+///////////////////////////////////////////////////
+
+class AliITSresponseSSD : public AliITSresponse {
+
+ public:
+ AliITSresponseSSD();
+ virtual ~AliITSresponseSSD() {;}
+ virtual void SetParamOptions(const char *opt1, const char *opt2) {
+ // parameters: "SetInvalid" to simulate the invalid strips
+ fOption1=opt1; fOption2=opt2;
+ }
+ virtual void ParamOptions(char *opt1,char *opt2) const {
+ // options
+ strcpy(opt1,fOption1.Data()); strcpy(opt2,fOption2.Data());
+ }
+ void SetADCpereV(Double_t a=120./24888.9){fADCpereV = a;}
+ Double_t DEvToADC(Double_t eV) const {return eV*fADCpereV;}
+ Int_t IEvToADC(Double_t eV) const { // Converts electron-hole pairs to
+ return ((Int_t) DEvToADC(eV)); }
+
+ void SetKeVperADC(Double_t a=86.4/120.){fKeVperADC = a;}
+ Double_t ADCToKeV(Double_t adc) const {return adc*fKeVperADC;}
+
+ Double_t GetCouplingPR() const {// couplings
+ return fCouplingPR;}
+ Double_t GetCouplingPL() const {// couplings
+ return fCouplingPL;}
+ Double_t GetCouplingNR() const {// couplings
+ return fCouplingNR;}
+ Double_t GetCouplingNL() const {// couplings
+ return fCouplingNL;}
+ virtual void SetCouplings(Double_t pr, Double_t pl, Double_t nr, Double_t nl) {
+ fCouplingPR=pr; fCouplingPL=pl; fCouplingNR=nr; fCouplingNL=nl; }
+
+ Int_t GetZSThreshold() const { // ZS threshold
+ return fZSThreshold; }
+ virtual void SetZSThreshold(Int_t zsth) { fZSThreshold = zsth; }
- virtual void SetDataType(char *data="simulated") {
- // Type of data - real or simulated
- fDataType=data;
- }
- virtual char *DataType() {
- // Get data type
- return fDataType;
- }
-
- virtual void SetSigmaSpread(Float_t p1=3., Float_t p2=2.) {
- // Set sigmas of the charge spread function: Pside-Nside
- // square of (microns)
- fSigmaP=p1; fSigmaN=p2;
- }
- virtual void SigmaSpread(Float_t &sP, Float_t &sN) {
- // Get sigmas for the charge spread
- sP=fSigmaP; sN=fSigmaN;
- }
-
protected:
- Int_t fNPar; // Number of detector param
- Float_t *fDetPar ; // Array of parameters
-
- Float_t fNoiseP; // Noise on Pside
- Float_t fNoiseN; // Noise on Nside
-
- Float_t fSigmaP; // Sigma charge spread on Pside
- Float_t fSigmaN; // Sigma charge spread on Nside
- Float_t fDiffCoeff; // Diffusion Coefficient
-
- Option_t *fOption1; // Simulate invalid strips option
- Option_t *fOption2; // Not used for the moment
-
- char* fDataType; // Type of data - real or simulated
-
- ClassDef(AliITSresponseSSD,1) //Response class for SSD
-
- };
-
-
-
-#endif
+ static const Float_t fgkDiffCoeffDefault; //default for fDiffCoeff
+ static const TString fgkOption1Default; // default for fOption1
+ static const TString fgkOption2Default; // default for fOption2
+ static const Double_t fgkfCouplingPR; // default value for couplings
+ static const Double_t fgkfCouplingPL; // default value for couplings
+ static const Double_t fgkfCouplingNR; // default value for couplings
+ static const Double_t fgkfCouplingNL; // default value for couplings
+ Double_t fADCpereV; // Constant to convert eV to ADC.
+ Double_t fKeVperADC; // Constant to convert ADC to keV
+ Double_t fCouplingPR; // couplings
+ Double_t fCouplingPL; // couplings
+ Double_t fCouplingNR; // couplings
+ Double_t fCouplingNL; // couplings
+ static const Int_t fgkZSThreshold; // threshold for the zero suppresion
+ Int_t fZSThreshold;
+ TString fOption1; // Simulate invalid strips option
+ TString fOption2; // Not used for the moment
+ private:
+ AliITSresponseSSD(const AliITSresponseSSD &source); // copy constructor
+ AliITSresponseSSD& operator=(const AliITSresponseSSD &source); // ass. op.
+ ClassDef(AliITSresponseSSD,4) //Response class for SSD
+};
+#endif