Skip to content

Commit 82de5bd

Browse files
author
Marta Razza
committed
Add pidITS and remove unused includes
1 parent 39d9cb2 commit 82de5bd

File tree

1 file changed

+42
-22
lines changed

1 file changed

+42
-22
lines changed

EventFiltering/PWGHF/H2fromLbFilter.cxx

Lines changed: 42 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -16,21 +16,18 @@
1616

1717
#include "../filterTables.h"
1818

19-
#include "PWGLF/DataModel/LFParticleIdentification.h"
20-
2119
#include "Common/Core/RecoDecay.h"
2220
#include "Common/Core/TrackSelection.h"
2321
#include "Common/Core/trackUtilities.h"
24-
#include "Common/DataModel/Centrality.h"
2522
#include "Common/DataModel/CollisionAssociationTables.h"
2623
#include "Common/DataModel/EventSelection.h"
27-
#include "Common/DataModel/Multiplicity.h"
24+
#include "Common/DataModel/PIDResponseITS.h"
2825
#include "Common/DataModel/PIDResponseTOF.h"
26+
#include "Common/DataModel/PIDResponseTPC.h"
2927
#include "Common/DataModel/TrackSelectionTables.h"
3028

3129
#include "CCDB/BasicCCDBManager.h"
3230
#include "CommonConstants/PhysicsConstants.h"
33-
#include "DCAFitter/DCAFitterN.h"
3431
#include "DataFormatsParameters/GRPMagField.h"
3532
#include "DataFormatsParameters/GRPObject.h"
3633
#include "DetectorsBase/Propagator.h"
@@ -69,14 +66,16 @@ struct H2fromLbFilter {
6966
o2::framework::Configurable<bool> isNoITSROFrameBorder{"isNoITSROFrameBorder", true, "isNoITSROFrameBorder event selection"};
7067
o2::framework::Configurable<float> cfgTPCNsigma{"cfgTPCNsigma", 4.0f, "TPC n sigma for deuteron PID"};
7168
o2::framework::Configurable<float> cfgTOFNsigma{"cfgTOFNsigma", 4.0f, "TOF n sigma for deuteron PID"};
69+
o2::framework::Configurable<float> cfgITSNsigma{"cfgITSNsigma", -2.0f, "ITS n sigma for deuteron PID"};
7270
o2::framework::Configurable<float> cfgEta{"cfgEta", 0.8f, "Track eta selection"};
7371
o2::framework::Configurable<int> cfgTPCNclsFound{"cfgTPCNclsFound", 100, "Minimum TPC clusters found"};
7472
o2::framework::Configurable<float> cfgTPCChi2Ncl{"cfgTPCChi2Ncl", 4.0f, "Maximum TPC chi2 per N clusters"};
7573
o2::framework::Configurable<float> cfgITSChi2Ncl{"cfgITSChi2Ncl", 36.0f, "Maximum ITS chi2 per N clusters"};
7674
o2::framework::Configurable<int> cfgITScls{"cfgITScls", 2, "Minimum ITS clusters"};
7775
o2::framework::Configurable<float> cfgMaxPt{"cfgMaxPt", 5.0f, "Maximum pT cut"};
78-
o2::framework::Configurable<float> cfgMinPt{"cfgMinPt", 1.0f, "Maximum pT cut"};
76+
o2::framework::Configurable<float> cfgMinPt{"cfgMinPt", 0.5f, "Minimum pT cut"};
7977
o2::framework::Configurable<float> cfgDCAcut{"cfgDCAcut", 0.003f, "DCA cut for non prompt deuteron"};
78+
o2::framework::Configurable<float> ptThresholdPid{"ptThresholdPid", 1.0f, "pT threshold to switch between ITS and TOF PID"};
8079

8180
o2::framework::Service<o2::ccdb::BasicCCDBManager> ccdb;
8281

@@ -95,6 +94,7 @@ struct H2fromLbFilter {
9594
QAHistos.add("hDCAzVsPt", "DCAz #bar{d} vs p_{T}", {o2::framework::HistType::kTH2D, {pTAxis, DCAzAxis}});
9695
QAHistos.add("hnSigmaTPCVsPt", "n#sigma TPC vs p_{T} for #bar{d} hypothesis; p_{T} (GeV/c); n#sigma TPC", {o2::framework::HistType::kTH2D, {pTAxis, nSigmaAxis}});
9796
QAHistos.add("hnSigmaTOFVsPt", "n#sigma TOF vs p_{T} for #bar{d} hypothesis; p_{T} (GeV/c); n#sigma TOF", {o2::framework::HistType::kTH2D, {pTAxis, nSigmaAxis}});
97+
QAHistos.add("hnSigmaITSVsPt", "n#sigma ITS vs p_{T} for #bar{d} hypothesis; p_{T} (GeV/c); n#sigma ITS", {o2::framework::HistType::kTH2D, {pTAxis, nSigmaAxis}});
9898
QAHistos.add("ptAntiDeuteron", "ptAntiDeuteron", {o2::framework::HistType::kTH1F, {ptAxis}});
9999
QAHistos.add("etaAntideuteron", "etaAntideuteron", {o2::framework::HistType::kTH1F, {{100, -1.0f, 1.0f, "eta #bar{d}"}}});
100100
QAHistos.add("hDCAxyVsPt-pre_selection", "DCAxy #bar{d} vs p_{T}", {o2::framework::HistType::kTH2D, {pTAxis, DCAxyAxis}});
@@ -193,10 +193,11 @@ struct H2fromLbFilter {
193193

194194
// Loop over tracks
195195
const auto& trackIdsThisCollision = trackIndices.sliceBy(trackIndicesPerCollision, collision.globalIndex());
196+
auto tracksWithItsPid = o2::soa::Attach<TrackCandidates, o2::aod::pidits::ITSNSigmaDe>(tracks);
196197

197198
for (const auto& trackId : trackIdsThisCollision) { // start loop over tracks
198199

199-
const auto& track = tracks.rawIteratorAt(trackId.trackId());
200+
const auto& track = tracksWithItsPid.rawIteratorAt(trackId.trackId());
200201

201202
std::array<float, 2> dca{track.dcaXY(), track.dcaZ()};
202203
std::array<float, 3> pVec = track.pVector();
@@ -213,23 +214,42 @@ struct H2fromLbFilter {
213214

214215
const bool isTOFDe = std::abs(track.tofNSigmaDe()) < cfgTOFNsigma;
215216
const bool isTPCDe = std::abs(track.tpcNSigmaDe()) < cfgTPCNsigma;
216-
217-
if (isTPCDe && isTOFDe) {
218-
219-
QAHistos.fill(HIST("hDCAxyVsPt-pre_selection"), track.pt(), dca[0]);
220-
QAHistos.fill(HIST("hDCAzVsPt-pre-selection"), track.pt(), dca[1]);
221-
if (std::abs(dca[0]) < cfgDCAcut) {
222-
continue;
217+
const bool isITSDe = track.itsNSigmaDe() > cfgITSNsigma;
218+
219+
if (track.pt() < ptThresholdPid) {
220+
if (isTPCDe && isITSDe) {
221+
QAHistos.fill(HIST("hDCAxyVsPt-pre_selection"), track.pt(), dca[0]);
222+
QAHistos.fill(HIST("hDCAzVsPt-pre-selection"), track.pt(), dca[1]);
223+
if (std::abs(dca[0]) < cfgDCAcut) {
224+
continue;
225+
}
226+
keepEvent[0] = true;
227+
QAHistos.fill(HIST("ptAntiDeuteron"), track.pt());
228+
QAHistos.fill(HIST("etaAntideuteron"), track.eta());
229+
QAHistos.fill(HIST("hDCAxyVsPt"), track.pt(), dca[0]);
230+
QAHistos.fill(HIST("hDCAzVsPt"), track.pt(), dca[1]);
231+
QAHistos.fill(HIST("hnSigmaTPCVsPt"), track.pt(), track.tpcNSigmaDe());
232+
QAHistos.fill(HIST("hnSigmaTOFVsPt"), track.pt(), track.tofNSigmaDe());
233+
QAHistos.fill(HIST("hnSigmaITSVsPt"), track.pt(), track.itsNSigmaDe());
234+
}
235+
} else {
236+
if (isTPCDe && isTOFDe) {
237+
238+
QAHistos.fill(HIST("hDCAxyVsPt-pre_selection"), track.pt(), dca[0]);
239+
QAHistos.fill(HIST("hDCAzVsPt-pre-selection"), track.pt(), dca[1]);
240+
if (std::abs(dca[0]) < cfgDCAcut) {
241+
continue;
242+
}
243+
keepEvent[0] = true;
244+
QAHistos.fill(HIST("ptAntiDeuteron"), track.pt());
245+
QAHistos.fill(HIST("etaAntideuteron"), track.eta());
246+
QAHistos.fill(HIST("hDCAxyVsPt"), track.pt(), dca[0]);
247+
QAHistos.fill(HIST("hDCAzVsPt"), track.pt(), dca[1]);
248+
QAHistos.fill(HIST("hnSigmaTPCVsPt"), track.pt(), track.tpcNSigmaDe());
249+
QAHistos.fill(HIST("hnSigmaTOFVsPt"), track.pt(), track.tofNSigmaDe());
250+
QAHistos.fill(HIST("hnSigmaITSVsPt"), track.pt(), track.itsNSigmaDe());
223251
}
224-
keepEvent[0] = true;
225-
QAHistos.fill(HIST("ptAntiDeuteron"), track.pt());
226-
QAHistos.fill(HIST("etaAntideuteron"), track.eta());
227-
QAHistos.fill(HIST("hDCAxyVsPt"), track.pt(), dca[0]);
228-
QAHistos.fill(HIST("hDCAzVsPt"), track.pt(), dca[1]);
229-
QAHistos.fill(HIST("hnSigmaTPCVsPt"), track.pt(), track.tpcNSigmaDe());
230-
QAHistos.fill(HIST("hnSigmaTOFVsPt"), track.pt(), track.tofNSigmaDe());
231252
}
232-
233253
} // end track loop
234254
if (keepEvent[0]) {
235255
hProcessedEvents->Fill(5.5);

0 commit comments

Comments
 (0)