13 #include <alignment/GlobalLabel.h>
14 #include <alignment/GlobalParam.h>
15 #include <framework/dataobjects/EventMetaData.h>
30 typedef std::pair<int, int> ExpRun;
32 typedef std::vector<EventMetaData> EventHeader;
34 typedef std::vector<ExpRun> RunHeader;
38 typedef std::unordered_map<int, std::vector<int>> TableData;
40 typedef std::tuple<EventHeader, RunHeader, TableData> TimeTable;
45 typedef std::vector< std::pair<EventMetaData, std::shared_ptr<GlobalParamSetAccess>>> IntraIoVPayloads;
47 typedef std::vector<std::pair<IntervalOfValidity, IntraIoVPayloads>> PayloadIovBlockRow;
49 typedef std::unordered_map<int, PayloadIovBlockRow> PayloadsTable;
59 EventMetaData gotoNextChangeRunWise(TimeTable& timeTable,
int uid,
int& timeid);
69 EventMetaData gotoNextChangeInRun(TimeTable& timeTable,
int uid,
int& timeid);
74 PayloadsTable TimeIdsTable2PayloadsTable(TimeTable& timeTable,
const GlobalParamVector& vector);
84 TimeTable makeInitialTimeTable(std::vector<EventMetaData> events, GlobalLabel& label);
89 void finalizeTimeTable(TimeTable& table);
95 std::pair<EventMetaData, std::shared_ptr<GlobalParamSetAccess>> getPayloadByContinuousIndex(PayloadsTable& payloadsTable,
int uid,
96 long unsigned int index);;
101 int getContinuousIndexByTimeID(
const TimeTable& timeTable,
int uid,
int timeid);
120 std::vector<EventMetaData> setupTimedepGlobalLabels(PyObject* config);
141 std::vector<EventMetaData> setupTimedepGlobalLabels(
142 std::vector< std::tuple< std::vector< int >, std::vector< std::tuple< int, int, int > > > >& config);
148 class GlobalParamTimeLine {
186 std::vector<std::pair<IntervalOfValidity, TObject*>>
releaseObjects();