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
10 changes: 7 additions & 3 deletions PWGJE/DataModel/JetReducedData.h
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ DECLARE_SOA_INDEX_COLUMN(BC, bc);
DECLARE_SOA_COLUMN(RunNumber, runNumber, int);
DECLARE_SOA_COLUMN(GlobalBC, globalBC, uint64_t);
DECLARE_SOA_COLUMN(Timestamp, timestamp, uint64_t);
DECLARE_SOA_COLUMN(TriggerMask, triggerMask, uint64_t);
DECLARE_SOA_BITMAP_COLUMN(Alias, alias, 32);
DECLARE_SOA_BITMAP_COLUMN(Selection, selection, 64);
DECLARE_SOA_BITMAP_COLUMN(Rct, rct, 32);
Expand All @@ -49,6 +50,7 @@ DECLARE_SOA_TABLE_STAGED(JBCs, "JBC",
o2::soa::Index<>,
jbc::RunNumber,
jbc::GlobalBC,
jbc::TriggerMask,
jbc::Timestamp,
jbc::Alias,
jbc::Selection,
Expand All @@ -73,6 +75,7 @@ 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(CollisionTime, collisionTime, float);
DECLARE_SOA_COLUMN(MultFV0A, multFV0A, float);
DECLARE_SOA_COLUMN(MultFV0C, multFV0C, float);
DECLARE_SOA_DYNAMIC_COLUMN(MultFV0M, multFV0M,
Expand Down Expand Up @@ -124,9 +127,11 @@ DECLARE_SOA_COLUMN(IsOutlier, isOutlier, bool);

DECLARE_SOA_TABLE_STAGED(JCollisions, "JCOLLISION",
o2::soa::Index<>,
jcollision::JBCId,
jcollision::PosX,
jcollision::PosY,
jcollision::PosZ,
jcollision::CollisionTime,
jcollision::MultFV0A,
jcollision::MultFV0C,
jcollision::MultFV0M<jcollision::MultFV0A, jcollision::MultFV0C>,
Expand Down Expand Up @@ -172,9 +177,6 @@ using StoredJEMCCollisionLb = StoredJEMCCollisionLbs::iterator;
DECLARE_SOA_TABLE_STAGED(JCollisionPIs, "JCOLLISIONPI",
jcollision::CollisionId);

DECLARE_SOA_TABLE_STAGED(JCollisionBCs, "JCOLLISIONBC",
jcollision::JBCId);

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

Expand Down Expand Up @@ -202,6 +204,7 @@ DECLARE_SOA_TABLE_STAGED(CollisionCounts, "COLLCOUNT",
namespace jmccollision
{
DECLARE_SOA_INDEX_COLUMN(McCollision, mcCollision);
DECLARE_SOA_INDEX_COLUMN(JBC, bc);
DECLARE_SOA_COLUMN(PosX, posX, float);
DECLARE_SOA_COLUMN(PosY, posY, float);
DECLARE_SOA_COLUMN(PosZ, posZ, float);
Expand All @@ -226,6 +229,7 @@ DECLARE_SOA_COLUMN(EventPlaneAngle, eventPlaneAngle, float);
} // namespace jmccollision
DECLARE_SOA_TABLE_STAGED(JMcCollisions, "JMCCOLLISION",
o2::soa::Index<>,
jmccollision::JBCId,
jmccollision::PosX,
jmccollision::PosY,
jmccollision::PosZ,
Expand Down
53 changes: 34 additions & 19 deletions PWGJE/TableProducer/derivedDataProducer.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,6 @@ struct JetDerivedDataProducerTask {
Produces<aod::JCollisionUPCs> jCollisionUPCsTable;
Produces<aod::JCollisionMcInfos> jCollisionMcInfosTable;
Produces<aod::JCollisionPIs> jCollisionsParentIndexTable;
Produces<aod::JCollisionBCs> jCollisionsBunchCrossingIndexTable;
Produces<aod::JEMCCollisionLbs> jCollisionsEMCalLabelTable;
Produces<aod::JMcCollisionLbs> jMcCollisionsLabelTable;
Produces<aod::JMcCollisions> jMcCollisionsTable;
Expand Down Expand Up @@ -271,7 +270,7 @@ struct JetDerivedDataProducerTask {
bcRctMapping.clear();
bcRctMapping.resize(bcs.size(), ~uint32_t{0});
for (const auto& bc : bcs) {
products.jBCsTable(bc.runNumber(), bc.globalBC(), bc.timestamp(), bc.alias_raw(), bc.selection_raw(), bc.rct_raw());
products.jBCsTable(bc.runNumber(), bc.globalBC(), bc.triggerMask(), bc.timestamp(), bc.alias_raw(), bc.selection_raw(), bc.rct_raw());
products.jBCParentIndexTable(bc.globalIndex());
bcRctMapping[bc.globalIndex()] = bc.rct_raw();
}
Expand All @@ -283,7 +282,7 @@ struct JetDerivedDataProducerTask {
bcRctMapping.clear();
bcRctMapping.resize(bcs.size(), ~uint32_t{0});
for (const auto& bc : bcs) {
products.jBCsTable(bc.runNumber(), bc.globalBC(), bc.timestamp(), ~uint32_t{0}, ~uint64_t{0}, ~uint32_t{0});
products.jBCsTable(bc.runNumber(), bc.globalBC(), bc.triggerMask(), bc.timestamp(), ~uint32_t{0}, ~uint64_t{0}, ~uint32_t{0});
products.jBCParentIndexTable(bc.globalIndex());
}
}
Expand Down Expand Up @@ -327,9 +326,8 @@ struct JetDerivedDataProducerTask {
products.jCollisionUPCsTable(amplitudesFV0, amplitudesFT0A, amplitudesFT0C, amplitudesFDDA, amplitudesFDDC);
}

products.jCollisionsTable(collision.posX(), collision.posY(), collision.posZ(), collision.multFV0A(), collision.multFV0C(), collision.multFT0A(), collision.multFT0C(), collision.centFV0A(), -1.0, collision.centFT0A(), collision.centFT0C(), collision.centFT0M(), collision.centFT0CVariant1(), hadronicRate, collision.trackOccupancyInTimeRange(), collision.alias_raw(), jetderiveddatautilities::setEventSelectionBit(collision, upcGapResult), collision.rct_raw(), triggerBit); // note change multFT0C to multFT0M when problems with multFT0A are fixed
products.jCollisionsTable(collision.bcId(), collision.posX(), collision.posY(), collision.posZ(), collision.collisionTime(), collision.multFV0A(), collision.multFV0C(), collision.multFT0A(), collision.multFT0C(), collision.centFV0A(), -1.0, collision.centFT0A(), collision.centFT0C(), collision.centFT0M(), collision.centFT0CVariant1(), hadronicRate, collision.trackOccupancyInTimeRange(), collision.alias_raw(), jetderiveddatautilities::setEventSelectionBit(collision, upcGapResult), collision.rct_raw(), triggerBit); // note change multFT0C to multFT0M when problems with multFT0A are fixed
products.jCollisionsParentIndexTable(collision.globalIndex());
products.jCollisionsBunchCrossingIndexTable(collision.bcId());
}
PROCESS_SWITCH(JetDerivedDataProducerTask, processCollisions, "produces derived collision tables", true);

Expand All @@ -341,25 +339,22 @@ struct JetDerivedDataProducerTask {
triggerDecider.initCCDB(ccdb.service, bc.runNumber(), bc.timestamp(), jetderiveddatautilities::JTriggerMasks);
triggerBit = jetderiveddatautilities::setTriggerSelectionBit(triggerDecider.getTriggerOfInterestResults(bc.globalBC()));
}
products.jCollisionsTable(collision.posX(), collision.posY(), collision.posZ(), -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1, collision.alias_raw(), jetderiveddatautilities::setEventSelectionBit(collision), collision.rct_raw(), triggerBit);
products.jCollisionsTable(collision.bcId(), collision.posX(), collision.posY(), collision.posZ(), collision.collisionTime(), -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1, collision.alias_raw(), jetderiveddatautilities::setEventSelectionBit(collision), collision.rct_raw(), triggerBit);
products.jCollisionsParentIndexTable(collision.globalIndex());
products.jCollisionsBunchCrossingIndexTable(collision.bcId());
}
PROCESS_SWITCH(JetDerivedDataProducerTask, processCollisionsWithoutCentralityAndMultiplicity, "produces derived collision tables without centrality or multiplicity", false);

void processCollisionsRun2(soa::Join<aod::Collisions, aod::EvSels, aod::FT0Mults, aod::CentRun2V0As, aod::CentRun2V0Ms>::iterator const& collision)
{
products.jCollisionsTable(collision.posX(), collision.posY(), collision.posZ(), -1.0, -1.0, -1.0, -1.0, collision.centRun2V0A(), collision.centRun2V0M(), -1.0, -1.0, -1.0, -1.0, -1.0, -1, collision.alias_raw(), jetderiveddatautilities::setEventSelectionBit(collision), collision.rct_raw(), 0); // note change multFT0C to multFT0M when problems with multFT0A are fixed
products.jCollisionsTable(collision.bcId(), collision.posX(), collision.posY(), collision.posZ(), -1.0, -1.0, -1.0, -1.0, -1.0, collision.centRun2V0A(), collision.centRun2V0M(), -1.0, -1.0, -1.0, -1.0, -1.0, -1, collision.alias_raw(), jetderiveddatautilities::setEventSelectionBit(collision), collision.rct_raw(), 0); // note change multFT0C to multFT0M when problems with multFT0A are fixed
products.jCollisionsParentIndexTable(collision.globalIndex());
products.jCollisionsBunchCrossingIndexTable(collision.bcId());
}
PROCESS_SWITCH(JetDerivedDataProducerTask, processCollisionsRun2, "produces derived collision tables for Run 2 data", false);

void processCollisionsALICE3(aod::Collision const& collision)
{
products.jCollisionsTable(collision.posX(), collision.posY(), collision.posZ(), -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1, -1.0, 0, 0, 0);
products.jCollisionsTable(collision.bcId(), collision.posX(), collision.posY(), collision.posZ(), -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1, -1.0, 0, 0, 0);
products.jCollisionsParentIndexTable(collision.globalIndex());
products.jCollisionsBunchCrossingIndexTable(-1);
}
PROCESS_SWITCH(JetDerivedDataProducerTask, processCollisionsALICE3, "produces derived collision tables for ALICE 3 simulations", false);

Expand All @@ -383,43 +378,63 @@ struct JetDerivedDataProducerTask {
void processMcCollisions(soa::Join<aod::McCollisions, aod::HepMCXSections, aod::MultsExtraMC, aod::McCentFT0Ms>::iterator const& mcCollision)
{
uint32_t rctDecision = ~uint32_t{0};
int32_t bcId = -1;
if (!config.isMCGenOnly) {
rctDecision = bcRctMapping[mcCollision.bcId()];
bcId = mcCollision.bcId();
rctDecision = bcRctMapping[bcId];
} else {
products.jBCsTable(-1, -1, -1, -1, ~uint32_t{0}, ~uint32_t{0}, ~uint32_t{0});
bcId = products.jBCsTable.lastIndex();
}
products.jMcCollisionsTable(mcCollision.posX(), mcCollision.posY(), mcCollision.posZ(), mcCollision.multMCFV0A(), mcCollision.multMCFT0A(), mcCollision.multMCFT0C(), mcCollision.centFT0M(), mcCollision.weight(), mcCollision.accepted(), mcCollision.attempted(), mcCollision.xsectGen(), mcCollision.xsectErr(), mcCollision.ptHard(), rctDecision, mcCollision.getGeneratorId(), mcCollision.getSubGeneratorId(), mcCollision.getSourceId(), mcCollision.impactParameter(), mcCollision.eventPlaneAngle());
products.jMcCollisionsTable(bcId, mcCollision.posX(), mcCollision.posY(), mcCollision.posZ(), mcCollision.multMCFV0A(), mcCollision.multMCFT0A(), mcCollision.multMCFT0C(), mcCollision.centFT0M(), mcCollision.weight(), mcCollision.accepted(), mcCollision.attempted(), mcCollision.xsectGen(), mcCollision.xsectErr(), mcCollision.ptHard(), rctDecision, mcCollision.getGeneratorId(), mcCollision.getSubGeneratorId(), mcCollision.getSourceId(), mcCollision.impactParameter(), mcCollision.eventPlaneAngle());
products.jMcCollisionsParentIndexTable(mcCollision.globalIndex());
}
PROCESS_SWITCH(JetDerivedDataProducerTask, processMcCollisions, "produces derived MC collision table", false);

void processMcCollisionsWithoutCentralityAndMultiplicity(soa::Join<aod::McCollisions, aod::HepMCXSections>::iterator const& mcCollision)
{
uint32_t rctDecision = ~uint32_t{0};
int32_t bcId = -1;
if (!config.isMCGenOnly) {
rctDecision = bcRctMapping[mcCollision.bcId()];
bcId = mcCollision.bcId();
rctDecision = bcRctMapping[bcId];
} else {
products.jBCsTable(-1, -1, -1, -1, ~uint32_t{0}, ~uint32_t{0}, ~uint32_t{0});
bcId = products.jBCsTable.lastIndex();
}
products.jMcCollisionsTable(mcCollision.posX(), mcCollision.posY(), mcCollision.posZ(), -1.0, -1.0, -1.0, -1.0, mcCollision.weight(), mcCollision.accepted(), mcCollision.attempted(), mcCollision.xsectGen(), mcCollision.xsectErr(), mcCollision.ptHard(), rctDecision, mcCollision.getGeneratorId(), mcCollision.getSubGeneratorId(), mcCollision.getSourceId(), mcCollision.impactParameter(), mcCollision.eventPlaneAngle());
products.jMcCollisionsTable(bcId, mcCollision.posX(), mcCollision.posY(), mcCollision.posZ(), -1.0, -1.0, -1.0, -1.0, mcCollision.weight(), mcCollision.accepted(), mcCollision.attempted(), mcCollision.xsectGen(), mcCollision.xsectErr(), mcCollision.ptHard(), rctDecision, mcCollision.getGeneratorId(), mcCollision.getSubGeneratorId(), mcCollision.getSourceId(), mcCollision.impactParameter(), mcCollision.eventPlaneAngle());
products.jMcCollisionsParentIndexTable(mcCollision.globalIndex());
}
PROCESS_SWITCH(JetDerivedDataProducerTask, processMcCollisionsWithoutCentralityAndMultiplicity, "produces derived MC collision table without centraility and multiplicity", false);

void processMcCollisionsWithoutXsection(soa::Join<aod::McCollisions, aod::MultsExtraMC, aod::McCentFT0Ms>::iterator const& mcCollision)
{
uint32_t rctDecision = ~uint32_t{0};
int32_t bcId = -1;
if (!config.isMCGenOnly) {
rctDecision = bcRctMapping[mcCollision.bcId()];
bcId = mcCollision.bcId();
rctDecision = bcRctMapping[bcId];
} else {
products.jBCsTable(-1, -1, -1, -1, ~uint32_t{0}, ~uint32_t{0}, ~uint32_t{0});
bcId = products.jBCsTable.lastIndex();
}
products.jMcCollisionsTable(mcCollision.posX(), mcCollision.posY(), mcCollision.posZ(), mcCollision.multMCFV0A(), mcCollision.multMCFT0A(), mcCollision.multMCFT0C(), mcCollision.centFT0M(), mcCollision.weight(), 1, 1, 1.0, 1.0, 999.0, rctDecision, mcCollision.getGeneratorId(), mcCollision.getSubGeneratorId(), mcCollision.getSourceId(), mcCollision.impactParameter(), mcCollision.eventPlaneAngle());
products.jMcCollisionsTable(bcId, mcCollision.posX(), mcCollision.posY(), mcCollision.posZ(), mcCollision.multMCFV0A(), mcCollision.multMCFT0A(), mcCollision.multMCFT0C(), mcCollision.centFT0M(), mcCollision.weight(), 1, 1, 1.0, 1.0, 999.0, rctDecision, mcCollision.getGeneratorId(), mcCollision.getSubGeneratorId(), mcCollision.getSourceId(), mcCollision.impactParameter(), mcCollision.eventPlaneAngle());
products.jMcCollisionsParentIndexTable(mcCollision.globalIndex());
}
PROCESS_SWITCH(JetDerivedDataProducerTask, processMcCollisionsWithoutXsection, "produces derived MC collision table without cross section information", false);

void processMcCollisionsWithoutCentralityAndMultiplicityAndXsection(aod::McCollision const& mcCollision)
{
uint32_t rctDecision = ~uint32_t{0};
int32_t bcId = -1;
if (!config.isMCGenOnly) {
rctDecision = bcRctMapping[mcCollision.bcId()];
bcId = mcCollision.bcId();
rctDecision = bcRctMapping[bcId];
} else {
products.jBCsTable(-1, -1, -1, -1, ~uint32_t{0}, ~uint32_t{0}, ~uint32_t{0});
bcId = products.jBCsTable.lastIndex();
}
products.jMcCollisionsTable(mcCollision.posX(), mcCollision.posY(), mcCollision.posZ(), -1.0, -1.0, -1.0, -1.0, mcCollision.weight(), 1, 1, 1.0, 1.0, 999.0, rctDecision, mcCollision.getGeneratorId(), mcCollision.getSubGeneratorId(), mcCollision.getSourceId(), mcCollision.impactParameter(), mcCollision.eventPlaneAngle());
products.jMcCollisionsTable(bcId, mcCollision.posX(), mcCollision.posY(), mcCollision.posZ(), -1.0, -1.0, -1.0, -1.0, mcCollision.weight(), 1, 1, 1.0, 1.0, 999.0, rctDecision, mcCollision.getGeneratorId(), mcCollision.getSubGeneratorId(), mcCollision.getSourceId(), mcCollision.impactParameter(), mcCollision.eventPlaneAngle());
products.jMcCollisionsParentIndexTable(mcCollision.globalIndex());
}
PROCESS_SWITCH(JetDerivedDataProducerTask, processMcCollisionsWithoutCentralityAndMultiplicityAndXsection, "produces derived MC collision table without centrality, multiplicity and cross section information", false);
Expand Down
Loading
Loading