Skip to content

Commit 5c53654

Browse files
Implementing Jan comments
1 parent 6080e47 commit 5c53654

File tree

2 files changed

+31
-26
lines changed

2 files changed

+31
-26
lines changed

PWGCF/TableProducer/filter2Prong.cxx

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -484,17 +484,13 @@ struct Filter2Prong {
484484

485485
const auto& posTrack = v0.template posTrack_as<PIDTrack>();
486486
const auto& negTrack = v0.template negTrack_as<PIDTrack>();
487-
488-
auto v0Type = 0;
489487
double massV0 = 0.0;
490488

491489
// K0s
492490
if (isSelectedV0AsK0s(collision, v0)) { // candidate is K0s
493-
SETBIT(v0Type, aod::cf2prongtrack::K0stoPiPi);
494-
495-
output2ProngTracks(cfcollisions.begin().globalIndex(),
491+
output2ProngTracks(cfcollisions.begin().globalIndex(),
496492
posTrack.globalIndex(), negTrack.globalIndex(),
497-
v0.pt(), v0.eta(), v0.phi(), v0.mK0Short(), v0Type);
493+
v0.pt(), v0.eta(), v0.phi(), v0.mK0Short(), aod::cf2prongtrack::K0stoPiPi);
498494
}
499495

500496
// Lambda and Anti-Lambda
@@ -503,16 +499,14 @@ struct Filter2Prong {
503499

504500
// Note: candidate compatible with Lambda and Anti-Lambda hypothesis are counted twice (once for each hypothesis)
505501
if (LambdaTag) { // candidate is Lambda
506-
SETBIT(v0Type, aod::cf2prongtrack::LambdatoPPi);
507-
massV0 = v0.mLambda();
502+
massV0 = v0.mLambda();
508503
output2ProngTracks(cfcollisions.begin().globalIndex(), posTrack.globalIndex(), negTrack.globalIndex(),
509-
v0.pt(), v0.eta(), v0.phi(), massV0, v0Type);
504+
v0.pt(), v0.eta(), v0.phi(), massV0, aod::cf2prongtrack::LambdatoPPi);
510505
}
511506
if (aLambdaTag) { // candidate is Anti-lambda
512-
SETBIT(v0Type, aod::cf2prongtrack::AntiLambdatoPiP);
513-
massV0 = v0.mAntiLambda();
507+
massV0 = v0.mAntiLambda();
514508
output2ProngTracks(cfcollisions.begin().globalIndex(), posTrack.globalIndex(), negTrack.globalIndex(),
515-
v0.pt(), v0.eta(), v0.phi(), massV0, v0Type);
509+
v0.pt(), v0.eta(), v0.phi(), massV0, aod::cf2prongtrack::AntiLambdatoPiP);
516510
} // end of Lambda and Anti-Lambda processing
517511
} // end of loop over V0 candidates
518512
} // end of processing V0 candidates

PWGCF/TableProducer/filterCorrelations.cxx

