PMNS_NSI.cxx
//......................................................................
///
/// Build the full Hamiltonian in matter
///
/// Here we divide the mass squared matrix Hms by the 2E
/// to obtain the vacuum Hamiltonian in eV. Then, the matter
/// potential is added to each flavour pair.
///
Build the full Hamiltonian in matter

Here we divide the mass squared matrix Hms by the 2E
to obtain the vacuum Hamiltonian in eV. Then, the matter
potential is added to each flavour pair.
Build the full Hamiltonian in matter Here we divide the mass squared matrix Hms by the 2E to obtain the vacuum Hamiltonian in eV . Then the matter potential is added to each flavour pair .
void PMNS_NSI::UpdateHam()
{
  double lv = 2 * kGeV2eV*fEnergy;           
  double kr2GNe   = kK2*M_SQRT2*kGf * fPath.density;
  double kr2GNnsi = kr2GNe;
  kr2GNe   *= fPath.zoa;    
  kr2GNnsi *= GetZoACoup(); 
  for(int i=0;i<fNumNus;i++){
    for(int j=i;j<fNumNus;j++){
      if(!fIsNuBar) fHam[i][j] = fHms[i][j]/lv + kr2GNnsi*fEps[i][j];
      else          fHam[i][j] = conj(fHms[i][j]/lv - kr2GNnsi*fEps[i][j]);
    }
  }
  if(!fIsNuBar) fHam[0][0] += kr2GNe;
  else          fHam[0][0] -= kr2GNe;
}
void PMNS_NSI :: UpdateHam ( ) { double lv = 2 * kGeV2eV * fEnergy ; double kr2GNe = kK2 * M_SQRT2 * kGf * fPath . density ; double kr2GNnsi = kr2GNe ; kr2GNe *= fPath . zoa ; kr2GNnsi *= GetZoACoup ( ) ; for ( int i = 0 ; i < fNumNus ; i ++ ) { for ( int j = i ; j < fNumNus ; j ++ ) { if ( ! fIsNuBar ) fHam [ i ] [ j ] = fHms [ i ] [ j ] / lv + kr2GNnsi * fEps [ i ] [ j ] ; else fHam [ i ] [ j ] = conj ( fHms [ i ] [ j ] / lv - kr2GNnsi * fEps [ i ] [ j ] ) ; } } if ( ! fIsNuBar ) fHam [ 0 ] [ 0 ] += kr2GNe ; else fHam [ 0 ] [ 0 ] -= kr2GNe ; }
......................................................................
......................................................................
// 2*E in eV  // Std matter potential in eV // NSI matter potential in eV // Finish build Hamiltonian in matter with dimension of eV