CMS 3D CMS Logo

List of all members | Public Member Functions | Private Attributes | Friends
l1t::Stage2MainProcessorFirmwareImp1 Class Reference

#include <Stage2MainProcessorFirmware.h>

Inheritance diagram for l1t::Stage2MainProcessorFirmwareImp1:
l1t::Stage2MainProcessor

Public Member Functions

void print (std::ostream &) const
 
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
 
 Stage2MainProcessorFirmwareImp1 (unsigned fwv, CaloParamsHelper const *params)
 
 ~Stage2MainProcessorFirmwareImp1 () override=default
 
- Public Member Functions inherited from l1t::Stage2MainProcessor
virtual ~Stage2MainProcessor ()
 

Private Attributes

std::unique_ptr< Stage2Layer2DemuxEGAlgom_demuxEGAlgo
 
std::unique_ptr< Stage2Layer2DemuxJetAlgom_demuxJetAlgo
 
std::unique_ptr< Stage2Layer2DemuxSumsAlgom_demuxSumsAlgo
 
std::unique_ptr< Stage2Layer2DemuxTauAlgom_demuxTauAlgo
 
std::unique_ptr< Stage2Layer2EGammaAlgorithmm_egAlgo
 
std::unique_ptr< Stage2Layer2ClusterAlgorithmm_egClusterAlgo
 
std::unique_ptr< Stage2Layer2JetAlgorithmm_jetAlgo
 
std::unique_ptr< Stage2Layer2JetSumAlgorithmm_jetSumAlgo
 
std::unique_ptr< Stage2Layer2EtSumAlgorithmm_sumAlgo
 
std::unique_ptr< Stage2Layer2TauAlgorithmm_tauAlgo
 
std::unique_ptr< Stage2Layer2ClusterAlgorithmm_tauClusterAlgo
 
std::unique_ptr< Stage2TowerDecompressAlgorithmm_towerAlgo
 

Friends

std::ostream & operator<< (std::ostream &o, const Stage2MainProcessorFirmwareImp1 &p)
 

Detailed Description

Definition at line 36 of file Stage2MainProcessorFirmware.h.

Constructor & Destructor Documentation

l1t::Stage2MainProcessorFirmwareImp1::Stage2MainProcessorFirmwareImp1 ( unsigned  fwv,
CaloParamsHelper const *  params 
)

Definition at line 26 of file Stage2MainProcessorImp1.cc.

27 {
28 
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);
39 
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);
44 
45 }
std::unique_ptr< Stage2Layer2DemuxSumsAlgo > m_demuxSumsAlgo
std::unique_ptr< Stage2Layer2JetSumAlgorithm > m_jetSumAlgo
std::unique_ptr< Stage2TowerDecompressAlgorithm > m_towerAlgo
std::unique_ptr< Stage2Layer2EGammaAlgorithm > m_egAlgo
std::unique_ptr< Stage2Layer2DemuxTauAlgo > m_demuxTauAlgo
std::unique_ptr< Stage2Layer2DemuxEGAlgo > m_demuxEGAlgo
std::unique_ptr< Stage2Layer2ClusterAlgorithm > m_tauClusterAlgo
std::unique_ptr< Stage2Layer2DemuxJetAlgo > m_demuxJetAlgo
std::unique_ptr< Stage2Layer2JetAlgorithm > m_jetAlgo
std::unique_ptr< Stage2Layer2TauAlgorithm > m_tauAlgo
std::unique_ptr< Stage2Layer2ClusterAlgorithm > m_egClusterAlgo
std::unique_ptr< Stage2Layer2EtSumAlgorithm > m_sumAlgo
l1t::Stage2MainProcessorFirmwareImp1::~Stage2MainProcessorFirmwareImp1 ( )
overridedefault

Member Function Documentation

void l1t::Stage2MainProcessorFirmwareImp1::print ( std::ostream &  out) const

Definition at line 94 of file Stage2MainProcessorImp1.cc.

94  {
95 
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;
105 
106 }
std::unique_ptr< Stage2Layer2JetSumAlgorithm > m_jetSumAlgo
std::unique_ptr< Stage2TowerDecompressAlgorithm > m_towerAlgo
std::unique_ptr< Stage2Layer2EGammaAlgorithm > m_egAlgo
std::unique_ptr< Stage2Layer2ClusterAlgorithm > m_tauClusterAlgo
std::unique_ptr< Stage2Layer2JetAlgorithm > m_jetAlgo
std::unique_ptr< Stage2Layer2TauAlgorithm > m_tauAlgo
std::unique_ptr< Stage2Layer2ClusterAlgorithm > m_egClusterAlgo
std::unique_ptr< Stage2Layer2EtSumAlgorithm > m_sumAlgo
void l1t::Stage2MainProcessorFirmwareImp1::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 
)
overridevirtual

Implements l1t::Stage2MainProcessor.

Definition at line 48 of file Stage2MainProcessorImp1.cc.

