48 std::map<TString, float> availableVariables;
50 float Abs_FIRST_ETA = 0.;
51 if(neutralPFO->
attribute(xAOD::PFODetails::PFOAttributes::cellBased_FIRST_ETA, Abs_FIRST_ETA) ==
false) {
54 Abs_FIRST_ETA = std::abs(Abs_FIRST_ETA);
55 availableVariables.insert(std::make_pair(
"Pi0Cluster_Abs_FIRST_ETA", Abs_FIRST_ETA));
58 if(neutralPFO->
attribute(xAOD::PFODetails::PFOAttributes::cellBased_SECOND_R, SECOND_R) ==
false) {
61 availableVariables.insert(std::make_pair(
"Pi0Cluster_SECOND_R", SECOND_R));
63 float Abs_DELTA_THETA = 0.;
64 if(neutralPFO->
attribute(xAOD::PFODetails::PFOAttributes::cellBased_DELTA_THETA, Abs_DELTA_THETA) ==
false) {
67 Abs_DELTA_THETA = std::abs(Abs_DELTA_THETA);
68 availableVariables.insert(std::make_pair(
"Pi0Cluster_Abs_DELTA_THETA", Abs_DELTA_THETA));
70 float CENTER_LAMBDA_helped = 0.;
71 if(neutralPFO->
attribute(xAOD::PFODetails::PFOAttributes::cellBased_CENTER_LAMBDA, CENTER_LAMBDA_helped) ==
false) {
74 CENTER_LAMBDA_helped = fmin(CENTER_LAMBDA_helped, 1000.);
75 availableVariables.insert(std::make_pair(
"Pi0Cluster_CENTER_LAMBDA_helped", CENTER_LAMBDA_helped));
77 float LONGITUDINAL = 0.;
78 if(neutralPFO->
attribute(xAOD::PFODetails::PFOAttributes::cellBased_LONGITUDINAL, LONGITUDINAL) ==
false) {
81 availableVariables.insert(std::make_pair(
"Pi0Cluster_LONGITUDINAL", LONGITUDINAL));
83 float ENG_FRAC_EM = 0.;
84 if(neutralPFO->
attribute(xAOD::PFODetails::PFOAttributes::cellBased_ENG_FRAC_EM, ENG_FRAC_EM) ==
false) {
87 availableVariables.insert(std::make_pair(
"Pi0Cluster_ENG_FRAC_EM", ENG_FRAC_EM));
89 float ENG_FRAC_CORE = 0.;
90 if(neutralPFO->
attribute(xAOD::PFODetails::PFOAttributes::cellBased_ENG_FRAC_CORE, ENG_FRAC_CORE) ==
false) {
93 availableVariables.insert(std::make_pair(
"Pi0Cluster_ENG_FRAC_CORE", ENG_FRAC_CORE));
95 float log_SECOND_ENG_DENS = 0.;
96 if(neutralPFO->
attribute(xAOD::PFODetails::PFOAttributes::cellBased_SECOND_ENG_DENS, log_SECOND_ENG_DENS) ==
false) {
99 if(log_SECOND_ENG_DENS==0.) {
100 log_SECOND_ENG_DENS=-50.;
103 log_SECOND_ENG_DENS = log(log_SECOND_ENG_DENS);
105 availableVariables.insert(std::make_pair(
"Pi0Cluster_log_SECOND_ENG_DENS", log_SECOND_ENG_DENS));
107 float EcoreOverEEM1 = 0.;
108 if(neutralPFO->
attribute(xAOD::PFODetails::PFOAttributes::cellBased_EM1CoreFrac, EcoreOverEEM1) ==
false) {
111 availableVariables.insert(std::make_pair(
"Pi0Cluster_EcoreOverEEM1", EcoreOverEEM1));
113 int NPosECells_EM1 = 0;
114 if(neutralPFO->
attribute(xAOD::PFODetails::PFOAttributes::cellBased_NPosECells_EM1, NPosECells_EM1) ==
false) {
117 availableVariables.insert(std::make_pair(
"Pi0Cluster_NPosECells_EM1",
static_cast<float>(NPosECells_EM1)));
119 int NPosECells_EM2 = 0;
120 if(neutralPFO->
attribute(xAOD::PFODetails::PFOAttributes::cellBased_NPosECells_EM2, NPosECells_EM2) ==
false) {
123 availableVariables.insert(std::make_pair(
"Pi0Cluster_NPosECells_EM2",
static_cast<float>(NPosECells_EM2)));
125 float AbsFirstEtaWRTClusterPosition_EM1 = 0.;
126 if(neutralPFO->
attribute(xAOD::PFODetails::PFOAttributes::cellBased_firstEtaWRTClusterPosition_EM1, AbsFirstEtaWRTClusterPosition_EM1) ==
false) {
127 ATH_MSG_WARNING(
"Can't find firstEtaWRTClusterPosition_EM1. Set it to 0.");
129 AbsFirstEtaWRTClusterPosition_EM1 = std::abs(AbsFirstEtaWRTClusterPosition_EM1);
130 availableVariables.insert(std::make_pair(
"Pi0Cluster_AbsFirstEtaWRTClusterPosition_EM1", AbsFirstEtaWRTClusterPosition_EM1));
132 float secondEtaWRTClusterPosition_EM2 = 0.;
133 if(neutralPFO->
attribute(xAOD::PFODetails::PFOAttributes::cellBased_secondEtaWRTClusterPosition_EM2, secondEtaWRTClusterPosition_EM2) ==
false) {
134 ATH_MSG_WARNING(
"Can't find secondEtaWRTClusterPosition_EM2. Set it to 0.");
136 availableVariables.insert(std::make_pair(
"Pi0Cluster_secondEtaWRTClusterPosition_EM2", secondEtaWRTClusterPosition_EM2));
139 float score =
m_mvaBDT->getGradBoostMVA(availableVariables);