CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Member Functions | Private Attributes
l1t::Stage1Layer2EGammaAlgorithmImpHI Class Reference

#include <Stage1Layer2EGammaAlgorithmImp.h>

Inheritance diagram for l1t::Stage1Layer2EGammaAlgorithmImpHI:
l1t::Stage1Layer2EGammaAlgorithm

Public Member Functions

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)
 
 Stage1Layer2EGammaAlgorithmImpHI (CaloParamsHelper *params)
 
virtual ~Stage1Layer2EGammaAlgorithmImpHI ()
 
- Public Member Functions inherited from l1t::Stage1Layer2EGammaAlgorithm
virtual ~Stage1Layer2EGammaAlgorithm ()
 

Private Member Functions

int AssociatedJetPt (int ieta, int iphi, const std::vector< l1t::Jet > *jets) const
 
double HoverE (int et, int ieta, int iphi, const std::vector< l1t::CaloRegion > &regions) const
 
double Isolation (int ieta, int iphi, const std::vector< l1t::CaloRegion > &regions) const
 
unsigned isoLutIndex (unsigned int etaPt, unsigned int jetPt) const
 

Private Attributes

CaloParamsHelper *const params_
 

Detailed Description

Definition at line 46 of file Stage1Layer2EGammaAlgorithmImp.h.

Constructor & Destructor Documentation

Stage1Layer2EGammaAlgorithmImpHI::Stage1Layer2EGammaAlgorithmImpHI ( CaloParamsHelper params)

Definition at line 25 of file Stage1Layer2EGammaAlgorithmImpHI.cc.

25 : params_(params) {};
Stage1Layer2EGammaAlgorithmImpHI::~Stage1Layer2EGammaAlgorithmImpHI ( )
virtual

Definition at line 27 of file Stage1Layer2EGammaAlgorithmImpHI.cc.

27 {};

Member Function Documentation

int l1t::Stage1Layer2EGammaAlgorithmImpHI::AssociatedJetPt ( int  ieta,
int  iphi,
const std::vector< l1t::Jet > *  jets 
) const
private
double l1t::Stage1Layer2EGammaAlgorithmImpHI::HoverE ( int  et,
int  ieta,
int  iphi,
const std::vector< l1t::CaloRegion > &  regions 
) const
private
double l1t::Stage1Layer2EGammaAlgorithmImpHI::Isolation ( int  ieta,
int  iphi,
const std::vector< l1t::CaloRegion > &  regions 
) const
private
unsigned l1t::Stage1Layer2EGammaAlgorithmImpHI::isoLutIndex ( unsigned int  etaPt,
unsigned int  jetPt 
) const
private
void l1t::Stage1Layer2EGammaAlgorithmImpHI::processEvent ( const std::vector< l1t::CaloEmCand > &  EMCands,
const std::vector< l1t::CaloRegion > &  regions,
const std::vector< l1t::Jet > *  jets,
std::vector< l1t::EGamma > *  egammas 
)
virtual

Implements l1t::Stage1Layer2EGammaAlgorithm.

Definition at line 31 of file Stage1Layer2EGammaAlgorithmImpHI.cc.

References gather_cfg::cout, l1t::EGammaToGtScales(), cmsHarvester::index, l1t::pack15bits(), l1t::pack16bits(), l1t::SortEGammas(), and cond::to_string().