Lines changed: 25 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -51,13 +51,13 @@ using CFMultiplicity = CFMultiplicities::iterator;
5151
struct FilterCF {
5252
Service<o2::framework::O2DatabasePDG> pdg;
5353

54-
enum TrackSelectionCuts : uint8_t {
54+
enum TrackSelectionCuts1 : uint8_t {
5555
kTrackSelected = BIT(0),
5656
kITS5Clusters = BIT(1),
5757
kTPCCrossedRows = BIT(2),
5858
};
5959

60-
enum PIDCuts : uint8_t {
60+
enum TrackSelectionCuts2 : uint8_t {
6161
kPIDProton = BIT(1)
6262
};
6363

@@ -80,9 +80,8 @@ struct FilterCF {
8080
O2_DEFINE_CONFIGURABLE(nsigmaCutTOFProton, float, 3, "proton nsigma TOF")
8181
O2_DEFINE_CONFIGURABLE(ITSProtonselection, bool, false, "flag for ITS proton nsigma selection")
8282
O2_DEFINE_CONFIGURABLE(nsigmaCutITSProton, float, 3, "proton nsigma ITS")
83-
O2_DEFINE_CONFIGURABLE(dcaselection, bool, false, "flag for applying dca selection on tracks")
84-
O2_DEFINE_CONFIGURABLE(dcaxymax, float, 0.1f, "dcaxy of tracks")
85-
O2_DEFINE_CONFIGURABLE(dcazmax, float, 0.1f, "dcaz of tracks")
83+
O2_DEFINE_CONFIGURABLE(dcaxymax, float, 999.f, "maximum dcaxy of tracks")
84+
O2_DEFINE_CONFIGURABLE(dcazmax, float, 999.f, "maximum dcaz of tracks")
8685
O2_DEFINE_CONFIGURABLE(itsnclusters, int, 5, "minimum number of ITS clusters for tracks")
8786
O2_DEFINE_CONFIGURABLE(tpcncrossedrows, int, 80, "minimum number of TPC crossed rows for tracks")
8887

@@ -174,10 +173,7 @@ struct FilterCF {
174173
}
175174
return false;
176175
}
177-
/*
178-
template <typename T>
179-
using HasProtonPID = decltype(selectionPIDProton(std::declval<T&>()));
180-
*/
176+
181177
template <typename T, typename = void>
182178
struct HasProtonPID : std::false_type {
183179
};
@@ -233,7 +229,11 @@ struct FilterCF {
233229
return 0;
234230
}
235231

236-
void processData(soa::Filtered<soa::Join<aod::Collisions, aod::EvSels, aod::CFMultiplicities>>::iterator const& collision, aod::BCsWithTimestamps const&, soa::Filtered<soa::Join<aod::Tracks, aod::TracksExtra, aod::TrackSelection, aod::pidTPCPr, aod::pidTOFPr, aod::TracksDCA>> const& tracks)
232+
/// \brief Templetized process data for a given collision and its associated tracks
233+
/// \param collision The collision object containing information about the collision
234+
/// \param tracks The collection of tracks associated with the collision
235+
template <typename C1, typename T1>
236+
void processDataT(const C1& collision, const T1& tracks)
237237
{
238238
if (cfgVerbosity > 0) {
239239
LOGF(info, "processData: Tracks for collision: %d | Vertex: %.1f (%d) | INT7: %d | Multiplicity: %.1f", tracks.size(), collision.posZ(), collision.flags(), collision.sel7(), collision.multiplicity());
@@ -243,16 +243,16 @@ struct FilterCF {
243243
return;
244244
}
245245

246-
auto bc = collision.bc_as<aod::BCsWithTimestamps>();
246+
auto bc = collision.template bc_as<aod::BCsWithTimestamps>();
247247
outputCollisions(bc.runNumber(), collision.posZ(), collision.multiplicity(), bc.timestamp());
248248

249249
if (cfgTransientTables)
250250
outputCollRefs(collision.globalIndex());
251251
for (auto& track : tracks) {
252-
if (dcaselection && std::abs(track.dcaXY()) > dcaxymax)
253-
continue;
254-
if (dcaselection && std::abs(track.dcaZ()) > dcazmax)
252+
if ((std::abs(track.dcaXY()) > dcaxymax) || (std::abs(track.dcaZ()) > dcazmax)) {
255253
continue;
254+
}
255+
256256

257257
outputTracks(outputCollisions.lastIndex(), track.pt(), track.eta(), track.phi(), track.sign(), getTrackType(track));
258258
if (cfgTransientTables)
@@ -262,8 +262,19 @@ struct FilterCF {
262262
etaphi->Fill(collision.multiplicity(), track.eta(), track.phi());
263263
}
264264
}
265+
266+
void processData(soa::Filtered<soa::Join<aod::Collisions, aod::EvSels, aod::CFMultiplicities>>::iterator const& collision, aod::BCsWithTimestamps const&, soa::Filtered<soa::Join<aod::Tracks, aod::TracksExtra, aod::TrackSelection, aod::TracksDCA>> const& tracks)
267+
{
268+
processDataT(collision, tracks);
269+
}
265270
PROCESS_SWITCH(FilterCF, processData, "Process data", true);
266271

272+
void processDataPid(soa::Filtered<soa::Join<aod::Collisions, aod::EvSels, aod::CFMultiplicities>>::iterator const& collision, aod::BCsWithTimestamps const&, soa::Filtered<soa::Join<aod::Tracks, aod::TracksExtra, aod::TrackSelection, aod::pidTPCPr, aod::pidTOFPr, aod::TracksDCA>> const& tracks)
273+
{
274+
processDataT(collision, tracks);
275+
}
276+
PROCESS_SWITCH(FilterCF, processDataPid, "Process data with PID", false);
277+
267278
// NOTE not filtering collisions here because in that case there can be tracks referring to MC particles which are not part of the selected MC collisions
268279
Preslice<aod::McParticles> perMcCollision = aod::mcparticle::mcCollisionId;
269280
Preslice<aod::Tracks> perCollision = aod::track::collisionId;

0 commit comments

Comments
 (0)