13#include "../Detectors/AOD/include/AODProducerWorkflow/AODMcProducerHelpers.h"
49 "Interaction rate to simulate"};
73 LOG(detail) <<
"=== Running extended MC AOD exporter ===";
77 using McTracks = std::vector<McTrack>;
85 if (nParts != nPartsVerify) {
86 LOG(warn) <<
"Mismatch between number of MC headers and "
87 <<
"number of track vectors: " << nParts
88 <<
" != " << nPartsVerify
89 <<
", shipping the empty timeframe";
97 LOG(detail) <<
"--- Loop over " << nParts <<
" parts ---";
98 for (
auto i = 0U;
i < nParts; ++
i) {
103 LOG(detail) <<
"Updating collision table";
106 record.timeInBCNS * 1.e-3,
111 LOG(detail) <<
"Updating HepMC tables";
116 LOG(detail) <<
"Updating particles table";
126 LOG(detail) <<
"Increment BC counter";
147 auto spec = adaptAnalysisTask<MctracksToAod>(cfgc);
148 spec.inputs.emplace_back(
"mctracks",
"MC",
"MCTRACKS", 0.,
149 Lifetime::Timeframe);
150 spec.inputs.emplace_back(
"mcheader",
"MC",
"MCHEADER", 0.,
151 Lifetime::Timeframe);
152 spec.outputs.emplace_back(
"TFF",
"TFFilename");
153 spec.outputs.emplace_back(
"TFN",
"TFNumber");
std::vector< std::string > header
Timeframe settings Average distance in cm of events merged into Randomize distance around average distance of merged events Simulate correct bunch interactions instead of placing only the average number of events A value[n] sets TFlen for[n] collisions in Number of bunches per trainsort Number of bunch trains Instantaneous interaction rate Do not simulate border Total number of collisions to be placed in the interior of all time Do not select random but walk over array of events in stride steps h Event generator settings h configStandalone Use CPU for GPU Force usage of the specified GPU device no CPU fallback Continue processing after an error First event to Number of events to Number of iterations to Number of iterations to Number of initial iterations excluded from const char Directory with events to Events directory is and not inside events Show standalone event Run event generator maximum time bin of continuous for triggered for automatic continuous for automatic continuous triggered uint64_t
std::vector< o2::its::TrackITS > tracks
void snapshot(const Output &spec, T const &object)
DataAllocator & outputs()
The data allocator is used to allocate memory for the output data.
InputRecord & inputs()
The inputs associated with this processing context.
void setFirstIR(const o2::InteractionRecord &ir)
const o2::InteractionTimeRecord & generateCollisionTime()
void setInteractionRate(float rateHz)
McCollisions_001 McCollisions
std::unordered_map< int, int > TrackToIndex
DataProcessorSpec adaptAnalysisTask(ConfigContext const &ctx, Args &&... args)
Lifetime
Possible Lifetime of objects being exchanged by the DPL.
std::vector< DataProcessorSpec > WorkflowSpec
MCTrackT< float > MCTrack
o2::framework::WorkflowSpec WorkflowSpec
WorkflowSpec defineDataProcessing(ConfigContext const &cfgc)
This function hooks up the the workflow specifications into the DPL driver.
o2::framework::Produces< Particles > mParticles
InteractionSampler mSampler
o2::framework::Produces< PdfInfos > mPdfInfos
o2::framework::Produces< Collisions > mCollisions
o2::aod::HepMCXSections XSections
o2::aod::HepMCPdfInfos PdfInfos
o2::framework::Produces< HeavyIons > mHeavyIons
o2::aod::HepMCHeavyIons HeavyIons
o2::aod::McCollisions Collisions
Configurable< uint64_t > tfOffset
void init(o2::framework::InitContext &)
o2::aod::StoredMcParticles_001 Particles
Configurable< bool > filt
o2::framework::Produces< XSections > mXSections
void run(o2::framework::ProcessingContext &pc)
Struct to differentiate task names from possible task string arguments.
decltype(FFL(std::declval< cursor_t >())) cursor
LOG(info)<< "Compressed in "<< sw.CpuTime()<< " s"