Skip to content

Commit d9b0ce1

Browse files
fixed MC version (#7052)
1 parent 68fa094 commit d9b0ce1

1 file changed

Lines changed: 28 additions & 18 deletions

File tree

PWGLF/TableProducer/Nuspex/LFTreeCreatorClusterStudies.cxx

Lines changed: 28 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
#include "Framework/ASoAHelpers.h"
2929
#include "ReconstructionDataFormats/Track.h"
3030
#include "Common/DataModel/TrackSelectionTables.h"
31+
#include "Common/Core/TrackSelection.h"
3132
#include "Common/DataModel/Centrality.h"
3233
#include "Common/DataModel/Multiplicity.h"
3334
#include "Common/Core/RecoDecay.h"
@@ -57,7 +58,7 @@ using namespace o2::framework::expressions;
5758

5859
using Track = o2::track::TrackParCov;
5960
using TracksFullIU = soa::Join<aod::TracksIU, aod::TracksExtra, aod::TracksCovIU, aod::pidTPCEl, aod::pidTPCPi, aod::pidTPCKa, aod::pidTPCPr, aod::pidTPCDe, aod::pidTOFDe, aod::TOFSignal, aod::TOFEvTime>;
60-
using TracksFullIUMc = soa::Join<aod::TracksIU, aod::TracksExtra, aod::TracksCovIU, aod::pidTPCEl, aod::pidTPCPi, aod::pidTPCKa, aod::pidTPCPr, aod::pidTPCDe, aod::pidTOFDe, aod::TOFSignal, aod::TOFEvTime, aod::McTrackLabels>;
61+
using TracksFullIUMc = soa::Join<aod::Tracks, aod::TracksExtra, aod::TracksDCA, aod::TrackSelection, aod::TracksIU, aod::TracksExtra, aod::TracksCovIU, aod::pidTPCEl, aod::pidTPCPi, aod::pidTPCKa, aod::pidTPCPr, aod::pidTPCDe, aod::pidTOFDe, aod::TOFSignal, aod::TOFEvTime, aod::McTrackLabels>;
6162
using CollisionsCustom = soa::Join<aod::Collisions, aod::EvSels>;
6263

6364
namespace BetheBloch
@@ -626,12 +627,13 @@ struct LfTreeCreatorClusterStudies {
626627
m_hAnalysis.get<TH1>(HIST("v0_type"))->GetXaxis()->SetBinLabel(i + 1, V0Type_labels[i].c_str());
627628
}
628629

629-
bool fillV0Cand(const std::array<float, 3>& PV, const aod::V0s::iterator& v0, CandidateV0& candV0)
630+
template <typename Track>
631+
bool fillV0Cand(const std::array<float, 3>& PV, const aod::V0s::iterator& v0, CandidateV0& candV0, const Track&)
630632
{
631633
m_hAnalysis.fill(HIST("v0_selections"), V0Selections::kV0NoCut);
632634

633-
auto posTrack = v0.posTrack_as<TracksFullIU>();
634-
auto negTrack = v0.negTrack_as<TracksFullIU>();
635+
auto posTrack = v0.posTrack_as<Track>();
636+
auto negTrack = v0.negTrack_as<Track>();
635637
if (!qualitySelectionV0Daughter(posTrack) || !qualitySelectionV0Daughter(negTrack)) {
636638
return false;
637639
}
@@ -908,12 +910,13 @@ struct LfTreeCreatorClusterStudies {
908910
m_hAnalysis.fill(HIST("isPositive"), false);
909911
}
910912

911-
bool fillKCand(const std::array<float, 3>& PV, const aod::Cascades::iterator& cascade, CandidateK& candK)
913+
template <typename Track>
914+
bool fillKCand(const std::array<float, 3>& PV, const aod::Cascades::iterator& cascade, CandidateK& candK, const Track&)
912915
{
913916
m_hAnalysis.fill(HIST("casc_selections"), CascSelections::kCascNoCut);
914917

915918
auto v0Track = cascade.template v0_as<aod::V0s>();
916-
auto bachelorTrack = cascade.template bachelor_as<TracksFullIU>();
919+
auto bachelorTrack = cascade.template bachelor_as<Track>();
917920

918921
auto itv0 = std::find_if(m_v0TrackParCovs.begin(), m_v0TrackParCovs.end(), [&](const V0TrackParCov& v0) { return v0.globalIndex == v0Track.globalIndex(); });
919922
if (itv0 == m_v0TrackParCovs.end()) {
@@ -1109,6 +1112,7 @@ struct LfTreeCreatorClusterStudies {
11091112
return;
11101113
}
11111114
auto mcParticle = track.mcParticle();
1115+
11121116
m_hAnalysis.fill(HIST("de_selections"), DeSelections::kDeNoCut);
11131117
if (track.itsNCls() < desetting_nClsIts) {
11141118
return;
@@ -1178,7 +1182,6 @@ struct LfTreeCreatorClusterStudies {
11781182
if (track.hasTOF() && (tofMass < he3setting_tofmasslow || tofMass > he3setting_tofmasshigh)) {
11791183
return;
11801184
}
1181-
11821185
uint8_t partID = PartID::he;
11831186
bool heliumPID = track.pidForTracking() == o2::track::PID::Helium3 || track.pidForTracking() == o2::track::PID::Alpha;
11841187
float correctedTPCinnerParam = (heliumPID && he3setting_compensatePIDinTracking) ? track.tpcInnerParam() / 2.f : track.tpcInnerParam();
@@ -1238,7 +1241,6 @@ struct LfTreeCreatorClusterStudies {
12381241
if (track.hasTOF() && (tofMass < he3setting_tofmasslow || tofMass > he3setting_tofmasshigh)) {
12391242
return;
12401243
}
1241-
12421244
uint8_t partID = PartID::he;
12431245
bool heliumPID = track.pidForTracking() == o2::track::PID::Helium3 || track.pidForTracking() == o2::track::PID::Alpha;
12441246
float correctedTPCinnerParam = (heliumPID && he3setting_compensatePIDinTracking) ? track.tpcInnerParam() / 2.f : track.tpcInnerParam();
@@ -1302,14 +1304,14 @@ struct LfTreeCreatorClusterStudies {
13021304
m_v0TrackParCovs.clear();
13031305
for (auto& v0 : v0Table_thisCollision) {
13041306
CandidateV0 candV0;
1305-
if (fillV0Cand(PV, v0, candV0))
1307+
if (fillV0Cand(PV, v0, candV0, tracks))
13061308
fillV0Table(candV0);
13071309
}
13081310
}
13091311
if (setting_fillK && setting_fillV0) { // the v0 loops are needed for the Ks
13101312
for (auto& cascade : cascTable_thisCollision) {
13111313
CandidateK candK;
1312-
if (fillKCand(PV, cascade, candK))
1314+
if (fillKCand(PV, cascade, candK, tracks))
13131315
fillKTable(candK);
13141316
}
13151317
}
@@ -1344,7 +1346,7 @@ struct LfTreeCreatorClusterStudies {
13441346
}
13451347
PROCESS_SWITCH(LfTreeCreatorClusterStudies, processDataNuclei, "process Data Nuclei", false);
13461348

1347-
void processMcV0Casc(CollisionsCustom const& collisions, TracksFullIUMc const& tracks, aod::V0s const& v0s, aod::Cascades const& cascades, aod::BCsWithTimestamps const&)
1349+
void processMcV0Casc(CollisionsCustom const& collisions, TracksFullIUMc const& tracks, aod::V0s const& v0s, aod::Cascades const& cascades, aod::BCsWithTimestamps const&, aod::McParticles const&)
13481350
{
13491351
for (const auto& collision : collisions) {
13501352
auto bc = collision.bc_as<aod::BCsWithTimestamps>();
@@ -1372,22 +1374,28 @@ struct LfTreeCreatorClusterStudies {
13721374
m_v0TrackParCovs.clear();
13731375
for (auto& v0 : v0Table_thisCollision) {
13741376
CandidateV0 candV0;
1375-
if (fillV0Cand(PV, v0, candV0) && fillV0CandMc(v0, candV0))
1376-
fillV0TableMc(candV0);
1377+
if (fillV0Cand(PV, v0, candV0, tracks)) {
1378+
if (fillV0CandMc(v0, candV0)) {
1379+
fillV0TableMc(candV0);
1380+
}
1381+
}
13771382
}
13781383
}
13791384
if (setting_fillK && setting_fillV0) { // the v0 loops are needed for the Ks
13801385
for (auto& cascade : cascTable_thisCollision) {
13811386
CandidateK candK;
1382-
if (fillKCand(PV, cascade, candK) && fillKCandMc(cascade, candK))
1383-
fillKTableMc(candK);
1387+
if (fillKCand(PV, cascade, candK, tracks)) {
1388+
if (fillKCandMc(cascade, candK)) {
1389+
fillKTableMc(candK);
1390+
}
1391+
}
13841392
}
13851393
}
13861394
}
13871395
}
13881396
PROCESS_SWITCH(LfTreeCreatorClusterStudies, processMcV0Casc, "process Mc V0 and cascade", false);
13891397

1390-
void processMcNuclei(CollisionsCustom const& collisions, TracksFullIUMc const& tracks)
1398+
void processMcNuclei(CollisionsCustom const& collisions, TracksFullIUMc const& tracks, aod::BCs const&, aod::McParticles const&)
13911399
{
13921400
for (const auto& collision : collisions) {
13931401
m_collisionCounter++;
@@ -1405,10 +1413,12 @@ struct LfTreeCreatorClusterStudies {
14051413
TrackTable_thisCollision.bindExternalIndices(&tracks);
14061414

14071415
for (auto track : TrackTable_thisCollision) {
1408-
if (setting_fillDe)
1416+
if (setting_fillDe) {
14091417
fillDeTableMc(track);
1410-
if (setting_fillHe3)
1418+
}
1419+
if (setting_fillHe3) {
14111420
fillHe3TableMc(track);
1421+
}
14121422
}
14131423
}
14141424
}

0 commit comments

Comments
 (0)