20 std::vector<l1t::CaloRegion> *subRegions,
31 for(std::vector<CaloRegion>::const_iterator
region = regions.begin();
37 std::cout <<
"hwEta avgValue" << std::endl;
41 puLevelHI[
i] = (puLevelHI[
i] + 9) * 455 / (1 << 13);
47 std::cout <<
"hwPt hwEta hwPhi subtractedValue hwPt_afterSub" << std::endl;
48 for(std::vector<CaloRegion>::const_iterator
region = regions.begin();
region!= regions.end();
region++){
50 int subEta =
region->hwEta();
51 int subPhi =
region->hwPhi();
54 ROOT::Math::LorentzVector<ROOT::Math::PxPyPzE4D<double> > ldummy(0,0,0,0);
58 << puLevelHI[
region->hwEta()] <<
" " << subPt << std::endl;
60 subRegions->push_back(newSubRegion);
65 std::vector<l1t::CaloRegion> *subRegions)
67 for(std::vector<CaloRegion>::const_iterator
region = regions.begin();
69 int subEta =
region->hwEta();
70 int subPhi =
region->hwPhi();
71 int subPt =
region->hwPt();
74 if(subPt != (2<<10)-1)
75 subPt = subPt - (10+subEta);
79 ROOT::Math::LorentzVector<ROOT::Math::PxPyPzE4D<double> > ldummy(0,0,0,0);
82 subRegions->push_back(newSubRegion);
90 std::vector<l1t::CaloRegion> *subRegions,
96 if(regionPUSType ==
"None") {
97 for(std::vector<CaloRegion>::const_iterator notCorrectedRegion = regions.begin();
98 notCorrectedRegion != regions.end(); notCorrectedRegion++){
100 subRegions->push_back(newSubRegion);
104 if (regionPUSType ==
"HICaloRingSub") {
108 if (regionPUSType ==
"PUM0") {
112 for(std::vector<CaloRegion>::const_iterator notCorrectedRegion = regions.begin();
113 notCorrectedRegion != regions.end(); notCorrectedRegion++){
114 int regionET = notCorrectedRegion->hwPt();
116 if (regionET > 0) {puMult++;}
118 int pumbin = (int) puMult/22;
119 if(pumbin == 18) pumbin = 17;
121 for(std::vector<CaloRegion>::const_iterator notCorrectedRegion = regions.begin();
122 notCorrectedRegion != regions.end(); notCorrectedRegion++){
124 int regionET = notCorrectedRegion->hwPt();
125 int regionEta = notCorrectedRegion->hwEta();
126 int regionPhi = notCorrectedRegion->hwPhi();
138 int regionEtCorr =
std::max(0, regionET - puSub);
141 if((regionET==255) && (regionEta < 4 || regionEta > 17))
144 ROOT::Math::LorentzVector<ROOT::Math::PxPyPzE4D<double> > lorentz(0,0,0,0);
145 CaloRegion newSubRegion(*&lorentz, 0, 0, regionEtCorr, regionEta, regionPhi, notCorrectedRegion->hwQual(), notCorrectedRegion->hwEtEm(), notCorrectedRegion->hwEtHad());
146 subRegions->push_back(newSubRegion);
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) --------— ...
static const unsigned N_ETA
std::string regionPUSType() const
void simpleHWSubtraction(const std::vector< l1t::CaloRegion > ®ions, std::vector< l1t::CaloRegion > *subRegions)
int regionPUSValue(int PUM0, int eta)
void HICaloRingSubtraction(const std::vector< l1t::CaloRegion > ®ions, std::vector< l1t::CaloRegion > *subRegions, CaloParamsHelper *params)
------------— For heavy ion ----------------------------------—