#include <TString.h>
#include <TSystem.h>
#include <TBox.h>
+#include <TLine.h>
// --- Standard library ---
Double_t xminQmax = histRawsQmaxVsSector->GetXaxis()->GetXmin();
Double_t xmaxQmax = histRawsQmaxVsSector->GetXaxis()->GetXmax();
- Double_t yminQmax = histRawsQmaxVsSector->GetMinimum();
- Double_t ymaxQmax = histRawsQmaxVsSector->GetMaximum();
+// Double_t yminQmax = histRawsQmaxVsSector->GetMinimum();
+// Double_t ymaxQmax = histRawsQmaxVsSector->GetMaximum();
- TBox* boxOccOk = new TBox(xminOcc,0,xmaxOcc,fOccHighLimit);
- boxOccOk->SetFillColor(kGreen);
- histRawsOccupancyVsSector->GetListOfFunctions()->Add(boxOccOk);
-
- TBox* boxQmaxOk = new TBox(xminQmax,fQmaxLowLimit,xmaxQmax,fQmaxHighLimit);
- boxQmaxOk->SetFillColor(kGreen);
- histRawsQmaxVsSector->GetListOfFunctions()->Add(boxQmaxOk);
+ // For reasons not understood the following stopped working
+ // in the DQM and instead lines were adopted:
+// TBox* boxOccOk = new TBox(xminOcc,0,xmaxOcc,fOccHighLimit);
+// boxOccOk->SetFillColor(kGreen);
+// histRawsOccupancyVsSector->GetListOfFunctions()->Add(boxOccOk);
+
+ TLine* lineOccMin = new TLine(xminOcc,0,xmaxOcc,0);
+ lineOccMin->SetLineColor(kGreen);
+ lineOccMin->SetLineWidth(2);
+ histRawsOccupancyVsSector->GetListOfFunctions()->Add(lineOccMin);
+
+ TLine* lineOccMax = new TLine(xminOcc,fOccHighLimit, xmaxOcc,fOccHighLimit);
+ lineOccMax->SetLineColor(kGreen);
+ lineOccMax->SetLineWidth(2);
+ histRawsOccupancyVsSector->GetListOfFunctions()->Add(lineOccMax);
+
+
+ // For some reason this dtopped working
+// TBox* boxQmaxOk = new TBox(xminQmax,fQmaxLowLimit,xmaxQmax,fQmaxHighLimit);
+// boxQmaxOk->SetFillColor(kGreen);
+// histRawsQmaxVsSector->GetListOfFunctions()->Add(boxQmaxOk);
+
+ TLine* lineQmaxMin = new TLine(xminQmax,fQmaxLowLimit, xmaxQmax,fQmaxLowLimit);
+ lineQmaxMin->SetLineColor(kGreen);
+ lineQmaxMin->SetLineWidth(2);
+ histRawsQmaxVsSector->GetListOfFunctions()->Add(lineQmaxMin);
+
+ TLine* lineQmaxMax = new TLine(xminQmax,fQmaxHighLimit, xmaxQmax,fQmaxHighLimit);
+ lineQmaxMax->SetLineColor(kGreen);
+ lineQmaxMax->SetLineWidth(2);
+ histRawsQmaxVsSector->GetListOfFunctions()->Add(lineQmaxMax);
for(Int_t bin = 1; bin <= 72; bin++) {
new TBox(histRawsOccupancyVsSector->GetXaxis()->GetBinLowEdge(bin), yminOcc,
histRawsOccupancyVsSector->GetXaxis()->GetBinUpEdge(bin), ymaxOcc);
boxErr->SetFillColor(kRed);
- histRawsOccupancyVsSector->GetListOfFunctions()->Add(boxErr);
+ // histRawsOccupancyVsSector->GetListOfFunctions()->Add(boxErr);
}
if(histRawsQmaxVsSector->GetBinContent(bin)<fQmaxLowLimit||
// Mark that histogram has error
histRawsQmaxVsSector->SetBit(AliQAv1::GetQABit());
- TBox* boxErr =
- new TBox(histRawsQmaxVsSector->GetXaxis()->GetBinLowEdge(bin), yminQmax,
- histRawsQmaxVsSector->GetXaxis()->GetBinUpEdge(bin), ymaxQmax);
- boxErr->SetFillColor(kRed);
- histRawsQmaxVsSector->GetListOfFunctions()->Add(boxErr);
+ // For reasons not understood the following stopped working
+ // in the DQM and instead lines were adopted:
+// TBox* boxErr =
+// new TBox(histRawsQmaxVsSector->GetXaxis()->GetBinLowEdge(bin), yminQmax,
+// histRawsQmaxVsSector->GetXaxis()->GetBinUpEdge(bin), ymaxQmax);
+// boxErr->SetFillColor(kRed);
+ // histRawsQmaxVsSector->GetListOfFunctions()->Add(boxErr);
}
}
+ // For reasons not understood the following stopped working
+ // in the DQM and instead lines were adopted:
// Now we have to add a copy of the histograms to draw
// because the boxes covers the data points
- TH1F* hOccCopy = new TH1F(*histRawsOccupancyVsSector);
- hOccCopy->SetOption("SAME P");
- histRawsOccupancyVsSector->GetListOfFunctions()->Add(hOccCopy);
+// TH1F* hOccCopy = new TH1F(*histRawsOccupancyVsSector);
+// hOccCopy->SetOption("SAME P");
+// histRawsOccupancyVsSector->GetListOfFunctions()->Add(hOccCopy);
- TH1F* hQmaxCopy = new TH1F(*histRawsQmaxVsSector);
- hQmaxCopy->SetOption("SAME P");
- histRawsQmaxVsSector->GetListOfFunctions()->Add(hQmaxCopy);
+// TH1F* hQmaxCopy = new TH1F(*histRawsQmaxVsSector);
+// hQmaxCopy->SetOption("SAME P");
+// histRawsQmaxVsSector->GetListOfFunctions()->Add(hQmaxCopy);
} // end beautify
}
new TH1F("hRawsOccupancy", "Occupancy (all pads); Occupancy; Counts",
100, 0, 1);
histRawsOccupancy->Sumw2();
- Add2RawsList(histRawsOccupancy, kRawsOccupancy, expert, image, !saveCorr);
+ Add2RawsList(histRawsOccupancy, kRawsOccupancy, expert, !image, !saveCorr);
TH1F * histRawsOccupancyVsSector =
new TH1F("hRawsOccupancyVsSector", "Occupancy vs sector; Sector; Occupancy",
new TH1F("hRawsNClustersPerEventVsSector", "Nclusters per event vs sector; Sector; Nclusters per event",
72, 0, 72);
histRawsNClustersPerEventVsSector->Sumw2();
- Add2RawsList(histRawsNClustersPerEventVsSector, kRawsNClustersPerEventVsSector, expert, image, !saveCorr);
+ Add2RawsList(histRawsNClustersPerEventVsSector, kRawsNClustersPerEventVsSector, expert, !image, !saveCorr);
TH1F * histRawsQVsSector =
new TH1F("hRawsQVsSector", "<Q> vs sector; Sector; <Q>",
72, 0, 72);
histRawsQVsSector->Sumw2();
- Add2RawsList(histRawsQVsSector, kRawsQVsSector, expert, image, !saveCorr);
+ Add2RawsList(histRawsQVsSector, kRawsQVsSector, expert, !image, !saveCorr);
TH1F * histRawsQmaxVsSector =
new TH1F("hRawsQmaxVsSector", "<Qmax> vs sector; Sector; <Qmax>",
new TH1F("hRawsOccupancyVsEvent", hOccHelp->GetTitle(),
hOccHelp->GetXaxis()->GetNbins(),
hOccHelp->GetXaxis()->GetXmin(), hOccHelp->GetXaxis()->GetXmax());
+ histRawsOccupancyVsEvent->GetXaxis()->SetTitle(hOccHelp->GetXaxis()->GetTitle());
+ histRawsOccupancyVsEvent->GetYaxis()->SetTitle(hOccHelp->GetYaxis()->GetTitle());
histRawsOccupancyVsEvent->SetMarkerStyle(20);
histRawsOccupancyVsEvent->SetOption("P");
histRawsOccupancyVsEvent->SetStats(kFALSE);
new TH1F("hRawsNclustersVsEvent", hNclHelp->GetTitle(),
hNclHelp->GetXaxis()->GetNbins(),
hNclHelp->GetXaxis()->GetXmin(), hNclHelp->GetXaxis()->GetXmax());
+ histRawsNclustersVsEvent->GetXaxis()->SetTitle(hNclHelp->GetXaxis()->GetTitle());
+ histRawsNclustersVsEvent->GetYaxis()->SetTitle(hNclHelp->GetYaxis()->GetTitle());
histRawsNclustersVsEvent->SetMarkerStyle(20);
histRawsNclustersVsEvent->SetOption("P");
histRawsNclustersVsEvent->SetStats(kFALSE);
}
}
+//____________________________________________________________________________
+void AliTPCQADataMakerRec::ResetDetector(AliQAv1::TASKINDEX_t task)
+{
+ // Overwrites general method for RAW data.
+ // The AliTPCdataQA elements that does the internal processing are
+ // in the case they have processed data deleted and new are created
+
+ if ( task != AliQAv1::kRAWS )
+ AliQADataMakerRec::ResetDetector(task);
+
+ for (Int_t specie = 0 ; specie < AliRecoParam::kNSpecies ; specie++) {
+
+ if ( fTPCdataQA[specie] != NULL) { // exist
+
+ if(fTPCdataQA[specie]->GetEventCounter()>0) { // has processed data
+
+ // old configuration
+ Int_t firstTime = fTPCdataQA[specie]->GetFirstTimeBin();
+ Int_t lastTime = fTPCdataQA[specie]->GetLastTimeBin();
+ Int_t minADC = fTPCdataQA[specie]->GetAdcMin();
+ Int_t maxADC = fTPCdataQA[specie]->GetAdcMax();
+ Int_t maxEvents = fTPCdataQA[specie]->GetMaxEvents();
+ Int_t eventsPerBin = fTPCdataQA[specie]->GetEventsPerBin();
+
+ //delete old
+ delete fTPCdataQA[specie];
+
+ // create new
+ fTPCdataQA[specie] = new AliTPCdataQA(AliRecoParam::ConvertIndex(specie));
+ // configure new
+ LoadMaps(); // Load Altro maps
+ fTPCdataQA[specie]->SetAltroMapping(fMapping);
+ fTPCdataQA[specie]->SetRangeTime(firstTime, lastTime);
+ fTPCdataQA[specie]->SetRangeAdc(minADC, maxADC);
+ fTPCdataQA[specie]->SetMaxEvents(maxEvents);
+ fTPCdataQA[specie]->SetEventsPerBin(eventsPerBin);
+ }
+ }
+ }
+}