111 "L1_IsoEG10_TauJet20",
112 "L1_IsoEG10_TauJet30",
122 "L1_TauJet40_HTT200",
136 "L1_DoubleMu3_IsoEG5",
138 "L1_DoubleIsoEG5_Mu3",
140 "L1_DoubleMu3_HTT200",
141 "L1_DoubleIsoEG5_HTT200",
142 "L1_DoubleEG10_HTT200",
143 "L1_DoubleJet50_HTT200",
144 "L1_DoubleTauJet40_HTT200",
145 "L1_DoubleMu3_ETM20",
146 "L1_DoubleIsoEG5_ETM20",
147 "L1_DoubleEG10_ETM20",
148 "L1_DoubleJet50_ETM20",
149 "L1_DoubleTauJet40_ETM20",
151 "L1_ExclusiveDoubleIsoEG4",
152 "L1_ExclusiveDoubleJet60",
153 "L1_ExclusiveJet25_Gap_Jet25",
154 "L1_IsoEG10_Jet20_ForJet10",
168 bool triggerDecision,
176 triggerDecision_(triggerDecision),
177 indexCombosState_{static_cast<char>(!
indexCombos.empty() ?
kSet : IndexComboStates::kUnset)},
179 emParticles_(emParticles),
180 jetParticles_(jetParticles),
181 muonParticles_(muonParticles),
182 etMissParticle_(etMissParticle),
183 indexCombos_(indexCombos) {}
186 : triggerType_(rhs.triggerType_),
187 triggerDecision_(rhs.triggerDecision_),
189 objectTypes_(rhs.objectTypes_),
190 emParticles_(rhs.emParticles_),
191 jetParticles_(rhs.jetParticles_),
192 muonParticles_(rhs.muonParticles_),
193 etMissParticle_(rhs.etMissParticle_),
223 std::memory_order_release);
245 int numNonGlobal = 0;
247 int nonGlobalIndex = -1;
258 if (numNonGlobal == 0) {
263 tmpCombo.push_back(0);
266 tempIndexCombos.push_back(tmpCombo);
267 }
else if (numNonGlobal == 1) {
270 if (nonGlobalType ==
kEM) {
272 }
else if (nonGlobalType ==
kJet) {
274 }
else if (nonGlobalType ==
kMuon) {
278 tempIndexCombos.reserve(nParticles);
279 for (
int i = 0;
i < nParticles; ++
i) {
283 if (
j == nonGlobalIndex) {
284 tmpCombo.push_back(
i);
286 tmpCombo.push_back(0);
290 tempIndexCombos.push_back(tmpCombo);
293 char expected = IndexComboStates::kUnset;
294 if (
indexCombosState_.compare_exchange_strong(expected, kSetting, std::memory_order_acq_rel)) {
312 int particleInList = aCombo[aIndexInCombo];
315 return dynamic_cast<const reco::LeafCandidate*>(
emParticles_[particleInList].
get());
317 return dynamic_cast<const reco::LeafCandidate*>(
jetParticles_[particleInList].
get());
319 return dynamic_cast<const reco::LeafCandidate*>(
muonParticles_[particleInList].
get());
329 int particleInList = aCombo[aIndexInCombo];
340 int particleInList = aCombo[aIndexInCombo];
351 int particleInList = aCombo[aIndexInCombo];
371 std::vector<const reco::LeafCandidate*>
tmp;