176 std::vector<UCTRegion*> inputRegions;
177 inputRegions.clear();
180 edm::LogError(
"L1TCaloSummary") <<
"UCT: Failed to get regions from region collection!";
183 UCTRegionIndex
r =
g.getUCTRegionIndexFromL1CaloRegion(
i.gctEta(),
i.gctPhi());
184 UCTTowerIndex
t =
g.getUCTTowerIndexFromL1CaloRegion(r,
i.raw());
185 uint32_t absCaloEta =
std::abs(t.first);
186 uint32_t absCaloPhi =
std::abs(t.second);
187 bool negativeEta =
false;
190 uint32_t crate =
g.getCrate(t.first, t.second);
191 uint32_t card =
g.getCard(t.first, t.second);
192 uint32_t
region =
g.getRegion(absCaloEta, absCaloPhi);
193 UCTRegion*
test =
new UCTRegion(crate, card, negativeEta, region,
fwVersion);
194 test->setRegionSummary(
i.raw());
195 inputRegions.push_back(test);
200 edm::LogError(
"L1TCaloSummary") <<
"UCT: Failed to process summary card" << std::endl;
209 std::list<UCTObject*> boostedJetObjs =
summaryCard->getBoostedJetObjs();
210 for (std::list<UCTObject*>::const_iterator
i = boostedJetObjs.begin();
i != boostedJetObjs.end();
i++) {
211 const UCTObject*
object = *
i;
213 eta =
g.getUCTTowerEta(object->iEta());
214 phi =
g.getUCTTowerPhi(object->iPhi());
215 bitset<3> activeRegionEtaPattern = 0;
216 for (uint32_t iEta = 0; iEta < 3; iEta++) {
217 bool activeStrip =
false;
218 for (uint32_t iPhi = 0; iPhi < 3; iPhi++) {
219 if (object->boostedJetRegionET()[3 * iEta + iPhi] > 30 &&
220 object->boostedJetRegionET()[3 * iEta + iPhi] >
object->et() * 0.0625)
224 activeRegionEtaPattern |= (0x1 << iEta);
226 bitset<3> activeRegionPhiPattern = 0;
227 for (uint32_t iPhi = 0; iPhi < 3; iPhi++) {
228 bool activeStrip =
false;
229 for (uint32_t iEta = 0; iEta < 3; iEta++) {
230 if (object->boostedJetRegionET()[3 * iEta + iPhi] > 30 &&
231 object->boostedJetRegionET()[3 * iEta + iPhi] >
object->et() * 0.0625)
235 activeRegionPhiPattern |= (0x1 << iPhi);
237 string regionEta = activeRegionEtaPattern.to_string<char, std::string::traits_type, std::string::allocator_type>();
238 string regionPhi = activeRegionPhiPattern.to_string<char, std::string::traits_type, std::string::allocator_type>();
239 if (
std::abs(
eta) < 2.5 && (regionEta ==
"010" || regionPhi ==
"010" || regionEta ==
"110" || regionPhi ==
"110" ||
240 regionEta ==
"011" || regionPhi ==
"011"))
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Log< level::Error, false > LogError
UCTSummaryCard * summaryCard
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e g
PtEtaPhiMLorentzVectorD PtEtaPhiMLorentzVector
Lorentz vector with cartesian internal representation.
Abs< T >::type abs(const T &t)
double boostedJetPtFactor
A calorimeter trigger region (sum of 4x4 trigger towers)
edm::EDGetTokenT< L1CaloRegionCollection > regionToken