#ifndef TPCDIGIPAR_H #define TPCDIGIPAR_H #include "FairParGenericSet.h" #include "FairParamList.h" #include "TString.h" // interfaces to the TpcCode: #include "TpcGas.h" #include "TpcGem.h" #include "TpcPadPlane.h" #include "TpcFrontend.h" #include "TpcPadShapePool.h" #include "TpcDigiMapper.h" class TpcDigiPar : public FairParGenericSet { public : TpcDigiPar (const char* name="TpcPars", const char* title="Tpc digi parameter", const char* context="TestDefaultContext"); ~TpcDigiPar(); void clear(){}; void putParams(FairParamList* list); Bool_t getParams(FairParamList* list); // Accessors (partially catched!) double getZMax() const {return fzMax;} double getTDiff() const {return ftdiff;} double getTInt() const {return ftint;} double getTSig() const {return ftsig;} double getRMin() const {return frmin;} double getRMax() const {return frmax;} bool getAttach() const {return fattach>0;} bool getDiffuseL() const {return fdiffuseL>0;} bool getDiffuseT() const {return fdiffuseT>0;} double getGain() const {return fgain;} double getSupression() const {return fsupression;} double getRate() const {return frate;} double getManDriftVel() const {return fManDriftVel;} double getMinSigAmp() const {return fminSignalAmp;} int getPSA() const {return fpsa;} TString getAlignmentFile(){return fAlignmentFileName;} double getSamThr(){return fsamthr;} TString getGainCorrFile(){return fGainCorrFileName;} TString getClustCorrFile(){return fClustCorrFileName;} double getEField(){return fEField;} TString getClusterErrorFile(){return fClusterErrorFileName;} const TpcGas* getGas(); const TpcGem* getGem(); TpcPadPlane* getPadPlane(); const TpcPadShapePool* getPadShapes(); const TpcFrontend* getFrontend(); bool getGaussianNoise() const {return fgaussianNoise != 0;} int getGaussianNoiseAmp() const {return fgaussianNoiseAmp;} double windowMax(); double windowMin(); private : bool initialized; Int_t ftpcGasFile; TString ftpcGasFileName; Double_t fEField; Int_t fattach; Int_t fdiffuseL; Int_t fdiffuseT; Int_t fdistort; Double_t fzGem; Double_t fzMax; // get from Geom! Double_t fgain; Double_t fsupression; Double_t fspread; Double_t frate; Double_t fManDriftVel; Int_t fAlignmentFile; Int_t fGainCorrFile; Int_t fClustCorrFile; Int_t fpadResponseFile; Int_t fClusterErrorFile; Double_t fminSignalAmp; // cut on signal amplitude Double_t frmin, frmax; // cuts on the TPC volume in r should come from Geom! Int_t fpadPlaneFile; TString fpadPlaneFileName; Int_t fpadShapes; TString fpadShapesName; TString fpadResponseFileName; TString fAlignmentFileName; TString fGainCorrFileName; TString fClustCorrFileName; TString fClusterErrorFileName; Double_t fshaperange; // range for padresponse lookuptable calculation Double_t fshapestep; // LOT entry steps Double_t fintstep; // integration step for LOT point calculation int fadcthres; // adc threshold int fadcmax; // adc dynamic range maximum int fadcbits; // adc # bits double fsamplefreq; // sampling frequency double ft0; // t0 of time stamps int ftimebits; // bits for timestamps int fpsathres; // threshold for pulseshape analysis double ftdiff; // pulseshape: preamp differentiation time double ftint; // pulseshape: preamp integration time double ftsig; // pulseshape: signal risetime double fsamthr; //multiple of sigma for sample threshold int fpsa; //0 -> Simple PSA, 1 -> TOTPSA int fgaussianNoise; int fgaussianNoiseAmp; // interface pointers (will be created on the fly): TpcGas* fgas; //! TpcGem* fgem; //! TpcPadPlane* fpadplane; //! TpcFrontend* ffrontend; //! TpcPadShapePool* fpadshapepool; //! TString readString(int i); ClassDef(TpcDigiPar,3); }; #endif