int main(int argc,char** argv){ double factor=atof(argv[1]); char s[100]; FILE* fp=fopen("jin.txt","r"); for(int i=0;i<2;i++)fgets(s,100,fp); int totalStep=10000006; double *autoCorr=new double[totalStep]; double *autox=new double[totalStep]; double *autoy=new double[totalStep]; double *autoz=new double[totalStep]; double *vx=new double[totalStep]; double *vy=new double[totalStep]; double *vz=new double[totalStep]; double *autoxAtom=new double[totalStep]; double *autoyAtom=new double[totalStep]; double *autozAtom=new double[totalStep]; for(int i=0;i<totalStep;i++){ autox[i]=0.0; autoy[i]=0.0; autoz[i]=0.0; } int step=0; int id; while(fscanf(fp,"%d%lf%lf%lf\n",&id,&vx[step],&vy[step],&vz[step])>0){ // if(step%100000==0)printf("%f\n",vx[step]); step++; } totalStep=step+1; //printf("%d\n",step); //printf("read done!\n"); getCorr(totalStep,autoxAtom,vx); //getCorr(totalStep,autoyAtom,vy); //getCorr(totalStep,autozAtom,vz); for(int j=0;j<step;j++){ autox[j]+=autoxAtom[j]; // autoy[j]+=autoyAtom[j]; // autoz[j]+=autozAtom[j]; } FILE* f1=fopen("jcor.txt","w"); int maxStep=int(totalStep/2+1); FILE* f2=fopen("jcortc.txt","w"); double tc=0; for(int i=0;i<=maxStep;i++){ // autoCorr[i]=autox[i]+autoy[i]+autoz[i]; tc+=autox[i]*factor; fprintf(f1,"%f\n",autox[i]); fprintf(f2,"%f\n",tc); } printf("%f\n",tc); return 0; }
void FitHist(TH1F* hPR, TH1F* hAB, TH1F* hEP){ for(Int_t iC=4; iC<NCENT; iC++){ for(Int_t iY=0; iY<NYo; iY++){ for(Int_t iP=0; iP<NPt; iP++){ //18 chi=0.; if (hAB[iC][iY][iP].Integral(90.,180.) == 0 || hAB[iC][iY][iP].Integral(0.,180.)== 0 ){ chi = 0.; } else { chi = sqrt(-2.*TMath::Log(2.*(hAB[iC][iY][iP].Integral(90.,180.)/hAB[iC][iY][iP].Integral(0.,180.)))); for(Int_t i=0; i<4; i++){ Rv[i][iC] = getCorr(i+1,chi); }} //-global-evet-resolution-- for(Int_t i=0; i<4; i++){ ci[i] = Rv[i][iC]; } ci[4]=1.0; //-temporary-set-to-unity--because-it-is--not-yet-calculated-- ci[5]=1.0; Float_t summ = hPR[iC][iY][iP]->GetSumOfWeights(); Int_t phibins = hPR[iC][iY][iP]->GetXaxis()->GetNbins(); if( summ > 0 ){ hPR[iC][iY][iP]->Fit("flows"); Char_t ds[100]; TText txt; for(Int_t i=0; i<6; i++){ vi[i] = flows->GetParameter(i); ei[i] = flows->GetParError( i); sprintf(ds, "v%i=%+5.4f +/- %5.4f",i+1, vi[i]/ci[i], ei[i]/ci[i]); txt.DrawTextNDC(0.25, 0.36-0.05*i, ds); if(summ>12*100 ){ if(ci[i]>0.000001){ hv[i][iC][iP]->SetBinContent(iY+2, vi[i]/ci[i]); hv[i][iC][iP]->SetBinError( iY+2, ei[i]/ci[i]); vsum[i][iC][iY][iP] = vi[i]/ci[i]; esum[i][iC][iY][iP] = ei[i]/ci[i]; //hs[i][iC][iP]->SetBinContent(iY+2, vi[i]/ci[i]); //hs[i][iC][iP]->SetBinError( iY+2, ei[i]/ci[i]); } } } } } } } }