55 m_tof1pid->setRecTrack( recTrk );
58 m_tof1pid->calculate();
59 val_tof1 = m_tof1pid->IsPidInfoValid();
62 m_tof2pid->setRecTrack( recTrk );
65 m_tof2pid->calculate();
66 val_tof2 = m_tof2pid->IsPidInfoValid();
69 for (
int i = 0; i < 5; i++ )
71 double t_tof1 = m_tof1pid->offset( i );
72 double t_tof2 = m_tof2pid->offset( i );
73 double m_sigma1 = m_tof1pid->sigma( i );
74 double m_sigma2 = m_tof2pid->sigma( i );
76 if ( val_tof1 == 1 && val_tof2 == 1 )
78 weight1 = ( m_sigma2 * m_sigma2 - 0.041 * 0.041 ) /
79 ( m_sigma1 * m_sigma1 + m_sigma2 * m_sigma2 - 2 * 0.041 * 0.041 );
80 weight2 = ( m_sigma1 * m_sigma1 - 0.041 * 0.041 ) /
81 ( m_sigma1 * m_sigma1 + m_sigma2 * m_sigma2 - 2 * 0.041 * 0.041 );
83 sqrt( ( m_sigma1 * m_sigma1 * m_sigma2 * m_sigma2 - 0.041 * 0.041 * 0.041 * 0.041 ) /
84 ( m_sigma1 * m_sigma1 + m_sigma2 * m_sigma2 - 2 * 0.041 * 0.041 ) );
85 m_offset[i] = weight1 * t_tof1 + weight2 * t_tof2;
86 m_chi[i] = m_offset[i] / m_sigma[i];
88 if ( val_tof1 == 1 && val_tof2 == 0 )
92 m_sigma[i] = m_tof1pid->sigma( i );
94 m_chi[i] = m_tof1pid->chi( i );
97 if ( val_tof1 == 0 && val_tof2 == 1 )
101 m_sigma[i] = m_tof2pid->sigma( i );
102 m_offset[i] = t_tof2;
103 m_chi[i] = m_tof2pid->chi( i );
106 if ( val_tof1 == 0 && val_tof2 == 0 )
return irc;
107 if ( fabs( m_chi[i] ) < chitemp ) chitemp = fabs( m_chi[i] );
109 if ( fabs( ppp ) > pdftemp ) pdftemp = fabs( ppp );
115 if ( m_chimin >
chiMinCut() )
return irc;
116 for (
int i = 0; i < 5; i++ ) m_prob[i] =
probCalculate( m_chi[i] * m_chi[i], 1 );
EvtRecTrack * PidTrk() const
double probCalculate(double chi2, int n)
double pdfCalculate(double offset, double sigma)
double pdfMinSigmaCut() const