Skip to content

Commit 86dad21

Browse files
committed
Add time reclustering, plus centrality selection and event subtraction for light/heavy-ion processing
1 parent f4f65e2 commit 86dad21

1 file changed

Lines changed: 42 additions & 10 deletions

File tree

PWGJE/Tasks/jetLundPlane.cxx

Lines changed: 42 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -58,11 +58,13 @@ DECLARE_SOA_COLUMN(MiniCollTag, miniCollTag, uint8_t);
5858
DECLARE_SOA_COLUMN(MiniCollMcCollisionId, miniCollMcCollisionId, int64_t);
5959
DECLARE_SOA_COLUMN(MiniCollWeight, miniCollWeight, float);
6060
DECLARE_SOA_COLUMN(MiniCollPtHard, miniCollPtHard, float);
61+
DECLARE_SOA_COLUMN(MiniCollCentrality, miniCollCentrality, float);
6162
DECLARE_SOA_TABLE(MiniCollisions, "AOD", "MINICOLL",
6263
MiniCollTag,
6364
MiniCollMcCollisionId,
6465
MiniCollWeight,
65-
MiniCollPtHard);
66+
MiniCollPtHard,
67+
MiniCollCentrality);
6668

6769
// MiniJets -> MiniCollisions
6870
DECLARE_SOA_INDEX_COLUMN_CUSTOM(MiniCollision, miniCollision, "MINICOLLS");
@@ -283,6 +285,9 @@ struct JetLundPlaneUnfolding {
283285
Configurable<float> jetEtaMax{"jetEtaMax", 0.5f, "max jet eta"};
284286
Configurable<float> jetR{"jetR", 0.4f, "jet radius (must match derived tables)"};
285287
Configurable<float> trackPtMin{"trackPtMin", 0.15f, "min constituent pT"};
288+
Configurable<float> centralityMin{"centralityMin", 0.f, "minimum FT0M centrality for subtracted data"};
289+
Configurable<float> centralityMax{"centralityMax", 100.f, "maximum FT0M centrality for subtracted data"};
290+
Configurable<int> reclusteringAlgorithm{"reclusteringAlgorithm", 0, "reclustering algorithm: 0 = C/A, 1 = generalized-kT p=0.5 (tau)"};
286291

287292
Configurable<int> nBinsJetPt{"nBinsJetPt", 200, "jet pT bins"};
288293
Configurable<float> jetPtMax{"jetPtMax", 200.f, "jet pT max"};
@@ -312,7 +317,7 @@ struct JetLundPlaneUnfolding {
312317
Produces<aod::MiniSplittingsAll> outMiniSplittingsAll;
313318
Produces<aod::MiniJetMatches> outMiniJetMatches;
314319

315-
// FastJet reclustering setup (C/A)
320+
// FastJet reclustering setup
316321
JetFinder reclusterer;
317322
std::vector<fastjet::PseudoJet> jetReclustered;
318323

@@ -403,7 +408,13 @@ struct JetLundPlaneUnfolding {
403408

404409
// reclusterer config
405410
reclusterer.isReclustering = true;
406-
reclusterer.algorithm = fastjet::cambridge_algorithm;
411+
if (reclusteringAlgorithm.value == 0) {
412+
reclusterer.algorithm = fastjet::cambridge_algorithm;
413+
} else if (reclusteringAlgorithm.value == 1) {
414+
reclusterer.algorithm = fastjet::genkt_algorithm;
415+
reclusterer.fastjetExtraParam = 0.5;
416+
}
417+
407418
reclusterer.jetR = 1.0; // recluster radius for declustering tree
408419
reclusterer.recombScheme = fastjet::E_scheme;
409420
reclusterer.strategy = fastjet::Best;
@@ -422,6 +433,8 @@ struct JetLundPlaneUnfolding {
422433

423434
// Type aliases
424435
using RecoJets = soa::Join<aod::ChargedJets, aod::ChargedJetConstituents>;
436+
using SubtractedRecoJets = soa::Join<aod::ChargedEventWiseSubtractedJets,
437+
aod::ChargedEventWiseSubtractedJetConstituents>;
425438
using DetJetsMatched = soa::Join<aod::ChargedMCDetectorLevelJets,
426439
aod::ChargedMCDetectorLevelJetConstituents,
427440
aod::ChargedMCDetectorLevelJetsMatchedToChargedMCParticleLevelJets>;
@@ -537,15 +550,14 @@ struct JetLundPlaneUnfolding {
537550
}
538551

539552
// DATA / RECO PROCESSING
540-
void processData(soa::Filtered<aod::JetCollisions>::iterator const&,
541-
soa::Filtered<RecoJets> const& jets,
542-
aod::JetTracks const& tracks)
553+
template <typename JetTableT, typename ConstituentTableT>
554+
void processDataImpl(JetTableT const& jets, ConstituentTableT const& tracks, float centrality)
543555
{
544556
registry.fill(HIST("hEventCount"), 0.5);
545557

546558
int miniCollIdx = -1;
547559
if (writeMiniAOD.value) {
548-
outMiniCollisions(static_cast<uint8_t>(0), int64_t{-1}, 1.f, -1.f);
560+
outMiniCollisions(static_cast<uint8_t>(0), int64_t{-1}, 1.f, -1.f, centrality);
549561
miniCollIdx = outMiniCollisions.lastIndex();
550562
}
551563
for (auto const& jet : jets) {
@@ -570,7 +582,27 @@ struct JetLundPlaneUnfolding {
570582
}
571583
}
572584
}
573-
PROCESS_SWITCH(JetLundPlaneUnfolding, processData, "Reco/data Lund + jet spectra", true);
585+
586+
void processData(soa::Filtered<aod::JetCollisions>::iterator const&,
587+
soa::Filtered<RecoJets> const& jets,
588+
aod::JetTracks const& tracks)
589+
{
590+
processDataImpl(jets, tracks, -1.f);
591+
}
592+
PROCESS_SWITCH(JetLundPlaneUnfolding, processData, "Unsubtracted reco/data Lund + jet spectra", true);
593+
594+
void processDataEventWiseSubCentrality(soa::Filtered<aod::JetCollisions>::iterator const& collision,
595+
soa::Filtered<SubtractedRecoJets> const& jets,
596+
aod::JetTracksSub const& tracks)
597+
{
598+
const float centrality = collision.centFT0M();
599+
if (centrality < centralityMin.value || centrality >= centralityMax.value) {
600+
return;
601+
}
602+
processDataImpl(jets, tracks, centrality);
603+
}
604+
PROCESS_SWITCH(JetLundPlaneUnfolding, processDataEventWiseSubCentrality,
605+
"Event-wise constituent-subtracted reco/data Lund with FT0M centrality", false);
574606

575607
// MC PROCESSING (det + part + response)
576608

@@ -651,7 +683,7 @@ struct JetLundPlaneUnfolding {
651683
int partMiniCollIdx = -1;
652684
auto collIt = partMiniCollByKey.find(partCollKey);
653685
if (collIt == partMiniCollByKey.end()) {
654-
outMiniCollisions(static_cast<uint8_t>(0), partMcInfo.mcCollisionId, partMcInfo.weight, partMcInfo.ptHard);
686+
outMiniCollisions(static_cast<uint8_t>(0), partMcInfo.mcCollisionId, partMcInfo.weight, partMcInfo.ptHard, -1.f);
655687
partMiniCollIdx = outMiniCollisions.lastIndex();
656688
partMiniCollByKey.emplace(partCollKey, partMiniCollIdx);
657689
} else {
@@ -730,7 +762,7 @@ struct JetLundPlaneUnfolding {
730762
int detMiniCollIdx = -1;
731763
auto collIt = detMiniCollByKey.find(detCollKey);
732764
if (collIt == detMiniCollByKey.end()) {
733-
outMiniCollisions(static_cast<uint8_t>(0), detMcInfo.mcCollisionId, detMcInfo.weight, detMcInfo.ptHard);
765+
outMiniCollisions(static_cast<uint8_t>(0), detMcInfo.mcCollisionId, detMcInfo.weight, detMcInfo.ptHard, -1.f);
734766
detMiniCollIdx = outMiniCollisions.lastIndex();
735767
detMiniCollByKey.emplace(detCollKey, detMiniCollIdx);
736768
} else {

0 commit comments

Comments
 (0)