Skip to content

Commit d8a6684

Browse files
[PWGJE] Added TOF veto for PID (#12054)
Co-authored-by: Arvind Khuntia <arvind.khuntia@cern.ch>
1 parent 120b784 commit d8a6684

File tree

1 file changed

+139
-15
lines changed

1 file changed

+139
-15
lines changed

PWGJE/Tasks/nucleiInJets.cxx

Lines changed: 139 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,7 @@ struct nucleiInJets {
150150
Configurable<bool> useLeadingJetDetLevelValue{"useLeadingJetDetLevelValue", false, "true: use det level value for leading jet, false: use part level value"};
151151
Configurable<bool> useDcaxyPtDepCut{"useDcaxyPtDepCut", true, "true: use pt dependent DCAxy cut, false: use constant DCAxy cut"};
152152
Configurable<bool> useTOFNsigmaPreSel{"useTOFNsigmaPreSel", true, "true: use TOF nsgma preselection, false: no TOF nsgma preselection"};
153+
Configurable<bool> useTOFVeto{"useTOFVeto", false, "true: use TOF veto, false: no TOF veto"};
153154
Configurable<bool> isRequireHitsInITSLayers{"isRequireHitsInITSLayers", true, "true: at least one hit in the its inner layes"};
154155
Configurable<bool> useMcC{"useMcC", true, "use mcC"};
155156

@@ -225,14 +226,12 @@ struct nucleiInJets {
225226
const AxisSpec massTrAxis{binsMassTr, ""};
226227
const AxisSpec massHeAxis{binsMassHe, ""};
227228

228-
if (applySkim) {
229-
jetHist.add("hNEvents", "hNEvents", {HistType::kTH1D, {{6, 0.f, 6.f}}});
230-
jetHist.get<TH1>(HIST("hNEvents"))->GetXaxis()->SetBinLabel(1, "All");
231-
jetHist.get<TH1>(HIST("hNEvents"))->GetXaxis()->SetBinLabel(2, "Skimmed");
232-
jetHist.get<TH1>(HIST("hNEvents"))->GetXaxis()->SetBinLabel(3, "|Vz|<10");
233-
jetHist.get<TH1>(HIST("hNEvents"))->GetXaxis()->SetBinLabel(4, "Sel8+|Vz|<10");
234-
jetHist.get<TH1>(HIST("hNEvents"))->GetXaxis()->SetBinLabel(5, "nJets>0");
235-
}
229+
jetHist.add("hNEvents", "hNEvents", {HistType::kTH1D, {{6, 0.f, 6.f}}});
230+
jetHist.get<TH1>(HIST("hNEvents"))->GetXaxis()->SetBinLabel(1, "All");
231+
jetHist.get<TH1>(HIST("hNEvents"))->GetXaxis()->SetBinLabel(2, "Skimmed");
232+
jetHist.get<TH1>(HIST("hNEvents"))->GetXaxis()->SetBinLabel(3, "|Vz|<10");
233+
jetHist.get<TH1>(HIST("hNEvents"))->GetXaxis()->SetBinLabel(4, "Sel8+|Vz|<10");
234+
jetHist.get<TH1>(HIST("hNEvents"))->GetXaxis()->SetBinLabel(5, "nJets>0");
236235

237236
// jet property
238237
jetHist.add("jet/h1JetPt", "jet_{p_{T}}", kTH1F, {PtJetAxis});
@@ -713,12 +712,42 @@ struct nucleiInJets {
713712
jetHist.fill(HIST("tracks/helium/h3PtVsHeliumNSigmaTPCVsPtJet_jet"), trk.pt(), trk.tpcNSigmaHe(), jetPt);
714713
if (std::abs(trk.tofNSigmaTr()) < cfgnTPCPIDTrTOF)
715714
jetHist.fill(HIST("tracks/triton/h3PtVsTritonNSigmaTPCVsPtJet_jet"), trk.pt(), trk.tpcNSigmaTr(), jetPt);
716-
} else if (!useTOFNsigmaPreSel) {
715+
} else if (!useTOFNsigmaPreSel && !useTOFVeto) {
717716
jetHist.fill(HIST("tracks/proton/h3PtVsProtonNSigmaTPCVsPtJet_jet"), trk.pt(), trk.tpcNSigmaPr(), jetPt);
718717
jetHist.fill(HIST("tracks/deuteron/h3PtVsDeuteronNSigmaTPCVsPtJet_jet"), trk.pt(), trk.tpcNSigmaDe(), jetPt);
719718
jetHist.fill(HIST("tracks/helium/h3PtVsHeliumNSigmaTPCVsPtJet_jet"), trk.pt(), trk.tpcNSigmaHe(), jetPt);
720719
jetHist.fill(HIST("tracks/triton/h3PtVsTritonNSigmaTPCVsPtJet_jet"), trk.pt(), trk.tpcNSigmaTr(), jetPt);
720+
} else if (!useTOFNsigmaPreSel && useTOFVeto) {
721+
if (trk.hasTOF()) {
722+
if (std::abs(trk.tofNSigmaPr()) < cfgnTPCPIDPrTOF) {
723+
jetHist.fill(HIST("tracks/proton/h3PtVsProtonNSigmaTPCVsPtJet_jet"), trk.pt(), trk.tpcNSigmaPr(), jetPt);
724+
}
725+
} else {
726+
jetHist.fill(HIST("tracks/proton/h3PtVsProtonNSigmaTPCVsPtJet_jet"), trk.pt(), trk.tpcNSigmaPr(), jetPt);
727+
}
728+
if (trk.hasTOF()) {
729+
if (std::abs(trk.tofNSigmaDe()) < cfgnTPCPIDDeTOF) {
730+
jetHist.fill(HIST("tracks/deuteron/h3PtVsDeuteronNSigmaTPCVsPtJet_jet"), trk.pt(), trk.tpcNSigmaDe(), jetPt);
731+
}
732+
} else {
733+
jetHist.fill(HIST("tracks/deuteron/h3PtVsDeuteronNSigmaTPCVsPtJet_jet"), trk.pt(), trk.tpcNSigmaDe(), jetPt);
734+
}
735+
if (trk.hasTOF()) {
736+
if (std::abs(trk.tofNSigmaHe()) < cfgnTPCPIDHeTOF) {
737+
jetHist.fill(HIST("tracks/helium/h3PtVsHeliumNSigmaTPCVsPtJet_jet"), trk.pt(), trk.tpcNSigmaHe(), jetPt);
738+
}
739+
} else {
740+
jetHist.fill(HIST("tracks/helium/h3PtVsHeliumNSigmaTPCVsPtJet_jet"), trk.pt(), trk.tpcNSigmaHe(), jetPt);
741+
}
742+
if (trk.hasTOF()) {
743+
if (std::abs(trk.tofNSigmaTr()) < cfgnTPCPIDTrTOF) {
744+
jetHist.fill(HIST("tracks/triton/h3PtVsTritonNSigmaTPCVsPtJet_jet"), trk.pt(), trk.tpcNSigmaTr(), jetPt);
745+
}
746+
} else {
747+
jetHist.fill(HIST("tracks/triton/h3PtVsTritonNSigmaTPCVsPtJet_jet"), trk.pt(), trk.tpcNSigmaTr(), jetPt);
748+
}
721749
}
750+
722751
if (cEnableProtonQA && std::abs(trk.tpcNSigmaPr()) < cfgnTPCPIDPr) {
723752
jetHist.fill(HIST("tracks/proton/dca/after/hDCAxyVsPtProton_jet"), trk.dcaXY(), trk.pt());
724753
jetHist.fill(HIST("tracks/proton/dca/after/hDCAzVsPtProton_jet"), trk.dcaZ(), trk.pt());
@@ -799,11 +828,40 @@ struct nucleiInJets {
799828
jetHist.fill(HIST("tracks/antiHelium/h3PtVsantiHeliumNSigmaTPCVsPtJet_jet"), trk.pt(), trk.tpcNSigmaHe(), jetPt);
800829
if (std::abs(trk.tofNSigmaTr()) < cfgnTPCPIDTrTOF)
801830
jetHist.fill(HIST("tracks/antiTriton/h3PtVsantiTritonNSigmaTPCVsPtJet_jet"), trk.pt(), trk.tpcNSigmaTr(), jetPt);
802-
} else if (!useTOFNsigmaPreSel) {
831+
} else if (!useTOFNsigmaPreSel && !useTOFVeto) {
803832
jetHist.fill(HIST("tracks/antiProton/h3PtVsantiProtonNSigmaTPCVsPtJet_jet"), trk.pt(), trk.tpcNSigmaPr(), jetPt);
804833
jetHist.fill(HIST("tracks/antiDeuteron/h3PtVsantiDeuteronNSigmaTPCVsPtJet_jet"), trk.pt(), trk.tpcNSigmaDe(), jetPt);
805834
jetHist.fill(HIST("tracks/antiHelium/h3PtVsantiHeliumNSigmaTPCVsPtJet_jet"), trk.pt(), trk.tpcNSigmaHe(), jetPt);
806835
jetHist.fill(HIST("tracks/antiTriton/h3PtVsantiTritonNSigmaTPCVsPtJet_jet"), trk.pt(), trk.tpcNSigmaTr(), jetPt);
836+
} else if (!useTOFNsigmaPreSel && useTOFVeto) {
837+
if (trk.hasTOF()) {
838+
if (std::abs(trk.tofNSigmaPr()) < cfgnTPCPIDPrTOF) {
839+
jetHist.fill(HIST("tracks/antiProton/h3PtVsantiProtonNSigmaTPCVsPtJet_jet"), trk.pt(), trk.tpcNSigmaPr(), jetPt);
840+
}
841+
} else {
842+
jetHist.fill(HIST("tracks/antiProton/h3PtVsantiProtonNSigmaTPCVsPtJet_jet"), trk.pt(), trk.tpcNSigmaPr(), jetPt);
843+
}
844+
if (trk.hasTOF()) {
845+
if (std::abs(trk.tofNSigmaDe()) < cfgnTPCPIDDeTOF) {
846+
jetHist.fill(HIST("tracks/antiDeuteron/h3PtVsantiDeuteronNSigmaTPCVsPtJet_jet"), trk.pt(), trk.tpcNSigmaDe(), jetPt);
847+
}
848+
} else {
849+
jetHist.fill(HIST("tracks/antiDeuteron/h3PtVsantiDeuteronNSigmaTPCVsPtJet_jet"), trk.pt(), trk.tpcNSigmaDe(), jetPt);
850+
}
851+
if (trk.hasTOF()) {
852+
if (std::abs(trk.tofNSigmaHe()) < cfgnTPCPIDHeTOF) {
853+
jetHist.fill(HIST("tracks/antiHelium/h3PtVsantiHeliumNSigmaTPCVsPtJet_jet"), trk.pt(), trk.tpcNSigmaHe(), jetPt);
854+
}
855+
} else {
856+
jetHist.fill(HIST("tracks/antiHelium/h3PtVsantiHeliumNSigmaTPCVsPtJet_jet"), trk.pt(), trk.tpcNSigmaHe(), jetPt);
857+
}
858+
if (trk.hasTOF()) {
859+
if (std::abs(trk.tofNSigmaTr()) < cfgnTPCPIDTrTOF) {
860+
jetHist.fill(HIST("tracks/antiTriton/h3PtVsantiTritonNSigmaTPCVsPtJet_jet"), trk.pt(), trk.tpcNSigmaTr(), jetPt);
861+
}
862+
} else {
863+
jetHist.fill(HIST("tracks/antiTriton/h3PtVsantiTritonNSigmaTPCVsPtJet_jet"), trk.pt(), trk.tpcNSigmaTr(), jetPt);
864+
}
807865
}
808866

809867
if (cEnableProtonQA && std::abs(trk.tpcNSigmaPr()) < cfgnTPCPIDPr) {
@@ -908,11 +966,40 @@ struct nucleiInJets {
908966
jetHist.fill(HIST("tracks/perpCone/helium/h3PtVsHeliumNSigmaTPCVsPtJet"), trk.pt(), trk.tpcNSigmaHe(), jetPt); // He
909967
if (std::abs(trk.tofNSigmaTr()) < cfgnTPCPIDTrTOF)
910968
jetHist.fill(HIST("tracks/perpCone/triton/h3PtVsTritonNSigmaTPCVsPtJet"), trk.pt(), trk.tpcNSigmaTr(), jetPt); // Tr
911-
} else if (!useTOFNsigmaPreSel) {
969+
} else if (!useTOFNsigmaPreSel && !useTOFVeto) {
912970
jetHist.fill(HIST("tracks/perpCone/proton/h3PtVsProtonNSigmaTPCVsPtJet"), trk.pt(), trk.tpcNSigmaPr(), jetPt); // Pr
913971
jetHist.fill(HIST("tracks/perpCone/deuteron/h3PtVsDeuteronNSigmaTPCVsPtJet"), trk.pt(), trk.tpcNSigmaDe(), jetPt); // De
914972
jetHist.fill(HIST("tracks/perpCone/helium/h3PtVsHeliumNSigmaTPCVsPtJet"), trk.pt(), trk.tpcNSigmaHe(), jetPt); // He
915973
jetHist.fill(HIST("tracks/perpCone/triton/h3PtVsTritonNSigmaTPCVsPtJet"), trk.pt(), trk.tpcNSigmaTr(), jetPt); // Tr
974+
} else if (!useTOFNsigmaPreSel && useTOFVeto) {
975+
if (trk.hasTOF()) {
976+
if (std::abs(trk.tofNSigmaPr()) < cfgnTPCPIDPrTOF) {
977+
jetHist.fill(HIST("tracks/perpCone/proton/h3PtVsProtonNSigmaTPCVsPtJet"), trk.pt(), trk.tpcNSigmaPr(), jetPt); // Pr
978+
}
979+
} else {
980+
jetHist.fill(HIST("tracks/perpCone/proton/h3PtVsProtonNSigmaTPCVsPtJet"), trk.pt(), trk.tpcNSigmaPr(), jetPt); // Pr
981+
}
982+
if (trk.hasTOF()) {
983+
if (std::abs(trk.tofNSigmaDe()) < cfgnTPCPIDDeTOF) {
984+
jetHist.fill(HIST("tracks/perpCone/deuteron/h3PtVsDeuteronNSigmaTPCVsPtJet"), trk.pt(), trk.tpcNSigmaDe(), jetPt); // De
985+
}
986+
} else {
987+
jetHist.fill(HIST("tracks/perpCone/deuteron/h3PtVsDeuteronNSigmaTPCVsPtJet"), trk.pt(), trk.tpcNSigmaDe(), jetPt); // De
988+
}
989+
if (trk.hasTOF()) {
990+
if (std::abs(trk.tofNSigmaHe()) < cfgnTPCPIDHeTOF) {
991+
jetHist.fill(HIST("tracks/perpCone/helium/h3PtVsHeliumNSigmaTPCVsPtJet"), trk.pt(), trk.tpcNSigmaHe(), jetPt); // He
992+
}
993+
} else {
994+
jetHist.fill(HIST("tracks/perpCone/helium/h3PtVsHeliumNSigmaTPCVsPtJet"), trk.pt(), trk.tpcNSigmaHe(), jetPt); // He
995+
}
996+
if (trk.hasTOF()) {
997+
if (std::abs(trk.tofNSigmaTr()) < cfgnTPCPIDTrTOF) {
998+
jetHist.fill(HIST("tracks/perpCone/triton/h3PtVsTritonNSigmaTPCVsPtJet"), trk.pt(), trk.tpcNSigmaTr(), jetPt); // Tr
999+
}
1000+
} else {
1001+
jetHist.fill(HIST("tracks/perpCone/triton/h3PtVsTritonNSigmaTPCVsPtJet"), trk.pt(), trk.tpcNSigmaTr(), jetPt); // Tr
1002+
}
9161003
}
9171004
}
9181005

@@ -997,11 +1084,40 @@ struct nucleiInJets {
9971084
jetHist.fill(HIST("tracks/perpCone/antiHelium/h3PtVsantiHeliumNSigmaTPCVsPtJet"), trk.pt(), trk.tpcNSigmaHe(), jetPt); // He
9981085
if (std::abs(trk.tofNSigmaTr()) < cfgnTPCPIDTrTOF)
9991086
jetHist.fill(HIST("tracks/perpCone/antiTriton/h3PtVsantiTritonNSigmaTPCVsPtJet"), trk.pt(), trk.tpcNSigmaTr(), jetPt); // Tr
1000-
} else if (!useTOFNsigmaPreSel) {
1087+
} else if (!useTOFNsigmaPreSel && !useTOFVeto) {
10011088
jetHist.fill(HIST("tracks/perpCone/antiProton/h3PtVsantiProtonNSigmaTPCVsPtJet"), trk.pt(), trk.tpcNSigmaPr(), jetPt); // Pr
10021089
jetHist.fill(HIST("tracks/perpCone/antiDeuteron/h3PtVsantiDeuteronNSigmaTPCVsPtJet"), trk.pt(), trk.tpcNSigmaDe(), jetPt); // De
10031090
jetHist.fill(HIST("tracks/perpCone/antiHelium/h3PtVsantiHeliumNSigmaTPCVsPtJet"), trk.pt(), trk.tpcNSigmaHe(), jetPt); // He
10041091
jetHist.fill(HIST("tracks/perpCone/antiTriton/h3PtVsantiTritonNSigmaTPCVsPtJet"), trk.pt(), trk.tpcNSigmaTr(), jetPt); // Tr
1092+
} else if (!useTOFNsigmaPreSel && useTOFVeto) {
1093+
if (trk.hasTOF()) {
1094+
if (std::abs(trk.tofNSigmaPr()) < cfgnTPCPIDPrTOF) {
1095+
jetHist.fill(HIST("tracks/perpCone/antiProton/h3PtVsantiProtonNSigmaTPCVsPtJet"), trk.pt(), trk.tpcNSigmaPr(), jetPt); // Pr
1096+
}
1097+
} else {
1098+
jetHist.fill(HIST("tracks/perpCone/antiProton/h3PtVsantiProtonNSigmaTPCVsPtJet"), trk.pt(), trk.tpcNSigmaPr(), jetPt); // Pr
1099+
}
1100+
if (trk.hasTOF()) {
1101+
if (std::abs(trk.tofNSigmaDe()) < cfgnTPCPIDDeTOF) {
1102+
jetHist.fill(HIST("tracks/perpCone/antiDeuteron/h3PtVsantiDeuteronNSigmaTPCVsPtJet"), trk.pt(), trk.tpcNSigmaDe(), jetPt); // De
1103+
}
1104+
} else {
1105+
jetHist.fill(HIST("tracks/perpCone/antiDeuteron/h3PtVsantiDeuteronNSigmaTPCVsPtJet"), trk.pt(), trk.tpcNSigmaDe(), jetPt); // De
1106+
}
1107+
if (trk.hasTOF()) {
1108+
if (std::abs(trk.tofNSigmaHe()) < cfgnTPCPIDHeTOF) {
1109+
jetHist.fill(HIST("tracks/perpCone/antiHelium/h3PtVsantiHeliumNSigmaTPCVsPtJet"), trk.pt(), trk.tpcNSigmaHe(), jetPt); // He
1110+
}
1111+
} else {
1112+
jetHist.fill(HIST("tracks/perpCone/antiHelium/h3PtVsantiHeliumNSigmaTPCVsPtJet"), trk.pt(), trk.tpcNSigmaHe(), jetPt); // He
1113+
}
1114+
if (trk.hasTOF()) {
1115+
if (std::abs(trk.tofNSigmaTr()) < cfgnTPCPIDTrTOF) {
1116+
jetHist.fill(HIST("tracks/perpCone/antiTriton/h3PtVsantiTritonNSigmaTPCVsPtJet"), trk.pt(), trk.tpcNSigmaTr(), jetPt); // Tr
1117+
}
1118+
} else {
1119+
jetHist.fill(HIST("tracks/perpCone/antiTriton/h3PtVsantiTritonNSigmaTPCVsPtJet"), trk.pt(), trk.tpcNSigmaTr(), jetPt); // Tr
1120+
}
10051121
}
10061122
}
10071123

@@ -1142,6 +1258,7 @@ struct nucleiInJets {
11421258
if (std::abs(collision.posZ()) > 10)
11431259
return;
11441260
jetHist.fill(HIST("hNEvents"), 2.5);
1261+
11451262
if (!jetderiveddatautilities::selectCollision(collision, jetderiveddatautilities::initialiseEventSelectionBits("sel8")))
11461263
return;
11471264
jetHist.fill(HIST("hNEvents"), 3.5);
@@ -1468,8 +1585,12 @@ struct nucleiInJets {
14681585
jetHist.fill(HIST("eff/recmatched/pt/PtParticleTypeTPC"), mcTrack.pt(), jetFlag, mapPDGToValue(mcTrack.pdgCode()));
14691586
if (isTof)
14701587
jetHist.fill(HIST("eff/recmatched/pt/PtParticleTypeTOF"), mcTrack.pt(), jetFlag, mapPDGToValue(mcTrack.pdgCode()));
1471-
if (isTOFAndTPCPreSel)
1588+
if (isTOFAndTPCPreSel) {
14721589
jetHist.fill(HIST("eff/recmatched/pt/PtParticleTypeTPCTOF"), mcTrack.pt(), jetFlag, mapPDGToValue(mcTrack.pdgCode()));
1590+
jetHist.fill(HIST("eff/recmatched/pt/PtParticleTypeTPCTOFVeto"), mcTrack.pt(), jetFlag, mapPDGToValue(mcTrack.pdgCode()));
1591+
} else {
1592+
jetHist.fill(HIST("eff/recmatched/pt/PtParticleTypeTPCTOFVeto"), mcTrack.pt(), jetFlag, mapPDGToValue(mcTrack.pdgCode()));
1593+
}
14731594

14741595
if (jetFlagPerpCone) {
14751596
jetHist.fill(HIST("eff/recmatched/perpCone/pt/PtParticleType"), mcTrack.pt(), mapPDGToValue(mcTrack.pdgCode()));
@@ -1483,8 +1604,12 @@ struct nucleiInJets {
14831604
jetHist.fill(HIST("eff/recmatched/perpCone/pt/PtParticleTypeTPC"), mcTrack.pt(), mapPDGToValue(mcTrack.pdgCode()));
14841605
if (isTof)
14851606
jetHist.fill(HIST("eff/recmatched/perpCone/pt/PtParticleTypeTOF"), mcTrack.pt(), mapPDGToValue(mcTrack.pdgCode()));
1486-
if (isTOFAndTPCPreSel)
1607+
if (isTOFAndTPCPreSel) {
14871608
jetHist.fill(HIST("eff/recmatched/perpCone/pt/PtParticleTypeTPCTOF"), mcTrack.pt(), mapPDGToValue(mcTrack.pdgCode()));
1609+
jetHist.fill(HIST("eff/recmatched/perpCone/pt/PtParticleTypeTPCTOFVeto"), mcTrack.pt(), mapPDGToValue(mcTrack.pdgCode()));
1610+
}
1611+
} else {
1612+
jetHist.fill(HIST("eff/recmatched/perpCone/pt/PtParticleTypeTPCTOFVeto"), mcTrack.pt(), mapPDGToValue(mcTrack.pdgCode()));
14881613
}
14891614
}
14901615
} // tracks
@@ -1531,7 +1656,6 @@ struct nucleiInJets {
15311656
jetHist.fill(HIST("eff/recmatched/gen/perpCone/pt/PtParticleType"), mcParticle.pt(), mapPDGToValue(mcParticle.pdgCode()));
15321657
}
15331658
}
1534-
15351659
} // mcParticle
15361660
} // process
15371661

0 commit comments

Comments
 (0)