33 TrigConfigSvcD3PD&
svc )
34 : TNamed(
"ChainGroup",
"A particular chain group" ),
35 m_parent(
parent ), m_configSvc(
svc ), m_triggerNames( triggerNames ) {
58 Error(
"IsPassed",
"Trigger(s) can't be evaluated" );
84 "The requested information is not available in the input" );
96 "The requested information is not available in the input" );
108 "The requested information is not available in the input" );
113 Warning(
"IsPassed",
"Decision type not recognised for LVL1 items!" );
121 std::vector< short >::const_iterator
begin,
end;
130 "The requested information is not available in the input" );
140 "The requested information is not available in the input" );
150 "The requested information is not available in the input" );
160 "The requested information is not available in the input" );
165 Warning(
"IsPassed",
"Decision type not recognised for HLT chains!" );
177 std::vector< short >::const_iterator
begin,
end;
186 "The requested information is not available in the input" );
196 "The requested information is not available in the input" );
206 "The requested information is not available in the input" );
216 "The requested information is not available in the input" );
221 Warning(
"IsPassed",
"Decision type not recognised for HLT chains!" );
230 Fatal(
"IsPassed",
"Something seems to be wrong with this function!" );
259 Error(
"IsPassed",
"Trigger(s) can't be evaluated" );
272 for( ; name_itr != name_end; ++name_itr ) {
278 Float_t chainPrescale = 1.0;
279 if( name_itr->find(
"EF_" ) != name_itr->npos ) {
287 }
else if( name_itr->find(
"L2_" ) != name_itr->npos ) {
293 }
else if( name_itr->find(
"L1_" ) != name_itr->npos ) {
298 Fatal(
"GetPrescale",
"Something seems to be wrong with this function!" );
303 if( singleTrigger )
return chainPrescale;
307 const Bool_t
unprescaled = ( std::abs( chainPrescale - 1.0 ) < 1
e-5 );
329 Error(
"IsPassed",
"Trigger(s) can't be evaluated" );
359 std::vector< std::string >::const_iterator name_itr =
m_triggerNames.begin();
360 std::vector< std::string >::const_iterator name_end =
m_triggerNames.end();
361 for( ; name_itr != name_end; ++name_itr ) {
365 std::vector< std::string > split_names =
ToVector( *name_itr );
366 std::vector< std::string >::const_iterator splitname_itr = split_names.begin();
367 std::vector< std::string >::const_iterator splitname_end = split_names.end();
368 for( ; splitname_itr != splitname_end; ++splitname_itr ) {
371 TRegexp
re( *splitname_itr );
373 const Bool_t isWildcarded = ( ( splitname_itr->find(
'^' ) != splitname_itr->npos ) ||
374 ( splitname_itr->find(
'$' ) != splitname_itr->npos ) ||
375 ( splitname_itr->find(
'.' ) != splitname_itr->npos ) ||
376 ( splitname_itr->find(
'[' ) != splitname_itr->npos ) ||
377 ( splitname_itr->find(
']' ) != splitname_itr->npos ) ||
378 ( splitname_itr->find(
'*' ) != splitname_itr->npos ) ||
379 ( splitname_itr->find(
'+' ) != splitname_itr->npos ) ||
380 ( splitname_itr->find(
'?' ) != splitname_itr->npos ) );
383 std::vector< std::string >::const_iterator trigger_itr =
385 std::vector< std::string >::const_iterator trigger_end =
387 for( ; trigger_itr != trigger_end; ++trigger_itr ) {
389 if(
re.Index( *trigger_itr, &len ) != kNPOS ) {
394 if( *splitname_itr == *trigger_itr ) {
404 for( ; trigger_itr != trigger_end; ++trigger_itr ) {
406 if(
re.Index( *trigger_itr, &len ) != kNPOS ) {
411 if( *splitname_itr == *trigger_itr ) {
422 Fatal(
"Update",
"There is a serious problem in the code!" );
439 std::string local_names(
names );
440 std::string::size_type
pos;
441 while( (
pos = local_names.find_first_of(
' ' ) ) != local_names.npos ) {
442 local_names.erase(
pos, 1 );
446 std::vector< std::string >
result;
447 std::string::size_type old_pos = 0;
448 while( (
pos = local_names.find(
',', old_pos ) ) != local_names.npos ) {
449 result.push_back( local_names.substr( old_pos,
pos - old_pos ) );
452 if( old_pos < local_names.size() ) {
453 result.push_back( local_names.substr( old_pos, local_names.size() - old_pos ) );