Skip to content

Enable setting event number from inside JFactory::Process #471

@RaiqaRasool

Description

@RaiqaRasool

Currently, JFactory::Process receives a const JEvent&, which prevents modifying the event directly. This becomes a limitation when delegating data parsing to factories.

  • If parsing is done in the event source, events are processed sequentially.
  • If parsing is done in the factories, it can be parallelized, which is more efficient.

However, when parsing happens in factories, the event number can only be extracted after parsing, and there is no way to update the JEvent with this information.

Example scenario:

void JFactory_FADC250::Process(const JEvent& event) {
    LOG_DEBUG(GetLogger()) << "Inside Process() with run_number=" << event.GetRunNumber()
                           << ", event_number=" << event.GetEventNumber();

    // Get the EVIO event
    std::shared_ptr<evio::EvioEvent> evio_event = m_hits_in().at(0)->evio_event;
    
    // Parse EVIO data
    auto evio_event_parser = std::make_unique<EvioEventParser>(evio_event);
    evio_event_parser->parse();
    
    // Desired: set event number after parsing
    // event.SetEventNumber(evio_event_parser->getEventNumber());
}

Motivation

To allow users to implement data parsing inside factories (for parallelism and performance) while still being able to set the event number extracted from raw data.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions