Skip to content

Commit 8a72b29

Browse files
authored
Add V0 selection criteria and update histograms
1 parent 509b9e4 commit 8a72b29

File tree

1 file changed

+35
-10
lines changed

1 file changed

+35
-10
lines changed

PWGLF/Tasks/QC/systematicsMapping.cxx

Lines changed: 35 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,13 @@ struct SystematicsMapping {
4646
ConfigurableAxis chi2Bins{"chi2Bins", {100, 0.f, 100.f}, "Binning for chi2"};
4747
// Selection configurables
4848
Configurable<float> selectionPosZ{"selectionPosZ", 10.f, "Max |z| of the primary vertex"};
49+
// V0 selection criteria
50+
Configurable<double> v0cospa{"v0cospa", 0.97, "V0 CosPA"};
51+
Configurable<float> dcav0dau{"dcav0dau", 10, "DCA V0 Daughters"};
52+
Configurable<float> dcanegtopv{"dcanegtopv", 0.0, "DCA Neg To PV"};
53+
Configurable<float> dcapostopv{"dcapostopv", 0.0, "DCA Pos To PV"};
54+
Configurable<float> v0radius{"v0radius", 0.0, "Radius"};
55+
Configurable<float> etadau{"etadau", 0.8, "Eta Daughters"};
4956

5057
HistogramRegistry registry{"registry"};
5158

@@ -60,6 +67,15 @@ struct SystematicsMapping {
6067
const AxisSpec ptAxis{ptBins, "#it{p}_{T} (GeV/c)"};
6168
const AxisSpec etaAxis{etaBins, "#eta"};
6269
const AxisSpec phiAxis{phiBins, "#phi (rad)"};
70+
const AxisSpec invariantMassAxis{invariantMassBins, "Invariant Mass (GeV/c^{2})"};
71+
const AxisSpec nsigmaAxisTPC{nsigmaBins, "nSigma TPC"};
72+
const AxisSpec nsigmaAxisTOF{nsigmaBins, "nSigma TOF"};
73+
const AxisSpec tpcCrossedRowsAxis{tpcCrossedRowsBins, "TPC crossed rows"};
74+
const AxisSpec itsClustersAxis{itsClustersBins, "ITS clusters"};
75+
const AxisSpec dcaXYAxis{dcaBins, "DCAxy (cm)"};
76+
const AxisSpec dcaZAxis{dcaBins, "DCAz (cm)"};
77+
const AxisSpec chi2TPCAxis{chi2Bins, "TPC Chi2"};
78+
const AxisSpec chi2ITSAxis{chi2Bins, "ITS Chi2"};
6379

6480
if (doprocessData) {
6581

@@ -73,19 +89,19 @@ struct SystematicsMapping {
7389
registry.addClone("K/", "K0s/");
7490

7591
// Add the signal histograms
76-
registry.add("K/SignalPositive", "", HistType::kTHnSparseF, {ptBins, etaBins, phiBins, nsigmaBins, tpcCrossedRowsBins, itsClustersBins, dcaBins, chi2Bins});
77-
registry.add("K/SignalNegative", "", HistType::kTHnSparseF, {ptBins, etaBins, phiBins, nsigmaBins, tpcCrossedRowsBins, itsClustersBins, dcaBins, chi2Bins});
78-
registry.add("K0s/Signal", "", HistType::kTHnSparseF, {ptBins, etaBins, phiBins, invariantMassBins, tpcCrossedRowsBins, itsClustersBins, dcaBins, chi2Bins});
92+
registry.add("K/SignalPositive", "", HistType::kTHnSparseF, {ptAxis, etaAxis, phiAxis, nsigmaAxisTPC, nsigmaAxisTOF, tpcCrossedRowsBins, itsClustersBins, dcaXYAxis, dcaZAxis, chi2TPCAxis, chi2ITSAxis});
93+
registry.add("K/SignalNegative", "", HistType::kTHnSparseF, {ptAxis, etaAxis, phiAxis, nsigmaAxisTPC, nsigmaAxisTOF, tpcCrossedRowsBins, itsClustersBins, dcaXYAxis, dcaZAxis, chi2TPCAxis, chi2ITSAxis});
94+
registry.add("K0s/Signal", "", HistType::kTHnSparseF, {ptAxis, etaAxis, phiAxis, invariantMassBins, nsigmaAxisTPC, nsigmaAxisTOF, tpcCrossedRowsBins, itsClustersBins, dcaXYAxis, dcaZAxis, chi2TPCAxis, chi2ITSAxis});
7995
}
8096

8197
if (doprocessMc) {
82-
registry.add("K/GeneratedPositive", "", HistType::kTHnSparseF, {ptBins, etaBins, phiBins});
83-
registry.add("K/GeneratedNegative", "", HistType::kTHnSparseF, {ptBins, etaBins, phiBins});
84-
registry.add("K0s/Generated", "", HistType::kTHnSparseF, {ptBins, etaBins, phiBins});
98+
registry.add("K/GeneratedPositive", "", HistType::kTHnSparseF, {ptAxis, etaAxis, phiAxis});
99+
registry.add("K/GeneratedNegative", "", HistType::kTHnSparseF, {ptAxis, etaAxis, phiAxis});
100+
registry.add("K0s/Generated", "", HistType::kTHnSparseF, {ptAxis, etaAxis, phiAxis});
85101
}
86102
}
87103

88-
using TrackType = soa::Join<aod::Tracks, aod::TracksExtra, aod::pidTPCFullKa, aod::pidTOFFullPi, aod::TracksDCA>;
104+
using TrackType = soa::Join<aod::Tracks, aod::TracksExtra, aod::pidTPCFullPi, aod::pidTOFFullPi, aod::pidTPCFullKa, aod::pidTOFFullKa, aod::TracksDCA>;
89105
using CollisionType = soa::Join<aod::Collisions, aod::EvSels>;
90106

91107
void processData(CollisionType const& collisions,
@@ -107,29 +123,38 @@ struct SystematicsMapping {
107123
registry.fill(HIST("K/hChi2OverNCLsTPC"), track.tpcChi2NCl());
108124
registry.fill(HIST("K/hChi2OverNCLsITS"), track.itsChi2NCl());
109125
if (track.sign() > 0)
110-
registry.fill(HIST("K/SignalPositive"), track.pt(), track.eta(), track.phi(), track.tpcNSigmaKa(), track.tpcNClsCrossedRows(), track.itsNCls(), track.dcaXY(), track.dcaZ(), track.tpcChi2NCl());
126+
registry.fill(HIST("K/SignalPositive"), track.pt(), track.eta(), track.phi(), track.tpcNSigmaKa(), track.tofNSigmaKa(), track.tpcNClsCrossedRows(), track.itsNCls(), track.dcaXY(), track.dcaZ(), track.tpcChi2NCl(), track.itsChi2NCl());
111127
else
112-
registry.fill(HIST("K/SignalNegative"), track.pt(), track.eta(), track.phi(), track.tpcNSigmaKa(), track.tpcNClsCrossedRows(), track.itsNCls(), track.dcaXY(), track.dcaZ(), track.tpcChi2NCl());
128+
registry.fill(HIST("K/SignalNegative"), track.pt(), track.eta(), track.phi(), track.tpcNSigmaKa(), track.tofNSigmaKa(), track.tpcNClsCrossedRows(), track.itsNCls(), track.dcaXY(), track.dcaZ(), track.tpcChi2NCl(), track.itsChi2NCl());
113129
}
114130

115131
// K0s loop
116132
for (const auto& v0 : v0s) {
117133
if (v0.collisionId() != collision.globalIndex())
118134
continue;
135+
119136
const auto& posTrack = v0.posTrack_as<TrackType>();
120137
const auto& negTrack = v0.negTrack_as<TrackType>();
138+
if (v0.v0radius() < v0radius ||
139+
v0.v0cosPA() < v0cospa ||
140+
std::abs(posTrack.eta()) > etadau ||
141+
std::abs(negTrack.eta()) > etadau)
142+
continue;
121143
registry.fill(HIST("K0s/hTPCCrossedRows"), std::min(posTrack.tpcNClsCrossedRows(), negTrack.tpcNClsCrossedRows()));
122144
registry.fill(HIST("K0s/hITSClusters"), std::min(posTrack.itsNCls(), negTrack.itsNCls()));
123145
registry.fill(HIST("K0s/hDCAxy"), std::min(posTrack.dcaXY(), negTrack.dcaXY()));
124146
registry.fill(HIST("K0s/hDCAz"), std::min(posTrack.dcaZ(), negTrack.dcaZ()));
125147
registry.fill(HIST("K0s/hChi2OverNCLsTPC"), std::min(posTrack.tpcChi2NCl(), negTrack.tpcChi2NCl()));
126148
registry.fill(HIST("K0s/hChi2OverNCLsITS"), std::min(posTrack.itsChi2NCl(), negTrack.itsChi2NCl()));
127149
registry.fill(HIST("K0s/Signal"), v0.pt(), v0.eta(), v0.phi(), v0.mK0Short() - constants::physics::MassK0Short,
150+
std::max(posTrack.tpcNSigmaPi(), negTrack.tpcNSigmaPi()),
151+
std::max(posTrack.tofNSigmaPi(), negTrack.tofNSigmaPi()),
128152
std::min(posTrack.tpcNClsCrossedRows(), negTrack.tpcNClsCrossedRows()),
129153
std::min(posTrack.itsNCls(), negTrack.itsNCls()),
130154
std::min(posTrack.dcaXY(), negTrack.dcaXY()),
131155
std::min(posTrack.dcaZ(), negTrack.dcaZ()),
132-
std::min(posTrack.tpcChi2NCl(), negTrack.tpcChi2NCl()));
156+
std::min(posTrack.tpcChi2NCl(), negTrack.tpcChi2NCl()),
157+
std::min(posTrack.itsChi2NCl(), negTrack.itsChi2NCl()));
133158
}
134159
}
135160
}

0 commit comments

Comments
 (0)