25 Stage1Layer2EGammaAlgorithmImpHI::Stage1Layer2EGammaAlgorithmImpHI(
CaloParamsHelper* params) : params_(params) {};
32 const std::vector<l1t::CaloRegion> & regions,
33 const std::vector<l1t::Jet> *
jets,
34 std::vector<l1t::EGamma>* egammas) {
35 int egEtaCut = params_->egEtaCut();
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>();
42 egCand != EMCands.end(); egCand++) {
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()) ;
49 ROOT::Math::LorentzVector<ROOT::Math::PxPyPzE4D<double> > egLorentz(0,0,0,0);
52 bool isinBarrel =
false;
53 if((egEtaCut & (1<<eg_eta))>>eg_eta) {
58 l1t::EGamma theEG(*&egLorentz, eg_et, eg_eta, eg_phi, index, isoFlag);
59 preSortEGammas->push_back(theEG);
69 const bool hex =
true;
76 for(std::vector<l1t::EGamma>::const_iterator itEgamma = egammas->begin();
77 itEgamma != egammas->end(); ++itEgamma){
78 aegammas[itEgamma - egammas->begin()] = *itEgamma;
81 std::cout << std::hex <<
pack16bits(aegammas[0].hwPt(), aegammas[0].hwEta(), aegammas[0].hwPhi());
83 std::cout << std::hex <<
pack16bits(aegammas[1].hwPt(), aegammas[1].hwEta(), aegammas[1].hwPhi());
85 std::cout << std::hex <<
pack16bits(aegammas[4].hwPt(), aegammas[4].hwEta(), aegammas[4].hwPhi());
87 std::cout << std::hex <<
pack16bits(aegammas[5].hwPt(), aegammas[5].hwEta(), aegammas[5].hwPhi());
89 std::cout << std::hex <<
pack16bits(aegammas[2].hwPt(), aegammas[2].hwEta(), aegammas[2].hwPhi());
91 std::cout << std::hex <<
pack16bits(aegammas[3].hwPt(), aegammas[3].hwEta(), aegammas[3].hwPhi());
93 std::cout << std::hex <<
pack16bits(aegammas[6].hwPt(), aegammas[6].hwEta(), aegammas[6].hwPhi());
95 std::cout << std::hex <<
pack16bits(aegammas[7].hwPt(), aegammas[7].hwEta(), aegammas[7].hwPhi());
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;
105 unsigned int packed =
pack15bits(itEGamma->hwPt(), itEGamma->hwEta(), itEGamma->hwPhi());
106 cout << bitset<15>(packed).
to_string() << endl;
107 if(cEGammas == 4)
break;
110 printf(
"EGammas Non-isolated\n");
112 for(std::vector<l1t::EGamma>::const_iterator itEGamma = egammas->begin();
113 itEGamma != egammas->end(); ++itEGamma){
114 if(itEGamma->hwIso() != 0)
continue;
116 unsigned int packed =
pack15bits(itEGamma->hwPt(), itEGamma->hwEta(), itEGamma->hwPhi());
117 cout << bitset<15>(packed).
to_string() << endl;
118 if(fEGammas == 4)
break;
123 delete preSortEGammas;
174 for(std::vector<l1t::EGamma>::const_iterator itEGamma = jets.begin();
175 itEGamma != jets.end(); ++itEGamma){
virtual void processEvent(const std::vector< l1t::CaloEmCand > &EMCands, const std::vector< l1t::CaloRegion > ®ions, const std::vector< l1t::Jet > *jets, std::vector< l1t::EGamma > *egammas)
void EGammaToGtScales(CaloParamsHelper *params, const std::vector< l1t::EGamma > *input, std::vector< l1t::EGamma > *output)
virtual ~Stage1Layer2EGammaAlgorithmImpHI()
unsigned int pack16bitsEgammaSpecial(int pt, int eta, int phi)
std::string to_string(const T &t)
void SortEGammas(std::vector< l1t::EGamma > *input, std::vector< l1t::EGamma > *output)
void verboseDumpEGammas(const std::vector< l1t::EGamma > &egs)
unsigned int pack15bits(int pt, int eta, int phi)
unsigned int pack16bits(int pt, int eta, int phi)
std::vector< CaloEmCand >::const_iterator const_iterator