42 std::vector<l1t::CaloRegion> *subRegions =
new std::vector<l1t::CaloRegion>();
61 std::vector<SimpleRegion> regionEtVect;
62 std::vector<SimpleRegion> regionHtVect;
65 bool regionOverflowEt(
false);
66 bool regionOverflowHt(
false);
67 for (
auto&
region : regions) {
68 if(
region.hwEta() >= etSumEtaMinEt &&
region.hwEta() <= etSumEtaMaxEt)
72 regionOverflowEt =
true;
75 if (
region.hwEta() >= etSumEtaMinHt &&
region.hwEta() <= etSumEtaMaxHt)
79 regionOverflowHt =
true;
88 for (
auto&
region : *subRegions) {
89 if (
region.hwEta() >= etSumEtaMinEt &&
region.hwEta() <= etSumEtaMaxEt)
91 if(
region.hwPt() >= etSumEtThresholdEt)
97 regionEtVect.push_back(r);
100 if (
region.hwEta() >= etSumEtaMinHt &&
region.hwEta() <= etSumEtaMaxHt)
102 if(
region.hwPt() >= etSumEtThresholdHt)
108 regionHtVect.push_back(r);
113 int sumET,
MET, iPhiET;
116 int sumHT, MHT, iPhiHT;
124 if(MET > 0xfff || regionOverflowEt)
126 if(MHT > 0x7f || regionOverflowHt)
128 if(sumET > 0xfff || regionOverflowEt)
130 if(sumHT > 0xfff || regionOverflowHt)
139 const ROOT::Math::LorentzVector<ROOT::Math::PxPyPzE4D<double> > etLorentz(0,0,0,0);
140 l1t::EtSum etMiss(*&etLorentz,EtSum::EtSumType::kMissingEt,MET&0xfff,0,iPhiET,METqual);
141 l1t::EtSum htMiss(*&etLorentz,EtSum::EtSumType::kMissingHt,MHToHT&0x7f,0,iPhiHT,MHTqual);
142 l1t::EtSum etTot (*&etLorentz,EtSum::EtSumType::kTotalEt,sumET&0xfff,0,0,ETTqual);
143 l1t::EtSum htTot (*&etLorentz,EtSum::EtSumType::kTotalHt,sumHT&0xfff,0,0,HTTqual);
145 std::vector<l1t::EtSum> *preGtEtSums =
new std::vector<l1t::EtSum>();
147 preGtEtSums->push_back(etMiss);
148 preGtEtSums->push_back(htMiss);
149 preGtEtSums->push_back(etTot);
150 preGtEtSums->push_back(htTot);
161 for(std::vector<l1t::EtSum>::const_iterator itetsum = etsums->begin();
162 itetsum != etsums->end(); ++itetsum){
163 if(EtSum::EtSumType::kMissingEt == itetsum->getType())
165 cout <<
"Missing Et" << endl;
166 cout << bitset<7>(itetsum->hwPhi()).
to_string() << bitset<1>(itetsum->hwQual()).
to_string() << bitset<12>(itetsum->hwPt()).
to_string() << endl;
168 if(EtSum::EtSumType::kMissingHt == itetsum->getType())
170 cout <<
"Missing Ht" << endl;
171 cout << bitset<1>(itetsum->hwQual()).
to_string() << bitset<7>(itetsum->hwPt()).
to_string() << bitset<5>(itetsum->hwPhi()).
to_string() << endl;
173 if(EtSum::EtSumType::kTotalEt == itetsum->getType())
175 cout <<
"Total Et" << endl;
176 cout << bitset<1>(itetsum->hwQual()).
to_string() << bitset<12>(itetsum->hwPt()).
to_string() << endl;
178 if(EtSum::EtSumType::kTotalHt == itetsum->getType())
180 cout <<
"Total Ht" << endl;
181 cout << bitset<1>(itetsum->hwQual()).
to_string() << bitset<12>(itetsum->hwPt()).
to_string() << endl;
std::tuple< int, int, int > doSumAndMET(const std::vector< SimpleRegion > ®ionEt, ETSumType sumType)
void RegionCorrection(const std::vector< l1t::CaloRegion > ®ions, std::vector< l1t::CaloRegion > *subRegions, CaloParamsHelper *params)
------— New region correction (PUsub, no response correction at the moment) --------— ...
double etSumEtThreshold(unsigned isum) const
int etSumEtaMax(unsigned isum) const
int DiJetPhi(const std::vector< l1t::Jet > *jets) const
void EtSumToGtScales(CaloParamsHelper *params, const std::vector< l1t::EtSum > *input, std::vector< l1t::EtSum > *output)
std::string to_string(const T &t)
int etSumEtaMin(unsigned isum) const
uint16_t MHToverHT(uint16_t, uint16_t) const
CaloParamsHelper *const params_