%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Compute Signal-to-Noise Ratio for temperature annealing in mcmc as  
% described in Neil J. Cornish et al (arXiv:gr-qc/0701167v1).
% Returns SNR for each channel.
%
% - Inputs are -the outputs from both channels
%              -the inverse cross-spectrum matrix elements
%              -the template (arXiv:gr-qc/0701167v1)
% 
% Karnesis 24-07-2011
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function snrexp = stnr(tmplt1,tmplt2,out1,out2,InvS11,InvS22,InvS12,InvS21)

 if tmplt2 == 0 
   hs = 4*real(sum(abs(tmplt1.*(InvS11.*conj(out1)))));
   hh = 4*real(sum(abs(tmplt1.*(InvS11.*conj(tmplt1)))));
   snrexp = sqrt(2)*hs/sqrt(hh);     
 else
   hs1 = 4*real(sum(abs(tmplt1.*(InvS11.*conj(out1) + InvS12.*conj(out2)))));
   hs2 = 4*real(sum(abs(tmplt2.*(InvS21.*conj(out1) + InvS22.*conj(out2)))));
 
   hh1 = 4*real(sum(abs(tmplt1.*(InvS11.*conj(tmplt1) + InvS12.*conj(tmplt2)))));
   hh2 = 4*real(sum(abs(tmplt2.*(InvS21.*conj(tmplt1) + InvS22.*conj(tmplt2)))));

   %snrexp = [sqrt(2)*hs1/sqrt(hh1) sqrt(2)*hs2/sqrt(hh2)];
   snrexp = sqrt(2)*(hs1+hs2)/sqrt(hh1+hh2);
 
 end
 
end