Skip to content

Commit 3989b62

Browse files
authored
[PWGDQ] Add cuts and histograms for kaon selection and single-gap analysis (#9243)
1 parent dc0c830 commit 3989b62

File tree

4 files changed

+73
-0
lines changed

4 files changed

+73
-0
lines changed

PWGDQ/Core/CutsLibrary.cxx

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -595,6 +595,23 @@ AnalysisCompositeCut* o2::aod::dqcuts::GetCompositeCut(const char* cutName)
595595
return cut;
596596
}
597597

598+
if (!nameStr.compare("singleGapTrackCuts4")) {
599+
cut->AddCut(GetAnalysisCut("PIDStandardKine2"));
600+
cut->AddCut(GetAnalysisCut("ITSibany"));
601+
602+
AnalysisCompositeCut* cut_notpc = new AnalysisCompositeCut("NoTPC", "NoTPC", kTRUE);
603+
cut_notpc->AddCut(GetAnalysisCut("noTPC"));
604+
605+
AnalysisCompositeCut* cut_tpcpid = new AnalysisCompositeCut("pid_TPC", "pid_TPC", kTRUE);
606+
cut_tpcpid->AddCut(GetAnalysisCut("pionQuality"));
607+
608+
AnalysisCompositeCut* cut_OR = new AnalysisCompositeCut("OR", "OR", kFALSE);
609+
cut_OR->AddCut(cut_notpc);
610+
cut_OR->AddCut(cut_tpcpid);
611+
cut->AddCut(cut_OR);
612+
return cut;
613+
}
614+
598615
if (!nameStr.compare("PIDCalib")) {
599616
cut->AddCut(GetAnalysisCut("PIDStandardKine")); // standard kine cuts usually are applied via Filter in the task
600617
cut->AddCut(GetAnalysisCut("electronStandardQuality"));
@@ -664,11 +681,18 @@ AnalysisCompositeCut* o2::aod::dqcuts::GetCompositeCut(const char* cutName)
664681
return cut;
665682
}
666683

684+
if (!nameStr.compare("kaonPID6")) {
685+
cut->AddCut(GetAnalysisCut("kaonPIDnsigma700"));
686+
return cut;
687+
}
688+
667689
if (!nameStr.compare("kaonPIDTPCTOForTPC")) {
668690
AnalysisCompositeCut* cut_tpctof_nSigma = new AnalysisCompositeCut("pid_TPCTOFnSigma", "pid_TPCTOFnSigma", kTRUE);
691+
cut_tpctof_nSigma->AddCut(GetAnalysisCut("hasTOF"));
669692
cut_tpctof_nSigma->AddCut(GetAnalysisCut("kaonPID_TPCnTOF"));
670693

671694
AnalysisCompositeCut* cut_tpc_nSigma = new AnalysisCompositeCut("pid_TPCnSigma", "pid_TPCnSigma", kTRUE);
695+
cut_tpc_nSigma->AddCut(GetAnalysisCut("noTOF"));
672696
cut_tpc_nSigma->AddCut(GetAnalysisCut("kaonPIDnsigma"));
673697

674698
AnalysisCompositeCut* cut_pid_OR = new AnalysisCompositeCut("kaon_nsigma", "kaon_nsigma", kFALSE);
@@ -678,6 +702,22 @@ AnalysisCompositeCut* o2::aod::dqcuts::GetCompositeCut(const char* cutName)
678702
return cut;
679703
}
680704

705+
if (!nameStr.compare("kaonPIDTPCTOForTPC700")) {
706+
AnalysisCompositeCut* cut_tpctof_nSigma = new AnalysisCompositeCut("pid_TPCTOFnSigma", "pid_TPCTOFnSigma", kTRUE);
707+
cut_tpctof_nSigma->AddCut(GetAnalysisCut("hasTOF"));
708+
cut_tpctof_nSigma->AddCut(GetAnalysisCut("kaonPID_TPCnTOF"));
709+
710+
AnalysisCompositeCut* cut_tpc_nSigma = new AnalysisCompositeCut("pid_TPCnSigma", "pid_TPCnSigma", kTRUE);
711+
cut_tpc_nSigma->AddCut(GetAnalysisCut("noTOF"));
712+
cut_tpc_nSigma->AddCut(GetAnalysisCut("kaonPIDnsigma700"));
713+
714+
AnalysisCompositeCut* cut_pid_OR = new AnalysisCompositeCut("kaon_nsigma", "kaon_nsigma", kFALSE);
715+
cut_pid_OR->AddCut(cut_tpctof_nSigma);
716+
cut_pid_OR->AddCut(cut_tpc_nSigma);
717+
cut->AddCut(cut_pid_OR);
718+
return cut;
719+
}
720+
681721
if (!nameStr.compare("kaonPosPID4")) {
682722
cut->AddCut(GetAnalysisCut("kaonPID_TPCnTOF"));
683723
cut->AddCut(GetAnalysisCut("posTrack"));
@@ -829,6 +869,11 @@ AnalysisCompositeCut* o2::aod::dqcuts::GetCompositeCut(const char* cutName)
829869
return cut;
830870
}
831871

