Skip to content

Commit dfa41a3

Browse files
nzardoshNima Zardoshti
andauthored
PWGJE : Bug fixes (#5565)
* PWGJE: Fixing bug in THn limit in planarFlow task * PWGJE: Remove excplicit time border event selection since its included by default in sel8 now * adding a sel8Full event seleection option with extra cuts * removing THns from HFJet trigger * clang fixes to jetderiveddatautilities * adding event selection to rho estimation in QA tasks * fixing Nsubjettiness --------- Co-authored-by: Nima Zardoshti <nzardosh@alicecerno2.cern.ch>
1 parent 3e5d591 commit dfa41a3

File tree

8 files changed

+186
-130
lines changed

8 files changed

+186
-130
lines changed

EventFiltering/PWGJE/jetHFFilter.cxx

Lines changed: 6 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -61,18 +61,9 @@ struct JetHFFilterTask {
6161
Configurable<float> jetLcChR{"jetLcChR", 0.6, "jet resolution parameter for charged Lc jet for low pt trigger"};
6262

6363
Configurable<float> vertexZCut{"vertexZCut", 10.0f, "Accepted z-vertex range"};
64-
Configurable<bool> fillTHns{"fillTHns", true, "fill THn histograms"};
65-
66-
Configurable<std::vector<double>> jetRadiiPlot{"jetRadiiPlot", std::vector<double>{0.2, 0.4, 0.6}, "jet resolution parameters"};
6764

6865
void init(o2::framework::InitContext&)
6966
{
70-
auto jetRadiiPlotBins = (std::vector<double>)jetRadiiPlot;
71-
if (jetRadiiPlotBins.size() > 1) {
72-
jetRadiiPlotBins.push_back(jetRadiiPlotBins[jetRadiiPlotBins.size() - 1] + (TMath::Abs(jetRadiiPlotBins[jetRadiiPlotBins.size() - 1] - jetRadiiPlotBins[jetRadiiPlotBins.size() - 2])));
73-
} else {
74-
jetRadiiPlotBins.push_back(jetRadiiPlotBins[jetRadiiPlotBins.size() - 1] + 0.1);
75-
}
7667
registry.add("h_d0jet_pt", "D^{0} - tagged jet pT;#it{p}_{T,jet} (GeV/#it{c});entries", {HistType::kTH1F, {{200, 0., 200.}}});
7768
registry.add("h_d0jet_pt_lowpt", "D^{0} - tagged jet pT;#it{p}_{T,jet} (GeV/#it{c});entries", {HistType::kTH1F, {{200, 0., 200.}}});
7869
registry.add("h_d0jet_pt_highpt", "D^{0} - tagged jet pT;#it{p}_{T,jet} (GeV/#it{c});entries", {HistType::kTH1F, {{200, 0., 200.}}});
@@ -81,58 +72,40 @@ struct JetHFFilterTask {
8172
registry.add("h_lcjet_pt_lowpt", "#Lambda^{+}_{c} - tagged jet pT;#it{p}_{T,jet} (GeV/#it{c});entries", {HistType::kTH1F, {{200, 0., 200.}}});
8273
registry.add("h_lcjet_pt_highpt", "#Lambda^{+}_{c} - tagged jet pT;#it{p}_{T,jet} (GeV/#it{c});entries", {HistType::kTH1F, {{200, 0., 200.}}});
8374

84-
// these might end up being too big
85-
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}}});
86-
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}}});
87-
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}}});
88-
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}}});
89-
// radius, JetPt, JetEta, Jet Phi, Jet Ntracks, HF pT, HF Eta, HF Phi, HF Y, HF Mass
75+
registry.add("h_collisions", "Collision ;entries", {HistType::kTH1F, {{5, 0.0, 5.0}}});
9076
}
9177

