29 swissCrossMaxThreshold_(3.),
31 trigTypeToME_{0, 1, 2, 3, 4},
32 L1GlobalTriggerReadoutRecordTag_(),
33 L1MuGMTReadoutCollectionTag_(),
34 L1GlobalTriggerReadoutRecordToken_(),
35 L1MuGMTReadoutCollectionToken_() {}
65 MESetMulti& occupancy(static_cast<MESetMulti&>(
MEs_.at(
"SCSeedOccupancyTrig")));
67 repl[
"trig"] = triggerTypeNames[iT];
104 bool hcal_top =
false;
105 bool hcal_bot =
false;
107 std::vector<int> valid_phi;
108 if ((psb.
aData(4) & 0x3f) >= 1) {
109 valid_phi.push_back((psb.
aData(4) >> 10) & 0x1f);
111 if ((psb.
bData(4) & 0x3f) >= 1) {
112 valid_phi.push_back((psb.
bData(4) >> 10) & 0x1f);
114 if ((psb.
aData(5) & 0x3f) >= 1) {
115 valid_phi.push_back((psb.
aData(5) >> 10) & 0x1f);
117 if ((psb.
bData(5) & 0x3f) >= 1) {
118 valid_phi.push_back((psb.
bData(5) >> 10) & 0x1f);
120 std::vector<int>::const_iterator
iphi;
121 for (
iphi = valid_phi.begin();
iphi != valid_phi.end();
iphi++) {
127 if (hcal_top && hcal_bot)
134 std::vector<L1MuGMTReadoutRecord>
const& records(l1MuHndl->
getRecords());
136 for (
unsigned iR(0); iR != records.size(); ++iR) {
137 if (records[iR].getBxInEvent() != 0)
143 std::vector<L1MuRegionalCand> dtBXCands(records[iR].getDTBXCands());
144 for (iC = 0; iC != dtBXCands.size(); ++iC)
145 if (!dtBXCands[iC].
empty())
147 if (iC != dtBXCands.size())
151 std::vector<L1MuRegionalCand> brlRPCCands(records[iR].getBrlRPCCands());
152 for (iC = 0; iC != brlRPCCands.size(); ++iC)
153 if (!brlRPCCands[iC].
empty())
155 if (iC != brlRPCCands.size())
159 std::vector<L1MuRegionalCand> cscCands(records[iR].getCSCCands());
160 for (iC = 0; iC != cscCands.size(); ++iC)
161 if (!cscCands[iC].
empty())
163 if (iC != cscCands.size())
171 MESet& meExclusiveTriggers(
MEs_.at(
"ExclusiveTriggers"));
176 meTriggers.
fill(iT + 0.5);
178 meExclusiveTriggers.fill(iT + 0.5);
190 for (
unsigned iFED(0); iFED !=
nDCC; iFED++) {
202 switch (_collection) {
217 MESet& meBCEMapProjEta(
MEs_.at(
"BCEMapProjEta"));
218 MESet& meBCEMapProjPhi(
MEs_.at(
"BCEMapProjPhi"));
219 MESet& meBCEtMapProjEta(
MEs_.at(
"BCEtMapProjEta"));
220 MESet& meBCEtMapProjPhi(
MEs_.at(
"BCEtMapProjPhi"));
221 MESet& meBCOccupancy(
MEs_.at(
"BCOccupancy"));
222 MESet& meBCOccupancyProjEta(
MEs_.at(
"BCOccupancyProjEta"));
223 MESet& meBCOccupancyProjPhi(
MEs_.at(
"BCOccupancyProjPhi"));
225 MESet& meTrendBCSize(
MEs_.at(
"TrendBCSize"));
226 MESet& meBCSizeMap(
MEs_.at(
"BCSizeMap"));
227 MESet& meBCSizeMapProjEta(
MEs_.at(
"BCSizeMapProjEta"));
228 MESet& meBCSizeMapProjPhi(
MEs_.at(
"BCSizeMapProjPhi"));
238 if (bcItr->caloID().detectors() != 0) {
253 id = subgeom->getClosestCell(
gp);
259 float energy(bcItr->energy());
262 float et(
energy / std::cosh(posEta));
269 meBCEMap.fill(
id,
energy);
270 meBCEMapProjEta.fill(posEta,
energy);
271 meBCEMapProjPhi.fill(subdet, posPhi,
energy);
272 meBCEtMapProjEta.fill(posEta,
et);
273 meBCEtMapProjPhi.fill(subdet, posPhi,
et);
275 meBCOccupancy.fill(
id);
276 meBCOccupancyProjEta.fill(posEta);
277 meBCOccupancyProjPhi.fill(subdet, posPhi);
279 float size(bcItr->size());
281 meBCSize.fill(
id,
size);
284 meBCSizeMap.fill(
id,
size);
285 meBCSizeMapProjEta.fill(posEta,
size);
286 meBCSizeMapProjPhi.fill(subdet, posPhi,
size);
370 MESet& meSCNcrystals(
MEs_.at(
"SCNcrystals"));
371 MESet& meTrendSCSize(
MEs_.at(
"TrendSCSize"));
372 MESet& meSCSeedEnergy(
MEs_.at(
"SCSeedEnergy"));
373 MESet& meSCClusterVsSeed(
MEs_.at(
"SCClusterVsSeed"));
374 MESet& meSCSeedOccupancy(
MEs_.at(
"SCSeedOccupancy"));
375 MESet& meSingleCrystalCluster(
MEs_.at(
"SingleCrystalCluster"));
379 MESet* meSCSeedOccupancyHighE(
doExtra_ ? &
MEs_.at(
"SCSeedOccupancyHighE") :
nullptr);
380 MESet* meSCSeedOccupancyTrig(
doExtra_ ? &
MEs_.at(
"SCSeedOccupancyTrig") :
nullptr);
382 MESet* meSCSeedTimeMapTrigEx(
doExtra_ ? &
MEs_.at(
"SCSeedTimeMapTrigEx") :
nullptr);
383 MESet* meSCOccupancyProjEta(
doExtra_ ? &
MEs_.at(
"SCOccupancyProjEta") :
nullptr);
384 MESet* meSCOccupancyProjPhi(
doExtra_ ? &
MEs_.at(
"SCOccupancyProjPhi") :
nullptr);
394 for (reco::SuperClusterCollection::const_iterator scItr(_scs.begin()); scItr != _scs.end(); ++scItr) {
395 DetId seedId(scItr->seed()->seed());
404 seedId = subgeom->getClosestCell(
gp);
407 if (seedId.null() || (seedId.subdetId() != subdet))
411 if (seedItr ==
hits->end())
416 float energy(scItr->energy());
417 float size(scItr->size());
419 meSCE.fill(seedId,
energy);
420 meSCELow.fill(seedId,
energy);
422 meSCNBCs.fill(seedId, scItr->clustersSize());
423 meSCNcrystals.fill(seedId,
size);
430 meSCSeedEnergy.fill(seedId, seedItr->energy());
431 meSCClusterVsSeed.fill(seedId, seedItr->energy(),
energy);
433 meSCSeedOccupancy.fill(seedId);
435 meSCSeedOccupancyHighE->fill(seedId);
437 if (scItr->size() == 1)
438 meSingleCrystalCluster.fill(seedId);
440 float e3x3(EcalClusterTools::e3x3(*scItr->seed(),
hits,
getTopology()));
441 meSCR9.fill(seedId, e3x3 /
energy);
448 static_cast<MESetMulti*>(meSCSeedOccupancyTrig)->use(
trigTypeToME_[iT]);
449 meSCSeedOccupancyTrig->fill(seedId);
453 static_cast<MESetMulti*>(meSCSeedTimeTrigEx)->use(
trigTypeToME_[iT]);
454 static_cast<MESetMulti*>(meSCSeedTimeMapTrigEx)->use(
trigTypeToME_[iT]);
455 meSCSeedTimeTrigEx->fill(subdet, seedItr->time());
456 meSCSeedTimeMapTrigEx->fill(seedId, seedItr->time());
460 meSCOccupancyProjEta->fill(subdet, scItr->eta());
461 meSCOccupancyProjPhi->fill(subdet,
phi(scItr->phi()));
471 meSCSwissCross->fill(1. -
e4 /
e1);
488 MEs_.at(
"SCNum").fill(subdet, nSC);