9 #ifndef ThePEG_LorentzSpinor_H
10 #define ThePEG_LorentzSpinor_H
12 #include "ThePEG/Config/ThePEG.h"
13 #include "ThePEG/Vectors/LorentzRotation.h"
14 #include "ThePEG/Vectors/ThreeVector.h"
16 #include "LorentzSpinor.fh"
17 #include "LorentzSpinorBar.h"
18 #include "LorentzPolarizationVector.h"
68 template<
typename Value>
78 for(
unsigned int ix=0;ix<4;++ix)
_spin[ix]=Value();
86 complex<Value> c,complex<Value> d,
101 assert( i >= 0 && i <= 3 );
109 assert( i >= 0 && i <= 3 );
117 assert( i >= 0 && i <= 3 );
125 assert( i >= 0 && i <= 3 );
223 template<
typename ValueB>
226 typedef complex<typename BinaryOpTraits<Value,ValueB>::MulT> ResultT;
229 ResultT p1(fb.
s3()*
s2()),p2(fb.
s4()*
s1());
230 vec.setX( -(p1+p2) );
231 vec.setY( ii*(p1-p2) );
232 p1 = fb.
s3()*
s1();p2 = fb.
s4()*
s2();
233 vec.setZ( -(p1-p2) );
242 template<
typename ValueB>
245 typedef complex<typename BinaryOpTraits<Value,ValueB>::MulT> ResultT;
248 ResultT p1(fb.
s1()*
s4()),p2(fb.
s2()*
s3());
250 vec.setY( -ii*(p1-p2));
251 p1 = fb.
s1()*
s3();p2 = fb.
s2()*
s4();
261 template<
typename ValueB>
264 typedef complex<typename BinaryOpTraits<Value,ValueB>::MulT> ResultT;
267 ResultT s1s4(fb.
s1()*
s4()),s2s3(fb.
s2()*
s3()),
268 s3s2(fb.
s3()*
s2()),s4s1(fb.
s4()*
s1()),
269 s1s3(fb.
s1()*
s3()),s2s4(fb.
s2()*
s4()),
270 s3s1(fb.
s3()*
s1()),s4s2(fb.
s4()*
s2());
271 vec.setX( s1s4+s2s3-s3s2-s4s1 );
272 vec.setY( -ii*(s1s4-s2s3-s3s2+s4s1));
273 vec.setZ( s1s3-s2s4-s3s1+s4s2 );
274 vec.setT( s1s3+s2s4+s3s1+s4s2);
285 template<
typename ValueB>
289 typedef complex<typename BinaryOpTraits<Value,ValueB>::MulT> ResultT;
292 ResultT p1(fb.
s3()*
s2()),p2(fb.
s4()*
s1());
293 vec.setX( -left*(p1+p2));
294 vec.setY( ii*left*(p1-p2));
295 p1 = fb.
s3()*
s1();p2 = fb.
s4()*
s2();
296 vec.setZ( -left*(p1-p2));
297 vec.setT( left*(p1+p2));
299 vec.setX(vec.x()+right*(p1+p2));
300 vec.setY(vec.y()-ii*right*(p1-p2));
301 p1 = fb.
s1()*
s3();p2 = fb.
s2()*
s4();
302 vec.setZ(vec.z()+right*(p1-p2));
303 vec.setT(vec.t()+right*(p1+p2));
314 template<
typename ValueB>
315 complex<typename BinaryOpTraits<Value,ValueB>::MulT>
324 template<
typename ValueB>
325 complex<typename BinaryOpTraits<Value,ValueB>::MulT>
334 template<
typename ValueB>
335 complex<typename BinaryOpTraits<Value,ValueB>::MulT>
344 template<
typename ValueB>
345 complex<typename BinaryOpTraits<Value,ValueB>::MulT>
357 template<
typename ValueB>
358 complex<typename BinaryOpTraits<Value,ValueB>::MulT>
361 return left*(fb.
s1()*
s1()+fb.
s2()*
s2())
362 + right*(fb.
s3()*
s3()+fb.
s4()*
s4());
381 #ifndef ThePEG_TEMPLATES_IN_CC_FILE
382 #include "LorentzSpinor.tcc"