60 std::string suffix = moment.second.suffix;
63 if( !moment.second.acc_ECF1->isAvailable(
jet) ) {
64 ATH_MSG_WARNING(
"Energy correlation function " <<
m_prefix <<
"ECF1" << suffix <<
" is not available. Exiting." );
68 if( !moment.second.acc_ECF2->isAvailable(
jet) ) {
69 ATH_MSG_WARNING(
"Energy correlation function " <<
m_prefix <<
"ECF2" << suffix <<
" is not available. Exiting." );
73 if( !moment.second.acc_ECF3->isAvailable(
jet) ) {
74 ATH_MSG_WARNING(
"Energy correlation function " <<
m_prefix <<
"ECF3" << suffix <<
" is not available. Exiting." );
79 if( !moment.second.acc_ECF4->isAvailable(
jet) ) {
80 ATH_MSG_WARNING(
"Energy correlation function " <<
m_prefix <<
"ECF4" << suffix <<
" is not available. Exiting." );
86 if( !moment.second.acc_ECF5->isAvailable(
jet) ) {
87 ATH_MSG_WARNING(
"Energy correlation function " <<
m_prefix <<
"ECF5" << suffix <<
" is not available. Exiting." );
93 if( !moment.second.acc_ECF1_ungroomed->isAvailable(
jet) ) {
94 ATH_MSG_WARNING(
"Energy correlation function " <<
m_prefix <<
"ECF1_ungroomed" << suffix <<
" is not available. Exiting." );
98 if( !moment.second.acc_ECF2_ungroomed->isAvailable(
jet) ) {
99 ATH_MSG_WARNING(
"Energy correlation function " <<
m_prefix <<
"ECF2_ungroomed" << suffix <<
" is not available. Exiting." );
103 if( !moment.second.acc_ECF3_ungroomed->isAvailable(
jet) ) {
104 ATH_MSG_WARNING(
"Energy correlation function " <<
m_prefix <<
"ECF3_ungroomed" << suffix <<
" is not available. Exiting." );
109 float ecf1 = (*moment.second.acc_ECF1)(
jet);
110 float ecf2 = (*moment.second.acc_ECF2)(
jet);
111 float ecf3 = (*moment.second.acc_ECF3)(
jet);
115 ecf4 = (*moment.second.acc_ECF4)(
jet);
120 ecf5 = (*moment.second.acc_ECF5)(
jet);
123 float ecf1_ungroomed = -999.0;
124 float ecf2_ungroomed = -999.0;
125 float ecf3_ungroomed = -999.0;
128 ecf1_ungroomed = (*moment.second.acc_ECF1_ungroomed)(
jet);
129 ecf2_ungroomed = (*moment.second.acc_ECF2_ungroomed)(
jet);
130 ecf3_ungroomed = (*moment.second.acc_ECF3_ungroomed)(
jet);
140 float D2_dichroic = -999.0;
145 C1 = ecf2 /
pow( ecf1, 2.0 );
151 C2 = ecf3 * ecf1 /
pow( ecf2, 2.0 );
155 if(
m_doC3 && ecf3 > 1e-8 )
157 C3 = ecf4 * ecf2 /
pow( ecf3, 2.0 );
161 if(
m_doC4 && ecf4 > 1e-8 )
163 C4 = ecf5 * ecf3 /
pow( ecf4, 2.0 );
170 D2 = ecf3 *
pow( ecf1, 3.0 ) /
pow( ecf2, 3.0 );
172 if( ecf2_ungroomed > 1e-8 && ecf3_ungroomed > 1e-8 )
174 D2_dichroic = ecf3_ungroomed * ecf1_ungroomed *
pow( ecf1, 2.0 ) / (
pow( ecf2_ungroomed, 2.0 ) * ecf2 );
179 (*moment.second.dec_C1)(
jet) = C1;
180 (*moment.second.dec_C2)(
jet) = C2;
181 (*moment.second.dec_C3)(
jet) = C3;
182 (*moment.second.dec_C4)(
jet) = C4;
184 (*moment.second.dec_D2)(
jet) = D2;
186 (*moment.second.dec_D2_dichroic)(
jet) = D2_dichroic;