34  {
35  int egEtaCut = params_->egEtaCut();
36 
37  std::vector<l1t::EGamma> *preSortEGammas = new std::vector<l1t::EGamma>();
38  std::vector<l1t::EGamma> *preGtEGammas = new std::vector<l1t::EGamma>();
39  std::vector<l1t::EGamma> *dumpEGammas = new std::vector<l1t::EGamma>();
40 
41  for(CaloEmCandBxCollection::const_iterator egCand = EMCands.begin();
42  egCand != EMCands.end(); egCand++) {
43 
44  int eg_et = egCand->hwPt();
45  int eg_eta = egCand->hwEta();
46  int eg_phi = egCand->hwPhi();
47  int index = (egCand->hwIso()*4 + egCand->hwQual()) ;
48 
49  ROOT::Math::LorentzVector<ROOT::Math::PxPyPzE4D<double> > egLorentz(0,0,0,0);
50 
51  int isoFlag = 0;
52  bool isinBarrel = false;
53  if((egEtaCut & (1<<eg_eta))>>eg_eta) {
54  isinBarrel = true;
55  }
56 
57  isoFlag = isinBarrel;
58  l1t::EGamma theEG(*&egLorentz, eg_et, eg_eta, eg_phi, index, isoFlag);
59  preSortEGammas->push_back(theEG);
60  }
61 
62  //EGammaToGtScales(params_, preSortEGammas, dumpEGammas);
63  //verboseDumpEGammas(*dumpEGammas);
64 
65  SortEGammas(preSortEGammas, preGtEGammas);
66  EGammaToGtScales(params_, preGtEGammas, egammas);
67 
68  const bool verbose = false;
69  const bool hex = true;
70  if(verbose)
71  {
72  if(hex)
73  {
74  std::cout << "EGammas" << std::endl;
75  l1t::EGamma aegammas[8];
76  for(std::vector<l1t::EGamma>::const_iterator itEgamma = egammas->begin();
77  itEgamma != egammas->end(); ++itEgamma){
78  aegammas[itEgamma - egammas->begin()] = *itEgamma;
79  }
80  //std::cout << "Egammas (hex)" << std::endl;
81  std::cout << std::hex << pack16bits(aegammas[0].hwPt(), aegammas[0].hwEta(), aegammas[0].hwPhi());
82  std::cout << " ";
83  std::cout << std::hex << pack16bits(aegammas[1].hwPt(), aegammas[1].hwEta(), aegammas[1].hwPhi());
84  std::cout << " ";
85  std::cout << std::hex << pack16bits(aegammas[4].hwPt(), aegammas[4].hwEta(), aegammas[4].hwPhi());
86  std::cout << " ";
87  std::cout << std::hex << pack16bits(aegammas[5].hwPt(), aegammas[5].hwEta(), aegammas[5].hwPhi());
88  std::cout << std::endl;
89  std::cout << std::hex << pack16bits(aegammas[2].hwPt(), aegammas[2].hwEta(), aegammas[2].hwPhi());
90  std::cout << " ";
91  std::cout << std::hex << pack16bits(aegammas[3].hwPt(), aegammas[3].hwEta(), aegammas[3].hwPhi());
92  std::cout << " ";
93  std::cout << std::hex << pack16bits(aegammas[6].hwPt(), aegammas[6].hwEta(), aegammas[6].hwPhi());
94  std::cout << " ";
95  std::cout << std::hex << pack16bits(aegammas[7].hwPt(), aegammas[7].hwEta(), aegammas[7].hwPhi());
96  std::cout << std::endl;
97  } else {
98  int cEGammas = 0;
99  int fEGammas = 0;
100  printf("EGammas Isolated\n");
101  for(std::vector<l1t::EGamma>::const_iterator itEGamma = egammas->begin();
102  itEGamma != egammas->end(); ++itEGamma){
103  if(itEGamma->hwIso() != 1) continue;
104  cEGammas++;
105  unsigned int packed = pack15bits(itEGamma->hwPt(), itEGamma->hwEta(), itEGamma->hwPhi());
106  cout << bitset<15>(packed).to_string() << endl;
107  if(cEGammas == 4) break;
108  }
109 
110  printf("EGammas Non-isolated\n");
111  //printf("pt\teta\tphi\n");
112  for(std::vector<l1t::EGamma>::const_iterator itEGamma = egammas->begin();
113  itEGamma != egammas->end(); ++itEGamma){
114  if(itEGamma->hwIso() != 0) continue;
115  fEGammas++;
116  unsigned int packed = pack15bits(itEGamma->hwPt(), itEGamma->hwEta(), itEGamma->hwPhi());
117  cout << bitset<15>(packed).to_string() << endl;
118  if(fEGammas == 4) break;
119  }
120  }
121  }
122 
123  delete preSortEGammas;
124  delete preGtEGammas;
125  delete dumpEGammas;
126 }
void EGammaToGtScales(CaloParamsHelper *params, const std::vector< l1t::EGamma > *input, std::vector< l1t::EGamma > *output)
std::string to_string(const T &t)
Definition: Logger.cc:26
void SortEGammas(std::vector< l1t::EGamma > *input, std::vector< l1t::EGamma > *output)
unsigned int pack15bits(int pt, int eta, int phi)
unsigned int pack16bits(int pt, int eta, int phi)
tuple cout
Definition: gather_cfg.py:121
std::vector< CaloEmCand >::const_iterator const_iterator
Definition: BXVector.h:16

Member Data Documentation

CaloParamsHelper* const l1t::Stage1Layer2EGammaAlgorithmImpHI::params_
private

Definition at line 55 of file Stage1Layer2EGammaAlgorithmImp.h.