53 MsgStream log(
msgSvc(), name() );
55 SmartDataPtr<Event::EventHeader> eventHeader( eventSvc(),
"/Event/EventHeader" );
56 unsigned long t1 = eventHeader->etsT1();
57 unsigned long t2 = eventHeader->etsT2();
61 m_interval = m_InjSigIntervalSvc->getTInterval();
65 if ( m_printInterval )
67 cout <<
"GetRawETS::execute() m_interval = " << m_interval << endl;
68 m_printInterval =
false;
72 double dt1 = ( double( t1 ) / double( 2000000. ) );
73 double dt2 = ( double( t2 ) / double( 2000000. ) );
75 std::cout <<
"Event: " << eventHeader->eventNumber()
76 <<
" run: " << eventHeader->runNumber() <<
" time: " << eventHeader->time()
77 <<
" EtsT1: " << t1 <<
" EtsT2: " << t2 << std::endl;
80 if ( t2 != 0 && t2 != m_ets2 )
83 m_vec.push_back( m_ets2 );
94 return StatusCode::SUCCESS;
102 return StatusCode::SUCCESS;
105 std::sort( m_vec.begin(), m_vec.end() );
106 m_vec.erase( std::unique( m_vec.begin(), m_vec.end() ), m_vec.end() );
108 unsigned long _interval = m_interval * 2000;
112 unsigned long tmp = m_vec.front();
113 for (
int j = m_nfill; j > 0; --j )
115 if ( tmp <= _interval * j )
continue;
117 m_ets2 = tmp - _interval * j;
124 for (
unsigned int i = 1; i < m_vec.size(); ++i )
126 unsigned long diff = m_vec[i] - m_vec[i - 1];
127 bool _1stEvtInTopUp =
false;
129 if ( diff > _interval * ( m_nfill + 1 ) * 2 + 10000 )
131 _1stEvtInTopUp =
true;
132 for (
int j = 1; j < m_nfill + 1; ++j )
135 m_ets2 = m_vec[i - 1] + _interval * j;
138 for (
int j = m_nfill; j > 0; --j )
141 m_ets2 = m_vec[i] - _interval * j;
145 else if ( diff > _interval + 10000 )
147 for (
int j = 1; j < 10; ++j )
150 m_ets2 = m_vec[i - 1] + _interval * j;
151 if ( m_ets2 >= m_vec[i] || m_vec[i] - m_ets2 < 10000 )
159 m_flag = _1stEvtInTopUp ? m_1stFlag : 0;
164 unsigned long tmp = m_vec.back();
165 for (
int j = 1; j < m_nfill + 1; ++j )
168 m_ets2 = tmp + _interval * j;
176 return StatusCode::SUCCESS;