78 {
79
80
81
82
83
84
85
86
87
88
89
90 double dx( ( xv1 - m_xv ).mag() );
91 double dp( ( pv1 - m_pv ).mag() );
92 double p2( m_pv.mag2() );
93 double p_abs( sqrt(
p2 ) );
94
95 double p_inv;
96 if ( p_abs > Small && pv1.mag() > Small ) { p_inv = 1.0 / p_abs; }
97 else
98 {
99 p_inv = Infinite;
100 return 0;
101 }
102
103 double ms_coeff( 2.557 * chi_cc );
104 bool with_B( (
B.mag() > Small ) ? 1 : 0 );
105 double p2inv( p_inv * p_inv );
106 double p3inv( p2inv * p_inv );
107 double fdx( dx * p3inv );
108 double cx( 100. * m_q *
C * fdx );
109 double fdp( dp * p_inv );
110
111 double px( m_pv.x() );
112 double py( m_pv.y() );
113 double pz( m_pv.z() );
114 double px2( px * px );
115 double py2( py * py );
116 double pz2( pz * pz );
117 double pxy( px * py );
118 double pyz( py * pz );
119 double pzx( pz * px );
123
124 m_xp_jcb( 1, 1 ) = 1.0;
125 m_xp_jcb( 1, 4 ) = fdx * ( py2 + pz2 );
126 m_xp_jcb( 1, 5 ) = -fdx * pxy;
127 m_xp_jcb( 1, 6 ) = -fdx * pzx;
128
129 m_xp_jcb( 2, 2 ) = 1.0;
130 m_xp_jcb( 2, 4 ) = -fdx * pxy;
131 m_xp_jcb( 2, 5 ) = fdx * ( pz2 + px2 );
132 m_xp_jcb( 2, 6 ) = -fdx * pyz;
133
134 m_xp_jcb( 3, 3 ) = 1.0;
135 m_xp_jcb( 3, 4 ) = -fdx * pzx;
136 m_xp_jcb( 3, 5 ) = -fdx * pyz;
137 m_xp_jcb( 3, 6 ) = fdx * ( px2 + py2 );
138
139 m_xp_jcb( 4, 4 ) = 1.0 - fdp;
140 m_xp_jcb( 5, 5 ) = 1.0 - fdp;
141 m_xp_jcb( 6, 6 ) = 1.0 - fdp;
142
143 if ( with_B && m_q != 0. )
144 {
145 m_xp_jcb( 4, 4 ) += -cx * ( pxy * Bz - pzx * By );
146 m_xp_jcb( 4, 5 ) = cx * ( ( pz2 + px2 ) * Bz + pyz * By );
147 m_xp_jcb( 4, 6 ) = -cx * ( ( px2 + py2 ) * By + pyz * Bz );
148
149 m_xp_jcb( 5, 4 ) = -cx * ( ( py2 + pz2 ) * Bz + pzx * Bx );
150 m_xp_jcb( 5, 5 ) += -cx * ( pyz * Bx - pxy * Bz );
151 m_xp_jcb( 5, 6 ) = cx * ( ( px2 + py2 ) * Bx + pzx * Bz );
152
153 m_xp_jcb( 6, 4 ) = cx * ( ( py2 + pz2 ) * By + pxy * Bx );
154 m_xp_jcb( 6, 5 ) = -cx * ( ( pz2 + px2 ) * Bx + pxy * By );
155 m_xp_jcb( 6, 6 ) += -cx * ( pzx * By - pyz * Bx );
156 }
157
158
159
161
162
163
164 if ( ms_on )
165 {
166 double beta_p_inv( ( m_mass2 +
p2 ) / (
p2 *
p2 ) );
167 double th2( 100000.0 * ms_coeff * ms_coeff * beta_p_inv * dx );
168
169
170 double m11( th2 * dx * dx / 3.0 );
171 double m12( 0.5 * th2 * dx * p_abs );
172 double m22( th2 *
p2 );
173
174 if ( p_abs > Eps )
175 {
176 double c1( px * p_inv );
177 double c2( py * p_inv );
178 double c3( pz * p_inv );
179 double c12( -c1 * c2 );
180 double c13( -c1 * c3 );
181 double c23( -c2 * c3 );
182 double s1s( 1 - c1 * c1 );
183 double s2s( 1 - c2 * c2 );
184 double s3s( 1 - c3 * c3 );
185
186 m_err.fast( 1, 1 ) += m11 * s1s;
187
188 m_err.fast( 2, 1 ) += m11 * c12;
189 m_err.fast( 2, 2 ) += m11 * s2s;
190
191 m_err.fast( 3, 1 ) += m11 * c13;
192 m_err.fast( 3, 2 ) += m11 * c23;
193 m_err.fast( 3, 3 ) += m11 * s3s;
194
195 m_err.fast( 4, 1 ) += m12 * s1s;
196 m_err.fast( 4, 2 ) += m12 * c12;
197 m_err.fast( 4, 3 ) += m12 * c13;
198 m_err.fast( 4, 4 ) += m22 * s1s;
199
200 m_err.fast( 5, 1 ) += m12 * c12;
201 m_err.fast( 5, 2 ) += m12 * s2s;
202 m_err.fast( 5, 3 ) += m12 * c23;
203 m_err.fast( 5, 4 ) += m22 * c12;
204 m_err.fast( 5, 5 ) += m22 * s2s;
205
206 m_err.fast( 6, 1 ) += m12 * c13;
207 m_err.fast( 6, 2 ) += m12 * c23;
208 m_err.fast( 6, 3 ) += m12 * s3s;
209 m_err.fast( 6, 4 ) += m22 * c13;
210 m_err.fast( 6, 5 ) += m22 * c23;
211 m_err.fast( 6, 6 ) += m22 * s3s;
212 }
213 }
214
215
216 m_xv = xv1;
217 m_pv = pv1;
218 return 1;
219}
***************************************************************************************Pseudo Class RRes *****************************************************************************************Parameters and physical constants **Maarten sept ************************************************************************DOUBLE PRECISION xsmu **************************************************************************PARTICLE DATA all others are from PDG *Only resonances with known widths into electron pairs are sept ************************************************************************C Declarations C