Skip to content

Commit ade62f8

Browse files
committed
minor bugfixes
1 parent c585c36 commit ade62f8

File tree

1 file changed

+39
-37
lines changed

1 file changed

+39
-37
lines changed

PWGLF/Tasks/Strangeness/cascadecorrelations.cxx

Lines changed: 39 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,7 @@ struct CascadeSelector {
138138
ConfigurableAxis ptAxis = {"ptAxis", {150, 0, 15}, "#it{p}_{T}"};
139139
ConfigurableAxis rapidityAxis{"rapidityAxis", {100, -1.f, 1.f}, "y"};
140140
ConfigurableAxis invLambdaMassAxis{"invLambdaMassAxis", {100, 1.07f, 1.17f}, "Inv. Mass (GeV/c^{2})"};
141+
ConfigurableAxis chi2Axis{"chi2Axis", {100, 0.f, 10.f}, "Chi2"};
141142
AxisSpec itsClustersAxis{8, -0.5, 7.5, "number of ITS clusters"};
142143
AxisSpec tpcRowsAxis{160, -0.5, 159.5, "TPC crossed rows"};
143144
HistogramRegistry registry{
@@ -148,10 +149,10 @@ struct CascadeSelector {
148149
{"hCascRadius", "hCascRadius", {HistType::kTH3F, {radiusAxis, invXiMassAxis, ptAxis}}},
149150
{"hV0CosPA", "hV0CosPA", {HistType::kTH3F, {cpaAxis, invXiMassAxis, ptAxis}}},
150151
{"hCascCosPA", "hCascCosPA", {HistType::kTH3F, {cpaAxis, invXiMassAxis, ptAxis}}},
151-
{"hDCAPosToPV", "hDCAPosToPV", {HistType::kTH3F, {vertexAxis, invXiMassAxis, ptAxis}}},
152-
{"hDCANegToPV", "hDCANegToPV", {HistType::kTH3F, {vertexAxis, invXiMassAxis, ptAxis}}},
153-
{"hDCABachToPV", "hDCABachToPV", {HistType::kTH3F, {vertexAxis, invXiMassAxis, ptAxis}}},
154-
{"hDCAV0ToPV", "hDCAV0ToPV", {HistType::kTH3F, {vertexAxis, invXiMassAxis, ptAxis}}},
152+
{"hDCAPosToPV", "hDCAPosToPV", {HistType::kTH3F, {dcaAxis, invXiMassAxis, ptAxis}}},
153+
{"hDCANegToPV", "hDCANegToPV", {HistType::kTH3F, {dcaAxis, invXiMassAxis, ptAxis}}},
154+
{"hDCABachToPV", "hDCABachToPV", {HistType::kTH3F, {dcaAxis, invXiMassAxis, ptAxis}}},
155+
{"hDCAV0ToPV", "hDCAV0ToPV", {HistType::kTH3F, {dcaAxis, invXiMassAxis, ptAxis}}},
155156
{"hDCAV0Dau", "hDCAV0Dau", {HistType::kTH3F, {dcaAxis, invXiMassAxis, ptAxis}}},
156157
{"hDCACascDau", "hDCACascDau", {HistType::kTH3F, {dcaAxis, invXiMassAxis, ptAxis}}},
157158
{"hLambdaMass", "hLambdaMass", {HistType::kTH3F, {invLambdaMassAxis, invXiMassAxis, ptAxis}}},
@@ -161,27 +162,19 @@ struct CascadeSelector {
161162
{"hMassOmegaMinus", "hMassOmegaMinus", {HistType::kTH3F, {invOmegaMassAxis, ptAxis, rapidityAxis}}},
162163
{"hMassOmegaPlus", "hMassOmegaPlus", {HistType::kTH3F, {invOmegaMassAxis, ptAxis, rapidityAxis}}},
163164

164-
// // invariant mass per cut, start with Xi
165-
// {"hMassXi0", "Xi inv mass before selections", {HistType::kTH2F, {invMassAxis, ptAxis}}},
166-
// {"hMassXi1", "Xi inv mass after TPCnCrossedRows cut", {HistType::kTH2F, {invMassAxis, ptAxis}}},
167-
// {"hMassXi2", "Xi inv mass after ITSnClusters cut", {HistType::kTH2F, {invMassAxis, ptAxis}}},
168-
// {"hMassXi3", "Xi inv mass after topo cuts", {HistType::kTH2F, {invMassAxis, ptAxis}}},
169-
// {"hMassXi4", "Xi inv mass after V0 daughters PID cut", {HistType::kTH2F, {invMassAxis, ptAxis}}},
170-
// {"hMassXi5", "Xi inv mass after bachelor PID cut", {HistType::kTH2F, {invMassAxis, ptAxis}}},
171-
172165
// ITS & TPC clusters, with Xi inv mass
173166
{"hTPCnCrossedRowsPos", "hTPCnCrossedRowsPos", {HistType::kTH3F, {tpcRowsAxis, invXiMassAxis, ptAxis}}},
174167
{"hTPCnCrossedRowsNeg", "hTPCnCrossedRowsNeg", {HistType::kTH3F, {tpcRowsAxis, invXiMassAxis, ptAxis}}},
175168
{"hTPCnCrossedRowsBach", "hTPCnCrossedRowsBach", {HistType::kTH3F, {tpcRowsAxis, invXiMassAxis, ptAxis}}},
176169
{"hITSnClustersPos", "hITSnClustersPos", {HistType::kTH3F, {itsClustersAxis, invXiMassAxis, ptAxis}}},
177170
{"hITSnClustersNeg", "hITSnClustersNeg", {HistType::kTH3F, {itsClustersAxis, invXiMassAxis, ptAxis}}},
178171
{"hITSnClustersBach", "hITSnClustersBach", {HistType::kTH3F, {itsClustersAxis, invXiMassAxis, ptAxis}}},
179-
{"hTPCChi2Pos", "hTPCChi2Pos", {HistType::kTH1F, {{100, 0, 10, "TPC Chi2 Pos"}}}},
180-
{"hTPCChi2Neg", "hTPCChi2Neg", {HistType::kTH1F, {{100, 0, 10, "TPC Chi2 Neg"}}}},
181-
{"hTPCChi2Bach", "hTPCChi2Bach", {HistType::kTH1F, {{100, 0, 10, "TPC Chi2 Bach"}}}},
182-
{"hITSChi2Pos", "hITSChi2Pos", {HistType::kTH1F, {{100, 0, 100, "ITS Chi2 Pos"}}}},
183-
{"hITSChi2Neg", "hITSChi2Neg", {HistType::kTH1F, {{100, 0, 100, "ITS Chi2 Neg"}}}},
184-
{"hITSChi2Bach", "hITSChi2Bach", {HistType::kTH1F, {{100, 0, 100, "ITS Chi2 Bach"}}}},
172+
{"hTPCChi2Pos", "hTPCChi2Pos", {HistType::kTH1F, {chi2Axis}}},
173+
{"hTPCChi2Neg", "hTPCChi2Neg", {HistType::kTH1F, {chi2Axis}}},
174+
{"hTPCChi2Bach", "hTPCChi2Bach", {HistType::kTH1F, {chi2Axis}}},
175+
{"hITSChi2Pos", "hITSChi2Pos", {HistType::kTH1F, {chi2Axis}}},
176+
{"hITSChi2Neg", "hITSChi2Neg", {HistType::kTH1F, {chi2Axis}}},
177+
{"hITSChi2Bach", "hITSChi2Bach", {HistType::kTH1F, {chi2Axis}}},
185178

186179
{"hTriggerQA", "hTriggerQA", {HistType::kTH1F, {{2, -0.5, 1.5, "Trigger y/n"}}}},
187180
},
@@ -193,7 +186,7 @@ struct CascadeSelector {
193186
ccdb->setURL(ccdbUrl);
194187
ccdb->setCaching(true);
195188

196-
auto h = registry.add<TH1>("hSelectionStatus", "hSelectionStatus", HistType::kTH1I, {{10, 0, 10, "status"}});
189+
auto h = registry.add<TH1>("hSelectionStatus", "hSelectionStatus", HistType::kTH1F, {{10, 0, 10, "status"}});
197190
h->GetXaxis()->SetBinLabel(1, "All");
198191
h->GetXaxis()->SetBinLabel(2, "nTPC OK");
199192
h->GetXaxis()->SetBinLabel(3, "nITS OK");
@@ -204,7 +197,7 @@ struct CascadeSelector {
204197
h->GetXaxis()->SetBinLabel(8, "V0 PID OK");
205198
h->GetXaxis()->SetBinLabel(9, "Bach PID OK");
206199

207-
auto hEventSel = registry.add<TH1>("hEventSel", "hEventSel", HistType::kTH1I, {{10, 0, 10, "selection criteria"}});
200+
auto hEventSel = registry.add<TH1>("hEventSel", "hEventSel", HistType::kTH1F, {{10, 0, 10, "selection criteria"}});
208201
hEventSel->GetXaxis()->SetBinLabel(1, "All");
209202
hEventSel->GetXaxis()->SetBinLabel(2, "sel8");
210203
hEventSel->GetXaxis()->SetBinLabel(3, "INEL0");
@@ -218,10 +211,10 @@ struct CascadeSelector {
218211
registry.add("truerec/hCascRadius", "hCascRadius", HistType::kTH1F, {radiusAxis});
219212
registry.add("truerec/hV0CosPA", "hV0CosPA", HistType::kTH1F, {cpaAxis});
220213
registry.add("truerec/hCascCosPA", "hCascCosPA", HistType::kTH1F, {cpaAxis});
221-
registry.add("truerec/hDCAPosToPV", "hDCAPosToPV", HistType::kTH1F, {vertexAxis});
222-
registry.add("truerec/hDCANegToPV", "hDCANegToPV", HistType::kTH1F, {vertexAxis});
223-
registry.add("truerec/hDCABachToPV", "hDCABachToPV", HistType::kTH1F, {vertexAxis});
224-
registry.add("truerec/hDCAV0ToPV", "hDCAV0ToPV", HistType::kTH1F, {vertexAxis});
214+
registry.add("truerec/hDCAPosToPV", "hDCAPosToPV", HistType::kTH1F, {dcaAxis});
215+
registry.add("truerec/hDCANegToPV", "hDCANegToPV", HistType::kTH1F, {dcaAxis});
216+
registry.add("truerec/hDCABachToPV", "hDCABachToPV", HistType::kTH1F, {dcaAxis});
217+
registry.add("truerec/hDCAV0ToPV", "hDCAV0ToPV", HistType::kTH1F, {dcaAxis});
225218
registry.add("truerec/hDCAV0Dau", "hDCAV0Dau", HistType::kTH1F, {dcaAxis});
226219
registry.add("truerec/hDCACascDau", "hDCACascDau", HistType::kTH1F, {dcaAxis});
227220
registry.add("truerec/hLambdaMass", "hLambdaMass", HistType::kTH1F, {invLambdaMassAxis});
@@ -231,12 +224,12 @@ struct CascadeSelector {
231224
registry.add("truerec/hITSnClustersPos", "hITSnClustersPos", HistType::kTH1F, {itsClustersAxis});
232225
registry.add("truerec/hITSnClustersNeg", "hITSnClustersNeg", HistType::kTH1F, {itsClustersAxis});
233226
registry.add("truerec/hITSnClustersBach", "hITSnClustersBach", HistType::kTH1F, {itsClustersAxis});
234-
registry.add("truerec/hTPCChi2Pos", "hTPCChi2Pos", HistType::kTH1F, {{100, 0, 10, "TPC Chi2 Pos"}});
235-
registry.add("truerec/hTPCChi2Neg", "hTPCChi2Neg", HistType::kTH1F, {{100, 0, 10, "TPC Chi2 Neg"}});
236-
registry.add("truerec/hTPCChi2Bach", "hTPCChi2Bach", HistType::kTH1F, {{100, 0, 10, "TPC Chi2 Bach"}});
237-
registry.add("truerec/hITSChi2Pos", "hITSChi2Pos", HistType::kTH1F, {{100, 0, 100, "ITS Chi2 Pos"}});
238-
registry.add("truerec/hITSChi2Neg", "hITSChi2Neg", HistType::kTH1F, {{100, 0, 100, "ITS Chi2 Neg"}});
239-
registry.add("truerec/hITSChi2Bach", "hITSChi2Bach", HistType::kTH1F, {{100, 0, 100, "ITS Chi2 Bach"}});
227+
registry.add("truerec/hTPCChi2Pos", "hTPCChi2Pos", HistType::kTH1F, {chi2Axis});
228+
registry.add("truerec/hTPCChi2Neg", "hTPCChi2Neg", HistType::kTH1F, {chi2Axis});
229+
registry.add("truerec/hTPCChi2Bach", "hTPCChi2Bach", HistType::kTH1F, {chi2Axis});
230+
registry.add("truerec/hITSChi2Pos", "hITSChi2Pos", HistType::kTH1F, {chi2Axis});
231+
registry.add("truerec/hITSChi2Neg", "hITSChi2Neg", HistType::kTH1F, {chi2Axis});
232+
registry.add("truerec/hITSChi2Bach", "hITSChi2Bach", HistType::kTH1F, {chi2Axis});
240233
registry.add("truerec/hXiMinus", "hXiMinus", HistType::kTH2F, {ptAxis, rapidityAxis});
241234
registry.add("truerec/hXiPlus", "hXiPlus", HistType::kTH2F, {ptAxis, rapidityAxis});
242235
registry.add("truerec/hOmegaMinus", "hOmegaMinus", HistType::kTH2F, {ptAxis, rapidityAxis});
@@ -423,8 +416,13 @@ struct CascadeSelector {
423416
casc.cascradius() < cascadesetting_cascradius ||
424417
casc.v0cosPA(pvx, pvy, pvz) < v0setting_cospa ||
425418
casc.casccosPA(pvx, pvy, pvz) < cascadesetting_cospa ||
426-
casc.dcav0topv(pvx, pvy, pvz) < cascadesetting_mindcav0topv ||
427-
std::abs(casc.mLambda() - 1.115683) > cascadesetting_v0masswindow)
419+
std::abs(casc.dcav0topv(pvx, pvy, pvz)) < cascadesetting_mindcav0topv ||
420+
std::abs(casc.mLambda() - 1.115683) > cascadesetting_v0masswindow ||
421+
std::abs(casc.dcapostopv()) < v0setting_dcapostopv ||
422+
std::abs(casc.dcanegtopv()) < v0setting_dcanegtopv ||
423+
casc.dcaV0daughters() > v0setting_dcav0dau ||
424+
std::abs(casc.dcabachtopv()) < cascadesetting_dcabachtopv ||
425+
casc.dcacascdaughters() > cascadesetting_dcacascdau)
428426
return 0; // It failed at least one topo selection
429427

430428
registry.fill(HIST("hSelectionStatus"), 4); // passes topo
@@ -625,6 +623,7 @@ struct CascadeCorrelations {
625623
Configurable<std::string> efficiencyCCDBPath{"efficiencyCCDBPath", "Users/r/rspijker/test/EffTest", "Path of the efficiency corrections"};
626624
Configurable<bool> doTFBorderCut{"doTFBorderCut", true, "Switch to apply TimeframeBorderCut event selection"};
627625
Configurable<bool> doSel8{"doSel8", true, "Switch to apply sel8 event selection"};
626+
Configurable<int> INEL{"INEL", 0, "Number of charged tracks within |eta| < 1 has to be greater than value"}; // used in MC closure
628627

629628
ConfigurableAxis radiusAxis = {"radiusAxis", {100, 0.0f, 50.0f}, "cm"};
630629
ConfigurableAxis cpaAxis = {"cpaAxis", {100, 0.95f, 1.0f}, "CPA"};
@@ -1006,25 +1005,28 @@ struct CascadeCorrelations {
10061005
Configurable<float> etaGenCascades{"etaGenCascades", 0.8, "min/max of eta for generated cascades"};
10071006
Filter genCascadesFilter = nabs(aod::mcparticle::pdgCode) == 3312;
10081007

1009-
void processMC(aod::McCollision const&, soa::SmallGroups<soa::Join<aod::McCollisionLabels, MyCollisionsMult>> const& collisions, soa::Filtered<aod::McParticles> const& genCascades, aod::McParticles const& mcParticles)
1008+
void processMC(aod::McCollision const& mcCollision, soa::SmallGroups<soa::Join<aod::McCollisionLabels, MyCollisionsMult>> const& collisions, soa::Filtered<aod::McParticles> const& genCascades, aod::McParticles const& mcParticles)
10101009
{
1010+
// apply evsel
1011+
if (INEL >= 0 && !pwglf::isINELgtNmc(mcParticles, INEL, pdgDB))
1012+
return;
1013+
if (std::abs(mcCollision.posZ()) > zVertexCut)
1014+
return;
1015+
10111016
// Let's do some logic on matched reconstructed collisions - if there less or more than one, fill some QA and skip the rest
10121017
double FT0mult = -1; // non-sensible default value just in case
1013-
double vtxz = -999.; // non-sensible default value just in case
1018+
double vtxz = mcCollision.posZ();
10141019
if (collisions.size() < 1) {
10151020
registry.fill(HIST("MC/hSplitEvents"), 0);
10161021
registry.fill(HIST("MC/hGenMultNoReco"), mCounter.countFT0A(mcParticles) + mCounter.countFT0C(mcParticles));
1017-
return;
10181022
} else if (collisions.size() == 1) {
10191023
registry.fill(HIST("MC/hSplitEvents"), 1);
10201024
registry.fill(HIST("MC/hGenMultOneReco"), mCounter.countFT0A(mcParticles) + mCounter.countFT0C(mcParticles));
10211025
for (auto const& collision : collisions) { // not really a loop, as there is only one collision
10221026
FT0mult = collision.centFT0M();
1023-
vtxz = collision.posZ();
10241027
}
10251028
} else if (collisions.size() > 1) {
10261029
registry.fill(HIST("MC/hSplitEvents"), collisions.size());
1027-
return;
10281030
}
10291031

10301032
// QA

0 commit comments

Comments
 (0)