/* V11.0 avec correction des temps, des energies + named_script ROOT Les mesures de corrections pour le TDC ont été refaites avec les voies T0, T2, T6 et T10 Nicolas CHARVIN - LMOPS modified : 29/09/2005 */ #include #define MAXBUFSIZE 1024 TCanvas *myCanvas = new TCanvas("myCanvas","PALS Display",200,10,600,480); int Join2Root() { Float_t Q2,Q5,Q8, T0, T2, T4, T6, T10, dummy; Int_t i, event_counter, ID=0, status, file_index, fileindex_start, fileindex_stop; FILE * fp, *fpLT; char buffer[MAXBUFSIZE]; char basename[255], filename_in[255], filename_out[255]; Double_t cor0, cor2, cor6, cor10; // Valeurs des correction en temps, mesurees le 28/09/05 cor0 = 36.2 / 35; cor2 = 36.0 / 35; cor6 = 36.86 / 35; cor10 = 35.64 / 35; TTree *mytree = new TTree("mytree","Mon_Premier_Tree"); mytree->Branch("ID",&ID,"ID/I"); mytree->Branch("event_counter",&event_counter,"event_counter/I"); mytree->Branch("Q2",&Q2,"Q2/F"); mytree->Branch("Q5",&Q5,"Q5/F"); mytree->Branch("T0",&T0,"T0/F"); mytree->Branch("T2",&T2,"T2/F"); mytree->Branch("T6",&T6,"T6/F"); mytree->Branch("T10",&T10,"T10/F"); cout << "Basename: "; cin >> basename; cout << "Du fichier # : "; cin >> fileindex_start; cout << "Au fichier # : "; cin >> fileindex_stop; for (int i=fileindex_start; i<=fileindex_stop; i++) { // Initialisation du random-generator sur l'horloge machine gRandom->SetSeed(0); sprintf(filename_in,"%s_%03d.join",basename, i); if ( (fp = fopen(filename_in,"r")) == NULL) { printf("Erreur d'ouverture de fichier sur %s \n",filename_in); break; } fgets(buffer, MAXBUFSIZE, fp); // je skippe la première ligne while(1) { status = fscanf(fp, "%d %f %f %f %f %f %f %f %f\n", &event_counter, &Q2, &T0, &T10, &Q5, &T6, &T2, &Q8, &T4); T0 = (T0 + gRandom->Rndm() - 0.5) * cor0; T2 = (T2 + gRandom->Rndm() - 0.5) * cor2; T6 = (T6 + gRandom->Rndm() - 0.5) * cor6; T10 = (T10 + gRandom->Rndm() - 0.5) * cor10; ID++; // ID est un indicateur du numéro d'event ( pas forcement lié a l'event counter des QDC/TDC), // incrémenté à chaque event if (status == EOF) break; mytree->Fill(); } fclose(fp); sprintf(filename_out,"%s_%03d.root",basename, i); TFile fout(filename_out,"RECREATE"); mytree->Write(); cout << filename_out << " done..." << endl; mytree->Reset(); } return(0); }