+++ /dev/null
-#ifndef ALIITSONLINESDDBTP_H
-#define ALIITSONLINESDDBTP_H
-
-///////////////////////////////////////////////////////////////////
-// //
-// Class used for SDD baseline, noise and gain analysis //
-// Origin: F.Prino, Torino, prino@to.infn.it //
-// //
-///////////////////////////////////////////////////////////////////
-#include "AliITSOnlineSDD.h"
-#include "TMath.h"
-
-class TH2F;
-class TGraph;
-class AliITSOnlineSDDBTP : public AliITSOnlineSDD {
-
- public:
- AliITSOnlineSDDBTP();
- AliITSOnlineSDDBTP(Int_t mod, Int_t sid);
- virtual ~AliITSOnlineSDDBTP();
- void Reset();
- void AddBaseEvent(TH2F* hrawd);
- void AddTPEvent(TH2F* hrawd, Float_t xDAC);
- void ValidateAnodes();
- void SetMinBaseline(Float_t bas=10.){fMinBaseline=bas;}
- void SetMaxBaseline(Float_t bas=150.){fMaxBaseline=bas;}
- void SetMinRawNoise(Float_t ns=0.001){fMinRawNoise=ns;}
- void SetMaxRawNoise(Float_t ns=9.){fMaxRawNoise=ns;}
- void SetNSigmaNoise(Float_t ns=4.){fNSigmaNoise=ns;}
- void SetNSigmaGain(Float_t sig=3.){fNSigmaGain=sig;}
- Bool_t IsAnodeGood(Int_t iAnode)const{ return fGoodAnode[iAnode];}
- Float_t GetAnodeBaseline(Int_t iAnode) const{
- if(fNBaseEvents>0) return fSumBaseline[iAnode]/fNBaseEvents;
- else return 0;
- }
- Float_t GetAnodeRawNoise(Int_t iAnode) const{
- if(fNBaseEvents>0) return TMath::Sqrt(fSumRawNoise[iAnode]/fNBaseEvents-TMath::Power(GetAnodeBaseline(iAnode),2));
-
- else return 0;
- }
- Float_t CalcMeanRawNoise() const;
- void StatGain(Float_t &mean, Float_t &rms);
- Float_t GetAnodeCommonMode(Int_t iAnode) const{
- if(fNBaseEvents>0) return fSumCMN[iAnode]/fNBaseEvents;
- else return 0;
- }
- Float_t GetChannelGain(Int_t iAnode)const{
- if(fNTPEvents>0) return fSumTPPeak[iAnode]/fNTPEvents;
- else return 0;
- }
- Int_t GetNBaseEvents() const {return fNBaseEvents;}
- Int_t GetNTPEvents() const {return fNTPEvents;}
- void WriteToASCII();
-
- protected:
-
- private:
-
- Int_t fNBaseEvents; // number of "empty" events
- Int_t fNTPEvents; // number of "Test Pulse" events
- Bool_t fGoodAnode[fgkNAnodes]; // anode quality: good(1) - bad (0)
- Float_t fSumBaseline[fgkNAnodes]; // baseline summed over events
- Float_t fSumRawNoise[fgkNAnodes]; // noise summed over events
- Float_t fSumCMN[fgkNAnodes]; // common mode noise coeff.
- Float_t fSumTPPeak[fgkNAnodes]; // Test Pulse ampl. summed over events
- Float_t fTPPos[fgkNAnodes]; // Test pulse peak position
- Float_t fMinBaseline; // Cut value for minimum baseline
- Float_t fMaxBaseline; // Cut value for maximum baseline
- Float_t fMinRawNoise; // Cut value for minimum noise
- Float_t fMaxRawNoise; // Cut value for maximum noise
- Float_t fNSigmaNoise; // Cut value for noise (n*sigma)
- Float_t fNSigmaGain; // Cut value for gain (n*sigma)
-
- ClassDef(AliITSOnlineSDDBTP,1);
-};
-#endif