28 ATH_CHECK(m_Tool_ModeDiscriminator_1p0n_vs_1p1n.retrieve());
29 ATH_CHECK(m_Tool_ModeDiscriminator_1p1n_vs_1pXn.retrieve());
30 ATH_CHECK(m_Tool_ModeDiscriminator_3p0n_vs_3pXn.retrieve());
33 ATH_CHECK( m_Tool_InformationStore->getInfo_String(
"FeatureExtractor_VarTypeName_varTypeName_Basic", m_varTypeName_Prefix_Basic) );
36 ATH_CHECK( m_Tool_InformationStore->getInfo_Double(
"DecayModeDeterminator_BDTCutValue_R10X_CellBased", m_BDTCutValue_R10X_CellBased) );
37 ATH_CHECK( m_Tool_InformationStore->getInfo_Double(
"DecayModeDeterminator_BDTCutValue_R11X_CellBased", m_BDTCutValue_R11X_CellBased) );
38 ATH_CHECK( m_Tool_InformationStore->getInfo_Double(
"DecayModeDeterminator_BDTCutValue_R110_CellBased", m_BDTCutValue_R110_CellBased) );
39 ATH_CHECK( m_Tool_InformationStore->getInfo_Double(
"DecayModeDeterminator_BDTCutValue_R1XX_CellBased", m_BDTCutValue_R1XX_CellBased) );
40 ATH_CHECK( m_Tool_InformationStore->getInfo_Double(
"DecayModeDeterminator_BDTCutValue_R30X_CellBased", m_BDTCutValue_R30X_CellBased) );
41 ATH_CHECK( m_Tool_InformationStore->getInfo_Double(
"DecayModeDeterminator_BDTCutValue_R3XX_CellBased", m_BDTCutValue_R3XX_CellBased) );
43 return StatusCode::SUCCESS;
56 bool invalidForDecayMode = (noValidInput || noAnyConstituents || noSelConstituents || badPt);
61 if(invalidForDecayMode) {
62 ATH_MSG_DEBUG(
"Seed has no constituents assigned and/or input seed has no substructure info - use NotSet mode for this");
66 return StatusCode::SUCCESS;
76 int AdditionalNeutrals = nNeutrals_SubAlg - nPi0Neut_SubAlg;
79 double bdtResponse = -5;
85 if(AdditionalNeutrals == 0) {
94 bdtResponse = m_Tool_ModeDiscriminator_1p0n_vs_1p1n->getResponse(inSeed, isOK);
95 bdtTest = t_1p0n_vs_1p1n;
98 ATH_MSG_WARNING(
"WARNING: problems getting bdt response for 1p0n + X-neutrals. use subAlg mode");
99 decayMode_PanTau = decayMode_SubAlg;
110 if(AdditionalNeutrals == 0) {
112 bdtResponse = m_Tool_ModeDiscriminator_1p0n_vs_1p1n->getResponse(inSeed, isOK);
113 bdtTest = t_1p0n_vs_1p1n;
116 ATH_MSG_WARNING(
"WARNING problems getting bdt response for 1p1n + 0-neutrals. use subAlg mode");
117 decayMode_PanTau = decayMode_SubAlg;
127 bdtResponse = m_Tool_ModeDiscriminator_1p1n_vs_1pXn->getResponse(inSeed, isOK);
128 bdtTest = t_1p1n_vs_1pXn;
131 ATH_MSG_WARNING(
"WARNING problems getting bdt response for 1p1n + X-neutrals. use subAlg mode");
132 decayMode_PanTau = decayMode_SubAlg;
144 bdtResponse = m_Tool_ModeDiscriminator_1p1n_vs_1pXn->getResponse(inSeed, isOK);
145 bdtTest = t_1p1n_vs_1pXn;
148 ATH_MSG_WARNING(
"WARNING problems getting bdt response for 1p1n + X-neutrals. use subAlg mode");
149 decayMode_PanTau = decayMode_SubAlg;
158 if(AdditionalNeutrals == 0) {
166 bdtResponse = m_Tool_ModeDiscriminator_3p0n_vs_3pXn->getResponse(inSeed, isOK);
167 bdtTest = t_3p0n_vs_3pXn;
170 ATH_MSG_WARNING(
"WARNING problems getting bdt response for 3p0n + X-neutrals. use subAlg mode");
171 decayMode_PanTau = decayMode_SubAlg;
183 bdtResponse = m_Tool_ModeDiscriminator_3p0n_vs_3pXn->getResponse(inSeed, isOK);
184 bdtTest = t_3p0n_vs_3pXn;
187 ATH_MSG_WARNING(
"WARNING problems getting bdt response for 3p0n + X-neutrals. use subAlg mode");
188 decayMode_PanTau = decayMode_SubAlg;
200 bdtTest = t_UnknownTest;
210 double nPhotons = 0.;
211 std::vector<PanTau::TauConstituent*> shots = pi0Neut->
getShots();
213 for(
unsigned int iShot=0; iShot<shots.size(); iShot++) {
214 nPhotons = nPhotons +
static_cast<double>(shots.at(iShot)->getNPhotonsInShot());
227 ATH_MSG_WARNING(
"Could not find expected CellBased neutral -> don't check for photons in cluster");
233 features->
addFeature(
"CellBased_" + m_varTypeName_Prefix_Basic +
"_RecoMode",
static_cast<double>(decayMode_SubAlg));
234 features->
addFeature(
"CellBased_" + m_varTypeName_Prefix_Basic +
"_RecoMode_PanTau",
static_cast<double>(decayMode_PanTau));
235 features->
addFeature(
"CellBased_" + m_varTypeName_Prefix_Basic +
"_RecoMode_PanTauExtended",
static_cast<double>(decayMode_PanTauExtended));
239 if(bdtTest == t_1p0n_vs_1p1n) {
240 features->
addFeature(
"CellBased_" + m_varTypeName_Prefix_Basic +
"_BDTValue_1p0n_vs_1p1n", bdtResponse);
241 features->
addFeature(
"CellBased_" + m_varTypeName_Prefix_Basic +
"_BDTValue_1p1n_vs_1pXn", -5.);
242 features->
addFeature(
"CellBased_" + m_varTypeName_Prefix_Basic +
"_BDTValue_3p0n_vs_3pXn", -5.);
244 if(bdtTest == t_1p1n_vs_1pXn) {
245 features->
addFeature(
"CellBased_" + m_varTypeName_Prefix_Basic +
"_BDTValue_1p0n_vs_1p1n", -5.);
246 features->
addFeature(
"CellBased_" + m_varTypeName_Prefix_Basic +
"_BDTValue_1p1n_vs_1pXn", bdtResponse);
247 features->
addFeature(
"CellBased_" + m_varTypeName_Prefix_Basic +
"_BDTValue_3p0n_vs_3pXn", -5.);
249 if(bdtTest == t_3p0n_vs_3pXn) {
250 features->
addFeature(
"CellBased_" + m_varTypeName_Prefix_Basic +
"_BDTValue_1p0n_vs_1p1n", -5.);
251 features->
addFeature(
"CellBased_" + m_varTypeName_Prefix_Basic +
"_BDTValue_1p1n_vs_1pXn", -5.);
252 features->
addFeature(
"CellBased_" + m_varTypeName_Prefix_Basic +
"_BDTValue_3p0n_vs_3pXn", bdtResponse);
254 if(bdtTest == t_UnknownTest) {
255 features->
addFeature(
"CellBased_" + m_varTypeName_Prefix_Basic +
"_BDTValue_1p0n_vs_1p1n", -5.);
256 features->
addFeature(
"CellBased_" + m_varTypeName_Prefix_Basic +
"_BDTValue_1p1n_vs_1pXn", -5.);
257 features->
addFeature(
"CellBased_" + m_varTypeName_Prefix_Basic +
"_BDTValue_3p0n_vs_3pXn", -5.);
260 return StatusCode::SUCCESS;