Skip to content
Snippets Groups Projects
Commit 1360bab7 authored by Ruggero Turra's avatar Ruggero Turra :headphones: Committed by Walter Lampl
Browse files

special case to avoid TRT photon Conversion in MVA calibration

special case to avoid TRT photon Conversion in MVA calibration
parent e4cae4a6
No related branches found
No related tags found
No related merge requests found
......@@ -64,20 +64,32 @@ StatusCode egammaMVASvc::getEnergy(const xAOD::CaloCluster& cluster,
ATH_MSG_FATAL("Trying to calibrate an electron, but disabled");
return StatusCode::FAILURE;
}
} else if (xAOD::EgammaHelpers::isConvertedPhoton(&eg) &&
xAOD::EgammaHelpers::conversionRadius(static_cast<const xAOD::Photon*>(&eg)) < m_maxConvR) {
if (!m_mvaConvertedPhoton.empty()) {
mvaE = m_mvaConvertedPhoton->getEnergy(cluster, &eg);
} else {
ATH_MSG_FATAL("Trying to calibrate a converted photon, but disabled");
return StatusCode::FAILURE;
}
} else if (xAOD::EgammaHelpers::isPhoton(&eg)) {
if (!m_mvaUnconvertedPhoton.empty()) {
mvaE = m_mvaUnconvertedPhoton->getEnergy(cluster, &eg);
const xAOD::Photon* ph = static_cast<const xAOD::Photon*>(&eg);
bool isConvCalib = xAOD::EgammaHelpers::isConvertedPhoton(ph) &&
xAOD::EgammaHelpers::conversionRadius(ph) < m_maxConvR;
if (m_removeTRTConvBarrel) {
// special case in Run3 to avoid TRT converted photons in the barrel
using enum xAOD::EgammaParameters::ConversionType;
const xAOD::EgammaParameters::ConversionType conversionType = xAOD::EgammaHelpers::conversionType(ph);
const bool isTRTConv = (conversionType == singleTRT) || (conversionType == doubleTRT); // 2 or 4
const bool isTRTEndcap = std::abs(ph->eta()) > 0.8;
isConvCalib = isConvCalib && (isTRTEndcap || !isTRTConv);
}
if (isConvCalib) {
if (!m_mvaConvertedPhoton.empty()) {
mvaE = m_mvaConvertedPhoton->getEnergy(cluster, &eg);
} else {
ATH_MSG_FATAL("Trying to calibrate a converted photon, but disabled");
return StatusCode::FAILURE;
}
} else {
ATH_MSG_FATAL("Trying to calibrate an unconverted photon, but disabled");
return StatusCode::FAILURE;
if (!m_mvaUnconvertedPhoton.empty()) {
mvaE = m_mvaUnconvertedPhoton->getEnergy(cluster, &eg);
} else {
ATH_MSG_FATAL("Trying to calibrate an unconverted photon, but disabled");
return StatusCode::FAILURE;
}
}
} else {
ATH_MSG_FATAL("Egamma object is of unsupported type");
......
......@@ -68,6 +68,10 @@ private:
"MaxConvRadius", 800.0,
"The maximum conversion radius for a photon to be considered converted"};
Gaudi::Property<bool> m_removeTRTConvBarrel {this,
"RemoveTRTConvBarrel", false,
"Remove TRT converted photons in the barrel"};
};
#endif
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment