X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=ITS%2FAliITSOnlineSDDTP.h;h=2f4299295d8481fb40d3354e7733eb4343737bd6;hb=af6a50bbbb153c6b9e953722fa0506f244ca275e;hp=ff03a124cba788a3f9a08d434c6da8ce7249cf87;hpb=e44f571cdb6cd7116369f3bb6ef61bde0cf60db9;p=u%2Fmrichter%2FAliRoot.git diff --git a/ITS/AliITSOnlineSDDTP.h b/ITS/AliITSOnlineSDDTP.h index ff03a124cba..2f4299295d8 100644 --- a/ITS/AliITSOnlineSDDTP.h +++ b/ITS/AliITSOnlineSDDTP.h @@ -11,12 +11,13 @@ #include "AliITSOnlineSDD.h" +class TH1F; class TH2F; class AliITSOnlineSDDTP : public AliITSOnlineSDD { public: AliITSOnlineSDDTP(); - AliITSOnlineSDDTP(Int_t mod, Int_t sid,Float_t xDAC); + AliITSOnlineSDDTP(Int_t nddl, Int_t ncarlos, Int_t sid, Float_t xDAC); virtual ~AliITSOnlineSDDTP(); void Reset(); void AddEvent(TH2F* hrawd); @@ -24,26 +25,53 @@ 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/fDAC; + if(fNEvents[iAnode]>0) return fSumTPPeak[iAnode]/fNEvents[iAnode]/fDAC; else return 0; } void StatGain(Float_t &mean, Float_t &rms); void WriteToASCII(); + Bool_t WriteToROOT(TFile *fil); + + TH1F* GetBaselineAnodeHisto() const; + TH1F* GetRawNoiseAnodeHisto() const; + TH1F* GetCorrNoiseAnodeHisto() const; + TH1F* GetCMNCoefAnodeHisto() const; + TH1F* GetGainAnodeHisto() const; + TH1F* GetStatusAnodeHisto() const; protected: private: - Int_t fNEvents; // number of events - Float_t fDAC; // Pascal Test Pulse amplitude (DAC units) - Bool_t fGoodAnode[fgkNAnodes]; // array of anode quality (1 good, 0 bad) + 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) - - ClassDef(AliITSOnlineSDDTP,1); + Float_t fNSigmaNoise; // Threshold for TP signal identification + ClassDef(AliITSOnlineSDDTP,4); }; #endif