Skip to content

Commit cea4ebd

Browse files
authored
[PWGJE] efficiency 3d (#16021)
1 parent 185ff35 commit cea4ebd

1 file changed

Lines changed: 31 additions & 9 deletions

File tree

PWGJE/Tasks/jetSpectraEseTask.cxx

Lines changed: 31 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ using namespace o2::framework::expressions;
6565

6666
struct JetSpectraEseTask {
6767
Configurable<std::string> cfgEfficiency{"cfgEfficiency", "", "CCDB path to efficiency"};
68+
Configurable<std::string> cfgEfficiency3D{"cfgEfficiency3D", "", "CCDB path to 3D efficiency"};
6869
Configurable<float> jetPtMin{"jetPtMin", 5.0, "minimum jet pT cut"};
6970
Configurable<float> jetR{"jetR", 0.2, "jet resolution parameter"};
7071
Configurable<float> randomConeR{"randomConeR", 0.4, "size of random Cone for estimating background fluctuations"};
@@ -147,8 +148,10 @@ struct JetSpectraEseTask {
147148

148149
Service<ccdb::BasicCCDBManager> ccdb;
149150
struct Efficiency {
150-
TH1D* hEff = nullptr;
151+
TH1F* hEff = nullptr;
152+
TH3F* h3Eff = nullptr;
151153
bool isLoaded = false;
154+
bool is3D = false;
152155
} cfg;
153156

154157
Filter trackCuts = (aod::jtrack::pt >= trackPtMin && aod::jtrack::pt < trackPtMax && aod::jtrack::eta > trackEtaMin && aod::jtrack::eta < trackEtaMax);
@@ -414,12 +417,14 @@ struct JetSpectraEseTask {
414417
}
415418
if (doprocessMCGenTrack) {
416419
LOGF(info, "JetSpectraEseTask::init() - MCGen track");
420+
registry.add("mcgen/h3TrackPtGen", ";#it{p}_{T,track}; vtxZ; #eta", {HistType::kTH3F, {{assocTrackPt}, {vertexZAxis}, {etaAxis}}});
417421
registry.add("mcgen/hTrackPtGen", "", {HistType::kTH1F, {{assocTrackPt}}});
418422
registry.add("mcgen/hTrackEtaGen", "", {HistType::kTH1F, {{etaAxis}}});
419423
registry.add("mcgen/hTrackPhiGen", "", {HistType::kTH1F, {{phiAxis}}});
420424
}
421425
if (doprocessMCRecoTrack) {
422426
LOGF(info, "JetSpectraEseTask::init() - MCRec track");
427+
registry.add("mcrec/h3TrackPtReco", ";#it{p}_{T,track}; vtxZ; #eta", {HistType::kTH3F, {{assocTrackPt}, {vertexZAxis}, {etaAxis}}});
423428
registry.add("mcrec/hTrackPtReco", "", {HistType::kTH1F, {{assocTrackPt}}});
424429
registry.add("mcrec/hTrackEtaReco", "", {HistType::kTH1F, {{etaAxis}}});
425430
registry.add("mcrec/hTrackPhiReco", "", {HistType::kTH1F, {{phiAxis}}});
@@ -434,22 +439,37 @@ struct JetSpectraEseTask {
434439
return;
435440
}
436441
if (!cfgEfficiency.value.empty()) {
437-
cfg.hEff = ccdb->getForTimeStamp<TH1D>(cfgEfficiency, timestamp);
442+
cfg.hEff = ccdb->getForTimeStamp<TH1F>(cfgEfficiency, timestamp);
438443
if (cfg.hEff == nullptr) {
439444
LOGF(fatal, "Could not load track efficiency from %s", cfgEfficiency.value.c_str());
440445
}
441446
LOGF(info, "Loaded tracking efficiency from %s (%p)", cfgEfficiency.value.c_str(), (void*)cfg.hEff);
442447
}
448+
if (!cfgEfficiency3D.value.empty()) {
449+
cfg.h3Eff = ccdb->getForTimeStamp<TH3F>(cfgEfficiency3D, timestamp);
450+
if (cfg.h3Eff == nullptr) {
451+
LOGF(fatal, "Could not load track efficiency from %s", cfgEfficiency3D.value.c_str());
452+
}
453+
LOGF(info, "Loaded 3D tracking efficiency from %s (%p)", cfgEfficiency3D.value.c_str(), (void*)cfg.h3Eff);
454+
cfg.is3D = true;
455+
}
443456
cfg.isLoaded = true;
444457
return;
445458
}
446459

447460
template <typename TTrack>
448-
double getEfficiency(TTrack track)
461+
double getEfficiency(TTrack track, auto vtxZ)
449462
{
450463
double eff{1.0};
451-
if (cfg.hEff)
452-
eff = cfg.hEff->GetBinContent(cfg.hEff->FindBin(track.pt()));
464+
if (cfg.is3D) {
465+
if (cfg.h3Eff) {
466+
eff = cfg.h3Eff->GetBinContent(cfg.h3Eff->FindBin(track.pt(), track.eta(), vtxZ));
467+
}
468+
} else {
469+
if (cfg.hEff) {
470+
eff = cfg.hEff->GetBinContent(cfg.hEff->FindBin(track.pt()));
471+
}
472+
}
453473
if (eff == 0)
454474
return -1.;
455475
else
@@ -528,7 +548,7 @@ struct JetSpectraEseTask {
528548
for (const auto& track : tracks) {
529549
if (!jetderiveddatautilities::selectTrack(track, trackSelection))
530550
continue;
531-
double weff = getEfficiency(track);
551+
double weff = getEfficiency(track, collision.posZ());
532552
if (weff < 0)
533553
continue;
534554
auto deta = track.eta() - jet.eta();
@@ -538,7 +558,7 @@ struct JetSpectraEseTask {
538558
}
539559
}
540560
for (const auto& track : tracks) {
541-
double weff = getEfficiency(track);
561+
double weff = getEfficiency(track, collision.posZ());
542562
if (weff < 0)
543563
continue;
544564
registry.fill(HIST("trackQA/before/hTrackPt"), centrality, track.pt(), weff);
@@ -626,7 +646,7 @@ struct JetSpectraEseTask {
626646
for (const auto& track : tracks2) {
627647
if (!jetderiveddatautilities::selectTrack(track, trackSelection))
628648
continue;
629-
double weff = getEfficiency(track);
649+
double weff = getEfficiency(track, c2.posZ());
630650
if (weff < 0)
631651
continue;
632652
auto deta = track.eta() - jet.eta();
@@ -636,7 +656,7 @@ struct JetSpectraEseTask {
636656
}
637657

638658
for (const auto& track : tracks2) {
639-
double weff = getEfficiency(track);
659+
double weff = getEfficiency(track, c2.posZ());
640660
if (weff < 0)
641661
continue;
642662
registry.fill(HIST("trackQA/before/hTrackPtMixed"), centrality, track.pt(), weff);
@@ -907,6 +927,7 @@ struct JetSpectraEseTask {
907927
continue;
908928
}
909929

930+
registry.fill(HIST("mcgen/h3TrackPtGen"), particle.pt(), collision.posZ(), particle.eta());
910931
registry.fill(HIST("mcgen/hTrackPtGen"), particle.pt());
911932
registry.fill(HIST("mcgen/hTrackEtaGen"), particle.eta());
912933
registry.fill(HIST("mcgen/hTrackPhiGen"), particle.phi());
@@ -972,6 +993,7 @@ struct JetSpectraEseTask {
972993
}
973994
seenMcParticles.push_back(particle.globalIndex());
974995

996+
registry.fill(HIST("mcrec/h3TrackPtReco"), track.pt(), collision.posZ(), track.eta());
975997
registry.fill(HIST("mcrec/hTrackPtReco"), track.pt());
976998
registry.fill(HIST("mcrec/hTrackEtaReco"), track.eta());
977999
registry.fill(HIST("mcrec/hTrackPhiReco"), track.phi());

0 commit comments

Comments
 (0)