1 #ifndef ALIITSONLINESDDBTP_H
2 #define ALIITSONLINESDDBTP_H
4 ///////////////////////////////////////////////////////////////////
6 // Class used for SDD baseline, noise and gain analysis //
7 // Origin: F.Prino, Torino, prino@to.infn.it //
9 ///////////////////////////////////////////////////////////////////
10 #include "AliITSOnlineSDD.h"
14 class AliITSOnlineSDDBTP : public AliITSOnlineSDD {
18 AliITSOnlineSDDBTP(Int_t mod, Int_t sid);
19 virtual ~AliITSOnlineSDDBTP();
21 void AddBaseEvent(TH2F* hrawd);
22 void AddTPEvent(TH2F* hrawd, Float_t xDAC);
23 void ValidateAnodes();
24 void SetMinBaseline(Float_t bas=10.){fMinBaseline=bas;}
25 void SetMaxBaseline(Float_t bas=150.){fMaxBaseline=bas;}
26 void SetMinRawNoise(Float_t ns=0.001){fMinRawNoise=ns;}
27 void SetMaxRawNoise(Float_t ns=9.){fMaxRawNoise=ns;}
28 void SetNSigmaNoise(Float_t ns=4.){fNSigmaNoise=ns;}
29 void SetNSigmaGain(Float_t sig=3.){fNSigmaGain=sig;}
30 Bool_t IsAnodeGood(Int_t iAnode)const{ return fGoodAnode[iAnode];}
31 Float_t GetAnodeBaseline(Int_t iAnode) const{
32 if(fNBaseEvents>0) return fSumBaseline[iAnode]/fNBaseEvents;
35 Float_t GetAnodeRawNoise(Int_t iAnode) const{
36 if(fNBaseEvents>0) return TMath::Sqrt(fSumRawNoise[iAnode]/fNBaseEvents-TMath::Power(GetAnodeBaseline(iAnode),2));
40 Float_t CalcMeanRawNoise();
41 void StatGain(Float_t &mean, Float_t &rms);
42 Float_t GetAnodeCommonMode(Int_t iAnode) const{
43 if(fNBaseEvents>0) return fSumCMN[iAnode]/fNBaseEvents;
46 Float_t GetChannelGain(Int_t iAnode)const{
47 if(fNTPEvents>0) return fSumTPPeak[iAnode]/fNTPEvents;
50 Int_t GetNBaseEvents() const {return fNBaseEvents;}
51 Int_t GetNTPEvents() const {return fNTPEvents;}
60 Bool_t fGoodAnode[fgkNAnodes];
61 Float_t fSumBaseline[fgkNAnodes];
62 Float_t fSumRawNoise[fgkNAnodes];
63 Float_t fSumCMN[fgkNAnodes];
64 Float_t fSumTPPeak[fgkNAnodes];
65 Float_t fTPPos[fgkNAnodes];
73 ClassDef(AliITSOnlineSDDBTP,1);