#include #include #include #include "TFile.h" #include "TTree.h" using namespace std; Int_t MakeKTUYRootFile(){ FILE *fp = fopen("./KTUY05_m246.dat","r"); TFile *f = new TFile("./KTUY05_m246.root","RECREATE"); TTree *tree = new TTree("KTUY05_m246","KTUY05_m246 data from ascii file"); char line[46]; struct DataOfKTUY05_t { Int_t ZZ, NN, AA; Float_t Mcal, Esh, alpha2, alpha4, alpha6, Sn, S2n, Sp, S2p; Int_t bSn, bS2n, bSp, bS2p, bBound, bExst; DataOfKTUY05_t () : ZZ(), NN(), AA(), Mcal(), Esh(), alpha2(), alpha4(), alpha6(), Sn(), S2n(), Sp(), S2p(), bSn(), bS2n(), bSp(), bS2p(), bBound(), bExst() {} }; DataOfKTUY05_t ktuydata[131][201], ktuydata_r, ktuydata_w; tree->Branch("KTUY05",&ktuydata_w.ZZ,"ZZ/I:NN:AA:Mcal/F:Esh:alpha2:alpha4:alpha6:Sn:S2n:Sp:S2p:bSn/I:bS2n:bSp:bS2p:bBound:bExst"); fgets(&line,46,fp); while (fgets(&line,46,fp)) { sscanf(&line[0],"%d%d%f%f%f%f%f", &ktuydata_r.ZZ, &ktuydata_r.NN, &ktuydata_r.Mcal, &ktuydata_r.Esh, &ktuydata_r.alpha2, &ktuydata_r.alpha4, &ktuydata_r.alpha6); ktuydata_r.bExst = 1; ktuydata_r.AA = ktuydata_r.ZZ + ktuydata_r.NN; ktuydata[ktuydata_r.ZZ][ktuydata_r.NN] = ktuydata_r; } for (Int_t i=2; i <= 130; i++) { for (Int_t j=2; j <= 200; j++) { if (ktuydata[i][j-1].bExst & ktuydata[i][j].bExst) { ktuydata[i][j].bSn = 1; ktuydata[i][j].Sn = ktuydata[i][j-1].Mcal - ktuydata[i][j].Mcal + 8.071; } if (ktuydata[i-1][j].bExst & ktuydata[i][j].bExst) { ktuydata[i][j].bSp = 1; ktuydata[i][j].Sp = ktuydata[i-1][j].Mcal - ktuydata[i][j].Mcal + 7.289; } if (ktuydata[i][j-2].bExst & ktuydata[i][j].bExst) { ktuydata[i][j].bS2n = 1; ktuydata[i][j].S2n = ktuydata[i][j-2].Mcal - ktuydata[i][j].Mcal + 2.* 8.071; } if (ktuydata[i-2][j].bExst & ktuydata[i][j].bExst) { ktuydata[i][j].bS2p = 1; ktuydata[i][j].S2p = ktuydata[i-2][j].Mcal - ktuydata[i][j].Mcal + 2.* 7.289; } if (( ktuydata[i][j].bSn & ( ktuydata[i][j].Sn <= 0.0)) || ( ktuydata[i][j].bSp & ( ktuydata[i][j].Sp <= 0.0)) || ( ktuydata[i][j].bS2n & ( ktuydata[i][j].S2n <= 0.0)) || ( ktuydata[i][j].bS2p & ( ktuydata[i][j].S2p <= 0.0))) { ktuydata[i][j].bBound = 0; }else{ if ( ktuydata[i][j].bSn || ktuydata[i][j].bSp || ktuydata[i][j].bS2n || ktuydata[i][j].bS2p ) { ktuydata[i][j].bBound = 1; }else{ ktuydata[i][j].bBound = 0; } } } } // for (Int_t i=1; i <= 130; i++) { // for (Int_t j=1; j <= 200; j++) { // cout << i << " " << j << " " // << ktuydata[i][j].Mcal << " " // << ktuydata[i][j].Sn << " " // << ktuydata[i][j].Sp << " " // << ktuydata[i][j].S2n << " " // << ktuydata[i][j].S2p << " " // << ktuydata[i][j].bBound << " " << endl; // } // } ktuydata[75][188].bBound = 0; for (Int_t i=1; i <= 130; i++) { for (Int_t j=1; j <= 200; j++) { if (ktuydata[i][j].bExst) { ktuydata_w = ktuydata[i][j]; tree->Fill(); } } } tree->Print(); fclose(fp); f->Write(); delete tree; delete f; return 0; }