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