29 const IInterface*
p) :
31 m_matchTool(
"Trig::MatchingTool"),
32 m_trigDec(
"Trig::TrigDecisionTool/TrigDecisionTool" ),
33 m_decorPrefix(
"DFCommonTrigMatch_"),
34 m_muonContainerName(
"Muons"),
35 m_electronContainerName(
"Electrons"),
36 m_photonContainerName(
"Photons")
38 declareInterface<DerivationFramework::IAugmentationTool>(
this);
57 ATH_MSG_ERROR(
"No Photons collection provided for TriggerMatchingAugmentation!");
58 return StatusCode::FAILURE;
61 ATH_MSG_ERROR(
"No Electrons collection provided for TriggerMatchingAugmentation!");
62 return StatusCode::FAILURE;
65 ATH_MSG_ERROR(
"No Muon collection provided for TriggerMatchingAugmentation!");
66 return StatusCode::FAILURE;
74 pair<const string, decor_t> decorpair(trigname,decor);
75 if (trigname.find(
"HLT_e")!=std::string::npos) {
77 }
else if (trigname.find(
"HLT_m")!=std::string::npos) {
88 pair<const string, decor_t> decorpair(trigname,decor);
93 pair<const string, decor_t> decorpair(trigname,decor);
98 pair<const string, decor_t> decorpair(trigname,decor);
103 return StatusCode::SUCCESS;
108 return StatusCode::SUCCESS;
118 return StatusCode::FAILURE;
123 return StatusCode::FAILURE;
128 return StatusCode::FAILURE;
132 for (
const pair<const string, decor_t>& decorpair :
m_1eDecorList ) {
133 const auto& trigname = decorpair.first;
134 const auto& decor = decorpair.second;
139 for (
const pair<const string, decor_t>& decorpair :
m_1mDecorList ) {
140 const auto& trigname = decorpair.first;
141 const auto& decor = decorpair.second;
146 for (
const pair<const string, decor_t>& decorpair :
m_1gDecorList ) {
147 const auto& trigname = decorpair.first;
148 const auto& decor = decorpair.second;
153 for (
const pair<const string, decor_t>& decorpair :
m_2eDecorList ) {
154 const auto& trigname = decorpair.first;
155 const auto& decor = decorpair.second;
160 for (
const pair<const string, decor_t>& decorpair :
m_2mDecorList ) {
161 const auto& trigname = decorpair.first;
162 const auto& decor = decorpair.second;
167 for (
const pair<const string, decor_t>& decorpair :
m_emDecorList ) {
168 const auto& trigname = decorpair.first;
169 const auto& decor = decorpair.second;
173 return StatusCode::SUCCESS;
178 const std::string& trigger,
180 std::vector<const xAOD::IParticle*>
particles;
181 bool fired=
m_trigDec->isPassed( trigger );
182 for(
const auto *
p : *collection) {
191 else decor(*
p)=
false;
193 return StatusCode::SUCCESS;
200 const std::string& trigger,
202 std::vector<const xAOD::IParticle*>
particles;
204 bool fired=
m_trigDec->isPassed( trigger );
205 for(
const auto *
p1 : *collection1) {
206 for(
const auto *
p2: *collection2){
224 return StatusCode::SUCCESS;