Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion PWGJE/Core/JetFindingUtilities.h
Original file line number Diff line number Diff line change
Expand Up @@ -231,7 +231,10 @@ void analyseParticles(std::vector<fastjet::PseudoJet>& inputParticles, std::stri
if (candidate != std::nullopt) {
auto cand = candidate.value();
auto hfParticle = cand.template mcParticle_as<T>();
if (jethfutilities::isDaughterParticle(hfParticle, particle.globalIndex()) || (hfParticle.globalIndex() == particle.globalIndex())) {
// if (jethfutilities::isDaughterParticle(hfParticle, particle.globalIndex()) || (hfParticle.globalIndex() == particle.globalIndex())) {
// continue;
//}
if (jethfutilities::isDaughterParticleNew(hfParticle, particle.globalIndex(), particles) || (hfParticle.globalIndex() == particle.globalIndex())) {
continue;
}
}
Expand Down
20 changes: 19 additions & 1 deletion PWGJE/Core/JetHFUtilities.h
Original file line number Diff line number Diff line change
Expand Up @@ -319,7 +319,7 @@ bool isDaughterTrack(T& track, U& candidate, V const& tracks)
* @param globalIndex global index of potnetial daughter particle
*/
template <typename T>
bool isDaughterParticle(T& particle, int globalIndex)
bool isDaughterParticle(const T& particle, int globalIndex)
{
for (auto daughter : particle.template daughters_as<typename std::decay_t<T>::parent_t>()) {
if (daughter.globalIndex() == globalIndex) {
Expand All @@ -332,6 +332,24 @@ bool isDaughterParticle(T& particle, int globalIndex)
return false;
}

template <typename T, typename U>
bool isDaughterParticleNew(T& particle, int globalIndex, U& particles)
{
auto daughterIds = particle.daughtersIds();
for (auto daughterId = daughterIds[0]; daughterId <= daughterIds[1]; daughterId++) {
if (daughterId < 0)
continue;
auto daughter = particles.iteratorAt(daughterId - particles.offset());
if (daughter.globalIndex() == globalIndex) {
return true;
}
if (isDaughterParticleNew(daughter, globalIndex, particles)) {
return true;
}
}
return false;
}

/**
* returns a slice of the table depending on the index of the candidate
*
Expand Down
88 changes: 50 additions & 38 deletions PWGJE/DataModel/JetReducedData.h
Original file line number Diff line number Diff line change
Expand Up @@ -32,15 +32,15 @@ DECLARE_SOA_COLUMN(GlobalBC, globalBC, uint64_t);
DECLARE_SOA_COLUMN(Timestamp, timestamp, uint64_t);
} // namespace jbc

DECLARE_SOA_TABLE(JBCs, "AOD", "JBCs",
DECLARE_SOA_TABLE(JBCs, "AOD", "JBC",
o2::soa::Index<>,
jbc::RunNumber,
jbc::GlobalBC,
jbc::Timestamp);

using JBC = JBCs::iterator;

DECLARE_SOA_TABLE(StoredJBCs, "AOD1", "JBCs",
DECLARE_SOA_TABLE(StoredJBCs, "AOD1", "JBC",
o2::soa::Index<>,
jbc::RunNumber,
jbc::GlobalBC,
Expand All @@ -49,17 +49,19 @@ DECLARE_SOA_TABLE(StoredJBCs, "AOD1", "JBCs",

using StoredJBC = StoredJBCs::iterator;

DECLARE_SOA_TABLE(JBCPIs, "AOD", "JBCPIs",
DECLARE_SOA_TABLE(JBCPIs, "AOD", "JBCPI",
jbc::BCId);

DECLARE_SOA_TABLE(StoredJBCPIs, "AOD1", "JBCPIs",
DECLARE_SOA_TABLE(StoredJBCPIs, "AOD1", "JBCPI",
jbc::BCId,
o2::soa::Marker<1>);

namespace jcollision
{
DECLARE_SOA_INDEX_COLUMN(Collision, collision);
DECLARE_SOA_INDEX_COLUMN(JBC, bc);
DECLARE_SOA_COLUMN(PosX, posX, float);
DECLARE_SOA_COLUMN(PosY, posY, float);
DECLARE_SOA_COLUMN(PosZ, posZ, float);
DECLARE_SOA_COLUMN(Centrality, centrality, float);
DECLARE_SOA_COLUMN(EventSel, eventSel, uint8_t);
Expand All @@ -68,17 +70,21 @@ DECLARE_SOA_COLUMN(ChargedTriggerSel, chargedTriggerSel, uint16_t);
DECLARE_SOA_COLUMN(FullTriggerSel, fullTriggerSel, uint16_t);
} // namespace jcollision

DECLARE_SOA_TABLE(JCollisions, "AOD", "JCollisions",
DECLARE_SOA_TABLE(JCollisions, "AOD", "JCOLLISION",
o2::soa::Index<>,
jcollision::PosX,
jcollision::PosY,
jcollision::PosZ,
jcollision::Centrality,
jcollision::EventSel,
jcollision::Alias);

using JCollision = JCollisions::iterator;

DECLARE_SOA_TABLE(StoredJCollisions, "AOD1", "JCollisions",
DECLARE_SOA_TABLE(StoredJCollisions, "AOD1", "JCOLLISION",
o2::soa::Index<>,
jcollision::PosX,
jcollision::PosY,
jcollision::PosZ,
jcollision::Centrality,
jcollision::EventSel,
Expand All @@ -87,59 +93,65 @@ DECLARE_SOA_TABLE(StoredJCollisions, "AOD1", "JCollisions",

using StoredJCollision = StoredJCollisions::iterator;

DECLARE_SOA_TABLE(JCollisionPIs, "AOD", "JCollisionPIs",
DECLARE_SOA_TABLE(JCollisionPIs, "AOD", "JCOLLISIONPI",
jcollision::CollisionId);

DECLARE_SOA_TABLE(StoredJCollisionPIs, "AOD1", "JCollisionPIs",
DECLARE_SOA_TABLE(StoredJCollisionPIs, "AOD1", "JCOLLISIONPI",
jcollision::CollisionId,
o2::soa::Marker<1>);

DECLARE_SOA_TABLE(JChTrigSels, "AOD", "JChTrigSels",
DECLARE_SOA_TABLE(JChTrigSels, "AOD", "JCHTRIGSEL",
jcollision::ChargedTriggerSel);

DECLARE_SOA_TABLE(StoredJChTrigSels, "AOD1", "JChTrigSels",
DECLARE_SOA_TABLE(StoredJChTrigSels, "AOD1", "JCHTRIGSEL",
jcollision::ChargedTriggerSel,
o2::soa::Marker<1>);

DECLARE_SOA_TABLE(JFullTrigSels, "AOD", "JFullTrigSels",
DECLARE_SOA_TABLE(JFullTrigSels, "AOD", "JFULLTRIGSEL",
jcollision::FullTriggerSel);

DECLARE_SOA_TABLE(StoredJFullTrigSels, "AOD1", "JFullTrigSels",
DECLARE_SOA_TABLE(StoredJFullTrigSels, "AOD1", "JFULLTRIGSEL",
jcollision::FullTriggerSel,
o2::soa::Marker<1>);

DECLARE_SOA_TABLE(JCollisionBCs, "AOD", "JCollisionBcs",
DECLARE_SOA_TABLE(JCollisionBCs, "AOD", "JCOLLISIONBC",
jcollision::JBCId);

DECLARE_SOA_TABLE(StoredJCollisionBCs, "AOD1", "JCollisionBcs",
DECLARE_SOA_TABLE(StoredJCollisionBCs, "AOD1", "JCOLLISIONBC",
jcollision::JBCId,
o2::soa::Marker<1>);

namespace jmccollision
{
DECLARE_SOA_INDEX_COLUMN(McCollision, mcCollision);
DECLARE_SOA_COLUMN(PosX, posX, float);
DECLARE_SOA_COLUMN(PosY, posY, float);
DECLARE_SOA_COLUMN(PosZ, posZ, float);
DECLARE_SOA_COLUMN(Weight, weight, float);
} // namespace jmccollision
DECLARE_SOA_TABLE(JMcCollisions, "AOD", "JMcCollisions",
DECLARE_SOA_TABLE(JMcCollisions, "AOD", "JMCCOLLISION",
o2::soa::Index<>,
jmccollision::PosX,
jmccollision::PosY,
jmccollision::PosZ,
jmccollision::Weight);

using JMcCollision = JMcCollisions::iterator;

DECLARE_SOA_TABLE(StoredJMcCollisions, "AOD1", "JMcCollisions",
DECLARE_SOA_TABLE(StoredJMcCollisions, "AOD1", "JMCCOLLISION",
o2::soa::Index<>,
jmccollision::PosX,
jmccollision::PosY,
jmccollision::PosZ,
jmccollision::Weight,
o2::soa::Marker<1>);

using StoredJMcCollision = StoredJMcCollisions::iterator;

DECLARE_SOA_TABLE(JMcCollisionPIs, "AOD", "JMcCollisionPIs",
DECLARE_SOA_TABLE(JMcCollisionPIs, "AOD", "JMCCOLLISIONPI",
jmccollision::McCollisionId);

DECLARE_SOA_TABLE(StoredJMcCollisionPIs, "AOD1", "JMcCollisionPIs",
DECLARE_SOA_TABLE(StoredJMcCollisionPIs, "AOD1", "JMCCOLLISIONPI",
jmccollision::McCollisionId,
o2::soa::Marker<1>);

Expand All @@ -148,10 +160,10 @@ namespace jmccollisionlb
DECLARE_SOA_INDEX_COLUMN(JMcCollision, mcCollision);
}

DECLARE_SOA_TABLE(JMcCollisionLbs, "AOD", "JMcCollisionLbs",
DECLARE_SOA_TABLE(JMcCollisionLbs, "AOD", "JMCCOLLISIONLB",
jmccollisionlb::JMcCollisionId);

DECLARE_SOA_TABLE(StoredJMcCollisionLbs, "AOD1", "JMcCollisionLbs",
DECLARE_SOA_TABLE(StoredJMcCollisionLbs, "AOD1", "JMCCOLLISIONLB",
jmccollisionlb::JMcCollisionId,
o2::soa::Marker<1>);

Expand All @@ -175,7 +187,7 @@ DECLARE_SOA_DYNAMIC_COLUMN(P, p,
[](float pt, float eta) -> float { return pt * std::cosh(eta); });
} // namespace jtrack

DECLARE_SOA_TABLE(JTracks, "AOD", "JTracks",
DECLARE_SOA_TABLE(JTracks, "AOD", "JTRACK",
o2::soa::Index<>,
jtrack::JCollisionId,
jtrack::Pt,
Expand All @@ -191,7 +203,7 @@ DECLARE_SOA_TABLE(JTracks, "AOD", "JTracks",

using JTrack = JTracks::iterator;

DECLARE_SOA_TABLE(StoredJTracks, "AOD1", "JTracks",
DECLARE_SOA_TABLE(StoredJTracks, "AOD1", "JTRACK",
o2::soa::Index<>,
jtrack::JCollisionId,
jtrack::Pt,
Expand All @@ -208,10 +220,10 @@ DECLARE_SOA_TABLE(StoredJTracks, "AOD1", "JTracks",

using StoredJTrack = StoredJTracks::iterator;

DECLARE_SOA_TABLE(JTrackPIs, "AOD", "JTrackPIs",
DECLARE_SOA_TABLE(JTrackPIs, "AOD", "JTRACKPI",
jtrack::TrackId);

DECLARE_SOA_TABLE(StoredJTrackPIs, "AOD1", "JTrackPIs",
DECLARE_SOA_TABLE(StoredJTrackPIs, "AOD1", "JTRACKPI",
jtrack::TrackId,
o2::soa::Marker<1>);

Expand Down Expand Up @@ -240,7 +252,7 @@ DECLARE_SOA_DYNAMIC_COLUMN(P, p,
[](float pt, float eta) -> float { return pt * std::cosh(eta); });
} // namespace jmcparticle

DECLARE_SOA_TABLE(JMcParticles, "AOD", "JMcParticles",
DECLARE_SOA_TABLE(JMcParticles, "AOD", "JMCPARTICLE",
o2::soa::Index<>,
jmcparticle::JMcCollisionId,
jmcparticle::Pt,
Expand All @@ -261,7 +273,7 @@ DECLARE_SOA_TABLE(JMcParticles, "AOD", "JMcParticles",

using JMcParticle = JMcParticles::iterator;

DECLARE_SOA_TABLE(StoredJMcParticles, "AOD1", "JMcParticles",
DECLARE_SOA_TABLE(StoredJMcParticles, "AOD1", "JMCPARTICLE",
o2::soa::Index<>,
jmcparticle::JMcCollisionId,
jmcparticle::Pt,
Expand All @@ -283,10 +295,10 @@ DECLARE_SOA_TABLE(StoredJMcParticles, "AOD1", "JMcParticles",

using StoredJMcParticle = StoredJMcParticles::iterator;

DECLARE_SOA_TABLE(JMcParticlePIs, "AOD", "JMcParticlePIs",
DECLARE_SOA_TABLE(JMcParticlePIs, "AOD", "JMCPARTICLEPI",
jmcparticle::McParticleId);

DECLARE_SOA_TABLE(StoredJMcParticlePIs, "AOD1", "JMcParticlePIs",
DECLARE_SOA_TABLE(StoredJMcParticlePIs, "AOD1", "JMCPARTICLEPI",
jmcparticle::McParticleId,
o2::soa::Marker<1>);

Expand All @@ -295,10 +307,10 @@ namespace jmctracklb
DECLARE_SOA_INDEX_COLUMN(JMcParticle, mcParticle);
}

DECLARE_SOA_TABLE(JMcTrackLbs, "AOD", "JMcTrackLbs", //! Table joined to the track table containing the MC index
DECLARE_SOA_TABLE(JMcTrackLbs, "AOD", "JMCTRACKLB", //! Table joined to the track table containing the MC index
jmctracklb::JMcParticleId);

DECLARE_SOA_TABLE(StoredJMcTrackLbs, "AOD1", "JMcTrackLbs", //! Table joined to the track table containing the MC index
DECLARE_SOA_TABLE(StoredJMcTrackLbs, "AOD1", "JMCTRACKLB", //! Table joined to the track table containing the MC index
jmctracklb::JMcParticleId,
o2::soa::Marker<1>);

Expand Down Expand Up @@ -328,7 +340,7 @@ DECLARE_SOA_COLUMN(SubleadingCellNumber, subleadingCellNumber, int); //! energ

} // namespace jcluster

DECLARE_SOA_TABLE(JClusters, "AOD", "JClusters", //!
DECLARE_SOA_TABLE(JClusters, "AOD", "JCLUSTER", //!
o2::soa::Index<>, jcluster::JCollisionId, jcluster::ID, jcluster::Energy,
jcluster::CoreEnergy, jcluster::RawEnergy, jcluster::Eta, jcluster::Phi,
jcluster::M02, jcluster::M20, jcluster::NCells, jcluster::Time,
Expand All @@ -337,7 +349,7 @@ DECLARE_SOA_TABLE(JClusters, "AOD", "JClusters", //!

using JCluster = JClusters::iterator;

DECLARE_SOA_TABLE(StoredJClusters, "AOD1", "JClusters",
DECLARE_SOA_TABLE(StoredJClusters, "AOD1", "JCLUSTER",
o2::soa::Index<>, jcluster::JCollisionId, jcluster::ID, jcluster::Energy,
jcluster::CoreEnergy, jcluster::RawEnergy, jcluster::Eta, jcluster::Phi,
jcluster::M02, jcluster::M20, jcluster::NCells, jcluster::Time,
Expand All @@ -347,17 +359,17 @@ DECLARE_SOA_TABLE(StoredJClusters, "AOD1", "JClusters",

using StoredJCluster = StoredJClusters::iterator;

DECLARE_SOA_TABLE(JClusterPIs, "AOD", "JClusterPIs",
DECLARE_SOA_TABLE(JClusterPIs, "AOD", "JCLUSTERPI",
jcluster::EMCALClusterId);

DECLARE_SOA_TABLE(StoredJClusterPIs, "AOD1", "JClusterPIs",
DECLARE_SOA_TABLE(StoredJClusterPIs, "AOD1", "JCLUSTERPI",
jcluster::EMCALClusterId,
o2::soa::Marker<1>);

DECLARE_SOA_TABLE(JClusterTracks, "AOD", "JClusterTracks", //!
DECLARE_SOA_TABLE(JClusterTracks, "AOD", "JCLUSTERTRACK", //!
jcluster::JTrackIds);

DECLARE_SOA_TABLE(StoredJClusterTracks, "AOD1", "JClusterTracks", //!
DECLARE_SOA_TABLE(StoredJClusterTracks, "AOD1", "JCLUSTERTRACK", //!
jcluster::JTrackIds,
o2::soa::Marker<1>);

Expand All @@ -367,11 +379,11 @@ namespace jdummy
DECLARE_SOA_COLUMN(Dummy, dummy, bool);

} // namespace jdummy
DECLARE_SOA_TABLE(JDummys, "AOD", "JDummys",
DECLARE_SOA_TABLE(JDummys, "AOD", "JDUMMY",
o2::soa::Index<>,
jdummy::Dummy);

DECLARE_SOA_TABLE(StoredJDummys, "AOD1", "JDummys",
DECLARE_SOA_TABLE(StoredJDummys, "AOD1", "JDUMMY",
o2::soa::Index<>,
jdummy::Dummy,
o2::soa::Marker<1>);
Expand Down
8 changes: 4 additions & 4 deletions PWGJE/DataModel/JetReducedDataHF.h
Original file line number Diff line number Diff line change
Expand Up @@ -34,22 +34,22 @@ DECLARE_SOA_INDEX_COLUMN(JMcCollision, mcCollision);
DECLARE_SOA_INDEX_COLUMN(JMcParticle, mcParticle);
} // namespace jd0indices

DECLARE_SOA_TABLE(JD0Ids, "AOD1", "JD0Ids",
DECLARE_SOA_TABLE(JD0Ids, "AOD1", "JD0ID",
jd0indices::JCollisionId,
jd0indices::Prong0Id,
jd0indices::Prong1Id);

DECLARE_SOA_TABLE(StoredJD0Ids, "AOD", "JD0Ids",
DECLARE_SOA_TABLE(StoredJD0Ids, "AOD", "JD0ID",
jd0indices::JCollisionId,
jd0indices::Prong0Id,
jd0indices::Prong1Id,
o2::soa::Marker<1>);

DECLARE_SOA_TABLE(JD0PIds, "AOD1", "JD0PIds",
DECLARE_SOA_TABLE(JD0PIds, "AOD1", "JD0PID",
jd0indices::JMcCollisionId,
jd0indices::JMcParticleId);

DECLARE_SOA_TABLE(StoredJD0PIds, "AOD", "JD0PIds",
DECLARE_SOA_TABLE(StoredJD0PIds, "AOD", "JD0PID",
jd0indices::JMcCollisionId,
jd0indices::JMcParticleId,
o2::soa::Marker<1>);
Expand Down
6 changes: 3 additions & 3 deletions PWGJE/TableProducer/jetderiveddataproducer.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -78,15 +78,15 @@ struct JetDerivedDataProducerTask {

void processCollisions(soa::Join<aod::Collisions, aod::EvSels>::iterator const& collision)
{
jCollisionsTable(collision.posZ(), -1.0, jetderiveddatautilities::setEventSelectionBit(collision), collision.alias_raw());
jCollisionsTable(collision.posX(), collision.posY(), collision.posZ(), -1.0, jetderiveddatautilities::setEventSelectionBit(collision), collision.alias_raw());
jCollisionsParentIndexTable(collision.globalIndex());
jCollisionsBunchCrossingIndexTable(collision.bcId());
}
PROCESS_SWITCH(JetDerivedDataProducerTask, processCollisions, "produces derived collision tables", true);

void processCollisionsWithCentrality(soa::Join<aod::Collisions, aod::EvSels, aod::CentFT0Cs>::iterator const& collision)
{
jCollisionsTable(collision.posZ(), collision.centFT0C(), jetderiveddatautilities::setEventSelectionBit(collision), collision.alias_raw());
jCollisionsTable(collision.posX(), collision.posY(), collision.posZ(), collision.centFT0C(), jetderiveddatautilities::setEventSelectionBit(collision), collision.alias_raw());
jCollisionsParentIndexTable(collision.globalIndex());
jCollisionsBunchCrossingIndexTable(collision.bcId());
}
Expand All @@ -105,7 +105,7 @@ struct JetDerivedDataProducerTask {

void processMcCollisions(aod::McCollision const& McCollision)
{
jMcCollisionsTable(McCollision.posZ(), McCollision.weight());
jMcCollisionsTable(McCollision.posX(), McCollision.posY(), McCollision.posZ(), McCollision.weight());
jMcCollisionsParentIndexTable(McCollision.globalIndex());
}
PROCESS_SWITCH(JetDerivedDataProducerTask, processMcCollisions, "produces derived MC collision table", false);
Expand Down
Loading