CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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* dbPars) : m_fwv(fwv), m_db(dbPars) {
22  if (m_fwv == 1)
23  { //HI algo
26  m_jetAlgo = new Stage1Layer2JetAlgorithmImpHI(m_db); //fwv =1 => HI algo
27  m_tauAlgo = new Stage1Layer2SingleTrackHI(m_db); //fwv=1 => single track seed
30  // m_hfRingAlgo = new Stage1Layer2FlowAlgorithm(m_db);
31  // m_hfBitAlgo = new Stage1Layer2CentralityAlgorithm(m_db);
32  }
33  else if( m_fwv == 2 )
34  { //PP algorithm
37  m_jetAlgo = new Stage1Layer2JetAlgorithmImpPP(m_db); //fwv =2 => PP algo
40  m_hfBitAlgo = NULL;
41  }
42  else if ( m_fwv == 3 )
43  { // hw testing algorithms
50  }
51  else{ // undefined fwv version
52  edm::LogError("FWVersionError")
53  << "Undefined firmware version passed to Stage1Layer2MainProcessorFirmwareImp1" << std::endl;
54  return;
55  }
56 }
57 
59  delete m_jetAlgo;
60  delete m_egAlgo;
61  delete m_tauAlgo;
62  delete m_sumAlgo;
63  delete m_hfRingAlgo;
64  delete m_hfBitAlgo;
65 };
66 
67 void Stage1Layer2MainProcessorFirmwareImp1::processEvent(const std::vector<CaloEmCand> & emcands,
68  const std::vector<CaloRegion> & regions,
69  std::vector<EGamma> * egammas,
70  std::vector<Tau> * taus,
71  std::vector<Tau> * isoTaus,
72  std::vector<Jet> * jets,
73  std::vector<Jet> * preGtJets,
74  std::vector<EtSum> * etsums,
75  CaloSpare * HFringsums,
76  CaloSpare * HFbitcounts){
77  if(m_jetAlgo)
78  m_jetAlgo->processEvent(regions, emcands, jets, preGtJets); // need to run jets before MHT
79  if(m_egAlgo)
80  m_egAlgo->processEvent(emcands, regions, jets, egammas);
81  if(m_tauAlgo)
82  m_tauAlgo->processEvent(emcands, regions, isoTaus, taus);
83  if(m_sumAlgo)
84  m_sumAlgo->processEvent(regions, emcands, jets, etsums); //MHT uses jets for phi calculation
85  if(m_hfRingAlgo)
86  m_hfRingAlgo->processEvent(regions, emcands, isoTaus, HFringsums);
87  if(m_hfBitAlgo)
88  m_hfBitAlgo->processEvent(regions, emcands, HFbitcounts);
89 
90 }
#define NULL
Definition: scimark2.h:8
virtual void processEvent(const std::vector< l1t::CaloRegion > &regions, const std::vector< l1t::CaloEmCand > &EMCands, const std::vector< l1t::Jet > *jets, std::vector< l1t::EtSum > *sums)=0
virtual 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)
virtual void processEvent(const std::vector< l1t::CaloRegion > &regions, const std::vector< l1t::CaloEmCand > &EMCands, l1t::CaloSpare *spare)=0
virtual void processEvent(const std::vector< l1t::CaloRegion > &regions, const std::vector< l1t::CaloEmCand > &EMCands, std::vector< l1t::Jet > *jets, std::vector< l1t::Jet > *preGtJets)=0
vector< PseudoJet > jets
virtual void processEvent(const std::vector< l1t::CaloEmCand > &EMCands, const std::vector< l1t::CaloRegion > &regions, const std::vector< l1t::Jet > *jets, std::vector< l1t::EGamma > *egammas)=0
virtual void processEvent(const std::vector< l1t::CaloEmCand > &clusters, const std::vector< l1t::CaloRegion > &regions, std::vector< l1t::Tau > *isoTaus, std::vector< l1t::Tau > *taus)=0
virtual void processEvent(const std::vector< l1t::CaloRegion > &regions, const std::vector< l1t::CaloEmCand > &EMCands, const std::vector< l1t::Tau > *taus, l1t::CaloSpare *spare)=0