![Logo](../../ATLAS-Logo-Square-Blue-RGB.png) |
ATLAS Offline Software
|
Go to the documentation of this file.
19 m_trigDecisionTool(
"Trig::TrigDecisionTool/TrigDecisionTool"),
20 m_trigMatchTool(
"TrigMatchTool/TrigMatchTool"),
21 m_trigNames(std::
vector<std::string>()),
22 m_trigMatchDeltaR(0.1),
24 m_electronIDKeys(std::
vector<std::string>()),
26 m_electronEtaMax(9999),
33 declareInterface<DerivationFramework::IAugmentationTool>(
this);
61 if (m_trigNames.size()>0) {
62 if (m_trigDecisionTool.retrieve().isFailure()) {
63 ATH_MSG_FATAL(
"Failed to retrieve tool: " << m_trigDecisionTool);
64 return StatusCode::FAILURE;
66 ATH_MSG_INFO(
"TriggerDecisionTool: " << m_trigDecisionTool);
68 if (m_trigMatchTool.empty()) {
70 return StatusCode::FAILURE;
72 CHECK(m_trigMatchTool.retrieve());
78 ATH_CHECK(m_KinkTrkDiEleMassKey.initialize());
79 ATH_CHECK(m_KinkTrkProbeEleEtKey.initialize());
81 return StatusCode::SUCCESS;
88 return StatusCode::SUCCESS;
106 if (!checkTagElectron(ele))
continue;
108 if (!checkCluster(clu))
continue;
109 if (!checkEleClusPair(ele, clu))
continue;
110 diEleMass->push_back((ele->p4()+clu->p4()).M());
111 probeEleEt->push_back(clu->et());
115 return StatusCode::SUCCESS;
122 if (m_trigDecisionTool->isPassed(
triggers[
i]))
return true;
130 if (!passElectronQuality(ele))
return false;
132 if (!passElectronTrigMatch(ele, m_trigNames))
return false;
140 if (!passClusterQuality(clu))
return false;
147 if (std::abs(ele->
p4().DeltaPhi(clu->
p4())) > m_dPhiMax)
return false;
148 float mass = (ele->
p4()+clu->
p4()).M();
149 if (
mass < m_diEleMassLow)
return false;
150 if (
mass > m_diEleMassHigh)
return false;
157 if (ele->
pt() < m_electronPtCut)
return false;
158 if (std::abs(ele->
eta()) > m_electronEtaMax)
return false;
160 for (
unsigned int i=0;
i<m_electronIDKeys.size();
i++) {
164 ATH_MSG_WARNING(
"Cannot find the electron quality flag " << m_electronIDKeys[
i]);
167 if (!passID)
return false;
174 if (clu->
et() < m_clusterEtCut)
return false;
175 if (std::abs(clu->
eta()) > m_clusterEtaMax)
return false;
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
virtual FourMom_t p4() const override final
The full 4-momentum of the particle as a TLoretzVector.
#define ATH_MSG_VERBOSE(x)
Description of a calorimeter cluster.
virtual double eta() const
The pseudorapidity ( ) of the particle.
::StatusCode StatusCode
StatusCode definition for legacy code.
#define CHECK(...)
Evaluate an expression and check for errors.
virtual FourMom_t p4() const
The full 4-momentum of the particle.
StatusCode record(std::unique_ptr< T > data)
Record a const object to the store.
#define ATH_MSG_WARNING(x)
virtual double pt() const override final
The transverse momentum ( ) of the particle.
virtual double eta() const override final
The pseudorapidity ( ) of the particle.
bool passSelection(bool &value, const std::string &menu) const
Check if the egamma object pass a selection menu (using the name) If the menu decision is stored in t...