BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
Event/EventModel/include/EventModel/EventHeader.h
Go to the documentation of this file.
1#ifndef Event_EVENTHeader_H
2#define Event_EVENTHeader_H
3
4#include "EventModel/EventModel.h"
5#include "GaudiKernel/DataObject.h"
6#include "GaudiKernel/Kernel.h"
7#include "GaudiKernel/StreamBuffer.h"
8#include <iostream>
9
10extern const CLID& CLID_EventHeader;
11
12/** class EventHeader
13 * brief Essential header information of the event.
14 * It can be identified by "/Event" on the TDS.
15 *
16 * It contains:
17 * - run number
18 * - event number
19 **/
20
21namespace Event {
22
23 class EventHeader : public DataObject {
24
25 public:
26 EventHeader() : DataObject() {}
27
28 virtual ~EventHeader() {}
29
30 /// Retrieve reference to class definition structure
31 virtual const CLID& clID() const { return EventHeader::classID(); }
32 static const CLID& classID() { return CLID_EventHeader; }
33
34 /// Retrieve event number
35 int eventNumber() const { return m_event; }
36 /// Update event number
37 void setEventNumber( int value ) { m_event = value; }
38
39 /// Retrieve run number
40 int runNumber() const { return m_run; }
41 /// Update run number
42 void setRunNumber( int value ) { m_run = value; }
43
44 unsigned int time() const { return m_time; }
45
46 void setTime( int value ) { m_time = value; }
47
48 /// Retrieve EventTag
49 unsigned int eventTag() { return m_EventTag; }
50 /// Update EventTag
51 void setEventTag( unsigned int value ) { m_EventTag = value; }
52
53 /// Retrieve flags
54 unsigned int flag1() { return m_flag1; };
55 unsigned int flag2() { return m_flag2; };
56 /// Update flags
57 void setFlag1( unsigned int value ) { m_flag1 = value; }
58 void setFlag2( unsigned int value ) { m_flag2 = value; }
59
60 /// Retrieve ETS
61 unsigned long etsT1() { return m_etsT1 & 0x000000FFFFFFFFFF; }
62 unsigned long rawEtsT1() {
63 return ( ( m_etsT2 >> 24 ) & 0x000000FFFF000000 ) | ( m_etsT1 >> 40 );
64 }
65 unsigned long etsT2() { return m_etsT2 & 0x000000FFFFFFFFFF; }
66 int etsFlag() { return ( m_etsT2 >> 40 ) & 0xFF; }
67
68 /// Update ETS
69 void setEtsT1( unsigned long value ) {
70 m_etsT1 = ( m_etsT1 & 0xFFFFFF0000000000 ) | ( value & 0x000000FFFFFFFFFF );
71 }
72 inline void setRawEtsT1( unsigned long value );
73 void setEtsT2( unsigned long value ) {
74 m_etsT2 = ( m_etsT2 & 0xFFFFFF0000000000 ) | ( value & 0x000000FFFFFFFFFF );
75 }
76 void setEtsFlag( int flag ) {
77 m_etsT2 = ( m_etsT2 & 0xFFFF00FFFFFFFFFF ) | ( long( flag & 0xFF ) << 40 );
78 }
79
80 private:
81 /// Event number
82 int m_event{ -1 };
83
84 /// Run number
85 int m_run{ -1 };
86
87 unsigned int m_time{ 0 };
88
89 // EventTag
90 unsigned int m_EventTag{ 0 };
91
92 // flag1-HV, bit(11):has-MDC-HV, bit(8-10):MDC-HV-status
93 // bit(7):has-TOF-HV, bit(4-6):TOF-HV-status
94 // bit(3):has-MUC-HV, bit(0-2):MUC-HV-status
95 unsigned int m_flag1{ 0 };
96
97 // flag2
98 unsigned int m_flag2{ 0 };
99
100 // ETS time
101 unsigned long m_etsT1{ 0 };
102 unsigned long m_etsT2{ 0 };
103 };
104
105 inline void EventHeader::setRawEtsT1( unsigned long value ) {
106 m_etsT1 = ( m_etsT1 & 0x000000FFFFFFFFFF ) | ( value << 40 );
107 m_etsT2 = ( m_etsT2 & 0x0000FFFFFFFFFFFF ) | ( ( value >> 24 ) << 48 );
108 }
109
110} // namespace Event
111#endif // Event_EVENTHeader_H
const CLID & CLID_EventHeader
int eventNumber() const
Retrieve event number.
void setRunNumber(int value)
Update run number.
void setFlag1(unsigned int value)
Update flags.
void setEventNumber(int value)
Update event number.
void setEtsT1(unsigned long value)
Update ETS.
virtual const CLID & clID() const
Retrieve reference to class definition structure.
void setEventTag(unsigned int value)
Update EventTag.