CMS 3D CMS Logo

Stage1Layer2EGammaAlgorithmImpHI.cc
Go to the documentation of this file.
1 
18 
19 #include <bitset>
20 
21 using namespace std;
22 using namespace l1t;
23 
24 
25 Stage1Layer2EGammaAlgorithmImpHI::Stage1Layer2EGammaAlgorithmImpHI(CaloParamsHelper const* params) : params_(params) {};
26 
27 void l1t::Stage1Layer2EGammaAlgorithmImpHI::processEvent(const std::vector<l1t::CaloEmCand> & EMCands,
28  const std::vector<l1t::CaloRegion> & regions,
29  const std::vector<l1t::Jet> * jets,
30  std::vector<l1t::EGamma>* egammas) {
31  int egEtaCut = params_->egEtaCut();
32 
33  std::vector<l1t::EGamma> preSortEGammas;
34  std::vector<l1t::EGamma> preGtEGammas;
35 
36  for(CaloEmCandBxCollection::const_iterator egCand = EMCands.begin();
37  egCand != EMCands.end(); egCand++) {
38 
39  int eg_et = egCand->hwPt();
40  int eg_eta = egCand->hwEta();
41  int eg_phi = egCand->hwPhi();
42  int index = (egCand->hwIso()*4 + egCand->hwQual()) ;
43 
44  ROOT::Math::LorentzVector<ROOT::Math::PxPyPzE4D<double> > egLorentz(0,0,0,0);
45 
46  int isoFlag = 0;
47  bool isinBarrel = false;
48  if((egEtaCut & (1<<eg_eta))>>eg_eta) {
49  isinBarrel = true;
50  }
51 
52  isoFlag = isinBarrel;
53  l1t::EGamma theEG(*&egLorentz, eg_et, eg_eta, eg_phi, index, isoFlag);
54  preSortEGammas.push_back(theEG);
55  }
56 
57  SortEGammas(&preSortEGammas, &preGtEGammas);
58  EGammaToGtScales(params_, &preGtEGammas, egammas);
59 
60 }
delete x;
Definition: CaloConfig.h:22
vector< PseudoJet > jets
void SortEGammas(std::vector< l1t::EGamma > *input, std::vector< l1t::EGamma > *output)
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) override
void EGammaToGtScales(CaloParamsHelper const *params, const std::vector< l1t::EGamma > *input, std::vector< l1t::EGamma > *output)
std::vector< T >::const_iterator const_iterator
Definition: BXVector.h:20