Skip to content

Commit 33ec927

Browse files
committed
Add TrackSelection, adjust CollIndex
1 parent ba440d8 commit 33ec927

File tree

1 file changed

+34
-15
lines changed

1 file changed

+34
-15
lines changed

PWGJE/TableProducer/slimTablesProducer.cxx

Lines changed: 34 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,10 @@
1717
#include "PWGJE/DataModel/Jet.h"
1818
#include "PWGJE/DataModel/JetReducedData.h"
1919

20+
#include "Common/Core/TrackSelection.h"
21+
#include "Common/Core/TrackSelectionDefaults.h"
22+
#include "Common/DataModel/TrackSelectionTables.h"
23+
2024
#include <Framework/ASoA.h>
2125
#include <Framework/AnalysisDataModel.h>
2226
#include <Framework/AnalysisHelpers.h>
@@ -54,9 +58,6 @@ DECLARE_SOA_COLUMN(E, e, float);
5458
DECLARE_SOA_TABLE(SlimTracks, "AOD", "SlimTracks",
5559
o2::soa::Index<>,
5660
slimtracks::SlimCollisionId,
57-
slimtracks::Pt,
58-
slimtracks::Eta,
59-
slimtracks::Phi,
6061
slimtracks::Px,
6162
slimtracks::Py,
6263
slimtracks::Pz,
@@ -75,9 +76,6 @@ DECLARE_SOA_COLUMN(Pz, pz, float);
7576
DECLARE_SOA_TABLE(SlimParticles, "AOD", "SlimParticles",
7677
o2::soa::Index<>,
7778
slimparticles::SlMcCollisionId,
78-
slimparticles::Pt,
79-
slimparticles::Eta,
80-
slimparticles::Phi,
8179
slimparticles::Px,
8280
slimparticles::Py,
8381
slimparticles::Pz);
@@ -99,11 +97,15 @@ struct SlimTablesProducer {
9997
Configurable<float> minEta{"minEta", -0.9, "min eta to save"};
10098
Configurable<float> maxEta{"maxEta", 0.9, "max eta to save"};
10199
Configurable<float> vertexZCut{"vertexZCut", 10.0f, "Accepted z-vertex range"};
100+
Configurable<float> trackDcaZmax{"trackDcaZmax", 99, "additional cut on dcaZ to PV for tracks; uniformTracks in particular don't cut on this at all"};
102101
Configurable<std::string> eventSelections{"eventSelections", "sel8", "Event selection"};
102+
Configurable<std::string> trackSelections{"trackSelections", "globalTracks", "set track selections; other option: uniformTracks"};
103+
Configurable<int> minTPCNClsCrossedRows{"minTPCNClsCrossedRows", 80, "min TPC crossed rows"};
103104
Configurable<bool> skipMBGapEvents{"skipMBGapEvents", false, "flag to choose to reject min. bias gap events; jet-level rejection can also be applied at the jet finder level for jets only, here rejection is applied for collision and track process functions for the first time, and on jets in case it was set to false at the jet finder level"};
104105
Configurable<bool> applyRCTSelections{"applyRCTSelections", true, "decide to apply RCT selections"};
105106

106107
std::vector<int> eventSelectionBits;
108+
int trackSelection = -1;
107109
bool doSumw2 = false;
108110

109111
void init(InitContext&)
@@ -134,6 +136,7 @@ struct SlimTablesProducer {
134136
hMCP->GetXaxis()->SetBinLabel(5, "eventSelectionMC");
135137

136138
eventSelectionBits = jetderiveddatautilities::initialiseEventSelectionBits(static_cast<std::string>(eventSelections));
139+
trackSelection = jetderiveddatautilities::initialiseTrackSelection(static_cast<std::string>(trackSelections));
137140
}
138141

139142
Produces<o2::aod::SlimCollisions> slimCollisions;
@@ -149,7 +152,8 @@ struct SlimTablesProducer {
149152
Filter particleCuts = (aod::jmcparticle::pt >= minPt && aod::jmcparticle::pt < maxPt && aod::jmcparticle::eta > minEta && aod::jmcparticle::eta < maxEta);
150153

151154
void processData(soa::Filtered<o2::aod::JetCollisions>::iterator const& collision,
152-
soa::Filtered<soa::Join<aod::JetTracks, aod::JTrackExtras, aod::JTrackPIs>> const& tracks)
155+
soa::Filtered<soa::Join<aod::JetTracks, aod::JTrackExtras, aod::JTrackPIs>> const& tracks,
156+
soa::Join<aod::Tracks, aod::TracksExtra, o2::aod::TracksDCA> const&)
153157
{
154158
histos.fill(HIST("h_collisions"), 0.5);
155159
float centrality = -1.0;
@@ -163,19 +167,27 @@ struct SlimTablesProducer {
163167
slimCollisions(collision.posZ());
164168
auto slimCollIndex = slimCollisions.lastIndex();
165169
for (const auto& track : tracks) {
170+
if (!jetderiveddatautilities::selectTrack(track, trackSelection) && jetderiveddatautilities::selectTrackDcaZ(track, trackDcaZmax)) {
171+
continue;
172+
}
173+
const auto& aodTrack = track.track_as<soa::Join<aod::Tracks, aod::TracksExtra, aod::TracksDCA>>();
174+
if (aodTrack.tpcNClsCrossedRows() < minTPCNClsCrossedRows) {
175+
continue; // remove badly tracked
176+
}
166177
float mass = jetderiveddatautilities::mPion;
167178
float p = track.pt() * std::cosh(track.eta());
168179
float energy = std::sqrt(p * p + mass * mass);
169-
slimTracks(slimCollIndex, track.pt(), track.eta(), track.phi(), track.px(), track.py(), track.pz(), energy);
180+
slimTracks(slimCollIndex, track.px(), track.py(), track.pz(), energy);
170181
}
171182
}
172183
PROCESS_SWITCH(SlimTablesProducer, processData, "process collisions and tracks for Data and MCD", false);
173184

174185
void processMCD(soa::Filtered<aod::JetCollisionsMCD>::iterator const& collision,
175-
soa::Join<aod::JetMcCollisions, aod::JMcCollisionPIs> const&, // join the weight
176-
soa::Filtered<soa::Join<aod::JetTracks, aod::JTrackExtras, aod::JTrackPIs>> const& tracks)
186+
soa::Filtered<aod::JetMcCollisions> const&, // join the weight
187+
soa::Filtered<soa::Join<aod::JetTracksMCD, aod::JTrackExtras, aod::JTrackPIs>> const& tracks,
188+
soa::Join<aod::Tracks, aod::TracksExtra, o2::aod::TracksDCA> const&)
177189
{
178-
float eventWeight = collision.mcCollision_as<soa::Join<aod::JetMcCollisions, aod::JMcCollisionPIs>>().weight();
190+
float eventWeight = collision.mcCollision_as<aod::JetMcCollisions>().weight();
179191
histos.fill(HIST("h_mcCollMCD_counts_weight"), 0.5, eventWeight);
180192

181193
float centrality = -1.0;
@@ -189,13 +201,20 @@ struct SlimTablesProducer {
189201
return;
190202
}
191203
histos.fill(HIST("h_mcCollMCD_counts_weight"), 1.5, eventWeight);
192-
auto slimCollIndex = slimCollisions.lastIndex();
193204
slimCollisions(collision.posZ());
205+
auto slimCollIndex = slimCollisions.lastIndex();
194206
for (const auto& track : tracks) {
207+
if (!jetderiveddatautilities::selectTrack(track, trackSelection) && jetderiveddatautilities::selectTrackDcaZ(track, trackDcaZmax)) {
208+
continue;
209+
}
210+
const auto& aodTrack = track.track_as<soa::Join<aod::Tracks, aod::TracksExtra, aod::TracksDCA>>();
211+
if (aodTrack.tpcNClsCrossedRows() < minTPCNClsCrossedRows) {
212+
continue; // remove badly tracked
213+
}
195214
float mass = jetderiveddatautilities::mPion;
196215
float p = track.pt() * std::cosh(track.eta());
197216
float energy = std::sqrt(p * p + mass * mass);
198-
slimTracks(slimCollIndex, track.pt(), track.eta(), track.phi(), track.px(), track.py(), track.pz(), energy);
217+
slimTracks(slimCollIndex, track.px(), track.py(), track.pz(), energy);
199218
}
200219
}
201220
PROCESS_SWITCH(SlimTablesProducer, processMCD, "process collisions and tracks for MCD", false);
@@ -230,10 +249,10 @@ struct SlimTablesProducer {
230249
return;
231250
}
232251
histos.fill(HIST("h_mcCollMCP_counts_weight"), 4.5, eventWeight);
233-
auto slimMcCollIndex = slimMcCollisions.lastIndex();
234252
slimMcCollisions(mcCollision.posZ());
253+
auto slimMcCollIndex = slimMcCollisions.lastIndex();
235254
for (const auto& particle : particles) {
236-
slimParticles(slimMcCollIndex, particle.pt(), particle.eta(), particle.phi(), particle.px(), particle.py(), particle.pz());
255+
slimParticles(slimMcCollIndex, particle.px(), particle.py(), particle.pz());
237256
}
238257
}
239258
PROCESS_SWITCH(SlimTablesProducer, processMCP, "process mccollisions and mcparticles for MCD", false);

0 commit comments

Comments
 (0)