31 ATH_CHECK(m_Tool_ModeDiscriminator_1p0n_vs_1p1n.retrieve());
32 ATH_CHECK(m_Tool_ModeDiscriminator_1p1n_vs_1pXn.retrieve());
33 ATH_CHECK(m_Tool_ModeDiscriminator_3p0n_vs_3pXn.retrieve());
36 ATH_CHECK( m_Tool_InformationStore->getInfo_String(
"FeatureExtractor_VarTypeName_varTypeName_Basic", m_varTypeName_Prefix_Basic) );
39 ATH_CHECK( m_Tool_InformationStore->getInfo_Double(
"DecayModeDeterminator_BDTCutValue_R10X_CellBased", m_BDTCutValue_R10X_CellBased) );
40 ATH_CHECK( m_Tool_InformationStore->getInfo_Double(
"DecayModeDeterminator_BDTCutValue_R11X_CellBased", m_BDTCutValue_R11X_CellBased) );
41 ATH_CHECK( m_Tool_InformationStore->getInfo_Double(
"DecayModeDeterminator_BDTCutValue_R110_CellBased", m_BDTCutValue_R110_CellBased) );
42 ATH_CHECK( m_Tool_InformationStore->getInfo_Double(
"DecayModeDeterminator_BDTCutValue_R1XX_CellBased", m_BDTCutValue_R1XX_CellBased) );
43 ATH_CHECK( m_Tool_InformationStore->getInfo_Double(
"DecayModeDeterminator_BDTCutValue_R30X_CellBased", m_BDTCutValue_R30X_CellBased) );
44 ATH_CHECK( m_Tool_InformationStore->getInfo_Double(
"DecayModeDeterminator_BDTCutValue_R3XX_CellBased", m_BDTCutValue_R3XX_CellBased) );
46 return StatusCode::SUCCESS;
59 bool invalidForDecayMode = (noValidInput || noAnyConstituents || noSelConstituents || badPt);
64 if(invalidForDecayMode) {
65 ATH_MSG_DEBUG(
"Seed has no constituents assigned and/or input seed has no substructure info - use NotSet mode for this");
69 return StatusCode::SUCCESS;
79 int AdditionalNeutrals = nNeutrals_SubAlg - nPi0Neut_SubAlg;
82 double bdtResponse = -5;
88 if(AdditionalNeutrals == 0) {
97 bdtResponse = m_Tool_ModeDiscriminator_1p0n_vs_1p1n->getResponse(inSeed, isOK);
98 bdtTest = t_1p0n_vs_1p1n;
101 ATH_MSG_WARNING(
"WARNING: problems getting bdt response for 1p0n + X-neutrals. use subAlg mode");
102 decayMode_PanTau = decayMode_SubAlg;
113 if(AdditionalNeutrals == 0) {
115 bdtResponse = m_Tool_ModeDiscriminator_1p0n_vs_1p1n->getResponse(inSeed, isOK);
116 bdtTest = t_1p0n_vs_1p1n;
119 ATH_MSG_WARNING(
"WARNING problems getting bdt response for 1p1n + 0-neutrals. use subAlg mode");
120 decayMode_PanTau = decayMode_SubAlg;
130 bdtResponse = m_Tool_ModeDiscriminator_1p1n_vs_1pXn->getResponse(inSeed, isOK);
131 bdtTest = t_1p1n_vs_1pXn;
134 ATH_MSG_WARNING(
"WARNING problems getting bdt response for 1p1n + X-neutrals. use subAlg mode");
135 decayMode_PanTau = decayMode_SubAlg;
147 bdtResponse = m_Tool_ModeDiscriminator_1p1n_vs_1pXn->getResponse(inSeed, isOK);
148 bdtTest = t_1p1n_vs_1pXn;
151 ATH_MSG_WARNING(
"WARNING problems getting bdt response for 1p1n + X-neutrals. use subAlg mode");
152 decayMode_PanTau = decayMode_SubAlg;
161 if(AdditionalNeutrals == 0) {
169 bdtResponse = m_Tool_ModeDiscriminator_3p0n_vs_3pXn->getResponse(inSeed, isOK);
170 bdtTest = t_3p0n_vs_3pXn;
173 ATH_MSG_WARNING(
"WARNING problems getting bdt response for 3p0n + X-neutrals. use subAlg mode");
174 decayMode_PanTau = decayMode_SubAlg;
186 bdtResponse = m_Tool_ModeDiscriminator_3p0n_vs_3pXn->getResponse(inSeed, isOK);
187 bdtTest = t_3p0n_vs_3pXn;
190 ATH_MSG_WARNING(
"WARNING problems getting bdt response for 3p0n + X-neutrals. use subAlg mode");
191 decayMode_PanTau = decayMode_SubAlg;
203 bdtTest = t_UnknownTest;
213 double nPhotons = 0.;
214 std::vector<PanTau::TauConstituent*> shots = pi0Neut->
getShots();
216 for(
unsigned int iShot=0; iShot<shots.size(); iShot++) {
217 nPhotons = nPhotons +
static_cast<double>(shots.at(iShot)->getNPhotonsInShot());
230 ATH_MSG_WARNING(
"Could not find expected CellBased neutral -> don't check for photons in cluster");
236 features->
addFeature(
"CellBased_" + m_varTypeName_Prefix_Basic +
"_RecoMode",
static_cast<double>(decayMode_SubAlg));
237 features->
addFeature(
"CellBased_" + m_varTypeName_Prefix_Basic +
"_RecoMode_PanTau",
static_cast<double>(decayMode_PanTau));
238 features->
addFeature(
"CellBased_" + m_varTypeName_Prefix_Basic +
"_RecoMode_PanTauExtended",
static_cast<double>(decayMode_PanTauExtended));
242 if(bdtTest == t_1p0n_vs_1p1n) {
243 features->
addFeature(
"CellBased_" + m_varTypeName_Prefix_Basic +
"_BDTValue_1p0n_vs_1p1n", bdtResponse);
244 features->
addFeature(
"CellBased_" + m_varTypeName_Prefix_Basic +
"_BDTValue_1p1n_vs_1pXn", -5.);
245 features->
addFeature(
"CellBased_" + m_varTypeName_Prefix_Basic +
"_BDTValue_3p0n_vs_3pXn", -5.);
247 if(bdtTest == t_1p1n_vs_1pXn) {
248 features->
addFeature(
"CellBased_" + m_varTypeName_Prefix_Basic +
"_BDTValue_1p0n_vs_1p1n", -5.);
249 features->
addFeature(
"CellBased_" + m_varTypeName_Prefix_Basic +
"_BDTValue_1p1n_vs_1pXn", bdtResponse);
250 features->
addFeature(
"CellBased_" + m_varTypeName_Prefix_Basic +
"_BDTValue_3p0n_vs_3pXn", -5.);
252 if(bdtTest == t_3p0n_vs_3pXn) {
253 features->
addFeature(
"CellBased_" + m_varTypeName_Prefix_Basic +
"_BDTValue_1p0n_vs_1p1n", -5.);
254 features->
addFeature(
"CellBased_" + m_varTypeName_Prefix_Basic +
"_BDTValue_1p1n_vs_1pXn", -5.);
255 features->
addFeature(
"CellBased_" + m_varTypeName_Prefix_Basic +
"_BDTValue_3p0n_vs_3pXn", bdtResponse);
257 if(bdtTest == t_UnknownTest) {
258 features->
addFeature(
"CellBased_" + m_varTypeName_Prefix_Basic +
"_BDTValue_1p0n_vs_1p1n", -5.);
259 features->
addFeature(
"CellBased_" + m_varTypeName_Prefix_Basic +
"_BDTValue_1p1n_vs_1pXn", -5.);
260 features->
addFeature(
"CellBased_" + m_varTypeName_Prefix_Basic +
"_BDTValue_3p0n_vs_3pXn", -5.);
263 return StatusCode::SUCCESS;