872+
if (!nameStr.compare("pTLow05")) {
873+
cut->AddCut(GetAnalysisCut("muonLowPt"));
874+
return cut;
875+
}
876+
832877
if (!nameStr.compare("pTLow04")) {
833878
cut->AddCut(GetAnalysisCut("pTLow04"));
834879
return cut;
@@ -4157,6 +4202,11 @@ AnalysisCut* o2::aod::dqcuts::GetAnalysisCut(const char* cutName)
41574202
return cut;
41584203
}
41594204

4205+
if (!nameStr.compare("ITSibany")) {
4206+
cut->AddCut(VarManager::kIsITSibAny, 0.5, 1.5);
4207+
return cut;
4208+
}
4209+
41604210
// List of 30 variations in ITS and TPC parameters
41614211
std::vector<double> cutVar_ITSchi2 = {6., 6., 5., 4., 4., 6., 6., 5., 4., 5., 4., 5., 6., 5., 6., 5., 6., 5., 5., 4., 6., 4., 6., 5., 6., 4., 4., 6., 4., 5.};
41624212
std::vector<double> cutVar_TPCchi2 = {5., 5., 4., 3., 5., 4., 5., 3., 5., 4., 5., 3., 3., 5., 4., 5., 3., 5., 5., 5., 3., 5., 5., 4., 3., 4., 5., 5., 5., 3.};
@@ -4410,6 +4460,11 @@ AnalysisCut* o2::aod::dqcuts::GetAnalysisCut(const char* cutName)
44104460
return cut;
44114461
}
44124462

4463+
if (!nameStr.compare("noTOF")) {
4464+
cut->AddCut(VarManager::kHasTOF, -0.5, 0.5);
4465+
return cut;
4466+
}
4467+
44134468
// -----------------------------------------------------
44144469
// V0 and Dalitz legs selections
44154470

@@ -5099,6 +5154,12 @@ AnalysisCut* o2::aod::dqcuts::GetAnalysisCut(const char* cutName)
50995154
return cut;
51005155
}
51015156

