diff --git a/L1Trigger/L1TCalorimeter/src/firmware/Stage2Layer2ClusterAlgorithmFirmwareImp1.cc b/L1Trigger/L1TCalorimeter/src/firmware/Stage2Layer2ClusterAlgorithmFirmwareImp1.cc index 3c67224b055b7..919b931c6ff8a 100644 --- a/L1Trigger/L1TCalorimeter/src/firmware/Stage2Layer2ClusterAlgorithmFirmwareImp1.cc +++ b/L1Trigger/L1TCalorimeter/src/firmware/Stage2Layer2ClusterAlgorithmFirmwareImp1.cc @@ -19,10 +19,18 @@ l1t::Stage2Layer2ClusterAlgorithmFirmwareImp1::Stage2Layer2ClusterAlgorithmFirmw params_(params) { - - m_seedThreshold = params_->egSeedThresholdHw(); - m_clusterThreshold = params_->egNeighbourThresholdHw(); - + if (m_clusterInput==E) { + m_seedThreshold = floor(params_->egSeedThreshold()/params_->towerLsbE()); + m_clusterThreshold = floor(params_->egNeighbourThreshold()/params_->towerLsbE()); + } + if (m_clusterInput==H) { + m_seedThreshold = floor(params_->egSeedThreshold()/params_->towerLsbH()); + m_clusterThreshold = floor(params_->egNeighbourThreshold()/params_->towerLsbH()); + } + else { + m_seedThreshold = floor(params_->egSeedThreshold()/params_->towerLsbSum()); + m_clusterThreshold = floor(params_->egNeighbourThreshold()/params_->towerLsbSum()); + } } diff --git a/L1Trigger/L1TCalorimeter/src/firmware/Stage2Layer2TauAlgorithmFirmwareImp1.cc b/L1Trigger/L1TCalorimeter/src/firmware/Stage2Layer2TauAlgorithmFirmwareImp1.cc index d618a1f1a06eb..ac87e374a8f44 100644 --- a/L1Trigger/L1TCalorimeter/src/firmware/Stage2Layer2TauAlgorithmFirmwareImp1.cc +++ b/L1Trigger/L1TCalorimeter/src/firmware/Stage2Layer2TauAlgorithmFirmwareImp1.cc @@ -29,9 +29,12 @@ void l1t::Stage2Layer2TauAlgorithmFirmwareImp1::processEvent(const std::vectorhwPt(), itr->hwEta(), itr->hwPhi(), 0); - taus.push_back(tau); + if(itr->checkClusterFlag(l1t::CaloCluster::PASS_THRES_SEED) && + itr->checkClusterFlag(l1t::CaloCluster::PASS_FILTER_CLUSTER) ){ + math::XYZTLorentzVector p4; + l1t::Tau tau( p4, itr->hwPt(), itr->hwEta(), itr->hwPhi(), 0); + taus.push_back(tau); + } } } diff --git a/L1Trigger/L1TCalorimeter/src/firmware/Stage2MainProcessorImp1.cc b/L1Trigger/L1TCalorimeter/src/firmware/Stage2MainProcessorImp1.cc index 8caa21c3b8161..f07b6ca2e8e09 100644 --- a/L1Trigger/L1TCalorimeter/src/firmware/Stage2MainProcessorImp1.cc +++ b/L1Trigger/L1TCalorimeter/src/firmware/Stage2MainProcessorImp1.cc @@ -60,7 +60,7 @@ void l1t::Stage2MainProcessorFirmwareImp1::processEvent(const std::vectorprocessEvent( inTowers, outTowers ); m_egClusterAlgo->processEvent( outTowers, egClusters ); m_egAlgo->processEvent( egClusters, outTowers, egammas ); - m_egClusterAlgo->processEvent( outTowers, tauClusters ); + m_tauClusterAlgo->processEvent( outTowers, tauClusters ); m_tauAlgo->processEvent( tauClusters, taus ); m_jetAlgo->processEvent( outTowers, jets ); m_sumAlgo->processEvent( outTowers, towerSums );