X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=ITS%2FAliITSOnlineSDDTP.h;h=7778c37f22089f27fff0d5e0104665922f7e65ba;hb=18986853e9c6a087842a7a34f967404861a46d3b;hp=18f921ab6468525e624ca68287b71fdce000fd64;hpb=0e5e647acd5bf4c727a617f050309f95eea5bc60;p=u%2Fmrichter%2FAliRoot.git diff --git a/ITS/AliITSOnlineSDDTP.h b/ITS/AliITSOnlineSDDTP.h index 18f921ab646..7778c37f220 100644 --- a/ITS/AliITSOnlineSDDTP.h +++ b/ITS/AliITSOnlineSDDTP.h @@ -12,12 +12,11 @@ #include "AliITSOnlineSDD.h" class TH2F; -class TGraph; class AliITSOnlineSDDTP : public AliITSOnlineSDD { public: AliITSOnlineSDDTP(); - AliITSOnlineSDDTP(Int_t mod, Int_t sid,Float_t xDAQ); + AliITSOnlineSDDTP(Int_t nddl, Int_t ncarlos, Int_t sid, Float_t xDAC); virtual ~AliITSOnlineSDDTP(); void Reset(); void AddEvent(TH2F* hrawd); @@ -25,26 +24,46 @@ class AliITSOnlineSDDTP : public AliITSOnlineSDD { void ReadBaselines(); void SetNSigmaGain(Float_t sig=3.){fNSigmaGain=sig;} + void SetNSigmaNoise(Float_t sig=10.){fNSigmaNoise=sig;} + Bool_t IsModuleGood()const; Bool_t IsAnodeGood(Int_t iAnode)const{ return fGoodAnode[iAnode];} - Int_t GetNEvents() const {return fNEvents;} + Float_t GetAnodeBaseline(Int_t iAnode) const{ return fBaseline[iAnode];} + Int_t GetAnodeEqualizedBaseline(Int_t iAnode) const{ return fEqBaseline[iAnode];} + Int_t GetAnodeBaselineOffset(Int_t iAnode) const{ return fOffsetBaseline[iAnode];} + Float_t GetAnodeRawNoise(Int_t iAnode) const{ return fRawNoise[iAnode];} + Float_t GetAnodeCommonMode(Int_t iAnode) const{ return fCMN[iAnode];} + Float_t GetAnodeCorrNoise(Int_t iAnode) const{return fCorrNoise[iAnode];} + Float_t GetTimeBinTPPeak(Int_t iAnode) const{ + if(fNEvents[iAnode]>0) return fTPPos[iAnode]/fNEvents[iAnode]; + else return 0; + } + Int_t GetNEvents(Int_t iAnode) const {return fNEvents[iAnode];} Float_t GetChannelGain(Int_t iAnode)const{ - if(fNEvents>0) return fSumTPPeak[iAnode]/fNEvents/fDAQ; + if(fNEvents[iAnode]>0) return fSumTPPeak[iAnode]/fNEvents[iAnode]/fDAC; else return 0; } void StatGain(Float_t &mean, Float_t &rms); - void WriteToFXS(); + void WriteToASCII(); + Bool_t WriteToROOT(TFile *fil); protected: private: - Int_t fNEvents; - Float_t fDAQ; - Bool_t fGoodAnode[fgkNAnodes]; - Float_t fBaseline[fgkNAnodes]; - Float_t fSumTPPeak[fgkNAnodes]; - Float_t fTPPos[fgkNAnodes]; - Float_t fNSigmaGain; - - ClassDef(AliITSOnlineSDDTP,1); + Int_t fNEvents[fgkNAnodes]; // number of TP events for given anode + Float_t fDAC; // Pascal Test Pulse amplitude (DAC units) + Int_t fLowThreshold; // low threshold for zero supp. + Int_t fHighThreshold; // high threshold for zero supp. + Bool_t fGoodAnode[fgkNAnodes]; // array of anode quality (1 good, 0 bad) + Float_t fBaseline[fgkNAnodes]; // array of anode baselines + Int_t fEqBaseline[fgkNAnodes]; // array of anode baselines after equalization + Int_t fOffsetBaseline[fgkNAnodes]; // array of offsets for baseline equal. + Float_t fRawNoise[fgkNAnodes]; // array of anode raw noise + Float_t fCMN[fgkNAnodes]; // common mode noise coeff. + Float_t fCorrNoise[fgkNAnodes]; // array of anode corrected noise + Float_t fSumTPPeak[fgkNAnodes]; // test pulse amplitude summed over events + Float_t fTPPos[fgkNAnodes]; // test pulse position + Float_t fNSigmaGain; // Cut value for gain (n*sigma) + Float_t fNSigmaNoise; // Threshold for TP signal identification + ClassDef(AliITSOnlineSDDTP,4); }; #endif