Skip to content

Commit a1fec6f

Browse files
committed
CCDB gets Nch-dependent tracking eff. correction
1 parent 7fb2719 commit a1fec6f

File tree

1 file changed

+45
-6
lines changed

1 file changed

+45
-6
lines changed

PWGLF/Tasks/GlobalEventProperties/uccZdc.cxx

Lines changed: 45 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -703,7 +703,7 @@ struct UccZdc {
703703
return;
704704
}
705705

706-
auto efficiency = ccdb->getForTimeStamp<TH1F>(paTHEff.value, foundBC.timestamp());
706+
auto efficiency = ccdb->getForTimeStamp<TH2F>(paTHEff.value, foundBC.timestamp());
707707
if (!efficiency) {
708708
return;
709709
}
@@ -723,9 +723,11 @@ struct UccZdc {
723723
}
724724

725725
float pt{track.pt()};
726+
int foundNchBin{efficiency->GetXaxis()->FindBin(glbTracks)};
727+
int foundPtBin{efficiency->GetYaxis()->FindBin(pt)};
726728
float effValue{1.0};
727729
if (applyEff) {
728-
effValue = efficiency->GetBinContent(efficiency->FindBin(pt));
730+
effValue = efficiency->GetBinContent(foundNchBin, foundPtBin);
729731
}
730732
if (effValue > 0.) {
731733
vecOneOverEff.emplace_back(1. / effValue);
@@ -756,10 +758,12 @@ struct UccZdc {
756758
}
757759

758760
float pt{track.pt()};
761+
int foundNchBin{efficiency->GetXaxis()->FindBin(glbTracks)};
762+
int foundPtBin{efficiency->GetYaxis()->FindBin(pt)};
759763
float effValue{1.};
760764
float fdValue{1.};
761765
if (applyEff) {
762-
effValue = efficiency->GetBinContent(efficiency->FindBin(pt));
766+
effValue = efficiency->GetBinContent(foundNchBin, foundPtBin);
763767
fdValue = fd->GetBinContent(fd->FindBin(pt));
764768
}
765769
if (applyEff && !applyFD) {
@@ -870,7 +874,7 @@ struct UccZdc {
870874
registry.fill(HIST("EvtsDivided"), 0);
871875

872876
// To use run-by-run efficiency
873-
auto efficiency = ccdb->getForTimeStamp<TH1F>(paTHEff.value, foundBC.timestamp());
877+
auto efficiency = ccdb->getForTimeStamp<TH2F>(paTHEff.value, foundBC.timestamp());
874878
if (!efficiency) {
875879
return;
876880
}
@@ -880,20 +884,43 @@ struct UccZdc {
880884
std::vector<float> vecOneOverEff;
881885
// std::vector<float> wIs;
882886
const auto& groupedTracks{simTracks.sliceBy(perCollision, collision.globalIndex())};
887+
888+
// Calculates the event's Nch to evaluate the efficiency
889+
for (const auto& track : groupedTracks) {
890+
// Track Selection
891+
if (track.eta() < minEta || track.eta() > maxEta) {
892+
continue;
893+
}
894+
if (track.pt() < minPt || track.pt() > maxPt) {
895+
continue;
896+
}
897+
if (!track.isGlobalTrack()) {
898+
continue;
899+
}
900+
nchRaw++;
901+
}
902+
883903
// Calculates the event weight, W_k
884904
for (const auto& track : groupedTracks) {
885905
// Track Selection
906+
if (track.eta() < minEta || track.eta() > maxEta) {
907+
continue;
908+
}
909+
if (track.pt() < minPt || track.pt() > maxPt) {
910+
continue;
911+
}
886912
if (!track.isGlobalTrack()) {
887913
continue;
888914
}
889915

890916
float pt{track.pt()};
917+
int foundNchBin{efficiency->GetXaxis()->FindBin(nchRaw)};
918+
int foundPtBin{efficiency->GetYaxis()->FindBin(pt)};
891919
float effValue{1.};
892920
float fdValue{1.};
893-
nchRaw++;
894921

895922
if (applyEff) {
896-
effValue = efficiency->GetBinContent(efficiency->FindBin(pt));
923+
effValue = efficiency->GetBinContent(foundNchBin, foundPtBin);
897924
fdValue = fd->GetBinContent(fd->FindBin(pt));
898925
}
899926
if ((effValue > 0.) && (fdValue > 0.)) {
@@ -987,6 +1014,12 @@ struct UccZdc {
9871014
const auto& groupedTracks{simTracks.sliceBy(perCollision, collision.globalIndex())};
9881015
for (const auto& track : groupedTracks) {
9891016
// Track Selection
1017+
if (track.eta() < minEta || track.eta() > maxEta) {
1018+
continue;
1019+
}
1020+
if (track.pt() < minPt || track.pt() > maxPt) {
1021+
continue;
1022+
}
9901023
if (!track.isGlobalTrack()) {
9911024
continue;
9921025
}
@@ -998,6 +1031,12 @@ struct UccZdc {
9981031

9991032
for (const auto& track : groupedTracks) {
10001033
// Track Selection
1034+
if (track.eta() < minEta || track.eta() > maxEta) {
1035+
continue;
1036+
}
1037+
if (track.pt() < minPt || track.pt() > maxPt) {
1038+
continue;
1039+
}
10011040
if (!track.isGlobalTrack()) {
10021041
continue;
10031042
}

0 commit comments

Comments
 (0)