{ char infile3[100]; Int_t i, bin; char fileline[100]; Double_t senergy[500],x[500],y[500],z[500],theta[500],phi[500],chisq[500]; Double_t LogE, LogA, bincenter; i=0; // sprintf(infile3,"/home/elina/chicos/data/5MeV/5MeV.dat"); sprintf(infile3,"/home/elina/chicos/data/1MeV/1MeV.dat"); FILE *fin = fopen(infile3, "r"); TNtupleD* data= new TNtupleD("data","data","i:LogE:x:y:z:theta:phi:chisq"); TH1F* specf = new TH1F("specf","Spectrum",15,16,19); specf->SetMarkerColor(kRed); specf->SetLineColor(kRed); specf->SetMarkerStyle(20); specf->SetLineWidth(2); specf->Sumw2(); specf->SetXTitle("Log(E)"); TH1F* fluxf=(TH1F*)specf->Clone(); TH1F* dataf=(TH1F*)specf->Clone(); specf->SetYTitle("Flux [N/m^2/sr/s/GeV]"); fluxf->SetYTitle("Flux*E^3 [eV^2/m^2/sr/s]"); while( fgets(fileline,99,fin) ) { sscanf(fileline,"%lf %lf %lf %lf %lf %lf %lf", senergy+i,x+i,y+i,z+i,theta+i,phi+i,chisq+i); ++i; } fclose(fin); for(i=0;i<500;i++){ LogE = TMath::Log10(senergy[i]); // if(LogE >= 15 && LogE <= 19){ dataf->Fill(LogE); data->Fill((Double_t)i+1,LogE,x[i],y[i],z[i],theta[i],phi[i],chisq[i]); // LogA = (-25541.0+5774.28*LogE-489.524*LogE*LogE+18.448*LogE*LogE*LogE // -0.260720*LogE*LogE*LogE*LogE+6.636); // 5MeV cutoff LogA = (3919.09-1049.07*LogE+102.74*LogE*LogE-4.38729*LogE*LogE*LogE +0.00692517*LogE*LogE*LogE*LogE+6.636); // 1MeV cutoff bin=specf->FindBin(LogE); bincenter=specf->GetBinCenter(bin); specf->Fill(LogE,TMath::Power(10,9.0-LogA-(bincenter-0.32))); fluxf->Fill(LogE,TMath::Power(10,3*LogE-LogA-(bincenter-0.32))); // } } data->SetLineColor(kRed); data->SetLineWidth(2); // data->AddFriend("full"); }