20 std::vector<l1t::CaloRegion> *subRegions,
21 std::vector<double> regionPUSParams,
31 for(std::vector<CaloRegion>::const_iterator
region = regions.begin();
41 for(std::vector<CaloRegion>::const_iterator
region = regions.begin();
region!= regions.end();
region++){
43 int subEta =
region->hwEta();
44 int subPhi =
region->hwPhi();
46 if((regionPUSType ==
"zeroWall") && (subEta == 4 || subEta == 17)) {
48 }
else if ((regionPUSType ==
"zeroWideWall") &&
49 (subEta == 4 || subEta == 17 || subEta == 5 || subEta == 16)) {
53 ROOT::Math::LorentzVector<ROOT::Math::PxPyPzE4D<double> > ldummy(0,0,0,0);
56 subRegions->push_back(newSubRegion);
61 std::vector<l1t::CaloRegion> *subRegions)
63 for(std::vector<CaloRegion>::const_iterator
region = regions.begin();
65 int subEta =
region->hwEta();
66 int subPhi =
region->hwPhi();
67 int subPt =
region->hwPt();
70 if(subPt != (2<<10)-1)
71 subPt = subPt - (10+subEta);
75 ROOT::Math::LorentzVector<ROOT::Math::PxPyPzE4D<double> > ldummy(0,0,0,0);
78 subRegions->push_back(newSubRegion);
86 std::vector<l1t::CaloRegion> *subRegions,
87 std::vector<double> regionPUSParams,
91 if(regionPUSType ==
"None") {
92 for(std::vector<CaloRegion>::const_iterator notCorrectedRegion = regions.begin();
93 notCorrectedRegion != regions.end(); notCorrectedRegion++){
95 subRegions->push_back(newSubRegion);
99 if (regionPUSType ==
"HICaloRingSub") {
103 if (regionPUSType ==
"PUM0") {
107 for(std::vector<CaloRegion>::const_iterator notCorrectedRegion = regions.begin();
108 notCorrectedRegion != regions.end(); notCorrectedRegion++){
109 int regionET = notCorrectedRegion->hwPt();
111 if (regionET > 0) {puMult++;}
113 int pumbin = (int) puMult/22;
114 if(pumbin == 18) pumbin = 17;
116 for(std::vector<CaloRegion>::const_iterator notCorrectedRegion = regions.begin();
117 notCorrectedRegion != regions.end(); notCorrectedRegion++){
119 int regionET = notCorrectedRegion->hwPt();
120 int regionEta = notCorrectedRegion->hwEta();
121 int regionPhi = notCorrectedRegion->hwPhi();
123 int puSub = ceil(regionPUSParams[18*regionEta+pumbin]*2);
132 int regionEtCorr =
std::max(0, regionET - puSub);
135 if((regionET==255) && (regionEta < 4 || regionEta > 17))
138 ROOT::Math::LorentzVector<ROOT::Math::PxPyPzE4D<double> > lorentz(0,0,0,0);
139 CaloRegion newSubRegion(*&lorentz, 0, 0, regionEtCorr, regionEta, regionPhi, notCorrectedRegion->hwQual(), notCorrectedRegion->hwEtEm(), notCorrectedRegion->hwEtHad());
140 subRegions->push_back(newSubRegion);
void RegionCorrection(const std::vector< l1t::CaloRegion > ®ions, std::vector< l1t::CaloRegion > *subRegions, std::vector< double > regionPUSparams, std::string regionPUSType)
------— New region correction (PUsub, no response correction at the moment) --------— ...
static const unsigned N_ETA
void simpleHWSubtraction(const std::vector< l1t::CaloRegion > ®ions, std::vector< l1t::CaloRegion > *subRegions)
static const unsigned N_PHI
void HICaloRingSubtraction(const std::vector< l1t::CaloRegion > ®ions, std::vector< l1t::CaloRegion > *subRegions, std::vector< double > regionPUSparams, std::string regionPUSType)
------------— For heavy ion ----------------------------------—