#ifndef ALISIGNIFICANCECALCULATOR_H
#define ALISIGNIFICANCECALCULATOR_H
#include "TObject.h"
class AliMultiDimVector;
class AliSignificanceCalculator : public TObject{
public:
AliSignificanceCalculator();
AliSignificanceCalculator(AliMultiDimVector* sig, AliMultiDimVector* bkg, Float_t normsig=1., Float_t normbkg=1.);
AliSignificanceCalculator(AliMultiDimVector* sig, AliMultiDimVector* bkg, AliMultiDimVector* err2sig, AliMultiDimVector* err2bkg, Float_t normsig=1., Float_t normbkg=1.);
~AliSignificanceCalculator();
void SetSignal(AliMultiDimVector* sig, Float_t norm=1.){
if(fSignal) delete fSignal;
fSignal=sig;
fNormSig=norm;
if(fSignal && fBackground) CalculateSignificance();
}
void SetBackground(AliMultiDimVector* bac, Float_t norm=1.){
if(fBackground) delete fBackground;
fBackground=bac;
fNormBkg=norm;
if(fSignal && fBackground) CalculateSignificance();
}
void SetErrSquareSignal(AliMultiDimVector* err2sig, Float_t norm=1.){
if(fErrSquareSignal) delete fErrSquareSignal;
fErrSquareSignal=err2sig;
fNormSig=norm;
if(fSignal && fBackground) CalculateSignificance();
}
void SetErrSquareBackground(AliMultiDimVector* err2bkg, Float_t norm=1.){
if(fErrSquareBackground) delete fErrSquareBackground;
fErrSquareBackground=err2bkg;
fNormBkg=norm;
if(fSignal && fBackground) CalculateSignificance();
}
void SetNormalizations(Float_t normSig, Float_t normBkg){
fNormSig=normSig;
fNormBkg=normBkg;
if(fSignal && fBackground) CalculateSignificance();
}
AliMultiDimVector* GetSignal() const {return fSignal;}
AliMultiDimVector* GetBackground() const {return fBackground;}
AliMultiDimVector* GetSignificance() const {return fSignificance;}
AliMultiDimVector* GetSignificanceError() const {return fErrSignificance;}
void CalculateSignificance();
Float_t GetMaxSignificance(Int_t* cutIndices, Int_t ptbin) const{
Float_t sigMax=0;
if(fSignificance) fSignificance->FindMaximum(sigMax,cutIndices,ptbin);
return sigMax;
}
AliMultiDimVector* CalculatePurity() const;
AliMultiDimVector* CalculatePurityError() const;
AliMultiDimVector* CalculateSOverB() const;
AliMultiDimVector* CalculateSOverBError() const;
private:
Bool_t Check() const;
AliSignificanceCalculator(const AliSignificanceCalculator& c);
AliSignificanceCalculator& operator=(const AliSignificanceCalculator& c);
AliMultiDimVector* fSignal;
AliMultiDimVector* fErrSquareSignal;
AliMultiDimVector* fBackground;
AliMultiDimVector* fErrSquareBackground;
AliMultiDimVector* fSignificance;
AliMultiDimVector* fErrSignificance;
Float_t fNormSig;
Float_t fNormBkg;
ClassDef(AliSignificanceCalculator,0);
};
#endif
AliSignificanceCalculator.h:1 AliSignificanceCalculator.h:2 AliSignificanceCalculator.h:3 AliSignificanceCalculator.h:4 AliSignificanceCalculator.h:5 AliSignificanceCalculator.h:6 AliSignificanceCalculator.h:7 AliSignificanceCalculator.h:8 AliSignificanceCalculator.h:9 AliSignificanceCalculator.h:10 AliSignificanceCalculator.h:11 AliSignificanceCalculator.h:12 AliSignificanceCalculator.h:13 AliSignificanceCalculator.h:14 AliSignificanceCalculator.h:15 AliSignificanceCalculator.h:16 AliSignificanceCalculator.h:17 AliSignificanceCalculator.h:18 AliSignificanceCalculator.h:19 AliSignificanceCalculator.h:20 AliSignificanceCalculator.h:21 AliSignificanceCalculator.h:22 AliSignificanceCalculator.h:23 AliSignificanceCalculator.h:24 AliSignificanceCalculator.h:25 AliSignificanceCalculator.h:26 AliSignificanceCalculator.h:27 AliSignificanceCalculator.h:28 AliSignificanceCalculator.h:29 AliSignificanceCalculator.h:30 AliSignificanceCalculator.h:31 AliSignificanceCalculator.h:32 AliSignificanceCalculator.h:33 AliSignificanceCalculator.h:34 AliSignificanceCalculator.h:35 AliSignificanceCalculator.h:36 AliSignificanceCalculator.h:37 AliSignificanceCalculator.h:38 AliSignificanceCalculator.h:39 AliSignificanceCalculator.h:40 AliSignificanceCalculator.h:41 AliSignificanceCalculator.h:42 AliSignificanceCalculator.h:43 AliSignificanceCalculator.h:44 AliSignificanceCalculator.h:45 AliSignificanceCalculator.h:46 AliSignificanceCalculator.h:47 AliSignificanceCalculator.h:48 AliSignificanceCalculator.h:49 AliSignificanceCalculator.h:50 AliSignificanceCalculator.h:51 AliSignificanceCalculator.h:52 AliSignificanceCalculator.h:53 AliSignificanceCalculator.h:54 AliSignificanceCalculator.h:55 AliSignificanceCalculator.h:56 AliSignificanceCalculator.h:57 AliSignificanceCalculator.h:58 AliSignificanceCalculator.h:59 AliSignificanceCalculator.h:60 AliSignificanceCalculator.h:61 AliSignificanceCalculator.h:62 AliSignificanceCalculator.h:63 AliSignificanceCalculator.h:64 AliSignificanceCalculator.h:65 AliSignificanceCalculator.h:66 AliSignificanceCalculator.h:67 AliSignificanceCalculator.h:68 AliSignificanceCalculator.h:69 AliSignificanceCalculator.h:70 AliSignificanceCalculator.h:71 AliSignificanceCalculator.h:72 AliSignificanceCalculator.h:73 AliSignificanceCalculator.h:74 AliSignificanceCalculator.h:75 AliSignificanceCalculator.h:76 AliSignificanceCalculator.h:77 AliSignificanceCalculator.h:78 AliSignificanceCalculator.h:79 AliSignificanceCalculator.h:80 AliSignificanceCalculator.h:81 AliSignificanceCalculator.h:82 AliSignificanceCalculator.h:83 AliSignificanceCalculator.h:84 AliSignificanceCalculator.h:85 AliSignificanceCalculator.h:86 AliSignificanceCalculator.h:87 AliSignificanceCalculator.h:88 AliSignificanceCalculator.h:89 AliSignificanceCalculator.h:90 AliSignificanceCalculator.h:91 AliSignificanceCalculator.h:92 AliSignificanceCalculator.h:93 AliSignificanceCalculator.h:94