22 sinPhi.push_back(
sin(2. * 3.1415927 *
i * 1.0 / L1CaloRegionDetId::N_PHI));
23 cosPhi.push_back(
cos(2. * 3.1415927 *
i * 1.0 / L1CaloRegionDetId::N_PHI));
33 const std::vector<l1t::CaloEmCand> & EMCands,
34 const std::vector<l1t::Jet> *
jets,
35 std::vector<l1t::EtSum> * etsums) {
37 unsigned int sumET = 0;
40 unsigned int sumHT = 0;
44 std::vector<l1t::CaloRegion> subRegions;
66 std::vector<l1t::Jet> unCorrJets;
67 std::vector<l1t::Jet> unSortedJets;
68 std::vector<l1t::Jet> SortedJets;
74 JetCalibration(&unCorrJets, jetCalibrationParams, &unSortedJets, jetCalibrationType, towerLsb);
76 SortJets(&unSortedJets, &SortedJets);
79 for(std::vector<CaloRegion>::const_iterator region = subRegions.begin(); region != subRegions.end(); region++) {
80 if (region->hwEta() < etSumEtaMinEt || region->hwEta() > etSumEtaMaxEt) {
85 int regionET = region->hwPt();
87 if(regionET >= etSumEtThresholdEt){
89 sumEx += (((double) regionET) *
cosPhi[region->hwPhi()]);
90 sumEy += (((double) regionET) *
sinPhi[region->hwPhi()]);
94 for(std::vector<CaloRegion>::const_iterator region = subRegions.begin(); region != subRegions.end(); region++) {
95 if (region->hwEta() < etSumEtaMinHt || region->hwEta() > etSumEtaMaxHt) {
100 int regionET = region->hwPt();
102 if(regionET >= etSumEtThresholdHt) {
104 sumHx += (((double) regionET) *
cosPhi[region->hwPhi()]);
105 sumHy += (((double) regionET) *
sinPhi[region->hwPhi()]);
109 unsigned int MET = ((
unsigned int)
sqrt(sumEx * sumEx + sumEy * sumEy));
110 unsigned int MHT = ((
unsigned int)
sqrt(sumHx * sumHx + sumHy * sumHy));
112 double physicalPhi = atan2(sumEy, sumEx) + 3.1415927;
117 double physicalPhiHT = atan2(sumHy, sumHx) + 3.1415927;
120 const ROOT::Math::LorentzVector<ROOT::Math::PxPyPzE4D<double> > etLorentz(0,0,0,0);
152 std::vector<l1t::EtSum> preGtEtSums = {etMiss, htMiss, etTot, htTot};
160 if (jets->size()<2)
return dphi;
161 if ((*jets).at(0).hwPt() == 0)
return dphi;
162 if ((*jets).at(1).hwPt() == 0)
return dphi;
165 int iphi1 = (*jets).at(0).hwPhi();
166 int iphi2 = (*jets).at(1).hwPhi();
168 int difference=
abs(iphi1-iphi2);
185 result = result & 0x7f;
void JetCalibration(std::vector< l1t::Jet > *uncalibjets, std::vector< double > jetCalibrationParams, std::vector< l1t::Jet > *jets, std::string jetCalibrationType, double jetLSB)
Sin< T >::type sin(const T &t)
Stage1Layer2EtSumAlgorithmImpPP(CaloParamsHelper const *params)
double etSumEtThreshold(unsigned isum) const
std::vector< double > cosPhi
std::string const & jetCalibrationType() const
int etSumEtaMax(unsigned isum) const
void SortJets(std::vector< l1t::Jet > *input, std::vector< l1t::Jet > *output)
void RegionCorrection(const std::vector< l1t::CaloRegion > ®ions, std::vector< l1t::CaloRegion > *subRegions, CaloParamsHelper const *params)
------— New region correction (PUsub, no response correction at the moment) --------— ...
std::vector< double > const & jetCalibrationParams() const
int etSumEtaMin(unsigned isum) const
void EtSumToGtScales(CaloParamsHelper const *params, const std::vector< l1t::EtSum > *input, std::vector< l1t::EtSum > *output)
Cos< T >::type cos(const T &t)
Abs< T >::type abs(const T &t)
void processEvent(const std::vector< l1t::CaloRegion > ®ions, const std::vector< l1t::CaloEmCand > &EMCands, const std::vector< l1t::Jet > *jets, std::vector< l1t::EtSum > *sums) override
uint16_t MHToverHT(uint16_t, uint16_t) const
std::vector< double > sinPhi
void slidingWindowJetFinder(const int, const std::vector< l1t::CaloRegion > *regions, std::vector< l1t::Jet > *uncalibjets)
int DiJetPhi(const std::vector< l1t::Jet > *jets) const
double towerLsbSum() const
static const unsigned N_PHI
double jetSeedThreshold() const
CaloParamsHelper const *const params_