Skip to content

Commit 5fb93ae

Browse files
authored
TRD: Grab CCDB Chamber Status for plots (#2075)
* TRD: change type of mChamberStatus to array* * TRD: create separate function to plot chamber status * TRD: functions clean up * TRD: apply chamber status changes to digits task * TRD: clean up * TRD: create TRDHelpers class * TRD: color options for drawing chamber status * TRD: change tracklets task histogram to shared pointers * TRD: set TRDHelpers class as pure static * TRD: merge drawing functions into one * TRD: change definitions for better readibility * better definitions for readibility * TRD: add grid helper function to receive shared pointers * TRD: new variable for chamber status * TRD: Empty, trigger CI
1 parent c012aa5 commit 5fb93ae

8 files changed

Lines changed: 316 additions & 375 deletions

File tree

Modules/TRD/CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
add_library(O2QcTRD)
44

55
target_sources(O2QcTRD PRIVATE src/TrackletCountCheck.cxx src/PulsePositionCheck.cxx src/TrackingTask.cxx src/PulseHeightTrackMatch.cxx src/TrackletsCheck.cxx src/TrackletsTask.cxx src/PulseHeightCheck.cxx src/RawData.cxx src/DigitsTask.cxx
6-
src/TRDTrending.cxx src/TrendingTaskConfigTRD.cxx src/PulseHeightPostProcessing.cxx)
6+
src/TRDTrending.cxx src/TrendingTaskConfigTRD.cxx src/PulseHeightPostProcessing.cxx src/TRDHelpers.cxx)
77

88
target_include_directories(
99
O2QcTRD
@@ -26,6 +26,7 @@ add_root_dictionary(O2QcTRD
2626
include/TRD/PulseHeightTrackMatch.h
2727
include/TRD/TrackletsCheck.h
2828
include/TRD/TrackletsTask.h
29+
include/TRD/TRDHelpers.h
2930
include/TRD/PulseHeightCheck.h
3031
include/TRD/RawData.h
3132
include/TRD/PulseHeightPostProcessing.h

Modules/TRD/include/TRD/DigitsTask.h

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -47,10 +47,7 @@ class DigitsTask final : public TaskInterface
4747
void endOfActivity(const Activity& activity) override;
4848
void reset() override;
4949
void buildHistograms();
50-
void drawTrdLayersGrid(TH2F* hist);
5150
void drawLinesOnPulseHeight(TH1F* h);
52-
void fillLinesOnHistsPerLayer(int iLayer);
53-
void drawHashOnLayers(int layer, int hcid, int col, int rowstart, int rowend);
5451
void buildChamberIgnoreBP();
5552

5653
private:
@@ -87,7 +84,7 @@ class DigitsTask final : public TaskInterface
8784

8885
// CCDB objects
8986
const o2::trd::NoiseStatusMCM* mNoiseMap = nullptr;
90-
const o2::trd::HalfChamberStatusQC* mChamberStatus = nullptr;
87+
const std::array<int, o2::trd::constants::MAXCHAMBER>* mChamberStatus = nullptr;
9188
};
9289

9390
} // namespace o2::quality_control_modules::trd

