Skip to content

Commit b476b6b

Browse files
nzardoshNima Zardoshti
andauthored
EventFiltering : Adding D0 and Lc tagged jet triggers (#5374)
* EventFiltering : Adding D0 and Lc tagged jet triggers * adding to list of filters --------- Co-authored-by: Nima Zardoshti <nzardosh@alicecerno2.cern.ch>
1 parent 7c0e6bc commit b476b6b

8 files changed

Lines changed: 430 additions & 7 deletions

File tree

EventFiltering/CMakeLists.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,11 @@ o2physics_add_dpl_workflow(je-filter
6767
PUBLIC_LINK_LIBRARIES O2Physics::AnalysisCore O2Physics::PWGJECore FastJet::FastJet FastJet::Contrib
6868
COMPONENT_NAME Analysis)
6969

70+
o2physics_add_dpl_workflow(je-hf-filter
71+
SOURCES PWGJE/jetHFFilter.cxx
72+
PUBLIC_LINK_LIBRARIES O2Physics::AnalysisCore O2Physics::PWGJECore FastJet::FastJet FastJet::Contrib
73+
COMPONENT_NAME Analysis)
74+
7075
o2physics_add_dpl_workflow(fje-filter
7176
SOURCES PWGJE/fullJetFilter.cxx
7277
PUBLIC_LINK_LIBRARIES O2Physics::AnalysisCore O2Physics::PWGJECore FastJet::FastJet FastJet::Contrib Boost::system
Lines changed: 150 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,150 @@
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+
// Author: Nima Zardoshti
13+
14+
#include <TMath.h>
15+
#include <cmath>
16+
#include <string>
17+
18+
#include "Framework/ASoA.h"
19+
#include "Framework/ASoAHelpers.h"
20+
#include "Framework/AnalysisDataModel.h"
21+
#include "Framework/AnalysisTask.h"
22+
#include "Framework/runDataProcessing.h"
23+
#include "ReconstructionDataFormats/Track.h"
24+
25+
#include "Common/Core/TrackSelection.h"
26+
#include "Common/Core/TrackSelectionDefaults.h"
27+
#include "Common/DataModel/EventSelection.h"
28+
#include "Common/DataModel/TrackSelectionTables.h"
29+
30+
#include "PWGJE/Core/JetFinder.h"
31+
#include "PWGJE/Core/FastJetUtilities.h"
32+
#include "PWGJE/Core/JetBkgSubUtils.h"
33+
#include "PWGJE/DataModel/EMCALClusters.h"
34+
#include "PWGJE/DataModel/Jet.h"
35+
36+
#include "../filterTables.h"
37+
38+
#include "Framework/HistogramRegistry.h"
39+
40+
using namespace o2;
41+
using namespace o2::framework;
42+
using namespace o2::framework::expressions;
43+
44+
static const std::vector<std::string> highPtObjectsNames = {"JetD0ChLowPt", "JetD0ChHighPt", "JetLcChLowPt", "JetLcChHighPt"};
45+
46+
struct JetHFFilterTask {
47+
48+
HistogramRegistry registry;
49+
50+
enum { kJetD0ChLowPt = 0,
51+
kJetD0ChHighPt = 1,
52+
kJetLcChLowPt = 2,
53+
kJetLcChHighPt = 3,
54+
kAllObjects = 4 };
55+
56+
Produces<aod::JetHFFilters> tags;
57+
58+
Configurable<float> jetD0ChLowPtThreshold{"jetD0ChLowPtThreshold", 0.0, "Threshold for charged D0 jet low pt trigger"};
59+
Configurable<float> jetD0ChHighPtThreshold{"jetD0ChHighPtThreshold", 0.0, "Threshold for charged D0 jet high pt trigger"};
60+
Configurable<float> jetD0ChR{"jetD0ChR", 0.6, "jet resolution parameter for charged D0 jet for low pt trigger"};
61+
Configurable<float> jetLcChLowPtThreshold{"jetLcChLowPtThreshold", 0.0, "Threshold for charged Lc jet low pt trigger"};
62+
Configurable<float> jetLcChHighPtThreshold{"jetLcChHighPtThreshold", 0.0, "Threshold for charged Lc jet high pt trigger"};
63+
Configurable<float> jetLcChR{"jetLcChR", 0.6, "jet resolution parameter for charged Lc jet for low pt trigger"};
64+
65+
Configurable<float> vertexZCut{"vertexZCut", 10.0f, "Accepted z-vertex range"};
66+
Configurable<bool> fillTHns{"fillTHns", true, "fill THn histograms"};
67+
68+
Configurable<std::vector<double>> jetRadiiPlot{"jetRadiiPlot", std::vector<double>{0.2, 0.4, 0.6}, "jet resolution parameters"};
69+
70+
void init(o2::framework::InitContext&)
71+
{
72+
auto jetRadiiPlotBins = (std::vector<double>)jetRadiiPlot;
73+
if (jetRadiiPlotBins.size() > 1) {
74+
jetRadiiPlotBins.push_back(jetRadiiPlotBins[jetRadiiPlotBins.size() - 1] + (TMath::Abs(jetRadiiPlotBins[jetRadiiPlotBins.size() - 1] - jetRadiiPlotBins[jetRadiiPlotBins.size() - 2])));
75+
} else {
76+
jetRadiiPlotBins.push_back(jetRadiiPlotBins[jetRadiiPlotBins.size() - 1] + 0.1);
77+
}
78+
79+
registry.add("h_d0jet_pt", "D^{0} - tagged jet pT;#it{p}_{T,jet} (GeV/#it{c});entries", {HistType::kTH1F, {{200, 0., 200.}}});
80+
registry.add("h_d0jet_pt_lowpt", "D^{0} - tagged jet pT;#it{p}_{T,jet} (GeV/#it{c});entries", {HistType::kTH1F, {{200, 0., 200.}}});
81+
registry.add("h_d0jet_pt_highpt", "D^{0} - tagged jet pT;#it{p}_{T,jet} (GeV/#it{c});entries", {HistType::kTH1F, {{200, 0., 200.}}});
82+
83+
registry.add("h_lcjet_pt", "#Lambda^{+}_{c} - tagged jet pT;#it{p}_{T,jet} (GeV/#it{c});entries", {HistType::kTH1F, {{200, 0., 200.}}});
84+
registry.add("h_lcjet_pt_lowpt", "#Lambda^{+}_{c} - tagged jet pT;#it{p}_{T,jet} (GeV/#it{c});entries", {HistType::kTH1F, {{200, 0., 200.}}});
85+
registry.add("h_lcjet_pt_highpt", "#Lambda^{+}_{c} - tagged jet pT;#it{p}_{T,jet} (GeV/#it{c});entries", {HistType::kTH1F, {{200, 0., 200.}}});
86+
87+
// these might end up being too big
88+
registry.add("d0Thn", "Thn for D^{0}-tagged jets", {HistType::kTHnC, {{jetRadiiPlotBins, ""}, {200, 0., 200.}, {100, -1.0, 1.0}, {160, -1.0, 7.}, {200, 0., 200.}, {200, 0., 200.}, {100, -1.0, 1.0}, {160, -1.0, 7.}, {100, -1.0, 1.0}, {1700, 1.3, 3.0}}});
89+
registry.add("d0Thn_witheventcuts", "Thn for D^{0}-tagged jets with event cuts", {HistType::kTHnC, {{jetRadiiPlotBins, ""}, {200, 0., 200.}, {100, -1.0, 1.0}, {160, -1.0, 7.}, {200, 0., 200.}, {200, 0., 200.}, {100, -1.0, 1.0}, {160, -1.0, 7.}, {100, -1.0, 1.0}, {1700, 1.3, 3.0}}});
90+
registry.add("lcThn", "Thn for #Lambda^{+}_{c}-tagged jets", {HistType::kTHnC, {{jetRadiiPlotBins, ""}, {200, 0., 200.}, {100, -1.0, 1.0}, {160, -1.0, 7.}, {200, 0., 200.}, {200, 0., 200.}, {100, -1.0, 1.0}, {160, -1.0, 7.}, {100, -1.0, 1.0}, {1700, 1.3, 3.0}}});
91+
registry.add("lcThn_witheventcuts", "Thn for #Lambda^{+}_{c}-tagged jets with event cuts", {HistType::kTHnC, {{jetRadiiPlotBins, ""}, {200, 0., 200.}, {100, -1.0, 1.0}, {160, -1.0, 7.}, {200, 0., 200.}, {200, 0., 200.}, {100, -1.0, 1.0}, {160, -1.0, 7.}, {100, -1.0, 1.0}, {1700, 1.3, 3.0}}});
92+
// radius, JetPt, JetEta, Jet Phi, Jet Ntracks, HF pT, HF Eta, HF Phi, HF Y, HF Mass
93+
}
94+
95+
void processJets(soa::Join<JetCollisions, aod::EvSels>::iterator const& collision, soa::Join<o2::aod::D0ChargedJets, o2::aod::D0ChargedJetConstituents> const& d0Jets, CandidatesD0Data const& d0Candidates, soa::Join<o2::aod::LcChargedJets, o2::aod::LcChargedJetConstituents> const& lcJets, CandidatesLcData const& lcCandidates, JetTracks const& tracks)
96+
{
97+
bool keepEvent[kAllObjects]{false};
98+
for (auto const& d0Jet : d0Jets) {
99+
if (fillTHns) {
100+
for (auto const& d0Candidate : d0Jet.hfcandidates_as<CandidatesD0Data>()) {
101+
registry.fill(HIST("d0Thn"), d0Jet.r() / 100.0, d0Jet.pt(), d0Jet.eta(), d0Jet.phi(), d0Jet.tracksIds().size() + d0Jet.hfcandidatesIds().size(), d0Candidate.pt(), d0Candidate.eta(), d0Candidate.phi(), d0Candidate.y(), d0Candidate.m());
102+
if (collision.posZ() < vertexZCut && collision.sel8() && collision.selection_bit(o2::aod::evsel::kNoTimeFrameBorder)) {
103+
registry.fill(HIST("d0Thn_witheventcuts"), d0Jet.r() / 100.0, d0Jet.pt(), d0Jet.eta(), d0Jet.phi(), d0Jet.tracksIds().size() + d0Jet.hfcandidatesIds().size(), d0Candidate.pt(), d0Candidate.eta(), d0Candidate.phi(), d0Candidate.y(), d0Candidate.m());
104+
}
105+
break;
106+
}
107+
}
108+
if (d0Jet.r() == round(jetD0ChR * 100.0f)) {
109+
registry.fill(HIST("h_d0jet_pt"), d0Jet.pt());
110+
if (d0Jet.pt() >= jetD0ChLowPtThreshold) {
111+
keepEvent[kJetD0ChLowPt] = true;
112+
registry.fill(HIST("h_d0jet_pt_lowpt"), d0Jet.pt());
113+
}
114+
if (d0Jet.pt() >= jetD0ChHighPtThreshold) {
115+
keepEvent[kJetD0ChHighPt] = true;
116+
registry.fill(HIST("h_d0jet_pt_highpt"), d0Jet.pt());
117+
}
118+
}
119+
}
120+
for (auto const& lcJet : lcJets) {
121+
if (fillTHns) {
122+
for (auto const& lcCandidate : lcJet.hfcandidates_as<CandidatesLcData>()) {
123+
registry.fill(HIST("lcThn"), lcJet.r() / 100.0, lcJet.pt(), lcJet.eta(), lcJet.phi(), lcJet.tracksIds().size() + lcJet.hfcandidatesIds().size(), lcCandidate.pt(), lcCandidate.eta(), lcCandidate.phi(), lcCandidate.y(), lcCandidate.m());
124+
if (collision.posZ() < vertexZCut && collision.sel8() && collision.selection_bit(o2::aod::evsel::kNoTimeFrameBorder)) {
125+
registry.fill(HIST("lcThn_witheventcuts"), lcJet.r() / 100.0, lcJet.pt(), lcJet.eta(), lcJet.phi(), lcJet.tracksIds().size() + lcJet.hfcandidatesIds().size(), lcCandidate.pt(), lcCandidate.eta(), lcCandidate.phi(), lcCandidate.y(), lcCandidate.m());
126+
}
127+
break;
128+
}
129+
}
130+
if (lcJet.r() == round(jetLcChR * 100.0f)) {
131+
registry.fill(HIST("h_lcjet_pt"), lcJet.pt());
132+
if (lcJet.pt() >= jetLcChLowPtThreshold) {
133+
keepEvent[kJetLcChLowPt] = true;
134+
registry.fill(HIST("h_lcjet_pt_lowpt"), lcJet.pt());
135+
}
136+
if (lcJet.pt() >= jetLcChHighPtThreshold) {
137+
keepEvent[kJetLcChHighPt] = true;
138+
registry.fill(HIST("h_lcjet_pt_highpt"), lcJet.pt());
139+
}
140+
}
141+
}
142+
tags(keepEvent[kJetD0ChLowPt], keepEvent[kJetD0ChHighPt], keepEvent[kJetLcChLowPt], keepEvent[kJetLcChHighPt]);
143+
}
144+
PROCESS_SWITCH(JetHFFilterTask, processJets, "Do HF charged jet triggering", true);
145+
};
146+
147+
WorkflowSpec defineDataProcessing(ConfigContext const& cfg)
148+
{
149+
return WorkflowSpec{adaptAnalysisTask<JetHFFilterTask>(cfg)};
150+
}

EventFiltering/filterTables.h

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,12 @@ DECLARE_SOA_COLUMN(LLL, hasLLL, bool); //! has L-L-L tripletD
6767
DECLARE_SOA_COLUMN(JetChLowPt, hasJetChLowPt, bool); //! low-pT charged jet
6868
DECLARE_SOA_COLUMN(JetChHighPt, hasJetChHighPt, bool); //! high-pT charged jet
6969

70+
// hf-jets
71+
DECLARE_SOA_COLUMN(JetD0ChLowPt, hasJetD0ChLowPt, bool); //! low-pT charged D0 jet
72+
DECLARE_SOA_COLUMN(JetD0ChHighPt, hasJetD0ChHighPt, bool); //! high-pT charged D0 jet
73+
DECLARE_SOA_COLUMN(JetLcChLowPt, hasJetLcChLowPt, bool); //! low-pT charged Lc jet
74+
DECLARE_SOA_COLUMN(JetLcChHighPt, hasJetLcChHighPt, bool); //! high-pT charged Lc jet
75+
7076
// full jets
7177
DECLARE_SOA_COLUMN(EMCALReadout, hasEMCALinReadout, bool); //! EMCAL readout
7278
DECLARE_SOA_COLUMN(JetFullHighPt, hasJetFullHighPt, bool); //! high-pT full jet
@@ -175,6 +181,14 @@ DECLARE_SOA_TABLE(JetFilters, "AOD", "JetFilters", //!
175181

176182
using JetFilter = JetFilters::iterator;
177183

184+
DECLARE_SOA_TABLE(JetHFFilters, "AOD", "JetHFFilters", //!
185+
filtering::JetD0ChLowPt,
186+
filtering::JetD0ChHighPt,
187+
filtering::JetLcChLowPt,
188+
filtering::JetLcChHighPt);
189+
190+
using JetHFFilter = JetHFFilters::iterator;
191+
178192
DECLARE_SOA_TABLE(FullJetFilters, "AOD", "FullJetFilters", //!
179193
filtering::EMCALReadout, filtering::JetFullHighPt, filtering::JetFullLowPt, filtering::JetNeutralHighPt, filtering::JetNeutralLowPt, filtering::GammaVeryHighPtEMCAL, filtering::GammaVeryHighPtDCAL, filtering::GammaHighPtEMCAL, filtering::GammaHighPtDCAL, filtering::GammaLowPtEMCAL, filtering::GammaLowPtDCAL, filtering::GammaVeryLowPtEMCAL, filtering::GammaVeryLowPtDCAL);
180194

@@ -214,11 +228,11 @@ DECLARE_SOA_TABLE(BCRanges, "AOD", "BCRanges", //!
214228
using BCRange = BCRanges::iterator;
215229

216230
/// List of the available filters, the description of their tables and the name of the tasks
217-
constexpr int NumberOfFilters{11};
218-
constexpr std::array<char[32], NumberOfFilters> AvailableFilters{"NucleiFilters", "DiffractionFilters", "DqFilters", "HfFilters", "CFFilters", "JetFilters", "FullJetFilters", "StrangenessFilters", "MultFilters", "PhotonFilters", "F1ProtonFilters"};
219-
constexpr std::array<char[16], NumberOfFilters> FilterDescriptions{"NucleiFilters", "DiffFilters", "DqFilters", "HfFilters", "CFFilters", "JetFilters", "FullJetFilters", "LFStrgFilters", "MultFilters", "PhotonFilters", "F1ProtonFilters"};
220-
constexpr std::array<char[128], NumberOfFilters> FilteringTaskNames{"o2-analysis-nuclei-filter", "o2-analysis-diffraction-filter", "o2-analysis-dq-filter-pp-with-association", "o2-analysis-hf-filter", "o2-analysis-cf-filter", "o2-analysis-je-filter", "o2-analysis-fje-filter", "o2-analysis-lf-strangeness-filter", "o2-analysis-mult-filter", "o2-analysis-em-photon-filter", "o2-analysis-lf-f1proton-filter"};
221-
constexpr o2::framework::pack<NucleiFilters, DiffractionFilters, DqFilters, HfFilters, CFFilters, JetFilters, FullJetFilters, StrangenessFilters, MultFilters, PhotonFilters, F1ProtonFilters> FiltersPack;
231+
constexpr int NumberOfFilters{12};
232+
constexpr std::array<char[32], NumberOfFilters> AvailableFilters{"NucleiFilters", "DiffractionFilters", "DqFilters", "HfFilters", "CFFilters", "JetFilters", "JetHFFilters", "FullJetFilters", "StrangenessFilters", "MultFilters", "PhotonFilters", "F1ProtonFilters"};
233+
constexpr std::array<char[16], NumberOfFilters> FilterDescriptions{"NucleiFilters", "DiffFilters", "DqFilters", "HfFilters", "CFFilters", "JetFilters", "JetHFFilters", "FullJetFilters", "LFStrgFilters", "MultFilters", "PhotonFilters", "F1ProtonFilters"};
234+
constexpr std::array<char[128], NumberOfFilters> FilteringTaskNames{"o2-analysis-nuclei-filter", "o2-analysis-diffraction-filter", "o2-analysis-dq-filter-pp-with-association", "o2-analysis-hf-filter", "o2-analysis-cf-filter", "o2-analysis-je-filter", "o2-analysis-je-hf-filter", "o2-analysis-fje-filter", "o2-analysis-lf-strangeness-filter", "o2-analysis-mult-filter", "o2-analysis-em-photon-filter", "o2-analysis-lf-f1proton-filter"};
235+
constexpr o2::framework::pack<NucleiFilters, DiffractionFilters, DqFilters, HfFilters, CFFilters, JetFilters, JetHFFilters, FullJetFilters, StrangenessFilters, MultFilters, PhotonFilters, F1ProtonFilters> FiltersPack;
222236
static_assert(o2::framework::pack_size(FiltersPack) == NumberOfFilters);
223237

224238
template <typename T, typename C>

PWGJE/Core/JetDerivedDataUtilities.h

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,60 @@ uint32_t setFullTriggerSelectionBit(T const& collision)
238238
return bit;
239239
}
240240

241+
enum JTrigSelChHF {
242+
noChargedHFTigger = 0,
243+
chargedD0Low = 1,
244+
chargedD0High = 2,
245+
chargedLcLow = 3,
246+
chargedLcHigh = 4
247+
};
248+
249+
template <typename T>
250+
bool selectChargedHFTrigger(T const& collision, int triggerSelection)
251+
{
252+
if (triggerSelection == -1) {
253+
return true;
254+
}
255+
return (collision.chargedHFTriggerSel() & (1 << triggerSelection));
256+
}
257+
258+
int initialiseChargedHFTriggerSelection(std::string triggerSelection)
259+
{
260+
if (triggerSelection == "chargedD0Low") {
261+
return JTrigSelChHF::chargedD0Low;
262+
}
263+
if (triggerSelection == "chargedD0High") {
264+
return JTrigSelChHF::chargedD0High;
265+
}
266+
if (triggerSelection == "chargedLcLow") {
267+
return JTrigSelChHF::chargedLcLow;
268+
}
269+
if (triggerSelection == "chargedLcHigh") {
270+
return JTrigSelChHF::chargedLcHigh;
271+
}
272+
return -1;
273+
}
274+
275+
template <typename T>
276+
uint8_t setChargedHFTriggerSelectionBit(T const& collision)
277+
{
278+
279+
uint8_t bit = 0;
280+
if (collision.hasJetD0ChLowPt()) {
281+
SETBIT(bit, JTrigSelChHF::chargedD0Low);
282+
}
283+
if (collision.hasJetD0ChHighPt()) {
284+
SETBIT(bit, JTrigSelChHF::chargedD0High);
285+
}
286+
if (collision.hasJetLcChLowPt()) {
287+
SETBIT(bit, JTrigSelChHF::chargedLcLow);
288+
}
289+
if (collision.hasJetLcChHighPt()) {
290+
SETBIT(bit, JTrigSelChHF::chargedLcHigh);
291+
}
292+
return bit;
293+
}
294+
241295
enum JTrackSel {
242296
trackSign = 0, // warning : this number is hardcoded in the sign coloumn in the JTracks table so should not be changed without changing it there too
243297
globalTrack = 1,

PWGJE/DataModel/JetReducedData.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ DECLARE_SOA_COLUMN(EventSel, eventSel, uint16_t);
7070
DECLARE_SOA_BITMAP_COLUMN(Alias, alias, 32);
7171
DECLARE_SOA_COLUMN(ChargedTriggerSel, chargedTriggerSel, uint8_t);
7272
DECLARE_SOA_COLUMN(FullTriggerSel, fullTriggerSel, uint32_t);
73+
DECLARE_SOA_COLUMN(ChargedHFTriggerSel, chargedHFTriggerSel, uint8_t);
7374
} // namespace jcollision
7475

7576
DECLARE_SOA_TABLE(JCollisions, "AOD", "JCOLLISION",
@@ -118,6 +119,13 @@ DECLARE_SOA_TABLE(StoredJFullTrigSels, "AOD1", "JFULLTRIGSEL",
118119
jcollision::FullTriggerSel,
119120
o2::soa::Marker<1>);
120121

122+
DECLARE_SOA_TABLE(JChHFTrigSels, "AOD", "JCHHFTRIGSEL",
123+
jcollision::ChargedHFTriggerSel);
124+
125+
DECLARE_SOA_TABLE(StoredJChHFTrigSels, "AOD1", "JCHHFTRIGSEL",
126+
jcollision::ChargedHFTriggerSel,
127+
o2::soa::Marker<1>);
128+
121129
DECLARE_SOA_TABLE(JCollisionBCs, "AOD", "JCOLLISIONBC",
122130
jcollision::JBCId);
123131

PWGJE/TableProducer/jetderiveddatatriggerproducer.cxx

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ using namespace o2::framework::expressions;
3535
struct JetDerivedDataTriggerProducerTask {
3636
Produces<aod::JChTrigSels> jChargedTriggerSelsTable;
3737
Produces<aod::JFullTrigSels> jFullTriggerSelsTable;
38+
Produces<aod::JChHFTrigSels> jChargedHFTriggerSelsTable;
3839

3940
void init(InitContext const&)
4041
{
@@ -63,6 +64,18 @@ struct JetDerivedDataTriggerProducerTask {
6364
jFullTriggerSelsTable(jetderiveddatautilities::JTrigSelFull::noFullTrigger);
6465
}
6566
PROCESS_SWITCH(JetDerivedDataTriggerProducerTask, processNoFullJetTriggers, "produces derived full trigger table table when sample is not triggered", true);
67+
68+
void processChargedHFJetTriggers(soa::Join<aod::Collisions, aod::JetHFFilters>::iterator const& collision)
69+
{
70+
jChargedHFTriggerSelsTable(jetderiveddatautilities::setChargedHFTriggerSelectionBit(collision));
71+
}
72+
PROCESS_SWITCH(JetDerivedDataTriggerProducerTask, processChargedHFJetTriggers, "produces derived charged hf trigger table", false);
73+
74+
void processNoChargedHFJetTriggers(aod::Collision const& collision)
75+
{
76+
jChargedHFTriggerSelsTable(jetderiveddatautilities::JTrigSelChHF::noChargedHFTigger);
77+
}
78+
PROCESS_SWITCH(JetDerivedDataTriggerProducerTask, processNoChargedHFJetTriggers, "produces derived charged hf trigger table when sample is not triggered", true);
6679
};
6780

6881
WorkflowSpec defineDataProcessing(ConfigContext const& cfgc)

0 commit comments

Comments
 (0)