CMS 3D CMS Logo

Stage1Layer2MainProcessorFirmwareImp1.cc
Go to the documentation of this file.
9 
16 
17 using namespace std;
18 using namespace l1t;
19 
20 // Stage1Layer2MainProcessorFirmwareImp1::Stage1Layer2MainProcessorFirmwareImp1(/*const CaloParamsHelper & dbPars*/
21 Stage1Layer2MainProcessorFirmwareImp1::Stage1Layer2MainProcessorFirmwareImp1(const int fwv, CaloParamsHelper const* dbPars) : m_fwv(fwv){
22  if (m_fwv == 1)
23  { //HI algo
24  m_egAlgo = std::make_unique<Stage1Layer2EGammaAlgorithmImpHI>(dbPars);
25  m_sumAlgo = std::make_unique<Stage1Layer2EtSumAlgorithmImpHI>(dbPars);
26  m_jetAlgo = std::make_unique<Stage1Layer2JetAlgorithmImpHI>(dbPars); //fwv =1 => HI algo
27  m_tauAlgo = std::make_unique<Stage1Layer2SingleTrackHI>(dbPars); //fwv=1 => single track seed
28  m_hfRingAlgo = std::make_unique<Stage1Layer2CentralityAlgorithm>(dbPars);
29  m_hfBitAlgo = std::make_unique<Stage1Layer2HFMinimumBias>(dbPars);
30  // m_hfRingAlgo = std::make_unique<Stage1Layer2FlowAlgorithm>(dbPars);
31  // m_hfBitAlgo = std::make_unique<Stage1Layer2CentralityAlgorithm>(dbPars);
32  }
33  else if( m_fwv == 2 )
34  { //PP algorithm
35  m_egAlgo = std::make_unique<Stage1Layer2EGammaAlgorithmImpPP>(dbPars);
36  m_sumAlgo = std::make_unique<Stage1Layer2EtSumAlgorithmImpPP>(dbPars);
37  m_jetAlgo = std::make_unique<Stage1Layer2JetAlgorithmImpPP>(dbPars); //fwv =2 => PP algo
38  m_tauAlgo = std::make_unique<Stage1Layer2TauAlgorithmImpPP>(dbPars);
39  m_hfRingAlgo = std::make_unique<Stage1Layer2DiTauAlgorithm>(dbPars);
40  m_hfBitAlgo = nullptr;
41  }
42  else if ( m_fwv == 3 )
43  { // hw testing algorithms
44  m_jetAlgo = std::make_unique<Stage1Layer2JetAlgorithmImpSimpleHW>(dbPars);
45  m_egAlgo = std::make_unique<Stage1Layer2EGammaAlgorithmImpHW>(dbPars);
46  m_sumAlgo = std::make_unique<Stage1Layer2EtSumAlgorithmImpHW>(dbPars);
47  m_tauAlgo = std::make_unique<Stage1Layer2TauAlgorithmImpHW>(dbPars);
48  m_hfRingAlgo = std::make_unique<Stage1Layer2DiTauAlgorithm>(dbPars);
49  m_hfBitAlgo = std::make_unique<Stage1Layer2HFMinimumBias>(dbPars);
50  }
51  else{ // undefined fwv version
52  edm::LogError("FWVersionError")
53  << "Undefined firmware version passed to Stage1Layer2MainProcessorFirmwareImp1" << std::endl;
54  return;
55  }
56 }
57 
58 void Stage1Layer2MainProcessorFirmwareImp1::processEvent(const std::vector<CaloEmCand> & emcands,
59  const std::vector<CaloRegion> & regions,
60  std::vector<EGamma> * egammas,
61  std::vector<Tau> * taus,
62  std::vector<Tau> * isoTaus,
63  std::vector<Jet> * jets,
64  std::vector<Jet> * preGtJets,
65  std::vector<EtSum> * etsums,
66  CaloSpare * HFringsums,
67  CaloSpare * HFbitcounts){
68  if(m_jetAlgo)
69  m_jetAlgo->processEvent(regions, emcands, jets, preGtJets); // need to run jets before MHT
70  if(m_egAlgo)
71  m_egAlgo->processEvent(emcands, regions, jets, egammas);
72  if(m_tauAlgo)
73  m_tauAlgo->processEvent(emcands, regions, isoTaus, taus);
74  if(m_sumAlgo)
75  m_sumAlgo->processEvent(regions, emcands, jets, etsums); //MHT uses jets for phi calculation
76  if(m_hfRingAlgo)
77  m_hfRingAlgo->processEvent(regions, emcands, isoTaus, HFringsums);
78  if(m_hfBitAlgo)
79  m_hfBitAlgo->processEvent(regions, emcands, HFbitcounts);
80 
81 }
std::unique_ptr< Stage1Layer2EtSumAlgorithm > m_sumAlgo
delete x;
Definition: CaloConfig.h:22
std::unique_ptr< Stage1Layer2HFBitCountAlgorithm > m_hfBitAlgo
std::unique_ptr< Stage1Layer2HFRingSumAlgorithm > m_hfRingAlgo
vector< PseudoJet > jets
std::unique_ptr< Stage1Layer2TauAlgorithm > m_tauAlgo
std::unique_ptr< Stage1Layer2EGammaAlgorithm > m_egAlgo
void processEvent(const std::vector< CaloEmCand > &, const std::vector< CaloRegion > &, std::vector< EGamma > *egammas, std::vector< Tau > *taus, std::vector< Tau > *isoTaus, std::vector< Jet > *jets, std::vector< Jet > *preGtJets, std::vector< EtSum > *etsums, CaloSpare *hfSums, CaloSpare *hfCounts) override
std::unique_ptr< Stage1Layer2JetAlgorithm > m_jetAlgo