Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion Modules/ITS/include/ITS/ITSFeeTask.h
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,8 @@ class ITSFeeTask final : public TaskInterface
TH2I* mIndexCheck; // should be zero
TH2I* mIdCheck; // should be 0x : e4
TH2I* mRDHSummary;
TH2I* mLaneStatus[NFlags]; // 4 flags for each lane. 3/8/14 lane for each link. 3/2/2 link for each RU. TODO: remove the OK flag in these 4 flag plots, OK flag plot just used to debug.
TH2I* mRDHSummaryCumulative; // RDH plot which does NOT reset at every QC cycle
TH2I* mLaneStatus[NFlags]; // 4 flags for each lane. 3/8/14 lane for each link. 3/2/2 link for each RU. TODO: remove the OK flag in these 4 flag plots, OK flag plot just used to debug.
TH2I* mLaneStatusCumulative[NFlags];
TH2Poly* mLaneStatusOverview[NFlags] = { 0x0 };
TH1I* mLaneStatusSummary[NLayer];
Expand Down
49 changes: 41 additions & 8 deletions Modules/ITS/src/ITSFeeTask.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ ITSFeeTask::~ITSFeeTask()
delete mLaneStatusSummaryOL;
delete mLaneStatusSummaryGlobal;
delete mRDHSummary;
delete mRDHSummaryCumulative;
for (int i = 0; i < NFlags; i++) {
delete mLaneStatus[i];
delete mLaneStatusCumulative[i];
Expand Down Expand Up @@ -144,6 +145,9 @@ void ITSFeeTask::createFeePlots()

mRDHSummary = new TH2I("RDHSummary", "RDH Summary", NFees, 0, NFees, 8, 0, 8);
getObjectsManager()->startPublishing(mRDHSummary);

mRDHSummaryCumulative = new TH2I("RDHSummaryCumulative", "RDH Summary since SOX", NFees, 0, NFees, 8, 0, 8);
getObjectsManager()->startPublishing(mRDHSummaryCumulative);
}

void ITSFeeTask::setAxisTitle(TH1* object, const char* xTitle, const char* yTitle)
Expand Down Expand Up @@ -213,6 +217,20 @@ void ITSFeeTask::setPlotsFormat()
drawLayerName(mRDHSummary);
}

if (mRDHSummaryCumulative) {
setAxisTitle(mRDHSummaryCumulative, "FEEId", "");
mRDHSummaryCumulative->SetStats(0);
mRDHSummaryCumulative->GetYaxis()->SetBinLabel(1, "Missing data");
mRDHSummaryCumulative->GetYaxis()->SetBinLabel(2, "Warning");
mRDHSummaryCumulative->GetYaxis()->SetBinLabel(3, "Error");
mRDHSummaryCumulative->GetYaxis()->SetBinLabel(4, "Fault");
mRDHSummaryCumulative->GetYaxis()->SetBinLabel(5, "ClockEvent");
mRDHSummaryCumulative->GetYaxis()->SetBinLabel(6, "TimebaseEvent");
mRDHSummaryCumulative->GetYaxis()->SetBinLabel(7, "TimebaseUnsyncEvent");
mRDHSummaryCumulative->GetYaxis()->SetBinLabel(8, "Trigger ramp bit");
drawLayerName(mRDHSummaryCumulative);
}

for (int i = 0; i < NFlags; i++) {
if (mLaneStatus[i]) {
setAxisTitle(mLaneStatus[i], "FEEID", "Lane");
Expand Down Expand Up @@ -365,24 +383,39 @@ void ITSFeeTask::monitorData(o2::framework::ProcessingContext& ctx)
// get detector field
uint32_t summaryLaneStatus = o2::raw::RDHUtils::getDetectorField(rdh);
// fill statusVsFeeId if set
if (summaryLaneStatus & (1 << 0))
if (summaryLaneStatus & (1 << 0)) {
mRDHSummary->Fill(ifee, 0); // missing data
if (summaryLaneStatus & (1 << 1))
mRDHSummaryCumulative->Fill(ifee, 0);
}
if (summaryLaneStatus & (1 << 1)) {
mRDHSummary->Fill(ifee, 1); // warning
if (summaryLaneStatus & (1 << 2))
mRDHSummaryCumulative->Fill(ifee, 1);
}
if (summaryLaneStatus & (1 << 2)) {
mRDHSummary->Fill(ifee, 2); // error
if (summaryLaneStatus & (1 << 3))
mRDHSummaryCumulative->Fill(ifee, 2);
}
if (summaryLaneStatus & (1 << 3)) {
mRDHSummary->Fill(ifee, 3); // fault
if (summaryLaneStatus & (1 << 4))
mRDHSummaryCumulative->Fill(ifee, 3);
}
if (summaryLaneStatus & (1 << 4)) {
mRDHSummary->Fill(ifee, 7); // trigger ramp bit
mRDHSummaryCumulative->Fill(ifee, 7);
}
if (summaryLaneStatus & (1 << 26)) {
mRDHSummary->Fill(ifee, 4); // clock evt
mRDHSummaryCumulative->Fill(ifee, 4);
clockEvt = true;
}
if (summaryLaneStatus & (1 << 25))
if (summaryLaneStatus & (1 << 25)) {
mRDHSummary->Fill(ifee, 5); // Timebase evt
if (summaryLaneStatus & (1 << 24))
mRDHSummary->Fill(ifee, 6); // Timebase Unsync evt
mRDHSummaryCumulative->Fill(ifee, 5);
}
if (summaryLaneStatus & (1 << 24)) {
mRDHSummary->Fill(ifee, 6);
mRDHSummaryCumulative->Fill(ifee, 6); // Timebase Unsync evt
}
if ((int)(o2::raw::RDHUtils::getStop(rdh)) && it.size()) { // looking into the DDW0 from the closing packet
const GBTDiagnosticWord* ddw;
try {
Expand Down