1 #ifndef ALIITSONLINESDDBASE_H
2 #define ALIITSONLINESDDBASE_H
4 ///////////////////////////////////////////////////////////////////
6 // Class used for SDD baseline and noise analysis //
7 // Origin: F.Prino, Torino, prino@to.infn.it //
9 ///////////////////////////////////////////////////////////////////
10 #include "AliITSOnlineSDD.h"
15 class AliITSOnlineSDDBase : public AliITSOnlineSDD {
18 AliITSOnlineSDDBase();
19 AliITSOnlineSDDBase(Int_t nddl, Int_t ncarlos, Int_t sid);
20 virtual ~AliITSOnlineSDDBase();
22 void AddEvent(TH2F* hrawd);
23 void ValidateAnodes();
25 void SetMinBaseline(Float_t bas=10.){fMinBaseline=bas;}
26 void SetMaxBaseline(Float_t bas=150.){fMaxBaseline=bas;}
27 void SetMinRawNoise(Float_t ns=0.001){fMinRawNoise=ns;}
28 void SetMaxRawNoise(Float_t ns=9.){fMaxRawNoise=ns;}
29 void SetNSigmaNoise(Float_t ns=4.){fNSigmaNoise=ns;}
30 void SetGoldenBaselineValue(Float_t val=20.){fGoldenBaseline=val;}
31 void SetZeroSuppThresholds(Float_t vall=2.2,Float_t valh=4.){
36 Bool_t IsAnodeGood(Int_t iAnode)const{ return fGoodAnode[iAnode];}
37 Float_t GetAnodeBaseline(Int_t iAnode) const{
38 if(fNEvents>0) return fSumBaseline[iAnode]/fNEvents;
41 void GetMinAndMaxBaseline(Float_t &basMin, Float_t &basMax) const;
42 Float_t GetMinimumBaseline() const;
43 Float_t GetAnodeRawNoise(Int_t iAnode) const{
44 if(fNEvents>0) return TMath::Sqrt(fSumRawNoise[iAnode]/fNEvents-TMath::Power(GetAnodeBaseline(iAnode),2));
49 Float_t CalcMeanRawNoise() const;
50 Float_t GetAnodeCommonMode(Int_t iAnode) const{
51 if(fNEvents>0) return fSumCMN[iAnode]/fNEvents;
54 Int_t GetNEvents() const {return fNEvents;}
60 static const Int_t fgkMaxCorr; // maximum baseline correction in AMBRA (=63)
62 Int_t fNEvents; // number of events
63 Bool_t fGoodAnode[fgkNAnodes]; // anode quality: good(1) - bad (0)
64 Float_t fSumBaseline[fgkNAnodes]; // baseline summed over events
65 Float_t fSumRawNoise[fgkNAnodes]; // noise summed over events
66 Float_t fSumCMN[fgkNAnodes]; // common mode noise coeff.
67 Float_t fMinBaseline; // Cut value for minimum baseline
68 Float_t fMaxBaseline; // Cut value for maximum baseline
69 Float_t fMinRawNoise; // Cut value for minimum noise
70 Float_t fMaxRawNoise; // Cut value for maximum noise
71 Float_t fNSigmaNoise; // Cut value for noise (n*sigma)
72 Float_t fGoldenBaseline; // golden value for equalizing baselines
73 Float_t fLowThrFact; // factor for low threshold
74 Float_t fHighThrFact; // factor for high threshold
76 ClassDef(AliITSOnlineSDDBase,2);