Skip to content

Commit 578ec80

Browse files
lhusovaLucia Anna Tarasovicova
andauthored
[PWGLF] Change in hStrangeCorrelation.cxx (#13194)
Co-authored-by: Lucia Anna Tarasovicova <lucia.anna.husova@cern.ch>
1 parent f4f60d5 commit 578ec80

File tree

1 file changed

+34
-13
lines changed

1 file changed

+34
-13
lines changed

PWGLF/Tasks/Strangeness/hStrangeCorrelation.cxx

Lines changed: 34 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -566,14 +566,14 @@ struct HStrangeCorrelation {
566566

567567
return dPhiStarMean;
568568
}
569-
void fillTriggerHistogram(std::shared_ptr<TH2> hist, double pt, double mult, float eff, float effUncert)
569+
void fillTriggerHistogram(std::shared_ptr<TH2> hist, double pt, double mult, float eff, float effUncert, float purity, float purityErr)
570570
{
571571
int binx = hist->GetXaxis()->FindBin(pt);
572572
int biny = hist->GetYaxis()->FindBin(mult);
573573
float previousContent = hist->GetBinContent(binx, biny);
574574
float previousUncert = hist->GetBinError(binx, biny);
575-
float newContent = previousContent + 1 / eff;
576-
float newUncert = std::sqrt(previousUncert * previousUncert + 1 / std::pow(eff, 2) + std::pow(effUncert, 2) / std::pow(eff, 4));
575+
float newContent = previousContent + purity / eff;
576+
float newUncert = std::sqrt(previousUncert * previousUncert + std::pow(purity / eff, 2) + std::pow(purityErr / eff, 2) + std::pow(effUncert, 2) / std::pow(eff, 4));
577577
hist->SetBinContent(binx, biny, newContent);
578578
hist->SetBinError(binx, biny, newUncert);
579579
}
@@ -600,16 +600,23 @@ struct HStrangeCorrelation {
600600
if (!mixing) {
601601
float efficiency = 1.0f;
602602
float efficiencyError = 0.0f;
603+
float purity = 1.0f;
604+
float purityErr = 0.0;
603605
if (efficiencyFlags.applyEfficiencyForTrigger) {
604606
efficiency = hEfficiencyTrigger->Interpolate(trigg.pt(), trigg.eta());
605-
if (efficiencyFlags.applyEfficiencyPropagation)
607+
if (efficiencyFlags.applyPurityTrigger)
608+
purity = hPurityHadron->Interpolate(trigg.pt());
609+
if (efficiencyFlags.applyEfficiencyPropagation) {
606610
efficiencyError = hEfficiencyUncertaintyTrigger->Interpolate(trigg.pt(), trigg.eta());
611+
if (efficiencyFlags.applyPurityTrigger)
612+
purityErr = hPurityHadron->Interpolate(trigg.pt());
613+
}
607614
if (efficiency == 0) { // check for zero efficiency, do not apply if the case
608615
efficiency = 1;
609616
efficiencyError = 0;
610617
}
611618
}
612-
fillTriggerHistogram(histos.get<TH2>(HIST("sameEvent/TriggerParticlesV0")), trigg.pt(), mult, efficiency, efficiencyError);
619+
fillTriggerHistogram(histos.get<TH2>(HIST("sameEvent/TriggerParticlesV0")), trigg.pt(), mult, efficiency, efficiencyError, purity, purityErr);
613620
}
614621

615622
double triggSign = trigg.sign();
@@ -808,16 +815,23 @@ struct HStrangeCorrelation {
808815
if (!mixing) {
809816
float efficiency = 1.0f;
810817
float efficiencyError = 0.0f;
818+
float purity = 1.0f;
819+
float purityErr = 0.0f;
811820
if (efficiencyFlags.applyEfficiencyForTrigger) {
812821
efficiency = hEfficiencyTrigger->Interpolate(trigg.pt(), trigg.eta());
813-
if (efficiencyFlags.applyEfficiencyPropagation)
822+
if (efficiencyFlags.applyPurityTrigger)
823+
purity = hPurityHadron->Interpolate(trigg.pt());
824+
if (efficiencyFlags.applyEfficiencyPropagation) {
814825
efficiencyError = hEfficiencyUncertaintyTrigger->Interpolate(trigg.pt(), trigg.eta());
826+
if (efficiencyFlags.applyPurityTrigger)
827+
purityErr = hPurityUncertaintyHadron->Interpolate(trigg.pt());
828+
}
815829
if (efficiency == 0) { // check for zero efficiency, do not apply if the case
816830
efficiency = 1;
817831
efficiencyError = 0;
818832
}
819833
}
820-
fillTriggerHistogram(histos.get<TH2>(HIST("sameEvent/TriggerParticlesCascade")), trigg.pt(), mult, efficiency, efficiencyError);
834+
fillTriggerHistogram(histos.get<TH2>(HIST("sameEvent/TriggerParticlesCascade")), trigg.pt(), mult, efficiency, efficiencyError, purity, purityErr);
821835
}
822836
double triggSign = trigg.sign();
823837
double triggForDeltaPhiStar[] = {trigg.phi(), trigg.pt(), triggSign};
@@ -985,19 +999,26 @@ struct HStrangeCorrelation {
985999
if (!mixing) {
9861000
float efficiency = 1.0f;
9871001
float efficiencyError = 0.0f;
1002+
float purity = 1.0f;
1003+
float purityError = 0.0f;
9881004
if (efficiencyFlags.applyEfficiencyForTrigger) {
9891005
efficiency = hEfficiencyTrigger->Interpolate(trigg.pt(), trigg.eta());
990-
if (efficiencyFlags.applyEfficiencyPropagation)
1006+
if (efficiencyFlags.applyPurityTrigger)
1007+
purity = hPurityHadron->Interpolate(trigg.pt());
1008+
if (efficiencyFlags.applyEfficiencyPropagation) {
9911009
hEfficiencyUncertaintyTrigger->Interpolate(trigg.pt(), trigg.eta());
1010+
if (efficiencyFlags.applyPurityTrigger)
1011+
purityError = hPurityUncertaintyHadron->Interpolate(trigg.pt());
1012+
}
9921013
if (efficiency == 0) { // check for zero efficiency, do not apply if the case
9931014
efficiency = 1;
9941015
efficiencyError = 0;
9951016
}
9961017
}
9971018
if constexpr (requires { triggerTrack.extra(); })
998-
fillTriggerHistogram(histos.get<TH2>(HIST("sameEvent/TriggerParticlesPion")), trigg.pt(), mult, efficiency, efficiencyError);
1019+
fillTriggerHistogram(histos.get<TH2>(HIST("sameEvent/TriggerParticlesPion")), trigg.pt(), mult, efficiency, efficiencyError, purity, purityError);
9991020
else
1000-
fillTriggerHistogram(histos.get<TH2>(HIST("sameEvent/TriggerParticlesHadron")), trigg.pt(), mult, efficiency, efficiencyError);
1021+
fillTriggerHistogram(histos.get<TH2>(HIST("sameEvent/TriggerParticlesHadron")), trigg.pt(), mult, efficiency, efficiencyError, purity, purityError);
10011022
}
10021023
double triggSign = trigg.sign();
10031024
double triggForDeltaPhiStar[] = {trigg.phi(), trigg.pt(), triggSign};
@@ -1073,9 +1094,9 @@ struct HStrangeCorrelation {
10731094
if (efficiencyFlags.applyPurityTrigger)
10741095
purityTrigger = hPurityHadron->Interpolate(pttrigger);
10751096
if (efficiencyFlags.applyEfficiencyPropagation) {
1076-
triggerEfficiencyUncert = hEfficiencyUncertaintyTrigger->Interpolate(ptassoc, assoc.eta());
1097+
triggerEfficiencyUncert = hEfficiencyUncertaintyTrigger->Interpolate(pttrigger, trigg.eta());
10771098
if (efficiencyFlags.applyPurityTrigger)
1078-
triggerPurityUncertainty = hPurityUncertaintyHadron->Interpolate(ptassoc);
1099+
triggerPurityUncertainty = hPurityUncertaintyHadron->Interpolate(pttrigger);
10791100
}
10801101
}
10811102
if (efficiency == 0) { // check for zero efficiency, do not apply if the case
@@ -2449,7 +2470,7 @@ struct HStrangeCorrelation {
24492470
histos.fill(HIST("ClosureTest/hTrigger"), gpt, geta, bestCollisionFT0Mpercentile);
24502471
if (doCorrelationHadron) {
24512472
assocHadronIndices.emplace_back(iteratorNum);
2452-
histos.fill(HIST("ClosureTest/hHadron"), gpt, geta, bestCollisionFT0Mpercentile);
2473+
histos.fill(HIST("ClosureTest/hHadron"), gpt, geta, gphi);
24532474
}
24542475
}
24552476
}

0 commit comments

Comments
 (0)