#include <TMath.h>
#include <TVectorT.h>
#include <TH1.h>
+#include <TROOT.h>
+#include <TCanvas.h>
#include <AliCFContainer.h>
#include <AliCFGridSparse.h>
fStepSignal(kTRUE),
fStepSignificance(kFALSE),
fStepSOB(kFALSE),
+ fStepMass(kFALSE),
+ fStepMassWidth(kFALSE),
fSignalStep(-1),
fCorrNom(-1),
fCorrDenom(-1),
fSignalMethods(0),
fVariables("Pt"),
fOwnerSpectrum(kTRUE),
+ fVisualDebug(kFALSE),
fNvars(0),
fVars(0x0),
fNbins(0x0),
fStepSignal(kTRUE),
fStepSignificance(kFALSE),
fStepSOB(kFALSE),
+ fStepMass(kFALSE),
+ fStepMassWidth(kFALSE),
fSignalStep(-1),
fCorrNom(-1),
fCorrDenom(-1),
fSignalMethods(0),
fVariables("Pt"),
fOwnerSpectrum(kTRUE),
+ fVisualDebug(kFALSE),
fNvars(0),
fVars(0x0),
fNbins(0x0),
if (fStepSignal) nAddStep+=2;
if (fStepSignificance) ++nAddStep;
if (fStepSOB) ++nAddStep;
+ if (fStepMass) ++nAddStep;
+ if (fStepMassWidth) ++nAddStep;
Int_t nStep=nAddStep*(fSignalMethods.GetEntries());
if (fSignalMethods.GetEntries()>1) nStep+=nAddStep;
for (Int_t iMethod=0; iMethod<fSignalMethods.GetEntries(); ++iMethod){
TString name(fSignalMethods.UncheckedAt(iMethod)->GetName());
if (fStepSignal){
- fCFSpectrum->SetStepTitle(steps++,(name+" (Siganl)").Data());
- fCFSpectrum->SetStepTitle(steps++,(name+" (Corrected Siganl)").Data());
+ fCFSpectrum->SetStepTitle(steps++,(name+" (Signal)").Data());
+ fCFSpectrum->SetStepTitle(steps++,(name+" (Corrected Signal)").Data());
}
if (fStepSignificance){
fCFSpectrum->SetStepTitle(steps++,(name+" (Significance)").Data());
if (fStepSOB){
fCFSpectrum->SetStepTitle(steps++,(name+" (S/B)").Data());
}
+ if (fStepMass){
+ fCFSpectrum->SetStepTitle(steps++,(name+" (Mass)").Data());
+ }
+ if (fStepMassWidth){
+ fCFSpectrum->SetStepTitle(steps++,(name+" (Mass width)").Data());
+ }
}
if (fSignalMethods.GetEntries()>1){
for (Int_t iMethod=0; iMethod<fSignalMethods.GetEntries(); ++iMethod){
AliDielectronSignalBase *signalMethod=(AliDielectronSignalBase*)fSignalMethods.At(iMethod);
signalMethod->Process(&arrPairTypes);
+ if (fVisualDebug){
+ TCanvas *c=(TCanvas*)gROOT->GetListOfCanvases()->FindObject("SpectrumVisualDebug");
+ if (!c) c=new TCanvas("SpectrumVisualDebug","SpectrumVisualDebug");
+ c->Clear();
+ TString binsProc;
+ for (Int_t ivar=0; ivar<fNvars; ++ivar) binsProc+=Form("_%02d",fCurrentBins[ivar]);
+ signalMethod->Draw("stat");
+ binsProc.Append(".png");
+ binsProc.Prepend("SpectrumVisualDebug");
+ c->Update();
+ c->Print(binsProc.Data());
+ }
const TVectorD &val=signalMethod->GetValues();
const TVectorD &err=signalMethod->GetErrors();
fCFSpectrum->GetGrid(step)->SetElementError(fCurrentBins,err(3));
++step;
}
+
+ if (fStepMass) {
+ fCFSpectrum->GetGrid(step)->SetElement(fCurrentBins,val(4));
+ fCFSpectrum->GetGrid(step)->SetElementError(fCurrentBins,err(4));
+ ++step;
+ }
+
+ if (fStepMassWidth) {
+ fCFSpectrum->GetGrid(step)->SetElement(fCurrentBins,val(5));
+ fCFSpectrum->GetGrid(step)->SetElementError(fCurrentBins,err(5));
+ ++step;
+ }
}// end method loop
arrPairTypes.Delete();