void very_simple_plot( double *y_arr, int size, char *xlabel, char *ylabel ) { double x_arr[MAX_X_ARR_SIZE]; int i; if ( size > MAX_X_ARR_SIZE ) my_error("ongr.c: MAX_X_ARR_SIZE too small.\n"); for ( i = 0 ; i < size ; i++ ) x_arr[i] = (double) i; simple_plot(x_arr,y_arr,size,xlabel,ylabel); }
results_t study_single_tsep(int tsep,ios::openmode mode=ios::out) { //fit pion mass jvec pion_rest=load("pion-00WW",0).simmetrized(1),pion_rest_alt=load("pion-00WP",0).simmetrized(1); jack M_Pi=constant_fit(effective_mass(pion_rest_alt),11,T/2-1,"plots/pion_rest_alt_effmass.xmg"); cout<<"Pion mass: "<<smart_print(M_Pi)<<endl; //fit kaon mass jvec kaon_rest=load("kaon-00WW",0).simmetrized(1),kaon_rest_alt=load("kaon-00WP",0).simmetrized(1); jack M_K=constant_fit(effective_mass(kaon_rest_alt),14,T/2-1,"plots/kaon_rest_alt_effmass.xmg"); cout<<"Kaon mass: "<<smart_print(M_K)<<endl; //plot the effective mass of less preicse corrs simple_plot("pion_rest_effmass",effective_mass(pion_rest)); simple_plot("kaon_rest_effmass",effective_mass(kaon_rest)); ////////////////////////////////// renormalization ////////////////////////////////// //load insertion of V0 between pions or kaons at rest jvec pp_V0_rest=(load("zpa-00",icombo(tsep,1))-atw*simmetric(load("zpa-00",icombo(T-tsep,1))))/(atw+1); jvec kk_V0_rest_a=(load("zka-00",icombo(tsep,1))-atw*simmetric(load("zka-00",icombo(T-tsep,1))))/(atw+1); jvec kk_V0_rest_b=(load("zkb-00",icombo(tsep,1))-atw*simmetric(load("zkb-00",icombo(T-tsep,1))))/(atw+1); simple_plot(combine("pp_V0_rest%02d",tsep).c_str(),aperiodic_effective_mass(pp_V0_rest)); //define tilded jvec pion_rest_tilde(T,njacks); jvec kaon_rest_tilde(T,njacks); for(int t=0;t<=T/2;t++) { pion_rest_tilde[t]=pion_rest[t]-pion_rest[T/2]*exp(-M_Pi*(T/2-t))/2; kaon_rest_tilde[t]=kaon_rest[t]-kaon_rest[T/2]*exp(-M_K*(T/2-t))/2; } for(int t=T/2;t<T;t++) { //pion_rest_tilde[t]=pion_rest[t]-pion_rest[T/2]*exp(-M_Pi*(T/2-t))/2; //kaon_rest_tilde[t]=kaon_rest[t]-kaon_rest[T/2]*exp(-M_K*(T/2-t))/2; pion_rest_tilde[t]=pion_rest[T/2]*exp(-M_Pi*(t-T/2))/2; kaon_rest_tilde[t]=kaon_rest[T/2]*exp(-M_K*(t-T/2))/2; } //plot the tilded simple_plot("pion_rest_tilde",pion_rest_tilde); simple_plot("kaon_rest_tilde",kaon_rest_tilde); //Zv jvec Zv_pion_rest_corr=-pion_rest_tilde[tsep]/pp_V0_rest; cout<<"1-Corr["<<tsep<<"]: "<<1+cov(pion_rest_tilde[tsep],pp_V0_rest[tsep/2])/sqrt(var(pion_rest_tilde[tsep])*var(pp_V0_rest[tsep/2]))<<endl; simple_plot("Zv_pion_rest",Zv_pion_rest_corr.subset(0,tsep)+0.005*tsep/4,tsep,mode); jvec Zv_kaon_rest_a_corr=-kaon_rest_tilde[tsep]/kk_V0_rest_a; simple_plot("Zv_kaon_rest_a",Zv_kaon_rest_a_corr.subset(0,tsep),tsep,mode); jvec Zv_kaon_rest_b_corr=-kaon_rest_tilde[tsep]/kk_V0_rest_b; simple_plot("Zv_kaon_rest_b",Zv_kaon_rest_b_corr.subset(0,tsep),tsep,mode); //extract Zv from pion and kaon_a at rest jack Zv_pion=constant_fit(Zv_pion_rest_corr.subset(0,tsep),tsep/2-tsep/4,tsep/2+tsep/4,combine("plots/Zv_pion%02d.xmg",tsep).c_str()); jack Zv_kaon_a=constant_fit(Zv_kaon_rest_a_corr,tsep/2-tsep/4,tsep/2+tsep/4); jack Zv_kaon_b=constant_fit(Zv_kaon_rest_b_corr,tsep/2-tsep/4,tsep/2+tsep/4); cerr<< " tsep: "<<tsep<< " pi_rest: "<<smart_print(Zv_pion)<< " k_rest_a: "<<smart_print(Zv_kaon_a)<< " k_rest_b: "<<smart_print(Zv_kaon_b)<<endl; //save results results_t results; results.Zv_pion=Zv_pion; results.Zv_kaon_a=Zv_kaon_a; results.Zv_kaon_b=Zv_kaon_b; return results; }