Skip to content

Commit 1c74668

Browse files
committed
add QA histograms with output/input table size ratio
1 parent 527055a commit 1c74668

1 file changed

Lines changed: 26 additions & 0 deletions

File tree

DPG/Tasks/TPC/tpcSkimsTableCreator.cxx

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@
4242
#include <Framework/AnalysisHelpers.h>
4343
#include <Framework/AnalysisTask.h>
4444
#include <Framework/Configurable.h>
45+
#include <Framework/HistogramRegistry.h>
46+
#include <Framework/HistogramSpec.h>
4547
#include <Framework/InitContext.h>
4648
#include <Framework/runDataProcessing.h>
4749
#include <ReconstructionDataFormats/PID.h>
@@ -106,12 +108,15 @@ struct TreeWriterTpcV0 {
106108
// Configurables for output tables reservation size
107109
Configurable<float> reserveV0Ratio{"reserveV0Ratio", 0.06, "Ratio of how many tracks from V0s are expected in the output table to the input V0 table size"};
108110
Configurable<float> reserveCascRatio{"reserveCascRatio", 0.003, "Ratio of how many tracks from cascades are expected in the output table to the input Cascade table size"};
111+
Configurable<bool> saveReserveQaHisto{"saveReserveQaHisto", true, "Flag to save the DF-wise ratio of output table size to that of input table"};
109112
// Configurables for run condtion table
110113
Configurable<std::string> rctLabel{"rctLabel", "CBT_hadronPID", "select 1 [CBT, CBT_hadronPID, CBT_muon_glo] see O2Physics/Common/CCDB/RCTSelectionFlags.h"};
111114
Configurable<bool> checkZdc{"checkZdc", false, "set ZDC flag for PbPb"};
112115
Configurable<bool> treatLimitedAcceptanceAsBad{"treatLimitedAcceptanceAsBad", false, "reject all events where the detectors relevant for the specified Runlist are flagged as LimitedAcceptance"};
113116
Configurable<bool> requireGoodRct{"requireGoodRct", false, "require good detector flag in run condtion table"};
114117

118+
HistogramRegistry registry{"registry", {}};
119+
115120
// an arbitrary value of N sigma TOF assigned by TOF task to tracks which are not matched to TOF hits
116121
constexpr static float NSigmaTofUnmatched{o2::aod::v0data::kNoTOFValue};
117122
const float nSigmaTofUnmatchedEqualityTolerance{std::fabs(NSigmaTofUnmatched) / 1e4f};
@@ -185,6 +190,11 @@ struct TreeWriterTpcV0 {
185190
ccdb->setFatalWhenNull(false);
186191

187192
rctChecker.init(rctLabel, checkZdc, treatLimitedAcceptanceAsBad);
193+
194+
if (saveReserveQaHisto) {
195+
registry.add("hV0OutputRatio", "V0 out/in ratio;V0 out/in ratio;Entries", {HistType::kTH1F, {{100, 0, reserveV0Ratio}}});
196+
registry.add("hCascOutputRatio", "Casc out/in ratio;Casc out/in ratio;Entries", {HistType::kTH1F, {{100, 0, reserveCascRatio}}});
197+
}
188198
}
189199

190200
template <bool IsCorrectedDeDx, typename V0Casc, typename T>
@@ -535,6 +545,11 @@ struct TreeWriterTpcV0 {
535545
LOG(info) << "nCascEntries = " << nCascEntries;
536546
LOG(info) << "nV0Entries / V0 table size = " << static_cast<double>(nV0Entries) / myV0s.size();
537547
LOG(info) << "nCascEntries / Cascade table size = " << static_cast<double>(nCascEntries) / myCascs.size();
548+
549+
if (saveReserveQaHisto) {
550+
registry.fill(HIST("hV0OutputRatio"), static_cast<double>(nV0Entries) / myV0s.size());
551+
registry.fill(HIST("hCascOutputRatio"), static_cast<double>(nCascEntries) / myCascs.size());
552+
}
538553
} /// runV0
539554

540555
void processStandard(Colls const& collisions,
@@ -660,12 +675,15 @@ struct TreeWriterTpcTof {
660675
Configurable<float> downsamplingTsalisPions{"downsamplingTsalisPions", -1., "Downsampling factor to reduce the number of pions"};
661676
// Configurable for output table reservation size
662677
Configurable<float> reserveTrackRatio{"reserveTrackRatio", 0.005, "Ratio of how many tracks are expected in the output table to the input Tracks table size"};
678+
Configurable<bool> saveReserveQaHisto{"saveReserveQaHisto", true, "Flag to save the DF-wise ratio of output table size to that of input table"};
663679
// Configurables for run condtion table
664680
Configurable<std::string> rctLabel{"rctLabel", "CBT_hadronPID", "select 1 [CBT, CBT_hadronPID, CBT_muon_glo] see O2Physics/Common/CCDB/RCTSelectionFlags.h"};
665681
Configurable<bool> checkZdc{"checkZdc", false, "set ZDC flag for PbPb"};
666682
Configurable<bool> treatLimitedAcceptanceAsBad{"treatLimitedAcceptanceAsBad", false, "reject all events where the detectors relevant for the specified Runlist are flagged as LimitedAcceptance"};
667683
Configurable<bool> requireGoodRct{"requireGoodRct", false, "require good detector flag in run condtion table"};
668684

685+
HistogramRegistry registry{"registry", {}};
686+
669687
struct TofTrack {
670688
bool isApplyHardCutOnly;
671689
double maxMomHardCutOnly;
@@ -720,6 +738,10 @@ struct TreeWriterTpcTof {
720738
ccdb->setFatalWhenNull(false);
721739

722740
rctChecker.init(rctLabel, checkZdc, treatLimitedAcceptanceAsBad);
741+
742+
if (saveReserveQaHisto) {
743+
registry.add("hTrackOutputRatio", "Track out/in ratio;Track out/in ratio;Entries", {HistType::kTH1F, {{100, 0, reserveTrackRatio}}});
744+
}
723745
}
724746

725747
template <bool DoCorrectDeDx, int ModeId, typename T, typename C>
@@ -913,6 +935,10 @@ struct TreeWriterTpcTof {
913935
LOG(info) << "Track table size = " << myTracks.size();
914936
LOG(info) << "nTrackEntries = " << rowTPCTOFTree.lastIndex() + 1;
915937
LOG(info) << "nTrackEntries / Track table size = " << static_cast<double>((rowTPCTOFTree.lastIndex() + 1)) / myTracks.size();
938+
939+
if (saveReserveQaHisto) {
940+
registry.fill(HIST("hTrackOutputRatio"), static_cast<double>((rowTPCTOFTree.lastIndex() + 1)) / myTracks.size());
941+
}
916942
} /// runTof
917943

918944
void processStandard(Colls const& collisions,

0 commit comments

Comments
 (0)