Skip to content

Commit 3cd7dc0

Browse files
authored
[PWGJE] Fixing MCD dependency in MCP only process functions for HF substructure (#10352)
1 parent 4928c17 commit 3cd7dc0

13 files changed

+98
-127
lines changed

PWGJE/Core/JetCandidateUtilities.h

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -237,24 +237,6 @@ auto slicedPerCandidate(T const& table, U const& candidate, V const& perD0Candid
237237
}
238238
}
239239

240-
/**
241-
* returns a slice of the table depending on the type of the candidate and index of the collision
242-
*
243-
* @param candidate candidate that is being checked
244-
* @param table the table to be sliced
245-
*/
246-
template <typename T, typename U, typename V, typename M, typename N, typename O, typename P, typename Q>
247-
auto slicedPerCandidateCollision(T const& table, U const& candidates, V const& collision, M const& D0CollisionPerCollision, N const& DplusCollisionPerCollision, O const& LcCollisionPerCollision, P const& BplusCollisionPerCollision, Q const& DielectronCollisionPerCollision)
248-
{
249-
if constexpr (jethfutilities::isHFTable<U>() || jethfutilities::isHFMcTable<U>()) {
250-
return jethfutilities::slicedPerHFCollision(table, candidates, collision, D0CollisionPerCollision, DplusCollisionPerCollision, LcCollisionPerCollision, BplusCollisionPerCollision);
251-
} else if constexpr (jetdqutilities::isDielectronTable<U>() || jetdqutilities::isDielectronMcTable<U>()) {
252-
return jetdqutilities::slicedPerDielectronCollision(table, candidates, collision, DielectronCollisionPerCollision);
253-
} else {
254-
return table;
255-
}
256-
}
257-
258240
/**
259241
* returns a slice of the table depending on the index of the candidate
260242
* @param CandidateTable candidtae table type

PWGJE/Core/JetDQUtilities.h

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -164,22 +164,6 @@ auto slicedPerDielectronCandidate(T const& table, U const& candidate, V const& p
164164
}
165165
}
166166

167-
/**
168-
* returns a slice of the table depending on the type of the Dielectron candidate and index of the collision
169-
*
170-
* @param candidate dielectron candidate that is being checked
171-
* @param table the table to be sliced
172-
*/
173-
template <typename T, typename U, typename V, typename M>
174-
auto slicedPerDielectronCollision(T const& table, U const& /*candidates*/, V const& collision, M const& DielectronCollisionPerCollision)
175-
{
176-
if constexpr (isDielectronTable<U>() || isDielectronMcTable<U>()) {
177-
return table.sliceBy(DielectronCollisionPerCollision, collision.globalIndex());
178-
} else {
179-
return table;
180-
}
181-
}
182-
183167
/**
184168
* returns a slice of the table depending on the index of the Dielectron jet
185169
* @param DielectronTable dielectron table type

PWGJE/Core/JetHFUtilities.h

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -418,28 +418,6 @@ auto slicedPerHFCandidate(T const& table, U const& candidate, V const& perD0Cand
418418
}
419419
}
420420

421-
/**
422-
* returns a slice of the table depending on the type of the HF candidate and index of the collision
423-
*
424-
* @param candidate HF candidate that is being checked
425-
* @param table the table to be sliced
426-
*/
427-
template <typename T, typename U, typename V, typename M, typename N, typename O, typename P>
428-
auto slicedPerHFCollision(T const& table, U const& /*candidates*/, V const& collision, M const& D0CollisionPerCollision, N const& DplusCollisionPerCollision, O const& LcCollisionPerCollision, P const& BplusCollisionPerCollision)
429-
{
430-
if constexpr (isD0Table<U>() || isD0McTable<U>()) {
431-
return table.sliceBy(D0CollisionPerCollision, collision.globalIndex());
432-
} else if constexpr (isDplusTable<U>() || isDplusMcTable<U>()) {
433-
return table.sliceBy(DplusCollisionPerCollision, collision.globalIndex());
434-
} else if constexpr (isLcTable<U>() || isLcMcTable<U>()) {
435-
return table.sliceBy(LcCollisionPerCollision, collision.globalIndex());
436-
} else if constexpr (isBplusTable<U>() || isBplusMcTable<U>()) {
437-
return table.sliceBy(BplusCollisionPerCollision, collision.globalIndex());
438-
} else {
439-
return table;
440-
}
441-
}
442-
443421
/**
444422
* returns a slice of the table depending on the index of the HF candidate
445423
*

PWGJE/DataModel/JetReducedDataDQ.h

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -22,36 +22,44 @@
2222
#include "Framework/AnalysisDataModel.h"
2323
#include "PWGDQ/DataModel/ReducedInfoTables.h"
2424
#include "PWGJE/DataModel/JetReducedData.h"
25+
#include "PWGJE/DataModel/JetReducedDataHF.h"
2526

2627
namespace o2::aod
2728
{
29+
namespace jdielectronmccollision
30+
{
31+
DECLARE_SOA_COLUMN(DummyDQ, dummyDQ, bool);
32+
} // namespace jdielectronmccollision
2833

2934
DECLARE_SOA_TABLE_STAGED(JDielectronMcCollisions, "JDIELMCCOLL",
3035
o2::soa::Index<>,
3136
jmccollision::PosX,
3237
jmccollision::PosY,
3338
jmccollision::PosZ);
3439

40+
DECLARE_SOA_TABLE_STAGED(JDielectronMcRCollDummys, "JDIELMCRCOLLDUM",
41+
jdielectronmccollision::DummyDQ);
42+
3543
namespace jdielectronindices
3644
{
37-
DECLARE_SOA_INDEX_COLUMN(JCollision, collision);
3845
DECLARE_SOA_INDEX_COLUMN_CUSTOM(JDielectronMcCollision, dielectronmccollision, "JDIELMCCOLLS");
3946
DECLARE_SOA_INDEX_COLUMN_FULL(Prong0, prong0, int, JTracks, "_0");
4047
DECLARE_SOA_INDEX_COLUMN_FULL(Prong1, prong1, int, JTracks, "_1");
41-
DECLARE_SOA_INDEX_COLUMN(JMcCollision, mcCollision);
42-
DECLARE_SOA_INDEX_COLUMN(JMcParticle, mcParticle);
4348
} // namespace jdielectronindices
4449

4550
DECLARE_SOA_TABLE_STAGED(JDielectronCollisionIds, "JDIELCOLLID",
46-
jdielectronindices::JCollisionId);
51+
jcandidateindices::JCollisionId,
52+
o2::soa::Marker<JMarkerDielectron>);
4753

4854
DECLARE_SOA_TABLE_STAGED(JDielectronMcCollisionIds, "JDIELMCCOLLID",
49-
jdielectronindices::JMcCollisionId);
55+
jcandidateindices::JMcCollisionId,
56+
o2::soa::Marker<JMarkerDielectron>);
5057

5158
DECLARE_SOA_TABLE_STAGED(JDielectronIds, "JDIELID",
52-
jdielectronindices::JCollisionId,
59+
jcandidateindices::JCollisionId,
5360
jdielectronindices::Prong0Id,
54-
jdielectronindices::Prong1Id);
61+
jdielectronindices::Prong1Id,
62+
o2::soa::Marker<JMarkerDielectron>);
5563

5664
namespace jdielectronmc
5765
{
@@ -103,8 +111,8 @@ using JDielectronMc = JDielectronMcs::iterator;
103111
using StoredJDielectronMc = StoredJDielectronMcs::iterator;
104112

105113
DECLARE_SOA_TABLE_STAGED(JDielectronMcIds, "JDIELMCID",
106-
jdielectronindices::JMcCollisionId,
107-
jdielectronindices::JMcParticleId,
114+
jcandidateindices::JMcCollisionId,
115+
jcandidateindices::JMcParticleId,
108116
jdielectronmc::MothersIds,
109117
jdielectronmc::DaughtersIdSlice);
110118

PWGJE/DataModel/JetReducedDataHF.h

Lines changed: 45 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -26,29 +26,42 @@
2626
namespace o2::aod
2727
{
2828

29-
namespace jd0indices
29+
constexpr uint JMarkerD0 = 1;
30+
constexpr uint JMarkerDplus = 2;
31+
constexpr uint JMarkerLc = 3;
32+
constexpr uint JMarkerBplus = 4;
33+
constexpr uint JMarkerDielectron = 5;
34+
35+
namespace jcandidateindices
3036
{
3137
DECLARE_SOA_INDEX_COLUMN(JCollision, collision);
32-
DECLARE_SOA_INDEX_COLUMN_FULL(Prong0, prong0, int, JTracks, "_0");
33-
DECLARE_SOA_INDEX_COLUMN_FULL(Prong1, prong1, int, JTracks, "_1");
3438
DECLARE_SOA_INDEX_COLUMN(JMcCollision, mcCollision);
3539
DECLARE_SOA_INDEX_COLUMN(JMcParticle, mcParticle);
40+
} // namespace jcandidateindices
41+
42+
namespace jd0indices
43+
{
44+
DECLARE_SOA_INDEX_COLUMN_FULL(Prong0, prong0, int, JTracks, "_0");
45+
DECLARE_SOA_INDEX_COLUMN_FULL(Prong1, prong1, int, JTracks, "_1");
3646
} // namespace jd0indices
3747

3848
DECLARE_SOA_TABLE_STAGED(JD0CollisionIds, "JD0COLLID",
39-
jd0indices::JCollisionId);
49+
jcandidateindices::JCollisionId,
50+
o2::soa::Marker<JMarkerD0>);
4051

4152
DECLARE_SOA_TABLE_STAGED(JD0McCollisionIds, "JD0MCCOLLID",
42-
jd0indices::JMcCollisionId);
53+
jcandidateindices::JMcCollisionId,
54+
o2::soa::Marker<JMarkerD0>);
4355

4456
DECLARE_SOA_TABLE_STAGED(JD0Ids, "JD0ID",
45-
jd0indices::JCollisionId,
57+
jcandidateindices::JCollisionId,
4658
jd0indices::Prong0Id,
4759
jd0indices::Prong1Id);
4860

4961
DECLARE_SOA_TABLE_STAGED(JD0PIds, "JD0PID",
50-
jd0indices::JMcCollisionId,
51-
jd0indices::JMcParticleId);
62+
jcandidateindices::JMcCollisionId,
63+
jcandidateindices::JMcParticleId,
64+
o2::soa::Marker<JMarkerD0>);
5265

5366
namespace jdummyd0
5467
{
@@ -65,29 +78,29 @@ DECLARE_SOA_TABLE(JDumD0MlDaus, "AOD", "JDumD0MLDAU",
6578

6679
namespace jdplusindices
6780
{
68-
DECLARE_SOA_INDEX_COLUMN(JCollision, collision);
6981
DECLARE_SOA_INDEX_COLUMN_FULL(Prong0, prong0, int, JTracks, "_0");
7082
DECLARE_SOA_INDEX_COLUMN_FULL(Prong1, prong1, int, JTracks, "_1");
7183
DECLARE_SOA_INDEX_COLUMN_FULL(Prong2, prong2, int, JTracks, "_2");
72-
DECLARE_SOA_INDEX_COLUMN(JMcCollision, mcCollision);
73-
DECLARE_SOA_INDEX_COLUMN(JMcParticle, mcParticle);
7484
} // namespace jdplusindices
7585

7686
DECLARE_SOA_TABLE_STAGED(JDplusCollisionIds, "JDPCOLLID",
77-
jdplusindices::JCollisionId);
87+
jcandidateindices::JCollisionId,
88+
o2::soa::Marker<JMarkerDplus>);
7889

7990
DECLARE_SOA_TABLE_STAGED(JDplusMcCollisionIds, "JDPMCCOLLID",
80-
jdplusindices::JMcCollisionId);
91+
jcandidateindices::JMcCollisionId,
92+
o2::soa::Marker<JMarkerDplus>);
8193

8294
DECLARE_SOA_TABLE_STAGED(JDplusIds, "JDPID",
83-
jdplusindices::JCollisionId,
95+
jcandidateindices::JCollisionId,
8496
jdplusindices::Prong0Id,
8597
jdplusindices::Prong1Id,
8698
jdplusindices::Prong2Id);
8799

88100
DECLARE_SOA_TABLE_STAGED(JDplusPIds, "JDPPID",
89-
jdplusindices::JMcCollisionId,
90-
jdplusindices::JMcParticleId);
101+
jcandidateindices::JMcCollisionId,
102+
jcandidateindices::JMcParticleId,
103+
o2::soa::Marker<JMarkerDplus>);
91104

92105
namespace jdummydplus
93106
{
@@ -105,29 +118,29 @@ DECLARE_SOA_TABLE(JDumDplusMlDaus, "AOD", "JDUMDPMLDAU",
105118

106119
namespace jlcindices
107120
{
108-
DECLARE_SOA_INDEX_COLUMN(JCollision, collision);
109121
DECLARE_SOA_INDEX_COLUMN_FULL(Prong0, prong0, int, JTracks, "_0");
110122
DECLARE_SOA_INDEX_COLUMN_FULL(Prong1, prong1, int, JTracks, "_1");
111123
DECLARE_SOA_INDEX_COLUMN_FULL(Prong2, prong2, int, JTracks, "_2");
112-
DECLARE_SOA_INDEX_COLUMN(JMcCollision, mcCollision);
113-
DECLARE_SOA_INDEX_COLUMN(JMcParticle, mcParticle);
114124
} // namespace jlcindices
115125

116126
DECLARE_SOA_TABLE_STAGED(JLcCollisionIds, "JLCCOLLID",
117-
jlcindices::JCollisionId);
127+
jcandidateindices::JCollisionId,
128+
o2::soa::Marker<JMarkerLc>);
118129

119130
DECLARE_SOA_TABLE_STAGED(JLcMcCollisionIds, "JLCMCCOLLID",
120-
jlcindices::JMcCollisionId);
131+
jcandidateindices::JMcCollisionId,
132+
o2::soa::Marker<JMarkerLc>);
121133

122134
DECLARE_SOA_TABLE_STAGED(JLcIds, "JLCID",
123-
jlcindices::JCollisionId,
135+
jcandidateindices::JCollisionId,
124136
jlcindices::Prong0Id,
125137
jlcindices::Prong1Id,
126138
jlcindices::Prong2Id);
127139

128140
DECLARE_SOA_TABLE_STAGED(JLcPIds, "JLCPID",
129-
jlcindices::JMcCollisionId,
130-
jlcindices::JMcParticleId);
141+
jcandidateindices::JMcCollisionId,
142+
jcandidateindices::JMcParticleId,
143+
o2::soa::Marker<JMarkerLc>);
131144

132145
namespace jdummylc
133146
{
@@ -145,29 +158,29 @@ DECLARE_SOA_TABLE(JDumLcMlDaus, "AOD", "JDUMLCMLDAU",
145158

146159
namespace jbplusindices
147160
{
148-
DECLARE_SOA_INDEX_COLUMN(JCollision, collision);
149161
DECLARE_SOA_INDEX_COLUMN_FULL(Prong0, prong0, int, JTracks, "_0");
150162
DECLARE_SOA_INDEX_COLUMN_FULL(Prong1, prong1, int, JTracks, "_1");
151163
DECLARE_SOA_INDEX_COLUMN_FULL(Prong2, prong2, int, JTracks, "_2");
152-
DECLARE_SOA_INDEX_COLUMN(JMcCollision, mcCollision);
153-
DECLARE_SOA_INDEX_COLUMN(JMcParticle, mcParticle);
154164
} // namespace jbplusindices
155165

156166
DECLARE_SOA_TABLE_STAGED(JBplusCollisionIds, "JBPCOLLID",
157-
jbplusindices::JCollisionId);
167+
jcandidateindices::JCollisionId,
168+
o2::soa::Marker<JMarkerBplus>);
158169

159170
DECLARE_SOA_TABLE_STAGED(JBplusMcCollisionIds, "JBPMCCOLLID",
160-
jbplusindices::JMcCollisionId);
171+
jcandidateindices::JMcCollisionId,
172+
o2::soa::Marker<JMarkerBplus>);
161173

162174
DECLARE_SOA_TABLE_STAGED(JBplusIds, "JBPID",
163-
jbplusindices::JCollisionId,
175+
jcandidateindices::JCollisionId,
164176
jbplusindices::Prong0Id,
165177
jbplusindices::Prong1Id,
166178
jbplusindices::Prong2Id);
167179

168180
DECLARE_SOA_TABLE_STAGED(JBplusPIds, "JBPPID",
169-
jbplusindices::JMcCollisionId,
170-
jbplusindices::JMcParticleId);
181+
jcandidateindices::JMcCollisionId,
182+
jcandidateindices::JMcParticleId,
183+
o2::soa::Marker<JMarkerBplus>);
171184

172185
} // namespace o2::aod
173186

PWGJE/TableProducer/derivedDataProducer.cxx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,7 @@ struct JetDerivedDataProducerTask {
108108
Produces<aod::JDielectronIds> jDielectronIdsTable;
109109
Produces<aod::JDielectronMcCollisions> jDielectronMcCollisionsTable;
110110
Produces<aod::JDielectronMcCollisionIds> jDielectronMcCollisionIdsTable;
111+
Produces<aod::JDielectronMcRCollDummys> JDielectronMcRCollDummysTable;
111112
Produces<aod::JDielectronMcs> jDielectronMcsTable;
112113
Produces<aod::JDielectronMcIds> jDielectronMcIdsTable;
113114
} products;
@@ -646,6 +647,7 @@ struct JetDerivedDataProducerTask {
646647
auto pdgParticle = pdgDatabase->GetParticle(particle.pdgCode());
647648
products.jDielectronMcsTable(products.jDielectronMcCollisionsTable.lastIndex(), particle.pt(), particle.eta(), particle.phi(), particle.y(), particle.e(), pdgParticle->Mass(), particle.pdgCode(), particle.getGenStatusCode(), particle.getHepMCStatusCode(), particle.isPhysicalPrimary(), jetdqutilities::setDielectronParticleDecayBit(particles, particle), RecoDecay::getCharmHadronOrigin(particles, particle, false)); // Todo: should the last thing be false?
648649
products.jDielectronMcIdsTable(mcCollision.globalIndex(), particle.globalIndex(), mothersId, daughtersId);
650+
products.JDielectronMcRCollDummysTable(false);
649651
}
650652
}
651653
}

PWGJE/TableProducer/derivedDataWriter.cxx

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ struct JetDerivedDataWriter {
145145
Produces<aod::StoredJDielectronIds> storedDielectronIdsTable;
146146
Produces<aod::StoredJDielectronMcCollisions> storedDielectronMcCollisionsTable;
147147
Produces<aod::StoredJDielectronMcCollisionIds> storedDielectronMcCollisionIdsTable;
148-
// Produces<aod::StoredHfD0McRCollIds> storedD0McCollisionsMatchingTable; //this doesnt exist for Dileptons yet
148+
Produces<aod::StoredJDielectronMcRCollDummys> storedDielectronMcRCollDummysTable;
149149
Produces<aod::StoredJDielectronMcs> storedDielectronParticlesTable;
150150
Produces<aod::StoredJDielectronMcIds> storedDielectronParticleIdsTable;
151151
} products;
@@ -154,15 +154,15 @@ struct JetDerivedDataWriter {
154154

155155
Preslice<soa::Join<aod::JMcParticles, aod::JMcParticlePIs>> ParticlesPerMcCollision = aod::jmcparticle::mcCollisionId;
156156
Preslice<soa::Join<aod::JTracks, aod::JTrackExtras, aod::JTrackPIs, aod::JMcTrackLbs>> TracksPerCollision = aod::jtrack::collisionId;
157-
Preslice<aod::McCollisionsD0> D0McCollisionsPerMcCollision = aod::jd0indices::mcCollisionId;
158-
Preslice<aod::McCollisionsDplus> DplusMcCollisionsPerMcCollision = aod::jdplusindices::mcCollisionId;
159-
Preslice<aod::McCollisionsLc> LcMcCollisionsPerMcCollision = aod::jlcindices::mcCollisionId;
160-
Preslice<aod::McCollisionsBplus> BplusMcCollisionsPerMcCollision = aod::jbplusindices::mcCollisionId;
161-
Preslice<aod::McCollisionsDielectron> DielectronMcCollisionsPerMcCollision = aod::jdielectronindices::mcCollisionId;
162-
Preslice<aod::CandidatesD0MCP> D0ParticlesPerMcCollision = aod::jd0indices::mcCollisionId;
163-
Preslice<aod::CandidatesDplusMCP> DplusParticlesPerMcCollision = aod::jdplusindices::mcCollisionId;
164-
Preslice<aod::CandidatesLcMCP> LcParticlesPerMcCollision = aod::jlcindices::mcCollisionId;
165-
Preslice<aod::CandidatesBplusMCP> BplusParticlesPerMcCollision = aod::jbplusindices::mcCollisionId;
157+
Preslice<aod::McCollisionsD0> D0McCollisionsPerMcCollision = aod::jcandidateindices::mcCollisionId;
158+
Preslice<aod::McCollisionsDplus> DplusMcCollisionsPerMcCollision = aod::jcandidateindices::mcCollisionId;
159+
Preslice<aod::McCollisionsLc> LcMcCollisionsPerMcCollision = aod::jcandidateindices::mcCollisionId;
160+
Preslice<aod::McCollisionsBplus> BplusMcCollisionsPerMcCollision = aod::jcandidateindices::mcCollisionId;
161+
Preslice<aod::McCollisionsDielectron> DielectronMcCollisionsPerMcCollision = aod::jcandidateindices::mcCollisionId;
162+
Preslice<aod::CandidatesD0MCP> D0ParticlesPerMcCollision = aod::jcandidateindices::mcCollisionId;
163+
Preslice<aod::CandidatesDplusMCP> DplusParticlesPerMcCollision = aod::jcandidateindices::mcCollisionId;
164+
Preslice<aod::CandidatesLcMCP> LcParticlesPerMcCollision = aod::jcandidateindices::mcCollisionId;
165+
Preslice<aod::CandidatesBplusMCP> BplusParticlesPerMcCollision = aod::jcandidateindices::mcCollisionId;
166166
PresliceUnsorted<aod::JEMCTracks> EMCTrackPerTrack = aod::jemctrack::trackId;
167167

168168
uint32_t precisionPositionMask;
@@ -561,14 +561,15 @@ struct JetDerivedDataWriter {
561561
}
562562
PROCESS_SWITCH(JetDerivedDataWriter, processBplusMCP, "write out Bplus mcp output tables", false);
563563

564-
void processDielectronMCP(soa::Join<aod::JMcCollisions, aod::JMcCollisionSelections>::iterator const& mcCollision, aod::JMcParticles const&, aod::McCollisionsDielectron const& DielectronMcCollisions, aod::CandidatesDielectronMCP const& DielectronParticles)
564+
void processDielectronMCP(soa::Join<aod::JMcCollisions, aod::JMcCollisionSelections>::iterator const& mcCollision, aod::JMcParticles const&, soa::Join<aod::McCollisionsDielectron, aod::JDielectronMcRCollDummys> const& DielectronMcCollisions, aod::CandidatesDielectronMCP const& DielectronParticles)
565565
{
566566
if (mcCollision.isMcCollisionSelected()) {
567567

568568
const auto dielectronMcCollisionsPerMcCollision = DielectronMcCollisions.sliceBy(DielectronMcCollisionsPerMcCollision, mcCollision.globalIndex());
569569
for (const auto& dielectronMcCollisionPerMcCollision : dielectronMcCollisionsPerMcCollision) { // should only ever be one
570570
jetdqutilities::fillDielectronMcCollisionTable(dielectronMcCollisionPerMcCollision, products.storedDielectronMcCollisionsTable);
571571
products.storedDielectronMcCollisionIdsTable(mcCollisionMapping[mcCollision.globalIndex()]);
572+
products.storedDielectronMcRCollDummysTable(dielectronMcCollisionPerMcCollision.dummyDQ());
572573
}
573574
for (const auto& DielectronParticle : DielectronParticles) {
574575
jetdqutilities::fillDielectronCandidateMcTable(DielectronParticle, products.storedDielectronMcCollisionsTable.lastIndex(), products.storedDielectronParticlesTable);

0 commit comments

Comments
 (0)