@@ -161,6 +161,7 @@ struct JetDerivedDataProducerTask {
161161 Configurable<bool > includeHadronicRate{" includeHadronicRate" , true , " fill the collision information with the hadronic rate" };
162162 Configurable<bool > includeUpcs{" includeUpcs" , true , " include option to identify UPC events" };
163163 Configurable<bool > v0ChargedDecaysOnly{" v0ChargedDecaysOnly" , true , " store V0s (at particle-level) only if they decay to charged particles" };
164+ Configurable<bool > isMCGenOnly{" isMCGenOnly" , false , " analysis is run over mcGen only" };
164165 } config;
165166
166167 struct : PresliceGroup {
@@ -349,28 +350,44 @@ struct JetDerivedDataProducerTask {
349350
350351 void processMcCollisions (soa::Join<aod::McCollisions, aod::HepMCXSections, aod::MultsExtraMC, aod::McCentFT0Ms>::iterator const & mcCollision)
351352 {
352- 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 (), bcRctMapping[mcCollision.bcId ()], mcCollision.getGeneratorId (), mcCollision.getSubGeneratorId (), mcCollision.getSourceId (), mcCollision.impactParameter (), mcCollision.eventPlaneAngle ());
353+ uint32_t rctDecision = ~uint32_t {0 };
354+ if (!config.isMCGenOnly ) {
355+ rctDecision = bcRctMapping[mcCollision.bcId ()];
356+ }
357+ 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 ());
353358 products.jMcCollisionsParentIndexTable (mcCollision.globalIndex ());
354359 }
355360 PROCESS_SWITCH (JetDerivedDataProducerTask, processMcCollisions, " produces derived MC collision table" , false );
356361
357362 void processMcCollisionsWithoutCentralityAndMultiplicity (soa::Join<aod::McCollisions, aod::HepMCXSections>::iterator const & mcCollision)
358363 {
359- 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 (), bcRctMapping[mcCollision.bcId ()], mcCollision.getGeneratorId (), mcCollision.getSubGeneratorId (), mcCollision.getSourceId (), mcCollision.impactParameter (), mcCollision.eventPlaneAngle ());
364+ uint32_t rctDecision = ~uint32_t {0 };
365+ if (!config.isMCGenOnly ) {
366+ rctDecision = bcRctMapping[mcCollision.bcId ()];
367+ }
368+ 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 ());
360369 products.jMcCollisionsParentIndexTable (mcCollision.globalIndex ());
361370 }
362371 PROCESS_SWITCH (JetDerivedDataProducerTask, processMcCollisionsWithoutCentralityAndMultiplicity, " produces derived MC collision table without centraility and multiplicity" , false );
363372
364373 void processMcCollisionsWithoutXsection (soa::Join<aod::McCollisions, aod::MultsExtraMC, aod::McCentFT0Ms>::iterator const & mcCollision)
365374 {
366- 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 , bcRctMapping[mcCollision.bcId ()], mcCollision.getGeneratorId (), mcCollision.getSubGeneratorId (), mcCollision.getSourceId (), mcCollision.impactParameter (), mcCollision.eventPlaneAngle ());
375+ uint32_t rctDecision = ~uint32_t {0 };
376+ if (!config.isMCGenOnly ) {
377+ rctDecision = bcRctMapping[mcCollision.bcId ()];
378+ }
379+ 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 ());
367380 products.jMcCollisionsParentIndexTable (mcCollision.globalIndex ());
368381 }
369382 PROCESS_SWITCH (JetDerivedDataProducerTask, processMcCollisionsWithoutXsection, " produces derived MC collision table without cross section information" , false );
370383
371384 void processMcCollisionsWithoutCentralityAndMultiplicityAndXsection (aod::McCollision const & mcCollision)
372385 {
373- 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 , bcRctMapping[mcCollision.bcId ()], mcCollision.getGeneratorId (), mcCollision.getSubGeneratorId (), mcCollision.getSourceId (), mcCollision.impactParameter (), mcCollision.eventPlaneAngle ());
386+ uint32_t rctDecision = ~uint32_t {0 };
387+ if (!config.isMCGenOnly ) {
388+ rctDecision = bcRctMapping[mcCollision.bcId ()];
389+ }
390+ 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 ());
374391 products.jMcCollisionsParentIndexTable (mcCollision.globalIndex ());
375392 }
376393 PROCESS_SWITCH (JetDerivedDataProducerTask, processMcCollisionsWithoutCentralityAndMultiplicityAndXsection, " produces derived MC collision table without centrality, multiplicity and cross section information" , false );
0 commit comments