eventDispenser
Loading...
Searching...
No Matches
eventDispenser.h
Go to the documentation of this file.
1#pragma once
2
3#include "gbase.h"
5
6#include <map>
7#include <vector>
8#include <string>
9
32class EventDispenser : public GBase<EventDispenser>
33{
34public:
48 EventDispenser(const std::shared_ptr<GOptions>& gopt,
49 const std::shared_ptr<const gdynamicdigitization::dRoutinesMap>& gdynamicDigitizationMap);
50
51private:
58 int neventsToProcess;
59
61 int userRunno;
62
64 int currentRunno = -1;
65
67 std::string variation;
68
77 std::map<int, double> runWeights;
78
80 std::map<int, int> runEvents;
81
83 std::vector<int> listOfRuns;
84
86 int currentRunIndex{};
87
104 void distributeEvents(int nevents_to_process);
105
112 void setNextRun() { currentRunIndex++; }
113
123 std::shared_ptr<const gdynamicdigitization::dRoutinesMap> gDigitizationMap;
124
125public:
135 std::map<int, int> getRunEvents() { return runEvents; }
136
149 [[nodiscard]] int getCurrentRun() const { return listOfRuns[currentRunIndex]; }
150
161 [[nodiscard]] int getTotalNumberOfEvents() const;
162
175 int processEvents();
176
186 void setNumberOfEvents(int nevts);
187};
Distributes events among run numbers and coordinates dynamic digitization initialization.
int processEvents()
Processes all runs by initializing digitization routines and dispatching events.
EventDispenser(const std::shared_ptr< GOptions > &gopt, const std::shared_ptr< const gdynamicdigitization::dRoutinesMap > &gdynamicDigitizationMap)
Constructs an EventDispenser and prepares the run event distribution.
int getCurrentRun() const
Returns the current run number from the internally stored run list.
void setNumberOfEvents(int nevts)
Sets the total number of events to process in single-run mode.
int getTotalNumberOfEvents() const
Computes the total number of events across all runs.
std::map< int, int > getRunEvents()
Returns the computed run-to-event allocation.