diff --git a/DB_Track.cpp b/DB_Track.cpp index 0c89fac..aa46d2e 100644 --- a/DB_Track.cpp +++ b/DB_Track.cpp @@ -6,45 +6,91 @@ // #include +#include #include "TApplication.h" #include "TrackFinder.hpp" #include "TH2D.h" +#include "TCanvas.h" +#include "TSystem.h" int main(int argc, char* argv[]) { TApplication App("tapp", &argc, argv); TH2D *twoDhisto = new TH2D("2Dhisto","2Dhisto", 100, 0, 32, 100, 0, 32); + TCanvas *canvas = new TCanvas(); std::vector ch_id; std::vector sec; std::vector nsec; std::vector amp; - int x = 0; - int y = 0; + std::vector x_v; + std::vector y_v; + + int iterator = 0; + int null = 0; + + canvas -> cd(0); TrackFinder finder; - if(finder.FindTrack()) + + while(true) { - finder.GetTrack(ch_id, sec, nsec, amp); - - for(int i = 0; i < ch_id.size(); i++) + if(std::cin.get() == '\n') { - x = 0; - y = 0; - if(ch_id[i] < 32) + twoDhisto -> Reset(); + x_v.clear(); + y_v.clear(); + + if(finder.FindTrack()) { - x = ch_id[i]; + finder.GetTrack(ch_id, sec, nsec, amp); + for(int i = 0; i < ch_id.size(); i++) + { + if(ch_id[i] < 32) + { + x_v.push_back(ch_id[i]); + } + else + { + y_v.push_back(ch_id[i] - 32); + } + + } + if(x_v.size() == 0) + { + for(int i = 0; i < y_v.size(); i++) + { + twoDhisto -> Fill(null, y_v[i]); + } + } + if(y_v.size() == 0) + { + for(int i = 0; i < x_v.size(); i++) + { + twoDhisto -> Fill(x_v[i], null); + } + } + if(x_v.size() > 0 && y_v.size() > 0) + { + for(int z = 0; z < x_v.size(); z++) + { + for(int j = 0; j < y_v.size(); j++) + { + twoDhisto -> Fill(x_v[z], y_v[j]); + } + } + } } - else - { - y = ch_id[i] - 32; - } - twoDhisto -> Fill(x, y); + iterator++; + twoDhisto -> Draw("colz"); + canvas -> Update(); + gSystem -> ProcessEvents(); } - twoDhisto -> Draw("lego2"); } + std::cout << iterator << std::endl; + App.Run(); return 0; } diff --git a/include/TrackFinder.hpp b/include/TrackFinder.hpp index 57d67fb..3a56333 100644 --- a/include/TrackFinder.hpp +++ b/include/TrackFinder.hpp @@ -25,9 +25,7 @@ public: private: std::ifstream file; std::string line; - int interval = 700000; //nanosec - - int iterator = 0; + int interval = 900000; //nanosec int ch_id_1 = 0; int sec_1 = 0; diff --git a/source/TrackFinder.cpp b/source/TrackFinder.cpp index 9811844..badb8a0 100644 --- a/source/TrackFinder.cpp +++ b/source/TrackFinder.cpp @@ -50,7 +50,7 @@ bool TrackFinder::FindTrack() sec.erase(sec.begin(), sec.end()); nsec.erase(nsec.begin(), nsec.end()); amp.erase(amp.begin(), amp.end()); - while(1) + while(!file.eof()) { getline(file, line); std::istringstream is(line); @@ -95,6 +95,7 @@ bool TrackFinder::FindTrack() return true; } } + return false; } void TrackFinder::GetTrack(std::vector &ch, std::vector &s, std::vector &ns, std::vector &a)