42 std::vector<l1t::CaloRegion> *subRegions =
new std::vector<l1t::CaloRegion>();
62 std::vector<SimpleRegion> regionEtVect;
63 std::vector<SimpleRegion> regionHtVect;
66 bool regionOverflowEt(
false);
67 bool regionOverflowHt(
false);
68 for (
auto&
region : regions) {
69 if(
region.hwEta() >= etSumEtaMinEt &&
region.hwEta() <= etSumEtaMaxEt)
73 regionOverflowEt =
true;
76 if (
region.hwEta() >= etSumEtaMinHt &&
region.hwEta() <= etSumEtaMaxHt)
80 regionOverflowHt =
true;
90 for (
auto&
region : regions) {
91 if (
region.hwEta() >= etSumEtaMinEt &&
region.hwEta() <= etSumEtaMaxEt)
93 if(
region.hwPt() >= etSumEtThresholdEt)
99 regionEtVect.push_back(r);
102 if (
region.hwEta() >= etSumEtaMinHt &&
region.hwEta() <= etSumEtaMaxHt)
104 if(
region.hwPt() >= etSumEtThresholdHt)
110 regionHtVect.push_back(r);
115 int sumET,
MET, iPhiET;
118 int sumHT, MHT, iPhiHT;
126 if(MET >= 0xfff || regionOverflowEt)
128 if(MHT >= 0x7f || regionOverflowHt)
130 if(sumET >= 0xfff || regionOverflowEt)
132 if(sumHT >= 0xfff || regionOverflowHt)
144 const ROOT::Math::LorentzVector<ROOT::Math::PxPyPzE4D<double> > etLorentz(0,0,0,0);
145 l1t::EtSum etMiss(*&etLorentz,EtSum::EtSumType::kMissingEt,MET&0xfff,0,iPhiET,METqual);
146 l1t::EtSum htMiss(*&etLorentz,EtSum::EtSumType::kMissingHt,MHToHT&0x7f,0,iPhiHT,MHTqual);
147 l1t::EtSum etTot (*&etLorentz,EtSum::EtSumType::kTotalEt,sumET&0xfff,0,0,ETTqual);
148 l1t::EtSum htTot (*&etLorentz,EtSum::EtSumType::kTotalHt,sumHT&0xfff,0,0,HTTqual);
150 std::vector<l1t::EtSum> *preGtEtSums =
new std::vector<l1t::EtSum>();
152 preGtEtSums->push_back(etMiss);
153 preGtEtSums->push_back(htMiss);
154 preGtEtSums->push_back(etTot);
155 preGtEtSums->push_back(htTot);
166 for(std::vector<l1t::EtSum>::const_iterator itetsum = etsums->begin();
167 itetsum != etsums->end(); ++itetsum){
168 if(EtSum::EtSumType::kMissingEt == itetsum->getType())
170 cout <<
"Missing Et" << endl;
171 cout << bitset<7>(itetsum->hwPhi()).
to_string() << bitset<1>(itetsum->hwQual()).
to_string() << bitset<12>(itetsum->hwPt()).
to_string() << endl;
173 if(EtSum::EtSumType::kMissingHt == itetsum->getType())
175 cout <<
"Missing Ht" << endl;
176 cout << bitset<1>(itetsum->hwQual()).
to_string() << bitset<7>(itetsum->hwPt()).
to_string() << bitset<5>(itetsum->hwPhi()).
to_string() << endl;
178 if(EtSum::EtSumType::kTotalEt == itetsum->getType())
180 cout <<
"Total Et" << endl;
181 cout << bitset<1>(itetsum->hwQual()).
to_string() << bitset<12>(itetsum->hwPt()).
to_string() << endl;
183 if(EtSum::EtSumType::kTotalHt == itetsum->getType())
185 cout <<
"Total Ht" << endl;
186 cout << bitset<1>(itetsum->hwQual()).
to_string() << bitset<12>(itetsum->hwPt()).
to_string() << endl;
double etSumEtThreshold(unsigned isum) const
int etSumEtaMax(unsigned isum) const
void EtSumToGtScales(CaloParamsHelper *params, const std::vector< l1t::EtSum > *input, std::vector< l1t::EtSum > *output)
std::tuple< int, int, int > doSumAndMET(const std::vector< SimpleRegion > ®ionEt, ETSumType sumType)
std::string to_string(const T &t)
int DiJetPhi(const std::vector< l1t::Jet > *jets) const
CaloParamsHelper *const params_
int etSumEtaMin(unsigned isum) const
uint16_t MHToverHT(uint16_t, uint16_t) const