Skip to content

Commit 2937f35

Browse files
ddobrigkalibuild
andauthored
[PWGLF] Found tags populated if requested (#10107)
Co-authored-by: ALICE Builder <alibuild@users.noreply.github.com>
1 parent b2ccedd commit 2937f35

File tree

1 file changed

+42
-7
lines changed

1 file changed

+42
-7
lines changed

PWGLF/TableProducer/Strangeness/strangenessbuilderfindable.cxx

Lines changed: 42 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -76,10 +76,12 @@ static const std::vector<std::string> tableNames{
7676
"CascToTraRefs", //.31 (interlink CascCores -> TraCascCores)
7777
"CascToKFRefs", //.32 (interlink CascCores -> KFCascCores)
7878
"TraToCascRefs", //.33 (interlink TraCascCores -> CascCores)
79-
"KFToCascRefs" //.34 (interlink KFCascCores -> CascCores)
79+
"KFToCascRefs", //.34 (interlink KFCascCores -> CascCores)
80+
"V0FoundTags", //.35 (tags found vs findable V0s in findable mode)
81+
"CascFoundTags" //.36 (tags found vs findable Cascades in findable mode)
8082
};
8183

82-
static constexpr int nTablesConst = 35;
84+
static constexpr int nTablesConst = 37;
8385

8486
static const std::vector<std::string> parameterNames{"enable"};
8587
static const int defaultParameters[nTablesConst][nParameters]{
@@ -117,6 +119,8 @@ static const int defaultParameters[nTablesConst][nParameters]{
117119
{-1},
118120
{-1},
119121
{-1},
122+
{-1},
123+
{-1},
120124
{-1}};
121125

122126
// use parameters + cov mat non-propagated, aux info + (extension propagated)
@@ -169,6 +173,8 @@ struct StrangenessBuilder {
169173
kCascToKFRefs,
170174
kTraToCascRefs,
171175
kKFToCascRefs,
176+
kV0FoundTags,
177+
kCascFoundTags,
172178
nTables };
173179

174180
//__________________________________________________
@@ -234,6 +240,11 @@ struct StrangenessBuilder {
234240
// Produces<aod::TraToCascRefs> traToCascRefs; // tracked -> cascades
235241
// Produces<aod::KFToCascRefs> kfToCascRefs; // KF -> cascades
236242

243+
//__________________________________________________
244+
// Findable tags
245+
Produces<aod::V0FoundTags> v0FoundTag;
246+
Produces<aod::CascFoundTags> cascFoundTag;
247+
237248
Configurable<LabeledArray<int>> enabledTables{"enabledTables",
238249
{defaultParameters[0], nTables, nParameters, tableNames, parameterNames},
239250
"Produce this table: -1 for autodetect; otherwise, 0/1 is false/true"};
@@ -274,6 +285,7 @@ struct StrangenessBuilder {
274285
Configurable<bool> mc_addGeneratedLambda{"mc_addGeneratedLambda", true, "add V0MCCore entry for generated, not-recoed Lambda"};
275286
Configurable<bool> mc_addGeneratedAntiLambda{"mc_addGeneratedAntiLambda", true, "add V0MCCore entry for generated, not-recoed AntiLambda"};
276287
Configurable<bool> mc_addGeneratedGamma{"mc_addGeneratedGamma", false, "add V0MCCore entry for generated, not-recoed Gamma"};
288+
Configurable<bool> mc_addGeneratedGammaMakeCollinear{"mc_addGeneratedGammaMakeCollinear", true, "when adding findable gammas, mark them as collinear"};
277289
Configurable<bool> mc_findableDetachedV0{"mc_findableDetachedV0", false, "if true, generate findable V0s that have collisionId -1. Caution advised."};
278290
} v0BuilderOpts;
279291

@@ -349,6 +361,7 @@ struct StrangenessBuilder {
349361
int pdgCode = 0; // undefined if not MC - useful for faster finding
350362
int particleId = -1; // de-reference the V0 particle if necessary
351363
bool isCollinearV0 = false;
364+
bool found = false;
352365
};
353366
struct cascadeEntry {
354367
int globalId = -1;
@@ -357,7 +370,7 @@ struct StrangenessBuilder {
357370
int posTrackId = -1;
358371
int negTrackId = -1;
359372
int bachTrackId = -1;
360-
int cascadeType = 0; // extra addition (0: standard, 1: findable but not found)
373+
bool found = false;
361374
};
362375
std::vector<v0Entry> v0List;
363376
std::vector<cascadeEntry> cascadeList;
@@ -709,6 +722,7 @@ struct StrangenessBuilder {
709722
currentV0Entry.pdgCode = 0;
710723
currentV0Entry.particleId = -1;
711724
currentV0Entry.isCollinearV0 = v0.isCollinearV0();
725+
currentV0Entry.found = true;
712726
v0List.push_back(currentV0Entry);
713727
}
714728
}
@@ -789,6 +803,10 @@ struct StrangenessBuilder {
789803
currentV0Entry.pdgCode = positiveTrackIndex.pdgCode;
790804
currentV0Entry.particleId = positiveTrackIndex.originId;
791805
currentV0Entry.isCollinearV0 = false;
806+
if (v0BuilderOpts.mc_addGeneratedGammaMakeCollinear.value && currentV0Entry.pdgCode == 22) {
807+
currentV0Entry.isCollinearV0 = true;
808+
}
809+
currentV0Entry.found = false;
792810
if (bestCollisionArray[positiveTrackIndex.mcCollisionId] < 0) {
793811
collisionLessV0s++;
794812
}
@@ -808,6 +826,10 @@ struct StrangenessBuilder {
808826
currentV0Entry.pdgCode = positiveTrackIndex.pdgCode;
809827
currentV0Entry.particleId = positiveTrackIndex.originId;
810828
currentV0Entry.isCollinearV0 = false;
829+
if (v0BuilderOpts.mc_addGeneratedGammaMakeCollinear.value && currentV0Entry.pdgCode == 22) {
830+
currentV0Entry.isCollinearV0 = true;
831+
}
832+
currentV0Entry.found = false;
811833
for (const auto& v0 : v0s) {
812834
if (v0.posTrackId() == positiveTrackIndex.globalId &&
813835
v0.negTrackId() == negativeTrackIndex.globalId) {
@@ -816,6 +838,7 @@ struct StrangenessBuilder {
816838
currentV0Entry.globalId = v0.globalIndex();
817839
currentV0Entry.v0Type = v0.v0Type();
818840
currentV0Entry.isCollinearV0 = v0.isCollinearV0();
841+
currentV0Entry.found = true;
819842
break;
820843
}
821844
}
@@ -851,7 +874,7 @@ struct StrangenessBuilder {
851874
currentCascadeEntry.posTrackId = v0.posTrackId();
852875
currentCascadeEntry.negTrackId = v0.negTrackId();
853876
currentCascadeEntry.bachTrackId = cascade.bachelorId();
854-
currentCascadeEntry.cascadeType = 0; // found
877+
currentCascadeEntry.found = true;
855878
cascadeList.push_back(currentCascadeEntry);
856879
}
857880
}
@@ -954,7 +977,7 @@ struct StrangenessBuilder {
954977
currentCascadeEntry.posTrackId = v0.posTrackId;
955978
currentCascadeEntry.negTrackId = v0.negTrackId;
956979
currentCascadeEntry.bachTrackId = bachelorTrackIndex.globalId;
957-
currentCascadeEntry.cascadeType = 1; // findable (but not found)
980+
currentCascadeEntry.found = false;
958981
cascadeList.push_back(currentCascadeEntry);
959982
if (bestCollisionArray[bachelorTrackIndex.mcCollisionId] < 0) {
960983
collisionLessCascades++;
@@ -974,7 +997,7 @@ struct StrangenessBuilder {
974997
currentCascadeEntry.posTrackId = v0.posTrackId;
975998
currentCascadeEntry.negTrackId = v0.negTrackId;
976999
currentCascadeEntry.bachTrackId = bachelorTrackIndex.globalId;
977-
currentCascadeEntry.cascadeType = 1; // findable (but not found)
1000+
currentCascadeEntry.found = false;
9781001
if (bestCollisionArray[bachelorTrackIndex.mcCollisionId] < 0) {
9791002
collisionLessCascades++;
9801003
}
@@ -985,7 +1008,7 @@ struct StrangenessBuilder {
9851008
cascade.bachelorId() == bachelorTrackIndex.globalId) {
9861009
// this will override type, but not collision index
9871010
// N.B.: collision index checks still desirable!
988-
currentCascadeEntry.cascadeType = 0;
1011+
currentCascadeEntry.found = true;
9891012
currentCascadeEntry.globalId = cascade.globalIndex();
9901013
break;
9911014
}
@@ -1226,6 +1249,12 @@ struct StrangenessBuilder {
12261249
histos.fill(HIST("hTableBuildingStatistics"), kMcV0Labels);
12271250
}
12281251

1252+
// Construct found tag
1253+
if (mEnabledTables[kV0FoundTags]) {
1254+
v0FoundTag(v0.found);
1255+
histos.fill(HIST("hTableBuildingStatistics"), kV0FoundTags);
1256+
}
1257+
12291258
// Mark mcParticle as recoed (no searching necessary afterwards)
12301259
if (thisInfo.label > -1) {
12311260
mcParticleIsReco[thisInfo.label] = true;
@@ -1582,6 +1611,12 @@ struct StrangenessBuilder {
15821611
histos.fill(HIST("hTableBuildingStatistics"), kMcCascLabels);
15831612
}
15841613

1614+
// Construct found tag
1615+
if (mEnabledTables[kCascFoundTags]) {
1616+
cascFoundTag(cascade.found);
1617+
histos.fill(HIST("hTableBuildingStatistics"), kCascFoundTags);
1618+
}
1619+
15851620
// Mark mcParticle as recoed (no searching necessary afterwards)
15861621
if (thisCascInfo.label > -1) {
15871622
mcParticleIsReco[thisCascInfo.label] = true;

0 commit comments

Comments
 (0)