35 {
36 StatusCode sc;
37 RawDataAddress* pEFAddr;
38 const RAWEVENT* evt;
39
40 Event::EventHeader* header = new Event::EventHeader();
41 pObj = header;
42
43
45
46 if ( evt == NULL ) return StatusCode::FAILURE;
47
52
53
54 const BufferHolder& rBuf = evt->
getEtsBuf();
55 if ( rBuf.
nBuf() == 1 )
56 {
57 uint32_t dataLen = rBuf.
bufSize( 0 );
58 uint32_t* dataPtr = rBuf( 0 );
59
60 if ( dataLen > 11 && dataPtr[1] == 0xffffffff )
61 {
62 uint32_t start = 10;
63 if ( ( dataPtr[start] >> 24 ) == 0xcf )
64 {
66
67 unsigned long t1 =
calEts( dataPtr + start );
69
70 static unsigned long t2 = 0;
71 if ( ( start + 3 ) < dataLen && dataPtr[start + 2] != 0xf0f0f0f0 )
72 {
73 if ( ( dataPtr[start + 2] >> 24 ) == 0xd1 ) { t2 =
calEts( dataPtr + start + 2 ); }
74 else
75 {
76 uint32_t _dataT2[2] = { dataPtr[10], dataPtr[12] };
77 unsigned long _t2 =
calEts( _dataT2 );
78 if ( labs( _t2 - t2 ) < 150 * 2000 ) { t2 = _t2; }
79 else if ( labs( _t2 - 2000000 - t2 ) < 150 * 2000 ) { t2 = _t2 - 2000000; }
80 else if ( labs( _t2 + 2000000 - t2 ) < 150 * 2000 ) { t2 = _t2 + 2000000; }
81 }
82 }
84 }
85 }
86 }
87
88 return StatusCode::SUCCESS;
89
90 }
uint32_t bufSize(int i) const
const BufferHolder & getEtsBuf() const
const RawEventHeader & eventHeader() const
IRawDataInputSvc * m_inputSvc