#pragma once #include <iostream> #include "TApplication.h" #include "TCanvas.h" #include "TMath.h" #include "TH2F.h" #include "TGraph.h" #include "TStyle.h" #include "TEllipse.h" #include "../Headers/setup.h" class Image { private: TH2D* histo; void initDrawImage(); // gridlines const int Nl = 19; // Number of drawn latitudes const int NL = 19; // Number of drawn longitudes int M = 30; std::vector<TGraph*> latitudes; std::vector<TGraph*> longitudes; void drawGridlines(); // source marker TEllipse* sourceMarker; void drawSource(); public: // bool finished=false; const Setup* config; TCanvas* canvas; void addCone(const std::vector<Cone> cones); // void closed() { std::cout << "Close app" << '\n'; finished = true; gApplication->Terminate(0);} Image(const Setup* config_): config(config_) { initDrawImage(); drawGridlines(); drawSource(); } ~Image(){ if (canvas) delete canvas; if (histo) delete histo; for (int i = 0; i < Nl; i++) { if (latitudes[i]) delete latitudes[i]; } for (int i = 0; i < NL; i++) { if (longitudes[i]) delete longitudes[i]; } if (!sourceMarker) { delete sourceMarker; } } // ClassDef(Image,0) }; int Backprojection(const Setup* config, const std::vector<Cone>& cones, std::vector<std::vector<double>>& image); int drawImage(const Setup* config, const std::vector<std::vector<double>>& image); // convert cartesian to worldmap coordinates int aitoff2xy(const double& l, const double& b, double &Al, double &Ab);