}
//________________________________________________________________
-TH1F* AliDielectronHFhelper::GetHistogram(const char *step, TObjArray *histArr)
+TH1* AliDielectronHFhelper::GetHistogram(const char *step, TObjArray *histArr)
{
//
// main function to recieve a single histogram
AliDebug(1,Form(" Step %s selected",step));
TObjArray *histos= 0x0;
- TH1F *hist = 0x0;
+ TH1 *hist = 0x0;
if(!histArr) {
histos = (TObjArray*) fArrPairType->FindObject(step)->Clone("tmpArr");
}
}
//________________________________________________________________
-TH1F* AliDielectronHFhelper::FindHistograms(TObjArray *histos)
+TH1* AliDielectronHFhelper::FindHistograms(TObjArray *histos)
{
//
// exclude histograms
if(!histos->At(i)) continue;
// collect binning from histo title
- TString title = histos->At(i)->GetTitle();
+ TString title = histos->At(i)->GetName();
if(title.IsNull()) continue;
AliDebug(10,Form(" histo title: %s",title.Data()));
AliDebug(1,Form(" Compression: %d histograms left",histos->GetEntriesFast()));
// merge histograms
- TH1F* hist = MergeHistos(histos);
+ TH1* hist = MergeHistos(histos);
if(hist) AliDebug(1,Form(" Merging: %e histogram entries",hist->GetEntries()));
return hist;
}
//________________________________________________________________
-TH1F* AliDielectronHFhelper::MergeHistos(TObjArray *arr)
+TH1* AliDielectronHFhelper::MergeHistos(TObjArray *arr)
{
//
// merge histos to one single histogram
if(arr->GetEntriesFast()<1) { AliError(" No more histosgrams left!"); return 0x0; }
- TH1F *final=(TH1F*) arr->At(0)->Clone();
+ TObject *final=arr->At(0)->Clone();
if(!final) return 0x0;
- final->Reset("CE");
- final->SetTitle(""); //TODO: change in future
- for(Int_t i=0; i<arr->GetEntriesFast(); i++) {
- final->Add((TH1F*)arr->At(i));
+ TList listH;
+ TString listHargs;
+ listHargs.Form("((TCollection*)0x%lx)", (ULong_t)&listH);
+ Int_t error = 0;
+
+ // final->Reset("CE");
+ // final->SetTitle(""); //TODO: change in future
+ for(Int_t i=1; i<arr->GetEntriesFast(); i++) {
+ listH.Add(arr->At(i));
+ // final->Add((TH1*)arr->At(i));
}
- arr->Clear();
+ // arr->Clear();
- return final;
+ final->Execute("Merge", listHargs.Data(), &error);
+ return (TH1*)final;
}
//________________________________________________________________
// build array with bin variable, minimum and maximum bin values
- TString titleFIRST = arr->First()->GetTitle();
- TString titleLAST = arr->Last()->GetTitle();
+ TString titleFIRST = arr->First()->GetName();
+ TString titleLAST = arr->Last()->GetName();
TObjArray* binvarsF = titleFIRST.Tokenize(":#");
TObjArray* binvarsL = titleLAST.Tokenize(":#");
Double_t binmin[kMaxCuts]= {0.0};