58  {
59 
60  // processing below is performed by the MP
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;
66 
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 );
75 
76  clusters.insert( clusters.end(), egClusters.begin(), egClusters.end() );
77 
78  mpSums.insert( mpSums.end(), towerSums.begin(), towerSums.end() );
79  mpSums.insert( mpSums.end(), jetSums.begin(), jetSums.end() );
80 
81 
82  // processing below is actually performed by the Demux card
83  // in principle this could be done in a separate EDProduce
84  // but it is done here for flexibility
85 
86  m_demuxEGAlgo->processEvent( mpEGammas, egammas );
87  m_demuxTauAlgo->processEvent( mpTaus, taus );
88  m_demuxJetAlgo->processEvent( mpJets, jets );
89  m_demuxSumsAlgo->processEvent( mpSums, etSums );
90 
91 }
std::unique_ptr< Stage2Layer2DemuxSumsAlgo > m_demuxSumsAlgo
std::unique_ptr< Stage2Layer2JetSumAlgorithm > m_jetSumAlgo
std::unique_ptr< Stage2TowerDecompressAlgorithm > m_towerAlgo
std::unique_ptr< Stage2Layer2EGammaAlgorithm > m_egAlgo
std::unique_ptr< Stage2Layer2DemuxTauAlgo > m_demuxTauAlgo
std::unique_ptr< Stage2Layer2DemuxEGAlgo > m_demuxEGAlgo
std::unique_ptr< Stage2Layer2ClusterAlgorithm > m_tauClusterAlgo
vector< PseudoJet > jets
std::unique_ptr< Stage2Layer2DemuxJetAlgo > m_demuxJetAlgo
std::unique_ptr< Stage2Layer2JetAlgorithm > m_jetAlgo
std::unique_ptr< Stage2Layer2TauAlgorithm > m_tauAlgo
std::unique_ptr< Stage2Layer2ClusterAlgorithm > m_egClusterAlgo
std::unique_ptr< Stage2Layer2EtSumAlgorithm > m_sumAlgo

Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  o,
const Stage2MainProcessorFirmwareImp1 p 
)
friend

Member Data Documentation

std::unique_ptr<Stage2Layer2DemuxEGAlgo> l1t::Stage2MainProcessorFirmwareImp1::m_demuxEGAlgo
private

Definition at line 69 of file Stage2MainProcessorFirmware.h.

std::unique_ptr<Stage2Layer2DemuxJetAlgo> l1t::Stage2MainProcessorFirmwareImp1::m_demuxJetAlgo
private

Definition at line 71 of file Stage2MainProcessorFirmware.h.

std::unique_ptr<Stage2Layer2DemuxSumsAlgo> l1t::Stage2MainProcessorFirmwareImp1::m_demuxSumsAlgo
private

Definition at line 72 of file Stage2MainProcessorFirmware.h.

std::unique_ptr<Stage2Layer2DemuxTauAlgo> l1t::Stage2MainProcessorFirmwareImp1::m_demuxTauAlgo
private

Definition at line 70 of file Stage2MainProcessorFirmware.h.

std::unique_ptr<Stage2Layer2EGammaAlgorithm> l1t::Stage2MainProcessorFirmwareImp1::m_egAlgo
private

Definition at line 62 of file Stage2MainProcessorFirmware.h.

std::unique_ptr<Stage2Layer2ClusterAlgorithm> l1t::Stage2MainProcessorFirmwareImp1::m_egClusterAlgo
private

Definition at line 61 of file Stage2MainProcessorFirmware.h.

std::unique_ptr<Stage2Layer2JetAlgorithm> l1t::Stage2MainProcessorFirmwareImp1::m_jetAlgo
private

Definition at line 65 of file Stage2MainProcessorFirmware.h.

std::unique_ptr<Stage2Layer2JetSumAlgorithm> l1t::Stage2MainProcessorFirmwareImp1::m_jetSumAlgo
private

Definition at line 67 of file Stage2MainProcessorFirmware.h.

std::unique_ptr<Stage2Layer2EtSumAlgorithm> l1t::Stage2MainProcessorFirmwareImp1::m_sumAlgo
private

Definition at line 66 of file Stage2MainProcessorFirmware.h.

std::unique_ptr<Stage2Layer2TauAlgorithm> l1t::Stage2MainProcessorFirmwareImp1::m_tauAlgo
private

Definition at line 64 of file Stage2MainProcessorFirmware.h.

std::unique_ptr<Stage2Layer2ClusterAlgorithm> l1t::Stage2MainProcessorFirmwareImp1::m_tauClusterAlgo
private

Definition at line 63 of file Stage2MainProcessorFirmware.h.

std::unique_ptr<Stage2TowerDecompressAlgorithm> l1t::Stage2MainProcessorFirmwareImp1::m_towerAlgo
private

Definition at line 60 of file Stage2MainProcessorFirmware.h.