Skip to content

Commit 91ad882

Browse files
committed
Add RCT flag checks in UPCCandidateProducer
1 parent 8288795 commit 91ad882

1 file changed

Lines changed: 40 additions & 0 deletions

File tree

PWGUD/TableProducer/UPCCandidateProducer.cxx

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
#include "PWGUD/DataModel/UDTables.h"
2020

2121
#include "Common/CCDB/EventSelectionParams.h"
22+
#include "Common/CCDB/RCTSelectionFlags.h"
2223
#include "Common/DataModel/EventSelection.h"
2324
#include "Common/DataModel/PIDResponseTOF.h"
2425
#include "Common/DataModel/PIDResponseTPC.h"
@@ -57,6 +58,7 @@
5758

5859
using namespace o2::framework;
5960
using namespace o2::framework::expressions;
61+
using namespace o2::aod::rctsel;
6062

6163
struct UpcCandProducer {
6264
bool fDoMC{false};
@@ -91,6 +93,9 @@ struct UpcCandProducer {
9193
std::vector<bool> fwdSelectors;
9294
std::vector<bool> barrelSelectors;
9395

96+
// RCT flag checker
97+
RCTFlagsChecker myRCTChecker;
98+
9499
// skimmer flags
95100
// choose a source of signal MC events
96101
Configurable<int> fSignalGenID{"signalGenID", 1, "Signal generator ID"};
@@ -125,9 +130,15 @@ struct UpcCandProducer {
125130
Configurable<bool> fRequireNoTimeFrameBorder{"requireNoTimeFrameBorder", true, "Require kNoTimeFrameBorder selection bit"};
126131
Configurable<bool> fRequireNoITSROFrameBorder{"requireNoITSROFrameBorder", true, "Require kNoITSROFrameBorder selection bit"};
127132

133+
Configurable<std::string> rctLabel{"rctLabel", "CBT_muon", "RCT label to use, options: CBT, CBT_hadronPID, CBT_electronPID, CBT_calo, CBT_muon, CBT_muon_glo"};
134+
Configurable<bool> checkZDC{"checkZDC", false, "Consider ZDC quality"};
135+
Configurable<bool> useLAasBad{"useLAasBad", false, "Consider Lim acc flag as Bad"};
136+
128137
// QA histograms
129138
HistogramRegistry histRegistry{"HistRegistry", {}, OutputObjHandlingPolicy::AnalysisObject};
130139

140+
using CollisionsSels = o2::soa::Join<o2::aod::Collisions, o2::aod::EvSels>;
141+
131142
using BCsWithBcSels = o2::soa::Join<o2::aod::BCs, o2::aod::BcSels, o2::aod::BCFlags>;
132143

133144
using ForwardTracks = o2::soa::Join<o2::aod::UDFwdTracksProp, o2::aod::UDFwdTracksCovProp>;
@@ -146,6 +157,9 @@ struct UpcCandProducer {
146157

147158
upcCuts = (UPCCutparHolder)inputCuts;
148159

160+
// initialize RCT flag checker
161+
myRCTChecker.init(rctLabel.value, checkZDC.value, useLAasBad.value);
162+
149163
const AxisSpec axisTrgCounters{10, 0.5, 10.5, ""};
150164
histRegistry.add("hCountersTrg", "", kTH1F, {axisTrgCounters});
151165
histRegistry.get<TH1>(HIST("hCountersTrg"))->GetXaxis()->SetBinLabel(1, "TCE");
@@ -179,6 +193,11 @@ struct UpcCandProducer {
179193
histRegistry.get<TH1>(HIST("BarrelsSelCounter"))->GetXaxis()->SetBinLabel(upchelpers::kBarrelSelTPCChi2 + 1, "TPCChi2");
180194
histRegistry.get<TH1>(HIST("BarrelsSelCounter"))->GetXaxis()->SetBinLabel(upchelpers::kBarrelSelDCAXY + 1, "DCAXY");
181195
histRegistry.get<TH1>(HIST("BarrelsSelCounter"))->GetXaxis()->SetBinLabel(upchelpers::kBarrelSelDCAZ + 1, "DCAZ");
196+
197+
histRegistry.add("RCTSelCounter", "RCTSelCounter", kTH1F, {{3, 0.5, 3.5}});
198+
histRegistry.get<TH1>(HIST("RCTSelCounter"))->GetXaxis()->SetBinLabel(1, "Before RCT sel");
199+
histRegistry.get<TH1>(HIST("RCTSelCounter"))->GetXaxis()->SetBinLabel(2, "After RCT sel");
200+
histRegistry.get<TH1>(HIST("RCTSelCounter"))->GetXaxis()->SetBinLabel(3, "RCT rejected");
182201
}
183202

184203
template <typename T>
@@ -682,6 +701,13 @@ struct UpcCandProducer {
682701
uint64_t trackBC = 0;
683702
if (trk.has_collision()) {
684703
const auto& col = trk.collision();
704+
auto bcRCT = col.bc_as<TBCs>();
705+
histRegistry.get<TH1>(HIST("RCTSelCounter"))->Fill(1);
706+
if(!myRCTChecker(bcRCT)){
707+
histRegistry.get<TH1>(HIST("RCTSelCounter"))->Fill(3);
708+
continue;
709+
}
710+
histRegistry.get<TH1>(HIST("RCTSelCounter"))->Fill(2);
685711
nContrib = col.numContrib();
686712
trackBC = col.bc_as<TBCs>().globalBC();
687713
hasTrackBC = true;
@@ -725,6 +751,13 @@ struct UpcCandProducer {
725751
if (!trk.has_collision())
726752
continue;
727753
const auto& col = trk.collision();
754+
auto bcRCT = col.bc_as<TBCs>();
755+
histRegistry.get<TH1>(HIST("RCTSelCounter"))->Fill(1);
756+
if(!myRCTChecker(bcRCT)){
757+
histRegistry.get<TH1>(HIST("RCTSelCounter"))->Fill(3);
758+
continue;
759+
}
760+
histRegistry.get<TH1>(HIST("RCTSelCounter"))->Fill(2);
728761
nContrib = col.numContrib();
729762
trackBC = col.bc_as<TBCs>().globalBC();
730763
hasTrackBC = true;
@@ -765,6 +798,13 @@ struct UpcCandProducer {
765798
if (!trk.has_collision())
766799
continue;
767800
const auto& col = trk.collision();
801+
auto bcRCT = col.bc_as<TBCs>();
802+
histRegistry.get<TH1>(HIST("RCTSelCounter"))->Fill(1);
803+
if(!myRCTChecker(bcRCT)){
804+
histRegistry.get<TH1>(HIST("RCTSelCounter"))->Fill(3);
805+
continue;
806+
}
807+
histRegistry.get<TH1>(HIST("RCTSelCounter"))->Fill(2);
768808
nContrib = col.numContrib();
769809
trackBC = col.bc_as<TBCs>().globalBC();
770810
const auto& bc = col.bc_as<TBCs>();

0 commit comments

Comments
 (0)