def malowanieWykresuZbiorczego(wykres, ktoreZbocze, czas): poleWykresu = TCanvas("Odchylenia", "Odchylenia standardowe", 1280, 720) wykres.SetTitle("Odchylenia standardowe (zb. " + ktoreZbocze + ")") wykres.Draw() time.sleep(0.1) wykres.SetDirectory(plik) wykres.Write() poleWykresu.Print("Wykresy " + czas + "/Odchylenia " + ktoreZbocze + ".png") #odczyt danych z pliku przekonwertowanego na .root nazwaPliku = pliki.wybierzPlik(pliki.listaPlikow("root", "./")) plik = TFile(nazwaPliku) drzewo = plik.Get("Zestawy") liczbaDanych = drzewo.GetEntries() liczbaKanalow = drzewo.GetBranch("Zestaw").GetNleaves() / 2 czas = nazwaPliku[nazwaPliku.index("["):nazwaPliku.index("]") + 1] dane = odczytDanychZPliku(drzewo, liczbaDanych, liczbaKanalow) plik.Close() #tworzenie wykresów plik = TFile("histogramy " + czas + ".root", "recreate") #wykresy różnic między kanałami wykresy = stworzZmienneWykresowe(plik, liczbaKanalow)
def wezNumerKanalu(zestawTab): numerKanalu=0 for i in range(7): numerKanalu=numerKanalu*2+zestawTab[i+1] return numerKanalu struktura="struct DaneZKanalow {" for i in range(52): struktura=struktura+"Bool_t kanal"+str(i)+"op[32]; " struktura=struktura+"Bool_t kanal"+str(i)+"nar[32]; " struktura=struktura+"};" gROOT.ProcessLine(struktura) from ROOT import DaneZKanalow plikZrodlowyDanych=pliki.wybierzPlik(pliki.listaPlikow("txt","./")) plikDanych=open(plikZrodlowyDanych) odczyt=plikDanych.read() zestawyTekst=odczyt.split("\n\n") liczbaZestawow=len(zestawyTekst)-1 if plikZrodlowyDanych.find("[")>=0: data=plikZrodlowyDanych[plikZrodlowyDanych.index("["):plikZrodlowyDanych.index("]")+1] else: data="["+time.strftime("%d.%m.%Y %H:%M:%S")+"]" plik=TFile('dane '+data+'.root', 'RECREATE') drzewo=TTree("Zestawy","Drzewo z zestawami.") kanalyD=DaneZKanalow() struktura="kanal0op[32]/B:kanal0nar[32]"
wykres.Fill(i,j, pojemnikOdchylen.wezWartosc(ktoreZbocze, i, j)) for i in range(ileKanalow-1): wykres.GetXaxis().SetBinLabel(i+1,str(i+1)) wykres.GetYaxis().SetBinLabel(i+1,str(i)) def malowanieWykresuZbiorczego(wykres, ktoreZbocze, czas, katalog): poleWykresu=TCanvas("Odchylenia","Odchylenia standardowe",1280,720) wykres.SetTitle("Odchylenia standardowe (zb. "+ktoreZbocze+")") wykres.SetDirectory(katalog) wykres.Write() wykres.Draw("COLZ") time.sleep(1) poleWykresu.Print("Wykresy "+czas+"/Odchylenia "+ktoreZbocze+".png") #odczyt danych z pliku przekonwertowanego na .root nazwaPliku=pliki.wybierzPlik(pliki.listaPlikow("root","./"))#"./daneGener [19.07.2018 02:24:53].root" plik=TFile(nazwaPliku) drzewo=plik.Get("FTAB_Timeslots") liczbaDanych=drzewo.GetEntries() liczbaKanalow=52#drzewo.GetBranch("Zestaw").GetNleaves()/2 czas=nazwaPliku[nazwaPliku.index("["):nazwaPliku.index("]")+1] dane=odczytDanychZPliku(drzewo, liczbaDanych, liczbaKanalow) plik.Close() print dane #tworzenie wykresów #plik=TFile("histogramy "+czas+".root","recreate") #wykresy różnic między kanałami
# coding=utf-8 from ROOT import TFile, TTree import pliki import funkcjeGenKonw liczbaKanalow=52 #tworzenie i import struktury, która będzie wykorzystywana w drzewie funkcjeGenKonw.stworzStrukturePomiaru(liczbaKanalow) from ROOT import DaneZKanalow #odczyt danych z pliku txt sciezkaPlikuZrodlowego=pliki.wybierzPlik(pliki.listaPlikow("txt","./")) plikDanych=open(sciezkaPlikuZrodlowego) odczyt=plikDanych.read() zestawyTekst=odczyt.split("\n\n") liczbaZestawow=len(zestawyTekst)-1 data=funkcjeGenKonw.odczytajLubStworzDate(sciezkaPlikuZrodlowego) plik=TFile('dane '+data+'.root', 'RECREATE') drzewo=TTree("Zestawy","Drzewo z zestawami.") kanalyD=DaneZKanalow() struktura=funkcjeGenKonw.lancuchFormatuDanych(liczbaKanalow) galaz=drzewo.Branch("Zestaw",kanalyD,struktura) galaz.SetBasketSize(240) #konwersja odczytu pomiaru z konkretnych kanałów funkcjeGenKonw.konwertujIZapiszDane(drzewo, kanalyD, liczbaZestawow, zestawyTekst) #zapis przekonwertowanych danych w pliku root plik.Write()