JAPAn
Just Another Parity Analyzer
Loading...
Searching...
No Matches
MQwCodaControlEvent.h
Go to the documentation of this file.
1/*!
2 * \file MQwCodaControlEvent.h
3 * \brief CODA control event data structure and management
4 */
5
6#pragma once
7
8#include <vector>
9#include <iostream>
10#include <Rtypes.h>
11#include <ctime>
12#include "TDatime.h"
13#include "TString.h"
14
15/**
16 * \class MQwCodaControlEvent
17 * \ingroup QwAnalysis
18 * \brief Mix-in class for handling CODA control event data and timing
19 *
20 * Provides functionality for processing and storing information from CODA
21 * control events including prestart, go, pause, and end events. Manages
22 * run timing, event counts, and run summary reporting.
23 */
25{
26 public:
29
31 void ProcessControlEvent(UInt_t evtype, UInt_t* buffer);
32 void ReportRunSummary();
33
34 UInt_t GetStartTime() {return fStartTime;};
35 UInt_t GetPrestartTime() {return fPrestartTime;};
37 UInt_t GetRunType() {return fRunType;};
38
39 UInt_t GetGoTime(int index = 0);
40 UInt_t GetGoEventCount(int index = 0);
41
42 UInt_t GetPauseTime(int index = 0);
43 UInt_t GetPauseEventCount(int index = 0);
44
45 UInt_t GetEndTime() {return fEndTime;};
46 UInt_t GetEndEventCount() {return fEndEventCount;};
47
48 TString GetStartSQLTime();
49 TString GetEndSQLTime();
50
51 time_t GetStartUnixTime();
52 time_t GetEndUnixTime();
53
54
55 protected:
56 void ProcessSync(UInt_t local_time, UInt_t statuscode);
57 void ProcessPrestart(UInt_t local_time, UInt_t local_runnumber,
58 UInt_t local_runtype);
59 void ProcessGo(UInt_t local_time, UInt_t evt_count);
60 void ProcessPause(UInt_t local_time, UInt_t evt_count);
61 void ProcessEnd(UInt_t local_time, UInt_t evt_count);
62
63 protected:
71
72 protected:
74
77 UInt_t fRunType;
78
79 UInt_t fEndTime;
81
83 std::vector<UInt_t> fPauseEventCount;
84 std::vector<UInt_t> fPauseTime;
85
86 UInt_t fNumberGo;
87 std::vector<UInt_t> fGoEventCount;
88 std::vector<UInt_t> fGoTime;
89 UInt_t fStartTime;
90
92 TDatime fStartDatime;
93 TDatime fEndDatime;
94};
std::vector< UInt_t > fGoEventCount
std::vector< UInt_t > fGoTime
std::vector< UInt_t > fPauseEventCount
UInt_t GetPauseTime(int index=0)
UInt_t GetGoTime(int index=0)
std::vector< UInt_t > fPauseTime
void ProcessPause(UInt_t local_time, UInt_t evt_count)
void ProcessGo(UInt_t local_time, UInt_t evt_count)
UInt_t GetGoEventCount(int index=0)
void ProcessPrestart(UInt_t local_time, UInt_t local_runnumber, UInt_t local_runtype)
void ProcessSync(UInt_t local_time, UInt_t statuscode)
UInt_t GetPauseEventCount(int index=0)
void ProcessEnd(UInt_t local_time, UInt_t evt_count)
void ProcessControlEvent(UInt_t evtype, UInt_t *buffer)