462 {
463
465
466 vector<HLTChain*> tmpL2chains;
467 vector<HLTChain*> tmpEFchains;
469 if (aChain->level() == "L2"){
470 tmpL2chains.push_back( aChain );
471 }
472 else if (aChain->level() == "EF"){
473 tmpEFchains.push_back( aChain );
474 }
475 }
476
478
479
480
481
482
483
484
485
486
487
488 for ( vector<HLTChain*>::iterator cEF = tmpEFchains.begin(); cEF != tmpEFchains.end(); ++cEF ) {
489
490
491 std::vector<TrigConf::HLTSignature*>::iterator
it = (*cEF)->signatureList().begin();
492 string cname = (*cEF)->chain_name();
493 if ( size_t index = ((*cEF)->chain_name().find("EF_")) != std::string::npos ){
494 cname.replace(index-1, 3,
"HLT_");
495 (*cEF)->set_chain_name(cname);
496 }
497 (*cEF)->set_level("HLT");
498 (*cEF)->set_EB_after_step(0);
499 for ( vector<HLTChain*>::iterator cL2 = tmpL2chains.begin(); cL2 != tmpL2chains.end(); ++cL2 ) {
500 if ((*cL2)->chain_name() == (*cEF)->lower_chain_name()){
501
502 (*cEF)->signatureList().insert (it,(*cL2)->signatureList().begin(),(*cL2)->signatureList().end());
503
504 for (
unsigned int sig=0;
sig < (*cEF)->signatureList().
size();
sig++){
505 (*cEF)->signatureList()[
sig ]->set_signature_counter( sig + 1 );
506 }
507
508 (*cEF)->set_lower_chain_name((*cL2)->lower_chain_name());
509 (*cEF)->set_lower_chain_counter((*cL2)->lower_chain_counter());
510
511 int prescale(0);
512 if ((*cL2)->prescale()==-1. || (*cEF)->prescale()==-1.) prescale=-1.;
513 else prescale=(*cL2)->prescale()*(*cEF)->prescale();
514 (*cEF)->set_prescale(prescale);
515 int rerun_prescale(0);
516 if (((*cL2)->rerun_prescale("")).second<0 || ((*cEF)->rerun_prescale("")).second<0) rerun_prescale=-1.;
517 else rerun_prescale=((*cL2)->rerun_prescale("")).second * ((*cEF)->rerun_prescale("")).second;
518 (*cEF)->set_rerun_prescale(rerun_prescale);
519 int pass_through(0);
520 if ((*cL2)->pass_through()==-1. || (*cEF)->pass_through()==-1.) pass_through=-1.;
521 else pass_through=(*cL2)->pass_through()*(*cEF)->pass_through();
522 (*cEF)->set_pass_through(pass_through);
523
524 (*cEF)->set_EB_after_step( (*cL2)->signatureList().size());
525
526
527
528
529
530
531
532
533 break;
534 }
535 }
537 }
538
539
540 return;
541}
bool addHLTChain(HLTChain *ch)
adds an HLTChain to the menu
HLTChainList & theHLTChainList()
accessor to the list of HLT chains