Skip to content

Commit 6cd4f27

Browse files
[PWGJE] exclude jets with constituents have pT larger than some threshold (#12622)
Co-authored-by: ALICE Builder <alibuild@users.noreply.github.com>
1 parent 9cfa928 commit 6cd4f27

File tree

1 file changed

+60
-27
lines changed

1 file changed

+60
-27
lines changed

PWGJE/Tasks/recoilJets.cxx

Lines changed: 60 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,9 @@ struct RecoilJets {
126126
Configurable<float> recoilRegion{"recoilRegion", 0.6,
127127
"Width of recoil acceptance"};
128128

129+
Configurable<float> maxJetConstituentPt{"maxJetConstituentPt", 100.,
130+
"Remove jets with constituent above this pt cut"};
131+
129132
// List of configurable parameters for histograms
130133
Configurable<uint16_t> histJetPt{"histJetPt", 100,
131134
"Maximum value of jet pT shown in histograms"};
@@ -416,9 +419,9 @@ struct RecoilJets {
416419
spectra.add("hScaleMultFT0C", "Scaled mult. signal from FTOC", kTH1F,
417420
{{200, 0.0, 20.}});
418421
spectra.add("hScaleMultFT0M", "Scaled total mult. signal from FT0A & FTOC", kTH1F,
419-
{{200, 0.0, 20.}});
422+
{{2000, 0.0, 20.}});
420423
spectra.add("hScaleMultFT0M_v2", "Scaled total mult. signal from FT0A & FTOC", kTH1F,
421-
{{200, 0.0, 20.}});
424+
{{2000, 0.0, 20.}});
422425

423426
spectra.add("hMultZNA", "Mult. signal from ZDC A-side", kTH1F,
424427
{{500, 0.0, 10000.}});
@@ -505,6 +508,10 @@ struct RecoilJets {
505508
}
506509

507510
for (const auto& jet : jets) {
511+
// skip jets which have a constituent with pT above specified cut
512+
if (isJetWithHighPtConstituent(jet, tracks))
513+
continue;
514+
508515
spectra.fill(HIST("hJetPtEtaPhiRhoArea"), jet.pt(), jet.eta(), jet.phi(),
509516
collision.rho(), jet.area(), weight);
510517

@@ -674,13 +681,13 @@ struct RecoilJets {
674681
for (const auto& jetBase : jetsBase) {
675682
bool bIsBaseJetRecoil =
676683
get<1>(isRecoilJet(jetBase, phiTTSig)) && bIsThereTTSig;
677-
dataForUnfolding(jetBase, jetsTag, bIsBaseJetRecoil, weight);
684+
dataForUnfolding(jetBase, jetsTag, bIsBaseJetRecoil, tracks, weight);
678685
}
679686
}
680687

681688
template <typename Collision>
682689
void fillMultiplicityHistograms(Collision const& collision,
683-
float weight = 1.0)
690+
float weight = 1.)
684691
{
685692

686693
spectra.fill(HIST("hMultFT0A"), collision.multFT0A(), weight);
@@ -830,12 +837,11 @@ struct RecoilJets {
830837
PROCESS_SWITCH(RecoilJets, processJetsMatched,
831838
"process matching of MC jets (no weight)", false);
832839

833-
void
834-
processJetsMatchedWeighted(FilteredCollDetLevelGetWeight const& collision,
835-
aod::JetMcCollisions const&,
836-
FilteredTracks const& tracks,
837-
FilteredMatchedJetsDetLevel const& mcdjets,
838-
FilteredMatchedJetsPartLevel const& mcpjets)
840+
void processJetsMatchedWeighted(FilteredCollDetLevelGetWeight const& collision,
841+
aod::JetMcCollisions const&,
842+
FilteredTracks const& tracks,
843+
FilteredMatchedJetsDetLevel const& mcdjets,
844+
FilteredMatchedJetsPartLevel const& mcpjets)
839845
{
840846
if (skipEvent(collision) || skipMBGapEvent(collision))
841847
return;
@@ -903,9 +909,22 @@ struct RecoilJets {
903909
return 10. / (std::pow(weight, 1.0 / pTHatExponent));
904910
}
905911

906-
template <typename PartJet, typename DetJet>
912+
template <typename Jet, typename Tracks>
913+
bool isJetWithHighPtConstituent(Jet const& jet, Tracks const&)
914+
{
915+
bool bIsJetWithHighPtConstituent = false;
916+
for (const auto& jetConstituent : jet.template tracks_as<Tracks>()) {
917+
if (jetConstituent.pt() > maxJetConstituentPt) {
918+
bIsJetWithHighPtConstituent = true;
919+
break;
920+
}
921+
}
922+
return bIsJetWithHighPtConstituent;
923+
}
924+
925+
template <typename PartJet, typename DetJet, typename TracksTable>
907926
void dataForUnfolding(PartJet const& partJet, DetJet const& detJets,
908-
bool bIsBaseJetRecoil, float weight = 1.0)
927+
bool bIsBaseJetRecoil, TracksTable const& tracks, float weight = 1.)
909928
{
910929

911930
bool bIsThereMatchedJet = partJet.has_matchedJetGeo();
@@ -915,24 +934,35 @@ struct RecoilJets {
915934
partJet.template matchedJetGeo_as<std::decay_t<DetJet>>();
916935

917936
for (const auto& jetMatched : jetsMatched) {
918-
spectra.fill(HIST("hNumberMatchedJetsPerOneBaseJet"),
919-
jetsMatched.size(), jetMatched.pt(), weight);
920-
spectra.fill(HIST("hJetPt_DetLevel_vs_PartLevel"), jetMatched.pt(),
921-
partJet.pt(), weight);
922-
spectra.fill(HIST("hJetPt_resolution"),
923-
(partJet.pt() - jetMatched.pt()) / partJet.pt(),
924-
partJet.pt(), weight);
925-
spectra.fill(HIST("hJetPhi_resolution"),
926-
partJet.phi() - jetMatched.phi(), partJet.pt(), weight);
927-
928-
if (bIsBaseJetRecoil) {
929-
spectra.fill(HIST("hJetPt_DetLevel_vs_PartLevel_RecoilJets"),
930-
jetMatched.pt(), partJet.pt(), weight);
931-
spectra.fill(HIST("hJetPt_resolution_RecoilJets"),
937+
938+
// skip matches where detector level jets have a constituent with pT above specified cut
939+
bool skipMatchedDetJet = isJetWithHighPtConstituent(jetMatched, tracks);
940+
941+
if (skipMatchedDetJet) {
942+
// Miss jets
943+
spectra.fill(HIST("hMissedJets_pT"), partJet.pt(), weight);
944+
if (bIsBaseJetRecoil)
945+
spectra.fill(HIST("hMissedJets_pT_RecoilJets"), partJet.pt(), weight);
946+
} else {
947+
spectra.fill(HIST("hNumberMatchedJetsPerOneBaseJet"),
948+
jetsMatched.size(), jetMatched.pt(), weight);
949+
spectra.fill(HIST("hJetPt_DetLevel_vs_PartLevel"), jetMatched.pt(),
950+
partJet.pt(), weight);
951+
spectra.fill(HIST("hJetPt_resolution"),
932952
(partJet.pt() - jetMatched.pt()) / partJet.pt(),
933953
partJet.pt(), weight);
934-
spectra.fill(HIST("hJetPhi_resolution_RecoilJets"),
954+
spectra.fill(HIST("hJetPhi_resolution"),
935955
partJet.phi() - jetMatched.phi(), partJet.pt(), weight);
956+
957+
if (bIsBaseJetRecoil) {
958+
spectra.fill(HIST("hJetPt_DetLevel_vs_PartLevel_RecoilJets"),
959+
jetMatched.pt(), partJet.pt(), weight);
960+
spectra.fill(HIST("hJetPt_resolution_RecoilJets"),
961+
(partJet.pt() - jetMatched.pt()) / partJet.pt(),
962+
partJet.pt(), weight);
963+
spectra.fill(HIST("hJetPhi_resolution_RecoilJets"),
964+
partJet.phi() - jetMatched.phi(), partJet.pt(), weight);
965+
}
936966
}
937967
}
938968
} else {
@@ -944,6 +974,9 @@ struct RecoilJets {
944974

945975
// Fake jets
946976
for (const auto& detJet : detJets) {
977+
if (isJetWithHighPtConstituent(detJet, tracks))
978+
continue;
979+
947980
bIsThereMatchedJet = detJet.has_matchedJetGeo();
948981
if (!bIsThereMatchedJet) {
949982
spectra.fill(HIST("hFakeJets_pT"), detJet.pt(), weight);

0 commit comments

Comments
 (0)