Skip to content

Commit e602eec

Browse files
[PWGLF] updated cuts to refine the analysis (#11107)
Co-authored-by: ALICE Action Bot <alibuild@cern.ch>
1 parent b375176 commit e602eec

File tree

2 files changed

+40
-21
lines changed

2 files changed

+40
-21
lines changed

PWGLF/Tasks/Nuspex/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ o2physics_add_dpl_workflow(spectra-tpc-tiny
8585
COMPONENT_NAME Analysis)
8686

8787
o2physics_add_dpl_workflow(nuclei-tpcspectra
88-
SOURCES NucleitpcPbPb.cxx
88+
SOURCES NucleiTPCPbPb.cxx
8989
PUBLIC_LINK_LIBRARIES O2Physics::AnalysisCore
9090
COMPONENT_NAME Analysis)
9191

Lines changed: 39 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,20 @@
88
// In applying this license CERN does not waive the privileges and immunities
99
// granted to it by virtue of its status as an Intergovernmental Organization
1010
// or submit itself to any jurisdiction.
11-
/// \file NucleitpcPbPb.cxx
12-
/// \brief Analysis task for light nuclei spectra in Pb–Pb collisions using TPC
13-
/// \author Jaideep Tanwar, <Jaideep.tanwar@cern.ch>
14-
/// \since Jan 2025
1511
///
12+
/// \file NucleiTPCPbPb.cxx
13+
///
14+
/// \brief This task use global tracks and used for primary selection analysis using TPC detector.
15+
/// It currently contemplates 6 particle types:
16+
/// pion, Proton, Deuteron, Triton, Helium3, Alpha
17+
///
18+
/// \author Jaideep Tanwar
19+
/// \since Jan. 20, 2025
20+
///
21+
#include <Math/Vector4D.h>
1622
#include <limits>
1723
#include <string>
1824
#include <vector>
19-
#include <Math/Vector4D.h>
2025
#include <TRandom3.h>
2126
#include "Framework/runDataProcessing.h"
2227
#include "Framework/AnalysisTask.h"
@@ -42,7 +47,7 @@ using namespace o2;
4247
using namespace o2::framework;
4348
using namespace o2::framework::expressions;
4449
using CollisionsFull = soa::Join<aod::Collisions, aod::EvSels, aod::CentFT0As, aod::CentFT0Cs, aod::CentFT0Ms, aod::CentFV0As>;
45-
using TracksFull = soa::Join<aod::TracksIU, aod::TracksExtra, aod::TracksCovIU, o2::aod::TracksDCA, aod::pidTPCPi, aod::pidTPCPr, aod::pidTPCDe, aod::pidTPCTr, aod::pidTPCHe, aod::pidTPCAl, aod::pidTOFmass>;
50+
using TracksFull = soa::Join<aod::TracksIU, aod::TracksExtra, aod::TracksCovIU, o2::aod::TracksDCA, aod::TrackSelectionExtension, aod::pidTPCPi, aod::pidTPCPr, aod::pidTPCDe, aod::pidTPCTr, aod::pidTPCHe, aod::pidTPCAl, aod::pidTOFmass>;
4651
//---------------------------------------------------------------------------------------------------------------------------------
4752
namespace
4853
{
@@ -97,12 +102,16 @@ struct NucleitpcPbPb {
97102
Configurable<bool> cfgRigidityCorrection{"cfgRigidityCorrection", false, "apply rigidity correction"};
98103
Configurable<float> cfgCutEta{"cfgCutEta", 0.9f, "Eta range for tracks"};
99104
Configurable<bool> cfgUsePVcontributors{"cfgUsePVcontributors", true, "use tracks that are PV contibutors"};
105+
Configurable<bool> cfgITSrequire{"cfgITSrequire", true, "Additional cut on ITS require"};
106+
Configurable<bool> cfgTPCrequire{"cfgTPCrequire", true, "Additional cut on TPC require"};
107+
Configurable<bool> cfgPassedITSRefit{"cfgPassedITSRefit", true, "Require ITS refit"};
108+
Configurable<bool> cfgPassedTPCRefit{"cfgPassedTPCRefit", true, "Require TPC refit"};
100109
Configurable<LabeledArray<double>> cfgBetheBlochParams{"cfgBetheBlochParams", {betheBlochDefault[0], nParticles, nBetheParams, particleNames, betheBlochParNames}, "TPC Bethe-Bloch parameterisation for light nuclei"};
101110
Configurable<LabeledArray<double>> cfgTrackPIDsettings{"cfgTrackPIDsettings", {trackPIDsettings[0], nParticles, nTrkSettings, particleNames, trackPIDsettingsNames}, "track selection and PID criteria"};
102111
Configurable<bool> cfgFillDeDxWithoutCut{"cfgFillDeDxWithoutCut", false, "Fill without cut beth bloch"};
103112
Configurable<bool> cfgFillDeDxWithCut{"cfgFillDeDxWithCut", false, "Fill with cut beth bloch"};
104-
Configurable<bool> cfgFillnsigma{"cfgFillnsigma", false, "Fill n-sigma histograms"};
105-
Configurable<bool> cfgFillmass{"cfgFillmass", true, "Fill mass histograms"};
113+
Configurable<bool> cfgFillnsigma{"cfgFillnsigma", true, "Fill n-sigma histograms"};
114+
Configurable<bool> cfgFillmass{"cfgFillmass", false, "Fill mass histograms"};
106115
Configurable<float> centcut{"centcut", 80.0f, "centrality cut"};
107116
Configurable<float> cfgCutRapidity{"cfgCutRapidity", 0.5f, "Rapidity range"};
108117
Configurable<float> cfgZvertex{"cfgZvertex", 10, "Min Z Vertex"};
@@ -193,23 +202,21 @@ struct NucleitpcPbPb {
193202
for (const auto& trackId : tracksByColl) {
194203
const auto& track = tracks.rawIteratorAt(trackId.trackId());
195204
filldedx(track, nParticles);
205+
if (!track.isPVContributor() && cfgUsePVcontributors)
206+
continue;
207+
if (!track.hasITS() && cfgITSrequire)
208+
continue;
209+
if (!track.hasTPC() && cfgTPCrequire)
210+
continue;
211+
if (!track.passedITSRefit() && cfgPassedITSRefit)
212+
continue;
213+
if (!track.passedTPCRefit() && cfgPassedTPCRefit)
214+
continue;
196215
if (std::abs(track.eta()) > cfgCutEta)
197216
continue;
198-
histos.fill(HIST("histeta"), track.eta());
199217
for (size_t i = 0; i < primaryParticles.size(); i++) {
200218
if (std::abs(getRapidity(track, i)) > cfgCutRapidity)
201219
continue;
202-
bool insideDCAxy = (std::abs(track.dcaXY()) <= (cfgTrackPIDsettings->get(i, "maxDcaXY") * (0.0105f + 0.0350f / std::pow(track.pt(), 1.1f))));
203-
if (!(insideDCAxy) || std::abs(track.dcaZ()) > cfgTrackPIDsettings->get(i, "maxDcaZ"))
204-
continue;
205-
if (track.sign() > 0) {
206-
histos.fill(HIST("histDcaZVsPtData_particle"), track.pt(), track.dcaZ());
207-
histos.fill(HIST("histDcaXYVsPtData_particle"), track.pt(), track.dcaXY());
208-
}
209-
if (track.sign() < 0) {
210-
histos.fill(HIST("histDcaZVsPtData_antiparticle"), track.pt(), track.dcaZ());
211-
histos.fill(HIST("histDcaXYVsPtData_antiparticle"), track.pt(), track.dcaXY());
212-
}
213220
if (track.tpcNClsFound() < cfgTrackPIDsettings->get(i, "minTPCnCls"))
214221
continue;
215222
if (track.tpcChi2NCl() > cfgTrackPIDsettings->get(i, "maxTPCchi2"))
@@ -231,7 +238,19 @@ struct NucleitpcPbPb {
231238
continue;
232239
if (cfgTrackPIDsettings->get(i, "TOFrequiredabove") >= 0 && getRigidity(track) > cfgTrackPIDsettings->get(i, "TOFrequiredabove") && (track.mass() < cfgTrackPIDsettings->get(i, "minTOFmass") || track.mass() > cfgTrackPIDsettings->get(i, "maxTOFmass")))
233240
continue;
241+
bool insideDCAxy = (std::abs(track.dcaXY()) <= (cfgTrackPIDsettings->get(i, "maxDcaXY") * (0.0105f + 0.0350f / std::pow(track.pt(), 1.1f))));
242+
if (!(insideDCAxy) || std::abs(track.dcaZ()) > cfgTrackPIDsettings->get(i, "maxDcaZ"))
243+
continue;
244+
if (track.sign() > 0) {
245+
histos.fill(HIST("histDcaZVsPtData_particle"), track.pt(), track.dcaZ());
246+
histos.fill(HIST("histDcaXYVsPtData_particle"), track.pt(), track.dcaXY());
247+
}
248+
if (track.sign() < 0) {
249+
histos.fill(HIST("histDcaZVsPtData_antiparticle"), track.pt(), track.dcaZ());
250+
histos.fill(HIST("histDcaXYVsPtData_antiparticle"), track.pt(), track.dcaXY());
251+
}
234252
}
253+
histos.fill(HIST("histeta"), track.eta());
235254
} // track loop
236255
}
237256
//----------------------------------------------------------------------------------------------------------------

0 commit comments

Comments
 (0)