9278
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)
9379
{
80+
registry.fill(HIST("h_collisions"), 0.5);
9481
bool keepEvent[kAllObjects]{false};
9582
for (auto const& d0Jet : d0Jets) {
96-
if (fillTHns) {
97-
for (auto const& d0Candidate : d0Jet.hfcandidates_as<CandidatesD0Data>()) {
98-
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());
99-
if (collision.posZ() < vertexZCut && collision.sel8() && collision.selection_bit(o2::aod::evsel::kNoTimeFrameBorder)) {
100-
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());
101-
}
102-
break;
103-
}
104-
}
10583
if (d0Jet.r() == round(jetD0ChR * 100.0f)) {
10684
registry.fill(HIST("h_d0jet_pt"), d0Jet.pt());
10785
if (d0Jet.pt() >= jetD0ChLowPtThreshold) {
10886
keepEvent[kJetD0ChLowPt] = true;
10987
registry.fill(HIST("h_d0jet_pt_lowpt"), d0Jet.pt());
88+
registry.fill(HIST("h_collisions"), 1.5);
11089
}
11190
if (d0Jet.pt() >= jetD0ChHighPtThreshold) {
11291
keepEvent[kJetD0ChHighPt] = true;
11392
registry.fill(HIST("h_d0jet_pt_highpt"), d0Jet.pt());
93+
registry.fill(HIST("h_collisions"), 2.5);
11494
}
11595
}
11696
}
11797
for (auto const& lcJet : lcJets) {
118-
if (fillTHns) {
119-
for (auto const& lcCandidate : lcJet.hfcandidates_as<CandidatesLcData>()) {
120-
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());
121-
if (collision.posZ() < vertexZCut && collision.sel8() && collision.selection_bit(o2::aod::evsel::kNoTimeFrameBorder)) {
122-
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());
123-
}
124-
break;
125-
}
126-
}
12798
if (lcJet.r() == round(jetLcChR * 100.0f)) {
12899
registry.fill(HIST("h_lcjet_pt"), lcJet.pt());
129100
if (lcJet.pt() >= jetLcChLowPtThreshold) {
130101
keepEvent[kJetLcChLowPt] = true;
131102
registry.fill(HIST("h_lcjet_pt_lowpt"), lcJet.pt());
103+
registry.fill(HIST("h_collisions"), 3.5);
132104
}
133105
if (lcJet.pt() >= jetLcChHighPtThreshold) {
134106
keepEvent[kJetLcChHighPt] = true;
135107
registry.fill(HIST("h_lcjet_pt_highpt"), lcJet.pt());
108+
registry.fill(HIST("h_collisions"), 4.5);
136109
}
137110
}
138111
}

PWGJE/Core/JetDerivedDataUtilities.h

Lines changed: 13 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,8 @@ static constexpr float mPion = 0.139; // TDatabasePDG::Instance()->GetParticle(2
2828

2929
enum JCollisionSel {
3030
sel8 = 0,
31-
sel8WithoutTimeFrameBorderCut = 1,
32-
sel7 = 2,
33-
sel7WithoutTimeFrameBorderCut = 3,
34-
WithoutTimeFrameBorderCut = 4
31+
sel8Full = 1,
32+
sel7 = 2
3533
};
3634

3735
template <typename T>
@@ -47,40 +45,28 @@ int initialiseEventSelection(std::string eventSelection)
4745
{
4846
if (eventSelection == "sel8") {
4947
return JCollisionSel::sel8;
50-
} else if (eventSelection == "sel8WithoutTimeFrameBorderCut") {
51-
return JCollisionSel::sel8WithoutTimeFrameBorderCut;
52-
} else if (eventSelection == "sel7") {
48+
}
49+
if (eventSelection == "sel8Full") {
50+
return JCollisionSel::sel8Full;
51+
}
52+
if (eventSelection == "sel7") {
5353
return JCollisionSel::sel7;
54-
} else if (eventSelection == "sel7WithoutTimeFrameBorderCut") {
55-
return JCollisionSel::sel7WithoutTimeFrameBorderCut;
56-
} else if (eventSelection == "WithoutTimeFrameBorderCut") {
57-
return JCollisionSel::WithoutTimeFrameBorderCut;
5854
}
5955
return -1;
6056
}
6157

