inlib
1.2.0
|
00001 // Copyright (C) 2010, Guy Barrand. All rights reserved. 00002 // See the file inlib.license for terms. 00003 00004 #ifndef inlib_a6z 00005 #define inlib_a6z 00006 00007 #include "a6" 00008 00009 #include <complex> 00010 00011 namespace inlib { 00012 namespace a6z { 00013 00014 // From the dirac spinor representation of the Lorentz group : 00015 // SpinRep_k = 1/8 * [gamma_mu,gamma_nu] * E4_k_mu_nu 00016 // with k in [0,6[ 00017 class lorentz_dirac_metric : public sqm< std::complex<double> > { 00018 public: 00019 typedef std::complex<double> z; 00020 lorentz_dirac_metric():sqm<z>(6) { 00021 set_value(0,0, 1); 00022 set_value(1,1, 1); 00023 set_value(2,2,-1); 00024 set_value(3,3, 1); 00025 set_value(4,4,-1); 00026 set_value(5,5,-1); 00027 } 00028 }; 00029 00031 // From the weyl spinor representation of the Lorentz group : 00032 // SpinRep_k = (pauli_1/2,pauli_2/2,pauli_3/2, 00033 // i*pauli_1/2,i*pauli_2/2,i*pauli_3/2) 00034 // k in [0,6[ 00036 class lorentz_weyl_metric : public sqm< std::complex<double> > { 00037 public: 00038 typedef std::complex<double> z; 00039 lorentz_weyl_metric():sqm<z>(6){ 00040 set_value(0,0, 0.5); 00041 set_value(1,1, 0.5); 00042 set_value(2,2,-0.5); 00043 set_value(3,3, 0.5); 00044 set_value(4,4,-0.5); 00045 set_value(5,5,-0.5); 00046 00047 z zi(0,1); 00048 set_value(0,5, zi*0.5); 00049 set_value(1,4,-zi*0.5); 00050 set_value(2,3, zi*0.5); 00051 set_value(3,2, zi*0.5); 00052 set_value(4,1,-zi*0.5); 00053 set_value(5,0, zi*0.5); 00054 } 00055 }; 00056 00057 }} 00058 00059 #endif 00060 00061