Modules/TRD/include/TRD/LinkDef.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
#pragma link C++ class o2::quality_control_modules::trd::RawData + ;
99
#pragma link C++ class o2::quality_control_modules::trd::PulseHeightCheck + ;
1010
#pragma link C++ class o2::quality_control_modules::trd::TrackletsTask + ;
11+
#pragma link C++ class o2::quality_control_modules::trd::TRDHelpers + ;
1112
#pragma link C++ class o2::quality_control_modules::trd::TrackletsCheck + ;
1213
#pragma link C++ class o2::quality_control::postprocessing::TRDTrending + ;
1314
#pragma link C++ class o2::quality_control::postprocessing::PulseHeightPostProcessing + ;
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
// Copyright 2019-2020 CERN and copyright holders of ALICE O2.
2+
// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
3+
// All rights not expressly granted are reserved.
4+
//
5+
// This software is distributed under the terms of the GNU General Public
6+
// License v3 (GPL Version 3), copied verbatim in the file "COPYING".
7+
//
8+
// In applying this license CERN does not waive the privileges and immunities
9+
// granted to it by virtue of its status as an Intergovernmental Organization
10+
// or submit itself to any jurisdiction.
11+
12+
///
13+
/// \file TRDHelpers.h
14+
///
15+
16+
#ifndef QC_MODULE_TRD_TRDHELPER_H
17+
#define QC_MODULE_TRD_TRDHELPER_H
18+
19+
#include "QualityControl/TaskInterface.h"
20+
#include "TRDQC/StatusHelper.h"
21+
22+
class TH2F;
23+
24+
using namespace o2::quality_control::core;
25+
26+
namespace o2::quality_control_modules::trd
27+
{
28+
29+
class TRDHelpers
30+
{
31+
public:
32+
TRDHelpers() = default;
33+
~TRDHelpers() = default;
34+
35+
static void addChamberGridToHistogram(std::shared_ptr<TH2F> histogram, int unitsPerSection);
36+
static void drawChamberStatusOnHistograms(const std::array<int, o2::trd::constants::MAXCHAMBER>* ptrChamber, std::shared_ptr<TH2F> chamberMap, std::array<std::shared_ptr<TH2F>, o2::trd::constants::NLAYER> ptrLayersArray, int unitsPerSection);
37+
static void drawHalfChamberMask(int halfChamberStatus, std::pair<float, float> xCoords, std::pair<float, float> yCoords, std::shared_ptr<TH2F> histogram);
38+
static bool isHalfChamberMasked(int halfChamberId, const std::array<int, o2::trd::constants::MAXCHAMBER>* ptrChamber);
39+
40+
private:
41+
// Chamber status values definitions, used for masking
42+
static const int mConfiguredChamberStatus = 3;
43+
static const int mEmptyChamberStatus = 0;
44+
static const int mErrorChamberStatus = 99;
45+
};
46+
47+
} // namespace o2::quality_control_modules::trd
48+
49+
#endif

Modules/TRD/include/TRD/TrackletsTask.h

Lines changed: 12 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -45,31 +45,26 @@ class TrackletsTask final : public TaskInterface
4545
void endOfActivity(const Activity& activity) override;
4646
void reset() override;
4747
void buildHistograms();
48-
void drawLinesMCM(TH2F* histo);
49-
void drawTrdLayersGrid(TH2F* hist);
50-
void buildTrackletLayers();
51-
void drawHashedOnHistsPerLayer(int layer); //, int hcid, int rowstart, int rowend);
52-
void drawHashOnLayers(int layer, int hcid, int rowstart, int rowend);
5348

5449
private:
5550
// settings
5651
bool mRemoveNoise{ false };
5752
// histograms
58-
std::array<TH1F*, 3> mTrackletQ;
59-
TH1F* mTrackletSlope = nullptr;
60-
TH1F* mTrackletHCID = nullptr;
61-
TH1F* mTrackletPosition = nullptr;
62-
TH1F* mTrackletsPerEvent = nullptr;
63-
TH1F* mTrackletsPerEventPP = nullptr;
64-
TH1F* mTrackletsPerEventPbPb = nullptr;
65-
TH2F* mTrackletsPerHC2D = nullptr;
66-
TH1F* mTrackletsPerTimeFrame = nullptr;
67-
TH1F* mTriggersPerTimeFrame = nullptr;
68-
std::array<TH2F*, 6> mLayers;
53+
std::array<std::shared_ptr<TH1F>, 3> mTrackletQ;
54+
std::shared_ptr<TH1F> mTrackletSlope = nullptr;
55+
std::shared_ptr<TH1F> mTrackletHCID = nullptr;
56+
std::shared_ptr<TH1F> mTrackletPosition = nullptr;
57+
std::shared_ptr<TH1F> mTrackletsPerEvent = nullptr;
58+
std::shared_ptr<TH1F> mTrackletsPerEventPP = nullptr;
59+
std::shared_ptr<TH1F> mTrackletsPerEventPbPb = nullptr;
60+
std::shared_ptr<TH2F> mTrackletsPerHC2D = nullptr;
61+
std::shared_ptr<TH1F> mTrackletsPerTimeFrame = nullptr;
62+
std::shared_ptr<TH1F> mTriggersPerTimeFrame = nullptr;
63+
std::array<std::shared_ptr<TH2F>, o2::trd::constants::NLAYER> mLayers;
6964

7065
// data to pull from CCDB
7166
const o2::trd::NoiseStatusMCM* mNoiseMap = nullptr;
72-
const o2::trd::HalfChamberStatusQC* mChamberStatus = nullptr;
67+
const std::array<int, o2::trd::constants::MAXCHAMBER>* mChamberStatus = nullptr;
7368
};
7469

7570
} // namespace o2::quality_control_modules::trd

0 commit comments

Comments
 (0)