6258
template <typename T>
63-
uint16_t setEventSelectionBit(T const& collision)
59+
uint8_t setEventSelectionBit(T const& collision)
6460
{
65-
66-
uint16_t bit = 0;
67-
68-
if (!collision.selection_bit(o2::aod::evsel::kNoTimeFrameBorder)) {
69-
SETBIT(bit, JCollisionSel::WithoutTimeFrameBorderCut);
70-
}
61+
uint8_t bit = 0;
7162
if (collision.sel8()) {
72-
if (collision.selection_bit(o2::aod::evsel::kNoTimeFrameBorder)) {
73-
SETBIT(bit, JCollisionSel::sel8);
74-
} else {
75-
SETBIT(bit, JCollisionSel::sel8WithoutTimeFrameBorderCut);
63+
SETBIT(bit, JCollisionSel::sel8);
64+
if (collision.selection_bit(o2::aod::evsel::kNoSameBunchPileup) && collision.selection_bit(o2::aod::evsel::kIsGoodZvtxFT0vsPV)) {
65+
SETBIT(bit, JCollisionSel::sel8Full);
7666
}
7767
}
7868
if (collision.sel7()) {
79-
if (collision.selection_bit(o2::aod::evsel::kNoTimeFrameBorder)) {
80-
SETBIT(bit, JCollisionSel::sel7);
81-
} else {
82-
SETBIT(bit, JCollisionSel::sel7WithoutTimeFrameBorderCut);
83-
}
69+
SETBIT(bit, JCollisionSel::sel7);
8470
}
8571
return bit;
8672
}

PWGJE/Core/JetSubstructureUtilities.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ std::vector<float> getNSubjettiness(T const& jet, U const& tracks, V const& clus
110110
result.push_back(-1.0 * (n + 1));
111111
}
112112

113-
for (auto n = 1; n < nMax + 1; n++) {
113+
for (auto n = 1; n <= nMax; n++) {
114114
if (pseudoJet.constituents().size() < n) { // Tau_N needs at least N tracks
115115
return result;
116116
}

PWGJE/DataModel/JetReducedData.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ DECLARE_SOA_COLUMN(PosY, posY, float);
6666
DECLARE_SOA_COLUMN(PosZ, posZ, float);
6767
DECLARE_SOA_COLUMN(Multiplicity, multiplicity, float);
6868
DECLARE_SOA_COLUMN(Centrality, centrality, float);
69-
DECLARE_SOA_COLUMN(EventSel, eventSel, uint16_t);
69+
DECLARE_SOA_COLUMN(EventSel, eventSel, uint8_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);

PWGJE/Tasks/jetfinderQA.cxx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -862,6 +862,9 @@ struct JetFinderQATask {
862862

863863
void processRho(soa::Filtered<soa::Join<JetCollisions, aod::BkgChargedRhos>>::iterator const& collision, soa::Filtered<JetTracks> const& tracks)
864864
{
865+
if (!jetderiveddatautilities::selectCollision(collision, eventSelection)) {
866+
return;
867+
}
865868
int nTracks = 0;
866869
for (auto const& track : tracks) {
867870
if (jetderiveddatautilities::selectTrack(track, trackSelection)) {
@@ -878,7 +881,9 @@ struct JetFinderQATask {
878881

879882
void processRandomCone(soa::Filtered<soa::Join<JetCollisions, aod::BkgChargedRhos>>::iterator const& collision, soa::Join<aod::ChargedJets, aod::ChargedJetConstituents> const& jets, JetTracks const& tracks)
880883
{
881-
884+
if (!jetderiveddatautilities::selectCollision(collision, eventSelection)) {
885+
return;
886+
}
882887
TRandom3 randomNumber(0);
883888
float randomConeEta = randomNumber.Uniform(trackEtaMin + randomConeR, trackEtaMax - randomConeR);
884889
float randomConePhi = randomNumber.Uniform(0.0, 2 * M_PI);

PWGJE/Tasks/jetfinderhfQA.cxx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1415,6 +1415,9 @@ struct JetFinderHFQATask {
14151415

14161416
void processRho(JetCollision const& collision, CandidateTableData const& candidates, BkgRhoTable const& bkgRhos, soa::Filtered<JetTracks> const& tracks)
14171417
{
1418+
if (!jetderiveddatautilities::selectCollision(collision, eventSelection)) {
1419+
return;
1420+
}
14181421
for (auto const& candidate : candidates) {
14191422
auto bkgRho = jethfutilities::slicedPerCandidate(bkgRhos, candidate, perD0CandidateRhos, perLcCandidateRhos, perBplusCandidateRhos).iteratorAt(0);
14201423
int nTracks = 0;
@@ -1435,7 +1438,9 @@ struct JetFinderHFQATask {
14351438

14361439
void processRandomCone(soa::Filtered<JetCollisions>::iterator const& collision, JetTableDataSubJoined const& jets, CandidateTableData const& candidates, BkgRhoTable const& bkgRhos, soa::Filtered<JetTracks> const& tracks)
14371440
{
1438-
1441+
if (!jetderiveddatautilities::selectCollision(collision, eventSelection)) {
1442+
return;
1443+
}
14391444
for (auto const& candidate : candidates) {
14401445
auto bkgRho = jethfutilities::slicedPerCandidate(bkgRhos, candidate, perD0CandidateRhos, perLcCandidateRhos, perBplusCandidateRhos).iteratorAt(0);
14411446
TRandom3 randomNumber(0);

0 commit comments

Comments
 (0)