29 float betaFix =
round(
beta * 10.0 ) / 10.0;
30 if( std::abs(
beta-betaFix) > 1.0
e-5 )
ATH_MSG_DEBUG(
"beta = " <<
beta <<
" has been rounded to " << betaFix );
52 return StatusCode::SUCCESS;
60 std::string
suffix = moment.second.suffix;
63 if( !moment.second.acc_ECF1->isAvailable(
jet) ) {
68 if( !moment.second.acc_ECF2->isAvailable(
jet) ) {
73 if( !moment.second.acc_ECF3->isAvailable(
jet) ) {
79 if( !moment.second.acc_ECF4->isAvailable(
jet) ) {
86 if( !moment.second.acc_ECF5->isAvailable(
jet) ) {
93 if( !moment.second.acc_ECF1_ungroomed->isAvailable(
jet) ) {
98 if( !moment.second.acc_ECF2_ungroomed->isAvailable(
jet) ) {
103 if( !moment.second.acc_ECF3_ungroomed->isAvailable(
jet) ) {
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 );
157 C3 = ecf4 * ecf2 /
pow( ecf3, 2.0 );
163 C4 = ecf5 * ecf3 /
pow( ecf4, 2.0 );
170 D2 = ecf3 *
pow( ecf1, 3.0 ) /
pow( ecf2, 3.0 );
172 if( ecf2_ungroomed > 1
e-8 && ecf3_ungroomed > 1
e-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;