10#include "boost/algorithm/string.hpp"
41 m_keys[
"Electrons"] =
"HLT_egamma_Electrons" ;
42 m_keys[
"Electrons_GSF"] =
"HLT_egamma_Electrons_GSF" ;
43 m_keys[
"Electrons_LRT"] =
"HLT_egamma_Electrons_LRT" ;
44 m_keys[
"Photons"] =
"HLT_egamma_Photons" ;
47 m_keys[
"PrecisionCalo_Electron"] =
"HLT_CaloEMClusters_Electron";
48 m_keys[
"PrecisionCalo_Photon"] =
"HLT_CaloEMClusters_Photon";
49 m_keys[
"PrecisionCalo_LRT"] =
"HLT_CaloEMClusters_LRT" ;
50 m_keys[
"PrecisionCalo_HI"] =
"HLT_HICaloEMClusters" ;
53 m_keys[
"FastElectrons"] =
"HLT_FastElectrons" ;
54 m_keys[
"FastElectrons_LRT"] =
"HLT_FastElectrons_LRT" ;
55 m_keys[
"FastPhotons"] =
"HLT_FastPhotons" ;
56 m_keys[
"FastCalo"] =
"HLT_FastCaloEMClusters" ;
58 m_keys[
"L1Calo"] =
"LVL1EmTauRoIs" ;
59 m_keys[
"L1eEM"] =
"L1_eEMRoI";
61 return StatusCode::SUCCESS;
77 if(
match( eg, trigger, dec ) ){
80 std::string
key = this->
key(
"Electrons_GSF");
81 if(boost::contains(trigger,
"nogsf"))
key=this->
key(
"Electrons");
82 if(boost::contains(trigger,
"lrt"))
key=this->
key(
"Electrons_LRT");
121 if(
matchL2Calo(eg,trigger,dec, condition) )
return true;
123 if(
matchL1(eg,trigger,dec, condition) )
return true;
141 if (boost::contains(trigger,
"nogsf")){
144 }
else if(boost::contains(trigger,
"lrt")){
158 if(boost::contains(trigger,
"lrt")){
161 }
else if(boost::contains(trigger,
"ion")){
189 if(boost::contains(trigger,
"lrt")){
212 if( initRois.size() < 1)
return false;
213 for(
auto &initRoi: initRois ){
214 if( !initRoi.link.isValid() )
continue;
215 deltaR =
dR(eg->eta(),eg->phi(), (*initRoi.link)->eta(),(*initRoi.link)->phi());
229 if( !dec )
return nullptr;
231 if( !initRoi.isValid() )
return nullptr;
234 if( !l1_cont.
isValid() )
return nullptr;
236 for(
const auto *l1 : *l1_cont ){
238 if((*initRoi.link)->roiWord()==l1->roiWord()){
249 if( !dec )
return nullptr;
251 if( !initRoi.isValid() )
return nullptr;
252 return *(initRoi.link);
259 if( !dec )
return nullptr;
261 if( !initRoi.isValid() )
return nullptr;
265 if( !rg_cont.
isValid() )
return nullptr;
267 for(
const auto *rg : *rg_cont ){
270 if(cl->RoIword()==(*initRoi.link)->roiWord())
Scalar deltaR(const MatrixBase< Derived > &vec) const
#define ATH_CHECK
Evaluate an expression and check for errors.
virtual bool isValid() override final
Can the handle be successfully dereferenced?
@ EMRoIWord
This is a Run 2 EM RoI word.
xAOD::TrigComposite Decision
LinkInfo< T > findLink(const Decision *start, const std::string &linkName, const bool suppressMultipleLinksWarning=false)
Perform a recursive search for ElementLinks of type T and name 'linkName', starting from Decision obj...
static const unsigned int allFeaturesOfType
Run 3 "enum". Return all features along legs (still with type and container checks)
The common trigger namespace for trigger analysis tools.
bool isElectron(const xAOD::Egamma *eg)
is the object an electron (not Fwd)
bool isPhoton(const xAOD::Egamma *eg)
is the object a photon
eFexEMRoI_v1 eFexEMRoI
Define the latest version of the eFexEMRoI class.
TrigRingerRings_v2 TrigRingerRings
Define the latest version of the TrigRingerRings class.
Egamma_v1 Egamma
Definition of the current "egamma version".
TrigEMCluster_v1 TrigEMCluster
Define the latest version of the trigger EM cluster class.
Photon_v1 Photon
Definition of the current "egamma version".
Electron_v1 Electron
Definition of the current "egamma version".