fElementList(NULL),
fNModules(nm),
fName(name),
- fPadTitles(NULL)
+ fPadTitles(NULL),
+ fInvMassCanvas(NULL)
{
// Constructor.
- SetMaxHistograms(9);
+ SetMaxHistograms(6);
fPadTitles = new TString[GetMaxHistograms()];
-
+
for(int i = 0; i < GetMaxHistograms(); i++) {
fPadTitles[i] = "";
}
-
+
}
delete fElementList;
}
fElementList = NULL;
+
+ if(fPadTitles)
+ delete [] fPadTitles;
+ fPadTitles = NULL;
+
}
if(!fCanvas) {
fCanvas = CreateCanvas(Form("%s QA", fName.Data()), Form("%s QA", fName.Data()));
- fCanvas->Divide(3, 3);
+ fCanvas->Divide(3, 2);
}
+ if(!fInvMassCanvas) {
+ fInvMassCanvas = CreateCanvas(Form("%s IM", fName.Data()), Form("%s IM", fName.Data()));
+ fInvMassCanvas->Divide(3, 2);
+ }
+
+
AddHistogramsToCanvas(block, fCanvas, fHistoCount);
void AliHLTEveCalo::UpdateElements() {
//See header file for documentation
if(fCanvas) fCanvas->Update();
+ if(fInvMassCanvas) fInvMassCanvas->Update();
+
if(fBoxSetDigits) {
for(int im = 0; im < fNModules; im++) {
}
+void AliHLTEveCalo::DrawInvMassHistogram(TH1F * histo) {
+
+ fInvMassCanvas->cd(++fHistoCount);
+
+ histo->SetAxisRange(histo->GetXaxis()->GetBinLowEdge(histo->FindFirstBinAbove(0, 1) - 3), histo->GetXaxis()->GetBinUpEdge(histo->FindLastBinAbove(0, 1) + 3), "X");
+ histo->Fit("gaus", "", "", histo->GetXaxis()->GetBinLowEdge(histo->FindFirstBinAbove(0, 1)), histo->GetXaxis()->GetBinUpEdge(histo->FindLastBinAbove(0, 1)));
+
+ histo->Draw();
+
+}
+
void AliHLTEveCalo::AddHistogramsToCanvas(AliHLTHOMERBlockDesc * block, TCanvas * canvas, Int_t &/*cdCount*/) {
//See header file for documentation
if ( ! block->GetClassName().CompareTo("TObjArray")) {
TIter next((TObjArray*)(block->GetTObject()));
TObject *object;
-
- while (( object = (TObject*) next())) {
-
- Int_t iPad = GetPadNumber((static_cast<TH1*>(object))->GetName());
- canvas->cd(iPad);
-
- //Check if histo is 2D histo
- TH2F* histo2 = dynamic_cast<TH2F*>(object);
- if(histo2){
+
+ while (( object = (TObject*) next())) {
- Int_t lb = histo2->FindLastBinAbove(0,1);
- if(lb > -1) {
- histo2->SetAxisRange(0, histo2->GetXaxis()->GetBinUpEdge(histo2->FindLastBinAbove(0, 1) + 3), "X");
- histo2->SetAxisRange(0, histo2->GetYaxis()->GetBinUpEdge(histo2->FindLastBinAbove(0, 2) + 3), "Y");
- }
+ TString name = static_cast<TH1*>(object)->GetName();
+ if(name.Contains("InvMass")){
+ DrawInvMassHistogram(static_cast<TH1F*>(object));
- histo2->Draw("COLZ");
- }
-
+ } else {
- //Must be 1D histo
- else {
- TH1F* histo = dynamic_cast<TH1F*>(object);
- if (histo) {
-
- TString name = histo->GetName();
+
+ Int_t iPad = GetPadNumber(name);
+ canvas->cd(iPad);
+
+
+ //Check if histo is 2D histo
+ TH2F* histo2 = dynamic_cast<TH2F*>(object);
+ if(histo2){
- if(name.Contains("Energy")) {
- histo->SetAxisRange(0, histo->GetXaxis()->GetBinUpEdge(histo->FindLastBinAbove(0, 1) + 3), "X");
+ Int_t lb = histo2->FindLastBinAbove(0,1);
+ if(lb > -1) {
+ histo2->SetAxisRange(0, histo2->GetXaxis()->GetBinUpEdge(histo2->FindLastBinAbove(0, 1) + 3), "X");
+ histo2->SetAxisRange(0, histo2->GetYaxis()->GetBinUpEdge(histo2->FindLastBinAbove(0, 2) + 3), "Y");
}
-
- else if(name.Contains("InvMass")) {
- histo->SetAxisRange(histo->GetXaxis()->GetBinLowEdge(histo->FindFirstBinAbove(0, 1) - 3), histo->GetXaxis()->GetBinUpEdge(histo->FindLastBinAbove(0, 1) + 3), "X");
- histo->Fit("gaus", "", "", histo->GetXaxis()->GetBinLowEdge(histo->FindFirstBinAbove(0, 1)), histo->GetXaxis()->GetBinUpEdge(histo->FindLastBinAbove(0, 1)));
- //histo->Fit("gaus", "", "", histo->GetXaxis()->GetBinLowEdge(histo->FindFirstBinAbove(0, 1)), 0.3);
- //histo->Fit("gaus", )
+
+ histo2->Draw("COLZ");
+ }
+
+
+ //Must be 1D histo
+ else {
+ TH1F* histo = dynamic_cast<TH1F*>(object);
+ if (histo) {
+
+ TString name = histo->GetName();
+
+ if(name.Contains("Energy")) {
+ histo->SetAxisRange(0, histo->GetXaxis()->GetBinUpEdge(histo->FindLastBinAbove(0, 1) + 3), "X");
+ }
+
+
+ histo->Draw();
+ } else {
+ cout <<"AliHLTEveCaloBase::AddHistogramsTocCanvas: Histogram neither TH1F nor TH2F"<<endl;
}
-
- histo->Draw();
- } else {
- cout <<"AliHLTEveCaloBase::AddHistogramsTocCanvas: Histogram neither TH1F nor TH2F"<<endl;
}
}
}
-
} else if ( ! block->GetClassName().CompareTo("TH1F")) {