29 m_towerAlgo = make_unique<Stage2TowerDecompressAlgorithmFirmwareImp1>(params);
30 m_egClusterAlgo = make_unique<Stage2Layer2ClusterAlgorithmFirmwareImp1>(params,
31 Stage2Layer2ClusterAlgorithmFirmwareImp1::ClusterInput::EH);
32 m_egAlgo = make_unique<Stage2Layer2EGammaAlgorithmFirmwareImp1>(params);
33 m_tauClusterAlgo = make_unique<Stage2Layer2ClusterAlgorithmFirmwareImp1>(params,
34 Stage2Layer2ClusterAlgorithmFirmwareImp1::ClusterInput::EH);
35 m_tauAlgo = make_unique<Stage2Layer2TauAlgorithmFirmwareImp1>(params);
36 m_jetAlgo = make_unique<Stage2Layer2JetAlgorithmFirmwareImp1>(params);
37 m_sumAlgo = make_unique<Stage2Layer2EtSumAlgorithmFirmwareImp1>(params);
38 m_jetSumAlgo = make_unique<Stage2Layer2JetSumAlgorithmFirmwareImp1>(params);
40 m_demuxEGAlgo = make_unique<Stage2Layer2DemuxEGAlgoFirmwareImp1>(params);
41 m_demuxTauAlgo = make_unique<Stage2Layer2DemuxTauAlgoFirmwareImp1>(params);
42 m_demuxJetAlgo = make_unique<Stage2Layer2DemuxJetAlgoFirmwareImp1>(params);
43 m_demuxSumsAlgo = make_unique<Stage2Layer2DemuxSumsAlgoFirmwareImp1>(params);
49 std::vector<l1t::CaloTower> & outTowers,
50 std::vector<l1t::CaloCluster> &
clusters,
51 std::vector<l1t::EGamma> & mpEGammas,
52 std::vector<l1t::Tau> & mpTaus,
53 std::vector<l1t::Jet> & mpJets,
54 std::vector<l1t::EtSum> & mpSums,
55 std::vector<l1t::EGamma> & egammas,
56 std::vector<l1t::Tau> &
taus,
57 std::vector<l1t::Jet> &
jets,
58 std::vector<l1t::EtSum> & etSums) {
61 std::vector<l1t::CaloCluster> egClusters;
62 std::vector<l1t::CaloCluster> tauClusters;
63 std::vector<l1t::Jet> mpAllJets;
64 std::vector<l1t::EtSum> towerSums;
65 std::vector<l1t::EtSum> jetSums;
67 m_towerAlgo->processEvent( inTowers, outTowers );
68 m_egClusterAlgo->processEvent( outTowers, egClusters );
69 m_egAlgo->processEvent( egClusters, outTowers, mpEGammas );
70 m_tauClusterAlgo->processEvent( outTowers, tauClusters );
71 m_tauAlgo->processEvent( tauClusters,outTowers, mpTaus );
72 m_jetAlgo->processEvent( outTowers, mpJets, mpAllJets );
73 m_sumAlgo->processEvent( outTowers, towerSums );
74 m_jetSumAlgo->processEvent( mpAllJets, jetSums );
76 clusters.insert( clusters.end(), egClusters.begin(), egClusters.end() );
78 mpSums.insert( mpSums.end(), towerSums.begin(), towerSums.end() );
79 mpSums.insert( mpSums.end(), jetSums.begin(), jetSums.end() );
86 m_demuxEGAlgo->processEvent( mpEGammas, egammas );
87 m_demuxTauAlgo->processEvent( mpTaus, taus );
88 m_demuxJetAlgo->processEvent( mpJets, jets );
89 m_demuxSumsAlgo->processEvent( mpSums, etSums );
96 out <<
"Calo Stage 2 Main Processor" << std::endl;
97 out <<
" Tower algo : " << (m_towerAlgo?1:0) << std::endl;
98 out <<
" EG cluster algo : " << (m_egClusterAlgo?1:0) << std::endl;
99 out <<
" EG ID algo : " << (m_egAlgo?1:0) << std::endl;
100 out <<
" Tau cluster algo : " << (m_tauClusterAlgo?1:0) << std::endl;
101 out <<
" Tau ID algo : " << (m_tauAlgo?1:0) << std::endl;
102 out <<
" Jet algo : " << (m_jetAlgo?1:0) << std::endl;
103 out <<
" Jet sum algo : " << (m_jetSumAlgo?1:0) << std::endl;
104 out <<
" Sums algo : " << (m_sumAlgo?1:0) << std::endl;
void print(std::ostream &) const
Stage2MainProcessorFirmwareImp1(unsigned fwv, CaloParamsHelper const *params)
void processEvent(const std::vector< l1t::CaloTower > &inTowers, std::vector< l1t::CaloTower > &outTowers, std::vector< l1t::CaloCluster > &clusters, std::vector< l1t::EGamma > &mpEGammas, std::vector< l1t::Tau > &mpTaus, std::vector< l1t::Jet > &mpJets, std::vector< l1t::EtSum > &mpSums, std::vector< l1t::EGamma > &egammas, std::vector< l1t::Tau > &taus, std::vector< l1t::Jet > &jets, std::vector< l1t::EtSum > &etSums) override