Beispiel #1
0
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;
}
Beispiel #2
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]);
                                }
                            }
                        }
                    }
                }
            }
        }
    }