Skip to content

Commit 289744c

Browse files
Use of brute force grouping in sigma0builder
1 parent cb09203 commit 289744c

File tree

1 file changed

+23
-12
lines changed

1 file changed

+23
-12
lines changed

PWGLF/TableProducer/Strangeness/sigma0builder.cxx

Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -63,16 +63,16 @@ struct sigma0builder {
6363
Service<o2::ccdb::BasicCCDBManager> ccdb;
6464
ctpRateFetcher rateFetcher;
6565

66-
SliceCache cache;
66+
//SliceCache cache;
6767

6868
Produces<aod::Sigma0Cores> sigma0cores; // save sigma0 candidates for analysis
6969
Produces<aod::SigmaPhotonExtras> sigmaPhotonExtras; // save sigma0 candidates for analysis
7070
Produces<aod::SigmaLambdaExtras> sigmaLambdaExtras; // save sigma0 candidates for analysis
7171
Produces<aod::SigmaMCCores> sigma0mccores;
7272

7373
// For manual sliceBy
74-
PresliceUnsorted<V0DerivedMCDatas> perCollisionMCDerived = o2::aod::v0data::straCollisionId;
75-
PresliceUnsorted<V0StandardDerivedDatas> perCollisionSTDDerived = o2::aod::v0data::straCollisionId;
74+
//PresliceUnsorted<V0DerivedMCDatas> perCollisionMCDerived = o2::aod::v0data::straCollisionId;
75+
//PresliceUnsorted<V0StandardDerivedDatas> perCollisionSTDDerived = o2::aod::v0data::straCollisionId;
7676
PresliceUnsorted<soa::Join<aod::StraCollisions, aod::StraCents, aod::StraEvSels, aod::StraCollLabels>> perMcCollision = aod::v0data::straMCCollisionId;
7777

7878
// pack track quality but separte also afterburner
@@ -1138,16 +1138,20 @@ struct sigma0builder {
11381138

11391139
void processMonteCarlo(soa::Join<aod::StraCollisions, aod::StraCents, aod::StraEvSels, aod::StraStamps, aod::StraCollLabels> const& collisions, V0DerivedMCDatas const& fullV0s, dauTracks const&, aod::MotherMCParts const&, soa::Join<aod::StraMCCollisions, aod::StraMCCollMults> const&, soa::Join<aod::V0MCCores, aod::V0MCCollRefs> const&)
11401140
{
1141+
// brute force grouped index construction
1142+
std::vector<std::vector<int>> v0grouped(collisions.size());
1143+
1144+
for (const auto& v0 : fullV0s) {
1145+
v0grouped[v0.straCollisionId()].push_back(v0.globalIndex());
1146+
}
1147+
11411148
for (const auto& coll : collisions) {
11421149

11431150
if (!IsEventAccepted(coll, true))
11441151
continue;
11451152

1146-
// Do analysis with collision-grouped V0s, retain full collision information
1147-
const uint64_t collIdx = coll.globalIndex();
1148-
auto V0s = fullV0s.sliceBy(perCollisionMCDerived, collIdx);
11491153
float centrality = doPPAnalysis ? coll.centFT0M() : coll.centFT0C();
1150-
1154+
11511155
bool fhasMCColl = false;
11521156
if (coll.has_straMCCollision())
11531157
fhasMCColl = true;
@@ -1169,7 +1173,9 @@ struct sigma0builder {
11691173

11701174
//_______________________________________________
11711175
// V0s loop
1172-
for (auto& v0 : V0s) {
1176+
for (size_t i = 0; i < v0grouped[coll.globalIndex()].size(); i++) {
1177+
auto v0 = fullV0s.rawIteratorAt(v0grouped[coll.globalIndex()][i]);
1178+
11731179
if (!v0.has_v0MCCore())
11741180
continue;
11751181

@@ -1317,14 +1323,18 @@ struct sigma0builder {
13171323

13181324
void processRealData(soa::Join<aod::StraCollisions, aod::StraCents, aod::StraEvSels, aod::StraStamps> const& collisions, V0StandardDerivedDatas const& fullV0s, dauTracks const&)
13191325
{
1326+
// brute force grouped index construction
1327+
std::vector<std::vector<int>> v0grouped(collisions.size());
1328+
1329+
for (const auto& v0 : fullV0s) {
1330+
v0grouped[v0.straCollisionId()].push_back(v0.globalIndex());
1331+
}
1332+
13201333
for (const auto& coll : collisions) {
13211334

13221335
if (!IsEventAccepted(coll, true))
13231336
continue;
13241337

1325-
// Do analysis with collision-grouped V0s, retain full collision information
1326-
const uint64_t collIdx = coll.globalIndex();
1327-
auto V0s = fullV0s.sliceBy(perCollisionSTDDerived, collIdx);
13281338
float centrality = doPPAnalysis ? coll.centFT0M() : coll.centFT0C();
13291339

13301340
//_______________________________________________
@@ -1344,7 +1354,8 @@ struct sigma0builder {
13441354

13451355
//_______________________________________________
13461356
// V0s loop
1347-
for (auto& v0 : V0s) {
1357+
for (size_t i = 0; i < v0grouped[coll.globalIndex()].size(); i++) {
1358+
auto v0 = fullV0s.rawIteratorAt(v0grouped[coll.globalIndex()][i]);
13481359
if (processPhotonCandidate(v0, coll)) // selecting photons
13491360
bestGammasArray.push_back(v0.globalIndex()); // Save indices of best gamma candidates
13501361

0 commit comments

Comments
 (0)