Skip to content

Commit 0e758c7

Browse files
authored
[PWGLF] add ITSnsigma cut and configurable of saving LSandUS (AliceO2Group#8853)
1 parent ed83a4d commit 0e758c7

File tree

1 file changed

+38
-39
lines changed

1 file changed

+38
-39
lines changed

PWGLF/TableProducer/Nuspex/he3HadronFemto.cxx

Lines changed: 38 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@
4646
#include "Common/DataModel/EventSelection.h"
4747
#include "Common/DataModel/Multiplicity.h"
4848
#include "Common/DataModel/PIDResponse.h"
49+
#include "Common/DataModel/PIDResponseITS.h"
4950
#include "Common/DataModel/TrackSelectionTables.h"
5051
#include "Common/TableProducer/PID/pidTOFBase.h"
5152

@@ -174,10 +175,12 @@ struct he3hadronfemto {
174175
Configurable<float> setting_cutPtMinhe3Had{"setting_cutPtMinhe3Had", 0.0f, "Minimum PT cut on he3Had4"};
175176
Configurable<float> setting_cutClSizeItsHe3{"setting_cutClSizeItsHe3", 4.0f, "Minimum ITS cluster size for He3"};
176177
Configurable<float> setting_cutNsigmaTPC{"setting_cutNsigmaTPC", 3.0f, "Value of the TPC Nsigma cut"};
178+
Configurable<float> setting_cutNsigmaITS{"setting_cutNsigmaITS", -1.5f, "Value of the TPC Nsigma cut"};
177179
Configurable<float> setting_cutPtMinTOFHad{"setting_cutPtMinTOFHad", 0.4f, "Minimum pT to apply the TOF cut on hadrons"};
178180
Configurable<float> setting_cutNsigmaTOF{"setting_cutNsigmaTOF", 3.0f, "Value of the TOF Nsigma cut"};
179181
Configurable<int> setting_noMixedEvents{"setting_noMixedEvents", 5, "Number of mixed events per event"};
180182
Configurable<bool> setting_enableBkgUS{"setting_enableBkgUS", false, "Enable US background"};
183+
Configurable<bool> setting_saveUSandLS{"setting_saveUSandLS", true, "Save All Pairs"};
181184
Configurable<bool> setting_isMC{"setting_isMC", false, "Run MC"};
182185
Configurable<bool> setting_fillMultiplicity{"setting_fillMultiplicity", false, "Fill multiplicity table"};
183186

@@ -206,8 +209,8 @@ struct he3hadronfemto {
206209

207210
// binning for EM background
208211
ConfigurableAxis axisVertex{"axisVertex", {30, -10, 10}, "Binning for multiplicity"};
209-
ConfigurableAxis axisCentrality{"axisCentrality", {VARIABLE_WIDTH, 0., 15., 30., 45., 60., 75., 95., 250.}, "Binning for centrality"};
210-
using BinningType = ColumnBinningPolicy<aod::collision::PosZ, aod::collision::NumContrib>;
212+
ConfigurableAxis axisCentrality{"axisCentrality", {40, 0, 100}, "Binning for centrality"};
213+
using BinningType = ColumnBinningPolicy<aod::collision::PosZ, aod::cent::CentFT0C>;
211214
BinningType binningPolicy{{axisVertex, axisCentrality}, true};
212215
SliceCache cache;
213216
SameKindPair<CollisionsFull, TrackCandidates, BinningType> m_pair{binningPolicy, setting_noMixedEvents, -1, &cache};
@@ -237,16 +240,17 @@ struct he3hadronfemto {
237240
{"hDCAxyHe3", ";DCA_{xy} (cm)", {HistType::kTH1F, {{200, -1.0f, 1.0f}}}},
238241
{"hDCAzHe3", ";DCA_{z} (cm)", {HistType::kTH1F, {{200, -1.0f, 1.0f}}}},
239242
{"hhe3HadtInvMass", "; M(^{3}He + p) (GeV/#it{c}^{2})", {HistType::kTH1F, {{50, 3.74f, 3.85f}}}},
240-
{"hHe3Pt", "#it{p}_{T} distribution; #it{p}_{T} (GeV/#it{c})", {HistType::kTH1F, {{200, -6.0f, 6.0f}}}},
241-
{"hHadronPt", "Pt distribution; #it{p}_{T} (GeV/#it{c})", {HistType::kTH1F, {{200, -3.0f, 3.0f}}}},
243+
{"hHe3Pt", "#it{p}_{T} distribution; #it{p}_{T} (GeV/#it{c})", {HistType::kTH1F, {{240, -6.0f, 6.0f}}}},
244+
{"hHadronPt", "Pt distribution; #it{p}_{T} (GeV/#it{c})", {HistType::kTH1F, {{120, -3.0f, 3.0f}}}},
242245
{"h2dEdxHe3candidates", "dEdx distribution; #it{p} (GeV/#it{c}); dE/dx (a.u.)", {HistType::kTH2F, {{200, -5.0f, 5.0f}, {100, 0.0f, 2000.0f}}}},
243-
{"h2ClSizeCosLamHe3", "; n#sigma_{TPC} ; #LT ITS Cluster Size #GT #LT cos#lambda #GT (^{3}He)", {HistType::kTH2F, {{100, -5.0f, 5.0f}, {120, 0.0f, 15.0f}}}},
244-
{"h2NsigmaHe3TPC", "NsigmaHe3 TPC distribution; #it{p}/z (GeV/#it{c}); n#sigma_{TPC}(^{3}He)", {HistType::kTH2F, {{20, -5.0f, 5.0f}, {200, -5.0f, 5.0f}}}},
245-
{"h2NsigmaHe3TPC_preselection", "NsigmaHe3 TPC distribution; #it{p}/z (GeV/#it{c}); n#sigma_{TPC}(^{3}He)", {HistType::kTH2F, {{100, -5.0f, 5.0f}, {200, -10.0f, 10.0f}}}},
246-
{"h2NsigmaHadronTPC", "NsigmaHadron TPC distribution; #it{p}/z (GeV/#it{c}); n#sigma_{TPC}(p)", {HistType::kTH2F, {{20, -5.0f, 5.0f}, {200, -5.0f, 5.0f}}}},
247-
{"h2NsigmaHadronTPC_preselection", "NsigmaHe3 TPC distribution; #it{p}_{T} (GeV/#it{c}); n#sigma_{TPC}(^{3}He)", {HistType::kTH2F, {{100, -5.0f, 5.0f}, {200, -10.0f, 10.0f}}}},
248-
{"h2NsigmaHadronTOF", "NsigmaHadron TOF distribution; #it{p} (GeV/#it{c}); n#sigma_{TOF}(p)", {HistType::kTH2F, {{20, -5.0f, 5.0f}, {200, -5.0f, 5.0f}}}},
249-
{"h2NsigmaHadronTOF_preselection", "NsigmaHadron TOF distribution; #it{p} (GeV/#it{c}); n#sigma_{TOF}(p)", {HistType::kTH2F, {{100, -5.0f, 5.0f}, {200, -10.0f, 10.0f}}}},
246+
{"h2NsigmaHe3TPC", "NsigmaHe3 TPC distribution; #it{p}_{T} (GeV/#it{c}); n#sigma_{TPC}(^{3}He)", {HistType::kTH2F, {{20, -5.0f, 5.0f}, {200, -5.0f, 5.0f}}}},
247+
{"h2NsigmaHe3TPC_preselection", "NsigmaHe3 TPC distribution; #it{p}_{T} (GeV/#it{c}); n#sigma_{TPC}(^{3}He)", {HistType::kTH2F, {{100, -5.0f, 5.0f}, {400, -10.0f, 10.0f}}}},
248+
{"h2NSigmaHe3ITS_preselection", "NsigmaHe3 ITS distribution; signed #it{p}_{T} (GeV/#it{c}); n#sigma_{ITS} ^{3}He", {HistType::kTH2F, {{50, -5.0f, 5.0f}, {120, -3.0f, 3.0f}}}},
249+
{"h2NSigmaHe3ITS", "NsigmaHe3 ITS distribution; signed #it{p}_{T} (GeV/#it{c}); n#sigma_{ITS} ^{3}He", {HistType::kTH2F, {{50, -5.0f, 5.0f}, {120, -3.0f, 3.0f}}}},
250+
{"h2NsigmaHadronTPC", "NsigmaHadron TPC distribution; #it{p}_{T}(GeV/#it{c}); n#sigma_{TPC}(p)", {HistType::kTH2F, {{20, -5.0f, 5.0f}, {200, -5.0f, 5.0f}}}},
251+
{"h2NsigmaHadronTPC_preselection", "NsigmaHe3 TPC distribution; #it{p}_{T} (GeV/#it{c}); n#sigma_{TPC}(^{3}He)", {HistType::kTH2F, {{100, -5.0f, 5.0f}, {400, -10.0f, 10.0f}}}},
252+
{"h2NsigmaHadronTOF", "NsigmaHadron TOF distribution; #it{p}_{T} (GeV/#it{c}); n#sigma_{TOF}(p)", {HistType::kTH2F, {{20, -5.0f, 5.0f}, {200, -5.0f, 5.0f}}}},
253+
{"h2NsigmaHadronTOF_preselection", "NsigmaHadron TOF distribution; #iit{p}_{T} (GeV/#it{c}); n#sigma_{TOF}(p)", {HistType::kTH2F, {{100, -5.0f, 5.0f}, {400, -10.0f, 10.0f}}}},
250254
},
251255
OutputObjHandlingPolicy::AnalysisObject,
252256
false,
@@ -425,15 +429,15 @@ struct he3hadronfemto {
425429
if (std::abs(tpcNSigmaHad) > setting_cutNsigmaTPC) {
426430
return false;
427431
}
428-
m_qaRegistry.fill(HIST("h2NsigmaHadronTOF_preselection"), candidate.p(), tofNSigmaHad);
432+
m_qaRegistry.fill(HIST("h2NsigmaHadronTOF_preselection"), candidate.pt(), tofNSigmaHad);
429433
if (std::abs(tofNSigmaHad) > setting_cutNsigmaTOF) {
430434
return false;
431435
}
432-
m_qaRegistry.fill(HIST("h2NsigmaHadronTPC"), candidate.tpcInnerParam(), tpcNSigmaHad);
433-
m_qaRegistry.fill(HIST("h2NsigmaHadronTOF"), candidate.p(), tofNSigmaHad);
436+
m_qaRegistry.fill(HIST("h2NsigmaHadronTPC"), candidate.pt(), tpcNSigmaHad);
437+
m_qaRegistry.fill(HIST("h2NsigmaHadronTOF"), candidate.pt(), tofNSigmaHad);
434438
return true;
435439
} else if (std::abs(tpcNSigmaHad) < setting_cutNsigmaTPC) {
436-
m_qaRegistry.fill(HIST("h2NsigmaHadronTPC"), candidate.tpcInnerParam(), tpcNSigmaHad);
440+
m_qaRegistry.fill(HIST("h2NsigmaHadronTPC"), candidate.pt(), tpcNSigmaHad);
437441
return true;
438442
}
439443
return false;
@@ -460,30 +464,23 @@ struct he3hadronfemto {
460464
return false;
461465
}
462466

463-
float cosl = 1. / std::cosh(candidate.eta());
464-
float meanClsizeIts = 0.f;
465-
int nHitsIts = 0;
466-
for (int ilayer = 0; ilayer < 7; ilayer++) {
467-
float clsizeLayer = (candidate.itsClusterSizes() >> ilayer * 4) & 0b1111;
468-
if (clsizeLayer > 0) {
469-
nHitsIts++;
470-
meanClsizeIts += clsizeLayer;
471-
}
472-
}
473-
float clsizeCoslIts = meanClsizeIts / nHitsIts * cosl;
474-
if (clsizeCoslIts < setting_cutClSizeItsHe3) {
475-
return false;
476-
}
477-
478467
auto nSigmaHe3 = computeNSigmaHe3(candidate);
479-
m_qaRegistry.fill(HIST("h2NsigmaHe3TPC_preselection"), candidate.sign() * correctedTPCinnerParam, nSigmaHe3);
468+
m_qaRegistry.fill(HIST("h2NsigmaHe3TPC_preselection"), candidate.sign() * 2 * candidate.pt(), nSigmaHe3);
480469
if (std::abs(nSigmaHe3) > setting_cutNsigmaTPC) {
481470
return false;
482471
}
472+
//
473+
o2::aod::ITSResponse m_responseITS;
474+
auto ITSnSigmaHe3 = m_responseITS.nSigmaITS<o2::track::PID::Helium3>(candidate.itsClusterSizes(), 2 * candidate.p(), candidate.eta());
475+
//
476+
m_qaRegistry.fill(HIST("h2NSigmaHe3ITS_preselection"), candidate.sign() * 2 * candidate.pt(), ITSnSigmaHe3);
477+
if (ITSnSigmaHe3 < setting_cutNsigmaITS) {
478+
return false;
479+
}
483480

484481
m_qaRegistry.fill(HIST("h2dEdxHe3candidates"), candidate.sign() * correctedTPCinnerParam, candidate.tpcSignal());
485-
m_qaRegistry.fill(HIST("h2NsigmaHe3TPC"), candidate.sign() * correctedTPCinnerParam, nSigmaHe3);
486-
m_qaRegistry.fill(HIST("h2ClSizeCosLamHe3"), nSigmaHe3, clsizeCoslIts);
482+
m_qaRegistry.fill(HIST("h2NsigmaHe3TPC"), candidate.sign() * 2 * candidate.pt(), nSigmaHe3);
483+
m_qaRegistry.fill(HIST("h2NSigmaHe3ITS"), candidate.sign() * 2 * candidate.pt(), ITSnSigmaHe3);
487484
return true;
488485
}
489486

@@ -571,7 +568,7 @@ struct he3hadronfemto {
571568
he3Hadcand.nTPCClustersHe3 = trackHe3.tpcNClsFound();
572569
he3Hadcand.nSigmaHe3 = computeNSigmaHe3(trackHe3);
573570
he3Hadcand.nSigmaHad = computeTPCNSigmaHadron(trackHad);
574-
// he3Hadcand.nSigmaHad = trackHad.tpcNSigmaPi();/*tpcNSigmaHad*/
571+
575572
he3Hadcand.chi2TPCHe3 = trackHe3.tpcChi2NCl();
576573
he3Hadcand.chi2TPCHad = trackHad.tpcChi2NCl();
577574

@@ -645,11 +642,13 @@ struct he3hadronfemto {
645642
continue;
646643
}
647644

648-
if (!setting_enableBkgUS && (track0.sign() * track1.sign() < 0)) {
649-
continue;
650-
}
651-
if (setting_enableBkgUS && (track0.sign() * track1.sign() > 0)) {
652-
continue;
645+
if (!setting_saveUSandLS) {
646+
if (!setting_enableBkgUS && (track0.sign() * track1.sign() < 0)) {
647+
continue;
648+
}
649+
if (setting_enableBkgUS && (track0.sign() * track1.sign() > 0)) {
650+
continue;
651+
}
653652
}
654653

655654
if (!selectTrack(track1) || !selectionPIDHadron(track1)) {

0 commit comments

Comments
 (0)