5157+
if (!nameStr.compare("kaonPIDnsigma700")) {
5158+
cut->AddCut(VarManager::kTPCnSigmaKa, -3.0, 3.0);
5159+
cut->AddCut(VarManager::kPin, 0.0, 0.7);
5160+
return cut;
5161+
}
5162+
51025163
if (!nameStr.compare("AssocKine")) {
51035164
cut->AddCut(VarManager::kPt, 1.0, 1000.0);
51045165
cut->AddCut(VarManager::kEta, -0.9, 0.9);

PWGDQ/Core/HistogramsLibrary.cxx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1397,9 +1397,12 @@ void o2::aod::dqhistograms::DefineHistograms(HistogramManager* hm, const char* h
13971397
hm->AddHistogram(histClass, "MassD0region_Rapidity", "", false, 140, 1.5, 2.2, VarManager::kMass, 10, -0.8, 0.8, VarManager::kRap);
13981398
hm->AddHistogram(histClass, "MassD0region_eta", "", false, 140, 1.5, 2.2, VarManager::kMass, 40, -2., 2., VarManager::kEta);
13991399
hm->AddHistogram(histClass, "MassD0region_TauxyzProj", "", false, 140, 1.5, 2.2, VarManager::kMass, 200, -0.03, 0.03, VarManager::kVertexingTauxyzProjected);
1400+
hm->AddHistogram(histClass, "MassD0region_TauxyProj", "", false, 140, 1.5, 2.2, VarManager::kMass, 200, -0.03, 0.03, VarManager::kVertexingTauxyProjected);
14001401
hm->AddHistogram(histClass, "MassD0region_CosPointing", "", false, 140, 1.5, 2.2, VarManager::kMass, 200, -1.0, 1.0, VarManager::kCosPointingAngle);
14011402
hm->AddHistogram(histClass, "MassD0region_VtxNContribReal", "", false, 140, 1.5, 2.2, VarManager::kMass, 50, 0, 50, VarManager::kVtxNcontribReal);
14021403
hm->AddHistogram(histClass, "MassD0region_Rapidity_AveragePt", "", true, 140, 1.5, 2.2, VarManager::kMass, 10, -0.8, 0.8, VarManager::kRap, 150, 0.0, 30.0, VarManager::kPt);
1404+
hm->AddHistogram(histClass, "MassD0region_TPCnSigKa_pIN", "Pair mass vs kaon cand. pIN vs kaon cand. TPC n-#sigma(K)", false, 140, 1.5, 2.2, VarManager::kMass, 100, 0.0, 10.0, VarManager::kPin_leg1, 20, -5.0, 5.0, VarManager::kTPCnSigmaKa_leg1);
1405+
hm->AddHistogram(histClass, "Mass_TPCnSigKa_pIN", "Pair mass vs kaon cand. pIN vs kaon cand. TPC n-#sigma(K)", false, 500, 0., 5., VarManager::kMass, 100, 0.0, 10.0, VarManager::kPin_leg1, 20, -5.0, 5.0, VarManager::kTPCnSigmaKa_leg1);
14031406
}
14041407
if (subGroupStr.Contains("lambdac")) {
14051408
hm->AddHistogram(histClass, "MassLambdacRegion", "", false, 50, 2.15, 2.4, VarManager::kMass);

PWGDQ/Core/VarManager.cxx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -431,6 +431,8 @@ void VarManager::SetDefaultVarNames()
431431
fgVariableUnits[kCharge] = "";
432432
fgVariableNames[kPin] = "p_{IN}";
433433
fgVariableUnits[kPin] = "GeV/c";
434+
fgVariableNames[kPin_leg1] = "p_{IN}";
435+
fgVariableUnits[kPin_leg1] = "GeV/c";
434436
fgVariableNames[kSignedPin] = "p_{IN} x charge";
435437
fgVariableUnits[kSignedPin] = "GeV/c";
436438
fgVariableNames[kTOFExpMom] = "TOF expected momentum";
@@ -496,6 +498,8 @@ void VarManager::SetDefaultVarNames()
496498
fgVariableUnits[kTPCnSigmaPi_Corr] = "";
497499
fgVariableNames[kTPCnSigmaKa] = "n #sigma_{K}^{TPC}";
498500
fgVariableUnits[kTPCnSigmaKa] = "";
501+
fgVariableNames[kTPCnSigmaKa_leg1] = "n #sigma_{K}^{TPC}";
502+
fgVariableUnits[kTPCnSigmaKa_leg1] = "";
499503
fgVariableNames[kTPCnSigmaKa_Corr] = "n #sigma_{K}^{TPC} Corr.";
500504
fgVariableUnits[kTPCnSigmaKa_Corr] = "";
501505
fgVariableNames[kTPCnSigmaPr] = "n #sigma_{p}^{TPC}";

PWGDQ/Core/VarManager.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -441,6 +441,8 @@ class VarManager : public TObject
441441
kEta1,
442442
kPhi1,
443443
kCharge1,
444+
kPin_leg1,
445+
kTPCnSigmaKa_leg1,
444446
kPt2,
445447
kEta2,
446448
kPhi2,
@@ -2577,6 +2579,9 @@ void VarManager::FillPair(T1 const& t1, T2 const& t2, float* values)
25772579
if constexpr (pairType == kDecayToKPi) {
25782580
m1 = o2::constants::physics::MassKaonCharged;
25792581
m2 = o2::constants::physics::MassPionCharged;
2582+
// Make the TPC information of the kaon available for pair histograms
2583+
values[kPin_leg1] = t1.tpcInnerParam();
2584+
values[kTPCnSigmaKa_leg1] = t1.tpcNSigmaKa();
25802585
}
25812586

25822587
if constexpr (pairType == kElectronMuon) {

0 commit comments

Comments
 (0)