Skip to content

Commit 07b8e85

Browse files
[PWGJE] jetspectraCharged and jetBackgroundAnalysis updates (#10456)
1 parent 37623b2 commit 07b8e85

File tree

2 files changed

+45
-31
lines changed

2 files changed

+45
-31
lines changed

PWGJE/Tasks/jetBackgroundAnalysis.cxx

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ struct JetBackgroundAnalysisTask {
5555
Configurable<float> centralityMax{"centralityMax", 999.0, "maximum centrality for collisions"};
5656
Configurable<int> trackOccupancyInTimeRangeMax{"trackOccupancyInTimeRangeMax", 999999, "maximum track occupancy of collisions in neighbouring collisions in a given time range; only applied to reconstructed collisions (data and mcd jets), not mc collisions (mcp jets)"};
5757
Configurable<int> trackOccupancyInTimeRangeMin{"trackOccupancyInTimeRangeMin", -999999, "minimum track occupancy of collisions in neighbouring collisions in a given time range; only applied to reconstructed collisions (data and mcd jets), not mc collisions (mcp jets)"};
58+
Configurable<bool> skipMBGapEvents{"skipMBGapEvents", false, "flag to choose to reject min. bias gap events"};
5859

5960
Configurable<float> trackEtaMin{"trackEtaMin", -0.9, "minimum eta acceptance for tracks"};
6061
Configurable<float> trackEtaMax{"trackEtaMax", 0.9, "maximum eta acceptance for tracks"};
@@ -114,12 +115,6 @@ struct JetBackgroundAnalysisTask {
114115
template <typename TCollisions, typename TJets, typename TTracks>
115116
void bkgFluctuationsRandomCone(TCollisions const& collision, TJets const& jets, TTracks const& tracks)
116117
{
117-
if (!jetderiveddatautilities::selectCollision(collision, eventSelectionBits)) {
118-
return;
119-
}
120-
if (collision.trackOccupancyInTimeRange() < trackOccupancyInTimeRangeMin || trackOccupancyInTimeRangeMax < collision.trackOccupancyInTimeRange()) {
121-
return;
122-
}
123118
TRandom3 randomNumber(0);
124119
float randomConeEta = randomNumber.Uniform(trackEtaMin + randomConeR, trackEtaMax - randomConeR);
125120
float randomConePhi = randomNumber.Uniform(0.0, 2 * M_PI);
@@ -201,7 +196,7 @@ struct JetBackgroundAnalysisTask {
201196

202197
void processRho(soa::Filtered<soa::Join<aod::JetCollisions, aod::BkgChargedRhos>>::iterator const& collision, soa::Filtered<aod::JetTracks> const& tracks)
203198
{
204-
if (!jetderiveddatautilities::selectCollision(collision, eventSelectionBits)) {
199+
if (!jetderiveddatautilities::selectCollision(collision, eventSelectionBits, skipMBGapEvents)) {
205200
return;
206201
}
207202
if (collision.trackOccupancyInTimeRange() < trackOccupancyInTimeRangeMin || trackOccupancyInTimeRangeMax < collision.trackOccupancyInTimeRange()) {
@@ -223,12 +218,24 @@ struct JetBackgroundAnalysisTask {
223218

224219
void processBkgFluctuationsData(soa::Filtered<soa::Join<aod::JetCollisions, aod::BkgChargedRhos>>::iterator const& collision, soa::Join<aod::ChargedJets, aod::ChargedJetConstituents> const& jets, soa::Filtered<aod::JetTracks> const& tracks)
225220
{
221+
if (!jetderiveddatautilities::selectCollision(collision, eventSelectionBits, skipMBGapEvents)) {
222+
return;
223+
}
224+
if (collision.trackOccupancyInTimeRange() < trackOccupancyInTimeRangeMin || trackOccupancyInTimeRangeMax < collision.trackOccupancyInTimeRange()) {
225+
return;
226+
}
226227
bkgFluctuationsRandomCone(collision, jets, tracks);
227228
}
228229
PROCESS_SWITCH(JetBackgroundAnalysisTask, processBkgFluctuationsData, "QA for random cone estimation of background fluctuations in data", false);
229230

230231
void processBkgFluctuationsMCD(soa::Filtered<soa::Join<aod::JetCollisions, aod::BkgChargedRhos>>::iterator const& collision, soa::Join<aod::ChargedMCDetectorLevelJets, aod::ChargedMCDetectorLevelJetConstituents> const& jets, soa::Filtered<aod::JetTracks> const& tracks)
231232
{
233+
if (!jetderiveddatautilities::selectCollision(collision, eventSelectionBits, skipMBGapEvents)) {
234+
return;
235+
}
236+
if (collision.trackOccupancyInTimeRange() < trackOccupancyInTimeRangeMin || trackOccupancyInTimeRangeMax < collision.trackOccupancyInTimeRange()) {
237+
return;
238+
}
232239
bkgFluctuationsRandomCone(collision, jets, tracks);
233240
}
234241
PROCESS_SWITCH(JetBackgroundAnalysisTask, processBkgFluctuationsMCD, "QA for random cone estimation of background fluctuations in mcd", false);

PWGJE/Tasks/jetSpectraCharged.cxx

Lines changed: 31 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,8 @@ struct JetSpectraCharged {
8282
Configurable<bool> checkPtMatched{"checkPtMatched", false, "0: turn off pT matching, 1: do pT matching"};
8383
Configurable<bool> checkGeoPtMatched{"checkGeoPtMatched", false, "0: turn off geometry and pT matching, 1: do geometry and pT matching"};
8484
Configurable<int> acceptSplitCollisions{"acceptSplitCollisions", 0, "0: only look at mcCollisions that are not split; 1: accept split mcCollisions, 2: accept split mcCollisions but only look at the first reco collision associated with it"};
85+
Configurable<bool> skipMBGapEvents{"skipMBGapEvents", false, "flag to choose to reject min. bias gap events; jet-level rejection can also be applied at the jet finder level for jets only, here rejection is applied for collision and track process functions for the first time, and on jets in case it was set to false at the jet finder level"};
86+
Configurable<bool> checkLeadConstituentMinPtForMcpJets{"checkLeadConstituentMinPtForMcpJets", false, "flag to choose whether particle level jets should have their lead track pt above leadingConstituentPtMin to be accepted; off by default, as leadingConstituentPtMin cut is only applied on MCD jets for the Pb-Pb analysis using pp MC anchored to Pb-Pb for the response matrix"};
8587

8688
std::vector<int> eventSelectionBits;
8789
int trackSelection = -1;
@@ -237,9 +239,8 @@ struct JetSpectraCharged {
237239
Preslice<ChargedMCDMatchedJets> mcdjetsPerJCollision = o2::aod::jet::collisionId;
238240

239241
template <typename TTracks, typename TJets>
240-
bool isAcceptedJet(TJets const& jet)
242+
bool isAcceptedJet(TJets const& jet, bool mcLevelIsParticleLevel = false)
241243
{
242-
243244
if (jetAreaFractionMin > -98.0) {
244245
if (jet.area() < jetAreaFractionMin * o2::constants::math::PI * (jet.r() / 100.0) * (jet.r() / 100.0)) {
245246
return false;
@@ -259,7 +260,7 @@ struct JetSpectraCharged {
259260
for (const auto& constituent : jet.template tracks_as<TTracks>()) {
260261
double pt = constituent.pt();
261262

262-
if (checkConstituentMinPt && pt >= leadingConstituentPtMin) {
263+
if ((!checkLeadConstituentMinPtForMcpJets && mcLevelIsParticleLevel) || (checkConstituentMinPt && pt >= leadingConstituentPtMin)) { // if the jet is mcp level and checkLeadConstituentMinPtForMcpJets is true, then the pt of the leading track of that jet does not need to be below the defined leadingConstituentPtMin cut
263264
isMinLeadingConstituent = true;
264265
}
265266
if (checkConstituentMaxPt && pt > leadingConstituentPtMax) {
@@ -464,7 +465,7 @@ struct JetSpectraCharged {
464465
void processQC(soa::Filtered<aod::JetCollisions>::iterator const& collision,
465466
soa::Filtered<soa::Join<aod::JetTracks, aod::JTrackExtras>> const& tracks)
466467
{
467-
if (!jetderiveddatautilities::selectCollision(collision, eventSelectionBits)) {
468+
if (!jetderiveddatautilities::selectCollision(collision, eventSelectionBits, skipMBGapEvents)) {
468469
return;
469470
}
470471
if (collision.trackOccupancyInTimeRange() < trackOccupancyInTimeRangeMin || trackOccupancyInTimeRangeMax < collision.trackOccupancyInTimeRange()) {
@@ -484,7 +485,7 @@ struct JetSpectraCharged {
484485
soa::Filtered<soa::Join<aod::JetTracks, aod::JTrackExtras>> const& tracks)
485486
{
486487
float eventWeight = collision.mcCollision().weight();
487-
if (!jetderiveddatautilities::selectCollision(collision, eventSelectionBits)) {
488+
if (!jetderiveddatautilities::selectCollision(collision, eventSelectionBits, skipMBGapEvents)) {
488489
return;
489490
}
490491
if (collision.trackOccupancyInTimeRange() < trackOccupancyInTimeRangeMin || trackOccupancyInTimeRangeMax < collision.trackOccupancyInTimeRange()) {
@@ -502,7 +503,7 @@ struct JetSpectraCharged {
502503
void processCollisions(soa::Filtered<aod::JetCollisions>::iterator const& collision)
503504
{
504505
registry.fill(HIST("h_collisions"), 0.5);
505-
if (!jetderiveddatautilities::selectCollision(collision, eventSelectionBits)) {
506+
if (!jetderiveddatautilities::selectCollision(collision, eventSelectionBits, skipMBGapEvents)) {
506507
return;
507508
}
508509
registry.fill(HIST("h_collisions"), 1.5);
@@ -521,7 +522,7 @@ struct JetSpectraCharged {
521522
float eventWeight = collision.mcCollision().weight();
522523
registry.fill(HIST("h_collisions"), 0.5);
523524
registry.fill(HIST("h_collisions_weighted"), 0.5, eventWeight);
524-
if (!jetderiveddatautilities::selectCollision(collision, eventSelectionBits)) {
525+
if (!jetderiveddatautilities::selectCollision(collision, eventSelectionBits, skipMBGapEvents)) {
525526
return;
526527
}
527528
registry.fill(HIST("h_collisions"), 1.5);
@@ -540,7 +541,7 @@ struct JetSpectraCharged {
540541
soa::Join<aod::ChargedJets, aod::ChargedJetConstituents> const& jets,
541542
aod::JetTracks const&)
542543
{
543-
if (!jetderiveddatautilities::selectCollision(collision, eventSelectionBits)) {
544+
if (!jetderiveddatautilities::selectCollision(collision, eventSelectionBits, skipMBGapEvents)) {
544545
return;
545546
}
546547
if (collision.trackOccupancyInTimeRange() < trackOccupancyInTimeRangeMin || trackOccupancyInTimeRangeMax < collision.trackOccupancyInTimeRange()) {
@@ -562,7 +563,7 @@ struct JetSpectraCharged {
562563
soa::Join<aod::ChargedMCDetectorLevelJets, aod::ChargedMCDetectorLevelJetConstituents> const& jets,
563564
aod::JetTracks const&)
564565
{
565-
if (!jetderiveddatautilities::selectCollision(collision, eventSelectionBits)) {
566+
if (!jetderiveddatautilities::selectCollision(collision, eventSelectionBits, skipMBGapEvents)) {
566567
return;
567568
}
568569
if (collision.trackOccupancyInTimeRange() < trackOccupancyInTimeRangeMin || trackOccupancyInTimeRangeMax < collision.trackOccupancyInTimeRange()) {
@@ -584,7 +585,7 @@ struct JetSpectraCharged {
584585
soa::Join<aod::ChargedJets, aod::ChargedJetConstituents> const& jets,
585586
aod::JetTracks const&)
586587
{
587-
if (!jetderiveddatautilities::selectCollision(collision, eventSelectionBits)) {
588+
if (!jetderiveddatautilities::selectCollision(collision, eventSelectionBits, skipMBGapEvents)) {
588589
return;
589590
}
590591
if (collision.trackOccupancyInTimeRange() < trackOccupancyInTimeRangeMin || trackOccupancyInTimeRangeMax < collision.trackOccupancyInTimeRange()) {
@@ -606,7 +607,7 @@ struct JetSpectraCharged {
606607
soa::Join<aod::ChargedMCDetectorLevelJets, aod::ChargedMCDetectorLevelJetConstituents> const& jets,
607608
aod::JetTracks const&)
608609
{
609-
if (!jetderiveddatautilities::selectCollision(collision, eventSelectionBits)) {
610+
if (!jetderiveddatautilities::selectCollision(collision, eventSelectionBits, skipMBGapEvents)) {
610611
return;
611612
}
612613
if (collision.trackOccupancyInTimeRange() < trackOccupancyInTimeRangeMin || trackOccupancyInTimeRangeMax < collision.trackOccupancyInTimeRange()) {
@@ -628,7 +629,7 @@ struct JetSpectraCharged {
628629
soa::Join<aod::ChargedMCDetectorLevelJets, aod::ChargedMCDetectorLevelJetConstituents, aod::ChargedMCDetectorLevelJetEventWeights> const& jets,
629630
aod::JetTracks const&)
630631
{
631-
if (!jetderiveddatautilities::selectCollision(collision, eventSelectionBits)) {
632+
if (!jetderiveddatautilities::selectCollision(collision, eventSelectionBits, skipMBGapEvents)) {
632633
return;
633634
}
634635
if (collision.trackOccupancyInTimeRange() < trackOccupancyInTimeRangeMin || trackOccupancyInTimeRangeMax < collision.trackOccupancyInTimeRange()) {
@@ -658,6 +659,8 @@ struct JetSpectraCharged {
658659
soa::Join<aod::ChargedMCParticleLevelJets, aod::ChargedMCParticleLevelJetConstituents> const& jets,
659660
aod::JetParticles const&)
660661
{
662+
bool mcLevelIsParticleLevel = true;
663+
661664
registry.fill(HIST("h_mcColl_counts_areasub"), 0.5);
662665
if (std::abs(mccollision.posZ()) > vertexZCut) {
663666
return;
@@ -676,7 +679,7 @@ struct JetSpectraCharged {
676679
bool centralityIsGood = false;
677680
bool occupancyIsGood = false;
678681
if (acceptSplitCollisions == 2) {
679-
if (jetderiveddatautilities::selectCollision(collisions.begin(), eventSelectionBits)) {
682+
if (jetderiveddatautilities::selectCollision(collisions.begin(), eventSelectionBits, skipMBGapEvents)) {
680683
hasSel8Coll = true;
681684
}
682685
if ((centralityMin < collisions.begin().centrality()) && (collisions.begin().centrality() < centralityMax)) {
@@ -687,7 +690,7 @@ struct JetSpectraCharged {
687690
}
688691
} else {
689692
for (auto const& collision : collisions) {
690-
if (jetderiveddatautilities::selectCollision(collision, eventSelectionBits)) {
693+
if (jetderiveddatautilities::selectCollision(collision, eventSelectionBits, skipMBGapEvents)) {
691694
hasSel8Coll = true;
692695
}
693696
if ((centralityMin < collision.centrality()) && (collision.centrality() < centralityMax)) {
@@ -717,7 +720,7 @@ struct JetSpectraCharged {
717720
if (!jetfindingutilities::isInEtaAcceptance(jet, jetEtaMin, jetEtaMax, trackEtaMin, trackEtaMax)) {
718721
continue;
719722
}
720-
if (!isAcceptedJet<aod::JetParticles>(jet)) {
723+
if (!isAcceptedJet<aod::JetParticles>(jet, mcLevelIsParticleLevel)) {
721724
continue;
722725
}
723726
fillMCPAreaSubHistograms(jet, mccollision.rho());
@@ -730,6 +733,8 @@ struct JetSpectraCharged {
730733
soa::Join<aod::ChargedMCParticleLevelJets, aod::ChargedMCParticleLevelJetConstituents> const& jets,
731734
aod::JetParticles const&)
732735
{
736+
bool mcLevelIsParticleLevel = true;
737+
733738
registry.fill(HIST("h_mcColl_counts"), 0.5);
734739
if (std::abs(mccollision.posZ()) > vertexZCut) {
735740
return;
@@ -744,7 +749,7 @@ struct JetSpectraCharged {
744749
bool centralityIsGood = false;
745750
bool occupancyIsGood = false;
746751
for (auto const& collision : collisions) {
747-
if (jetderiveddatautilities::selectCollision(collision, eventSelectionBits)) {
752+
if (jetderiveddatautilities::selectCollision(collision, eventSelectionBits, skipMBGapEvents)) {
748753
hasSel8Coll = true;
749754
}
750755
if ((centralityMin < collision.centrality()) && (collision.centrality() < centralityMax)) {
@@ -772,7 +777,7 @@ struct JetSpectraCharged {
772777
if (!jetfindingutilities::isInEtaAcceptance(jet, jetEtaMin, jetEtaMax, trackEtaMin, trackEtaMax)) {
773778
continue;
774779
}
775-
if (!isAcceptedJet<aod::JetParticles>(jet)) {
780+
if (!isAcceptedJet<aod::JetParticles>(jet, mcLevelIsParticleLevel)) {
776781
continue;
777782
}
778783
fillMCPHistograms(jet);
@@ -785,6 +790,8 @@ struct JetSpectraCharged {
785790
soa::Join<aod::ChargedMCParticleLevelJets, aod::ChargedMCParticleLevelJetConstituents, aod::ChargedMCParticleLevelJetEventWeights> const& jets,
786791
aod::JetParticles const&)
787792
{
793+
bool mcLevelIsParticleLevel = true;
794+
788795
registry.fill(HIST("h_mcColl_counts"), 0.5);
789796
if (std::abs(mccollision.posZ()) > vertexZCut) {
790797
return;
@@ -797,7 +804,7 @@ struct JetSpectraCharged {
797804

798805
bool hasSel8Coll = false;
799806
for (auto const& collision : collisions) {
800-
if (jetderiveddatautilities::selectCollision(collision, eventSelectionBits)) {
807+
if (jetderiveddatautilities::selectCollision(collision, eventSelectionBits, skipMBGapEvents)) {
801808
hasSel8Coll = true;
802809
}
803810
}
@@ -811,7 +818,7 @@ struct JetSpectraCharged {
811818
if (!jetfindingutilities::isInEtaAcceptance(jet, jetEtaMin, jetEtaMax, trackEtaMin, trackEtaMax)) {
812819
continue;
813820
}
814-
if (!isAcceptedJet<aod::JetParticles>(jet)) {
821+
if (!isAcceptedJet<aod::JetParticles>(jet, mcLevelIsParticleLevel)) {
815822
continue;
816823
}
817824
float jetweight = jet.eventWeight();
@@ -831,7 +838,7 @@ struct JetSpectraCharged {
831838
soa::Join<aod::ChargedEventWiseSubtractedJets, aod::ChargedEventWiseSubtractedJetConstituents> const& jets,
832839
aod::JetTracksSub const&)
833840
{
834-
if (!jetderiveddatautilities::selectCollision(collision, eventSelectionBits)) {
841+
if (!jetderiveddatautilities::selectCollision(collision, eventSelectionBits, skipMBGapEvents)) {
835842
return;
836843
}
837844
if (collision.trackOccupancyInTimeRange() < trackOccupancyInTimeRangeMin || trackOccupancyInTimeRangeMax < collision.trackOccupancyInTimeRange()) {
@@ -853,7 +860,7 @@ struct JetSpectraCharged {
853860
soa::Join<aod::ChargedMCDetectorLevelEventWiseSubtractedJets, aod::ChargedMCDetectorLevelEventWiseSubtractedJetConstituents> const& jets,
854861
aod::JetTracksSub const&)
855862
{
856-
if (!jetderiveddatautilities::selectCollision(collision, eventSelectionBits)) {
863+
if (!jetderiveddatautilities::selectCollision(collision, eventSelectionBits, skipMBGapEvents)) {
857864
return;
858865
}
859866
if (collision.trackOccupancyInTimeRange() < trackOccupancyInTimeRangeMin || trackOccupancyInTimeRangeMax < collision.trackOccupancyInTimeRange()) {
@@ -876,7 +883,7 @@ struct JetSpectraCharged {
876883
ChargedMCPMatchedJets const&,
877884
aod::JetTracks const&, aod::JetParticles const&)
878885
{
879-
if (!jetderiveddatautilities::selectCollision(collision, eventSelectionBits)) {
886+
if (!jetderiveddatautilities::selectCollision(collision, eventSelectionBits, skipMBGapEvents)) {
880887
return;
881888
}
882889
if (collision.trackOccupancyInTimeRange() < trackOccupancyInTimeRangeMin || trackOccupancyInTimeRangeMax < collision.trackOccupancyInTimeRange()) {
@@ -900,7 +907,7 @@ struct JetSpectraCharged {
900907
ChargedMCPMatchedJetsWeighted const&,
901908
aod::JetTracks const&, aod::JetParticles const&)
902909
{
903-
if (!jetderiveddatautilities::selectCollision(collision, eventSelectionBits)) {
910+
if (!jetderiveddatautilities::selectCollision(collision, eventSelectionBits, skipMBGapEvents)) {
904911
return;
905912
}
906913
if (collision.trackOccupancyInTimeRange() < trackOccupancyInTimeRangeMin || trackOccupancyInTimeRangeMax < collision.trackOccupancyInTimeRange()) {
@@ -937,7 +944,7 @@ struct JetSpectraCharged {
937944
registry.fill(HIST("h_mc_rho_matched"), mcrho);
938945
for (const auto& collision : collisions) {
939946
registry.fill(HIST("h_mcd_events_matched"), 0.5);
940-
if (!jetderiveddatautilities::selectCollision(collision, eventSelectionBits) || !(std::abs(collision.posZ()) < vertexZCut)) {
947+
if (!jetderiveddatautilities::selectCollision(collision, eventSelectionBits, skipMBGapEvents) || !(std::abs(collision.posZ()) < vertexZCut)) {
941948
continue;
942949
}
943950
registry.fill(HIST("h_mcd_events_matched"), 1.5);

0 commit comments

Comments
 (0)