From 3200b73313162ae94a229c7d3463cdf49bceb3bd Mon Sep 17 00:00:00 2001 From: Gordon McCann Date: Sat, 18 Dec 2021 15:40:53 -0500 Subject: [PATCH] Switched build systems to premake, more flexible at cost of some auto-finding with ROOT. Changed build process such that static lib EventBuilderCore is generated and then linked to build EventBuilder and EventBuilderGui classes. Gui dictionary is now staticly linked (undefined symbols were an issue on some platforms). Minor bugfixes. --- CMakeLists.txt | 25 ---- include/DataStructs.h | 2 + include/EVBMainFrame.h | 108 ----------------- include/FileViewFrame.h | 46 -------- premake5.lua | 217 +++++++++++++++++++++++++++++++++++ src/CMakeLists.txt | 146 ----------------------- src/EventBuilder.cpp | 3 + src/evb/ChannelMap.cpp | 1 + src/evb/CompassFile.cpp | 3 +- src/evb/CompassRun.cpp | 7 +- src/evb/CutHandler.cpp | 1 + src/evb/EVBApp.cpp | 6 +- src/evb/FP_kinematics.cpp | 2 +- src/evb/FastSort.cpp | 1 + src/evb/FlagHandler.cpp | 1 + src/evb/Logger.cpp | 1 + src/evb/Logger.h | 2 + src/evb/MassLookup.cpp | 1 + src/evb/OrderChecker.cpp | 1 + src/evb/RunCollector.cpp | 1 + src/evb/SFPAnalyzer.cpp | 1 + src/evb/SFPPlotter.cpp | 1 + src/evb/ShiftMap.cpp | 1 + src/evb/SlowSort.cpp | 1 + src/evb/Stopwatch.cpp | 1 + src/gui_main.cpp | 1 + src/guidict/CMakeLists.txt | 38 ------ src/guidict/EVBMainFrame.cpp | 18 ++- src/main.cpp | 1 + src/spsdict/CMakeLists.txt | 38 ------ src/spsdict/DataStructs.h | 2 + 31 files changed, 264 insertions(+), 414 deletions(-) delete mode 100644 CMakeLists.txt delete mode 100644 include/EVBMainFrame.h delete mode 100644 include/FileViewFrame.h create mode 100644 premake5.lua delete mode 100644 src/CMakeLists.txt create mode 100644 src/EventBuilder.cpp delete mode 100644 src/guidict/CMakeLists.txt delete mode 100644 src/spsdict/CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt deleted file mode 100644 index eaeb68d..0000000 --- a/CMakeLists.txt +++ /dev/null @@ -1,25 +0,0 @@ -cmake_minimum_required(VERSION 3.13) -project(SPS_SABRE_EventBuilder) -set(CMAKE_CXX_STANDARD 11) - -find_package(ROOT 6.22 CONFIG REQUIRED) - -if(${ROOT_VERSION} VERSION_LESS "6.20") - include("${ROOT_DIR}/modules/RootNewMacros.cmake") - # For ROOT versions than 6.16, things break - # if nothing is in the global include list! - if (${ROOT_VERSION} VERSION_LESS "6.16") - include_directories(ROOT_NONEXISTENT_DIRECTORY_HACK) - endif() -endif() - -if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) - set(CMAKE_INSTALL_PREFIX ${CMAKE_CURRENT_SOURCE_DIR} CACHE PATH "..." FORCE) -endif(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) - -set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib") - -set(PCH_DIR ${CMAKE_CURRENT_LIST_DIR}/src) - -add_subdirectory(vendor/spdlog) -add_subdirectory(src) \ No newline at end of file diff --git a/include/DataStructs.h b/include/DataStructs.h index e0c3a35..d57fb39 100644 --- a/include/DataStructs.h +++ b/include/DataStructs.h @@ -6,6 +6,8 @@ #ifndef DATA_STRUCTS_H #define DATA_STRUCTS_H +#include + struct DPPChannel { double Timestamp; diff --git a/include/EVBMainFrame.h b/include/EVBMainFrame.h deleted file mode 100644 index 0afb519..0000000 --- a/include/EVBMainFrame.h +++ /dev/null @@ -1,108 +0,0 @@ -#ifndef EVBMAINFRAME_H -#define EVBMAINFRAME_H - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "../evb/EVBApp.h" - - -class EVBMainFrame : public TGMainFrame -{ -public: - EVBMainFrame(const TGWindow* p, UInt_t w, UInt_t h); - virtual ~EVBMainFrame(); - void CloseWindow(); - void HandleMenuSelection(int id); - void DoOpenWorkdir(); - void DoOpenCMapfile(); - void DoOpenSMapfile(); - void DoOpenScalerfile(); - void DoOpenCutfile(); - void DoRun(); - void HandleTypeSelection(int box, int entry); - bool SetParameters(); - void DisplayWorkdir(const char* dir); - void DisplayCMap(const char* file); - void DisplaySMap(const char* file); - void DisplayScaler(const char* file); - void DisplayCut(const char* file); - void SaveConfig(const char* file); - void LoadConfig(const char* file); - void UpdateWorkdir(); - void UpdateCMap(); - void UpdateSMap(); - void UpdateScaler(); - void UpdateCut(); - void RunPlot(); - void RunMerge(const char* dir, const char* file); - void DisableAllInput(); - void EnableAllInput(); - void SetProgressBarPosition(long value, long total); - - - enum WidgetId - { - WorkDir, - Cmap, - Smap, - Scaler, - Cut, - PlotF, - BField, - Bke, - Theta, - ZT, - AT, - ZP, - AP, - ZE, - AE, - SlowWind, - FastWind_IC, - FastWind_Sabre, - TypeBox, - RMin, - RMax, - M_Load_Config, - M_Save_Config, - M_Exit - }; - - ClassDef(EVBMainFrame, 0); - -private: - TGTextButton *fRunButton, *fOpenWorkButton, *fOpenCMapButton, *fOpenSMapButton, *fOpenScalerButton, *fOpenCutButton; - TGTextEntry *fWorkField; - TGTextEntry *fCMapField, * fSMapField; - TGTextEntry *fScalerField, *fCutField; - TGComboBox *fTypeBox; - - TGNumberEntryField *fZTField, *fATField, *fZPField, *fAPField, *fZEField, *fAEField; - TGNumberEntryField *fBField, *fBKEField, *fThetaField; - TGNumberEntryField *fSlowWindowField, *fFastICField, *fFastSABREField; - TGNumberEntryField *fRMinField, *fRMaxField; - - TGHProgressBar* fProgressBar; - - TGPopupMenu *fFileMenu; - - TGFileInfo* fInfo; - - EventBuilder::EVBApp fBuilder; - - int counter; - UInt_t MAIN_W, MAIN_H; - - -}; -#endif diff --git a/include/FileViewFrame.h b/include/FileViewFrame.h deleted file mode 100644 index 237c533..0000000 --- a/include/FileViewFrame.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - - FileViewFrame.h - Wrapper class on a TGTransientFrame (temporary frame assoc. with a main frame) - Designed to graphically display directories and files for selection. Takes in a type - to specify the signal pathing. - - Written by G.W. McCann Sep. 2020 - -*/ - -#ifndef FILEVIEWFRAME_H -#define FILEVIEWFRAME_H - -#include "EVBMainFrame.h" -#include -#include -#include -#include -#include - -class FileViewFrame { - - RQ_OBJECT("FileViewFrame"); //ROOT wrapping into the gui environment -public: - FileViewFrame(const TGWindow* p, const TGFrame* main, UInt_t w, UInt_t h, EVBMainFrame *parent, int type); - virtual ~FileViewFrame(); - void CloseWindow(); - void DoOk(); - void DoCancel(); - void DoDoubleClick(TGLVEntry* entry, int id); - void DisplayDir(const TString& name); - void SendText(const char* text); // *SIGNAL* - ClassDef(FileViewFrame, 0); //ROOT requirement - -private: - TGTransientFrame *fMain; - TGTextButton *fOkButton, *fCancelButton; - TGTextEntry *fNameField; - TGFileContainer *fContents; - TGListView *fViewer; - std::string suffix; - bool dirFlag; -}; - -#endif \ No newline at end of file diff --git a/premake5.lua b/premake5.lua new file mode 100644 index 0000000..0481183 --- /dev/null +++ b/premake5.lua @@ -0,0 +1,217 @@ +workspace "EVB" + architecture "x64" + configurations { + "Release", + "Debug" + } + +ROOTIncludeDir = "/home/gordon/cern/root-6.22.02/root-install/include" +ROOTLibDir = "/home/gordon/cern/root-6.22.02/root-install/lib" + +project "SPSDict" + kind "SharedLib" + language "C++" + cppdialect "c++11" + targetdir "./lib/" + objdir "./objs/" + + prebuildcommands { + "rootcint -f src/spsdict/sps_dict.cxx src/spsdict/DataStructs.h src/spsdict/LinkDef_sps.h", + "{COPY} src/spsdict/*.pcm ./lib/" + } + + postbuildcommands { + "{COPY} src/spsdict/DataStructs.h ./include/" + } + + files { + "src/spsdict/DataStructs.h", + "src/spsdict/*.cpp", + "src/spsdict/*.cxx" + } + + includedirs { + "./", + "src/spsdict", + } + + sysincludedirs { + ROOTIncludeDir + } + + libdirs { + ROOTLibDir + } + + links { + "Gui", "Core", "Imt", "RIO", "Net", "Hist", + "Graf", "Graf3d", "Gpad", "ROOTDataFrame", "ROOTVecOps", + "Tree", "TreePlayer", "Rint", "Postscript", "Matrix", + "Physics", "MathCore", "Thread", "MultiProc", "m", "dl" + } + + filter "system:macosx or linux" + linkoptions { + "-pthread", + "-rdynamic" + } + + filter "configurations:Debug" + symbols "On" + + filter "configurations:Release" + optimize "On" + +project "EventBuilderCore" + kind "StaticLib" + language "C++" + cppdialect "c++11" + targetdir "./lib/" + objdir "./objs/" + pchheader "EventBuilder.h" + pchsource "./src/EventBuilder.cpp" + + files { + "src/spsdict/DataStructs.h", + "src/evb/*.cpp", + "src/evb/*.h" + } + + defines "ETC_DIR_PATH=\"./etc/\"" + + includedirs { + "./", + "src/", + "vendor/spdlog/include", + "src/evb", + "src/spsdict", + "src/guidict" + } + + sysincludedirs { + ROOTIncludeDir + } + + libdirs { + ROOTLibDir, + } + + links { + "SPSDict", "Gui", "Core", "Imt", "RIO", "Net", "Hist", + "Graf", "Graf3d", "Gpad", "ROOTDataFrame", "ROOTVecOps", + "Tree", "TreePlayer", "Rint", "Postscript", "Matrix", + "Physics", "MathCore", "Thread", "MultiProc", "m", "dl" + } + + filter "system:macosx or linux" + linkoptions { + "-pthread", + "-rdynamic" + } + + filter "configurations:Debug" + symbols "On" + + filter "configurations:Release" + optimize "On" + +project "EventBuilderGui" + kind "ConsoleApp" + language "C++" + cppdialect "c++11" + targetdir "./bin/" + objdir "./objs/" + + prebuildcommands { + "rootcint -f src/guidict/gui_dict.cxx src/guidict/EVBMainFrame.h src/guidict/FileViewFrame.h src/guidict/LinkDef_Gui.h", + "{COPY} src/guidict/*.pcm ./bin/" + } + + files { + "src/guidict/FileViewFrame.h", + "src/guidict/EVBMainFrame.h", + "src/guidict/*.cpp", + "src/guidict/gui_dict.cxx", + "src/gui_main.cpp" + } + + includedirs { + "./", + "vendor/spdlog/include", + "src/evb", + "src/spsdict", + "src/guidict" + } + + sysincludedirs { + ROOTIncludeDir + } + + libdirs { + ROOTLibDir, + } + + links { + "EventBuilderCore", "SPSDict", "Gui", "Core", "Imt", "RIO", "Net", "Hist", + "Graf", "Graf3d", "Gpad", "ROOTDataFrame", "ROOTVecOps", + "Tree", "TreePlayer", "Rint", "Postscript", "Matrix", + "Physics", "MathCore", "Thread", "MultiProc", "m", "dl" + } + + filter "system:macosx or linux" + linkoptions { + "-pthread", + "-rdynamic" + } + + filter "configurations:Debug" + symbols "On" + + filter "configurations:Release" + optimize "On" + +project "EventBuilder" + kind "ConsoleApp" + language "C++" + cppdialect "c++11" + targetdir "./bin/" + objdir "./objs/" + + files { + "src/main.cpp" + } + + includedirs { + "src/", + "vendor/spdlog/include", + "src/evb", + "src/spsdict", + "src/guidict" + } + + sysincludedirs { + ROOTIncludeDir + } + + libdirs { + ROOTLibDir, + } + + links { + "EventBuilderCore", "SPSDict", "Gui", "Core", "Imt", "RIO", "Net", "Hist", + "Graf", "Graf3d", "Gpad", "ROOTDataFrame", "ROOTVecOps", + "Tree", "TreePlayer", "Rint", "Postscript", "Matrix", + "Physics", "MathCore", "Thread", "MultiProc", "m", "dl" + } + + filter "system:macosx or linux" + linkoptions { + "-pthread", + "-rdynamic" + } + + filter "configurations:Debug" + symbols "On" + + filter "configurations:Release" + optimize "On" \ No newline at end of file diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt deleted file mode 100644 index 6d74707..0000000 --- a/src/CMakeLists.txt +++ /dev/null @@ -1,146 +0,0 @@ -add_subdirectory(spsdict) -add_subdirectory(guidict) - -add_executable(EventBuilder) -target_compile_definitions(EventBuilder PUBLIC ETC_DIR_PATH="${CMAKE_CURRENT_SOURCE_DIR}/../etc/") -target_sources(EventBuilder - PRIVATE - main.cpp - evb/ChannelMap.cpp - evb/ChannelMap.h - evb/CompassFile.cpp - evb/CompassFile.h - evb/CompassRun.cpp - evb/CompassRun.h - evb/CutHandler.cpp - evb/CutHandler.h - evb/EVBApp.cpp - evb/EVBApp.h - evb/FastSort.cpp - evb/FastSort.h - evb/FlagHandler.cpp - evb/FlagHandler.h - evb/FP_kinematics.cpp - evb/FP_kinematics.h - evb/MassLookup.cpp - evb/MassLookup.h - evb/OrderChecker.cpp - evb/OrderChecker.h - evb/RunCollector.cpp - evb/RunCollector.h - evb/SFPAnalyzer.cpp - evb/SFPAnalyzer.h - evb/SFPPlotter.cpp - evb/SFPPlotter.h - evb/SlowSort.cpp - evb/SlowSort.h - evb/Stopwatch.cpp - evb/Stopwatch.h - evb/ShiftMap.cpp - evb/ShiftMap.h - evb/Logger.h - evb/Logger.cpp - spsdict/DataStructs.h -) -target_include_directories(EventBuilder PUBLIC ${CMAKE_CURRENT_LIST_DIR} ${CMAKE_CURRENT_LIST_DIR}/evb ${CMAKE_CURRENT_LIST_DIR}/spsdict ${SPDLOG_INCLUDE}) -target_precompile_headers(EventBuilder PUBLIC ${PCH_DIR}/EventBuilder.h) -target_link_libraries(EventBuilder - PUBLIC - SPSDict - ROOT::Gui - ROOT::Core - ROOT::Gpad - ROOT::Graf3d - ROOT::Graf - ROOT::Hist - ROOT::Imt - ROOT::MathCore - ROOT::Matrix - ROOT::MultiProc - ROOT::Net - ROOT::Physics - ROOT::Postscript - ROOT::RIO - ROOT::ROOTDataFrame - ROOT::ROOTVecOps - ROOT::Rint - ROOT::Thread - ROOT::TreePlayer - ROOT::Tree - spdlog::spdlog -) - - -add_executable(EventBuilderGui) -target_compile_definitions(EventBuilderGui PUBLIC ETC_DIR_PATH="${CMAKE_CURRENT_SOURCE_DIR}/../etc/") -target_sources(EventBuilderGui - PRIVATE - gui_main.cpp - evb/ChannelMap.cpp - evb/ChannelMap.h - evb/CompassFile.cpp - evb/CompassFile.h - evb/CompassRun.cpp - evb/CompassRun.h - evb/CutHandler.cpp - evb/CutHandler.h - evb/EVBApp.cpp - evb/EVBApp.h - evb/FastSort.cpp - evb/FastSort.h - evb/FlagHandler.cpp - evb/FlagHandler.h - evb/FP_kinematics.cpp - evb/FP_kinematics.h - evb/MassLookup.cpp - evb/MassLookup.h - evb/OrderChecker.cpp - evb/OrderChecker.h - evb/RunCollector.cpp - evb/RunCollector.h - evb/SFPAnalyzer.cpp - evb/SFPAnalyzer.h - evb/SFPPlotter.cpp - evb/SFPPlotter.h - evb/SlowSort.cpp - evb/SlowSort.h - evb/Stopwatch.cpp - evb/Stopwatch.h - evb/ShiftMap.cpp - evb/ShiftMap.h - evb/Logger.h - evb/Logger.cpp - spsdict/DataStructs.h - guidict/EVBMainFrame.h - guidict/FileViewFrame.h -) -target_include_directories(EventBuilderGui PUBLIC ${CMAKE_CURRENT_LIST_DIR} ${CMAKE_CURRENT_LIST_DIR}/evb ${CMAKE_CURRENT_LISTDIR}/spsdict ${CMAKE_CURRENT_LIST_DIR}/guidict ${SPDLOG_INCLUDE}) -target_precompile_headers(EventBuilderGui REUSE_FROM EventBuilder) -target_link_libraries(EventBuilderGui - PUBLIC - SPSDict - GUIDict - ROOT::Gui - ROOT::Core - ROOT::Gpad - ROOT::Graf3d - ROOT::Graf - ROOT::Hist - ROOT::Imt - ROOT::MathCore - ROOT::Matrix - ROOT::MultiProc - ROOT::Net - ROOT::Physics - ROOT::Postscript - ROOT::RIO - ROOT::ROOTDataFrame - ROOT::ROOTVecOps - ROOT::Rint - ROOT::Thread - ROOT::TreePlayer - ROOT::Tree - spdlog::spdlog -) - -install(TARGETS EventBuilder EventBuilderGui RUNTIME DESTINATION bin) \ No newline at end of file diff --git a/src/EventBuilder.cpp b/src/EventBuilder.cpp new file mode 100644 index 0000000..9b9e67c --- /dev/null +++ b/src/EventBuilder.cpp @@ -0,0 +1,3 @@ +//For MSVC pch + +#include "EventBuilder.h" \ No newline at end of file diff --git a/src/evb/ChannelMap.cpp b/src/evb/ChannelMap.cpp index 943ba0b..fcbdc8d 100644 --- a/src/evb/ChannelMap.cpp +++ b/src/evb/ChannelMap.cpp @@ -6,6 +6,7 @@ Written by G.W. McCann Oct. 2020 */ +#include "EventBuilder.h" #include "ChannelMap.h" namespace EventBuilder { diff --git a/src/evb/CompassFile.cpp b/src/evb/CompassFile.cpp index ca9e3ab..5012da3 100644 --- a/src/evb/CompassFile.cpp +++ b/src/evb/CompassFile.cpp @@ -8,6 +8,7 @@ Written by G.W. McCann Oct. 2020 */ +#include "EventBuilder.h" #include "CompassFile.h" namespace EventBuilder { @@ -86,7 +87,7 @@ namespace EventBuilder { m_file->seekg(0, std::ios_base::beg); - delete firstHit; + delete[] firstHit; return 24 + nsamples*16; diff --git a/src/evb/CompassRun.cpp b/src/evb/CompassRun.cpp index e606247..2ef9a52 100644 --- a/src/evb/CompassRun.cpp +++ b/src/evb/CompassRun.cpp @@ -9,6 +9,7 @@ Updated to also handle scaler data. -- GWM Oct. 2020 */ +#include "EventBuilder.h" #include "CompassRun.h" #include "RunCollector.h" #include "SlowSort.h" @@ -247,7 +248,7 @@ namespace EventBuilder { { count = 0; flush_count++; - m_progressCallback(count, m_totalHits); + m_progressCallback(flush_count*flush, m_totalHits); } if(!GetHitsFromFiles()) @@ -315,7 +316,7 @@ namespace EventBuilder { { count = 0; flush_count++; - m_progressCallback(count, m_totalHits); + m_progressCallback(flush_count*flush, m_totalHits); } if(!GetHitsFromFiles()) @@ -405,7 +406,7 @@ namespace EventBuilder { { count = 0; flush_count++; - m_progressCallback(count, m_totalHits); + m_progressCallback(flush_count*flush, m_totalHits); } if(!GetHitsFromFiles()) diff --git a/src/evb/CutHandler.cpp b/src/evb/CutHandler.cpp index c3a4cbd..520f98f 100644 --- a/src/evb/CutHandler.cpp +++ b/src/evb/CutHandler.cpp @@ -1,3 +1,4 @@ +#include "EventBuilder.h" #include "CutHandler.h" namespace EventBuilder { diff --git a/src/evb/EVBApp.cpp b/src/evb/EVBApp.cpp index badfc29..bd55ef1 100644 --- a/src/evb/EVBApp.cpp +++ b/src/evb/EVBApp.cpp @@ -6,6 +6,7 @@ Written by G.W. McCann Oct. 2020 */ +#include "EventBuilder.h" #include #include "EVBApp.h" #include "RunCollector.h" @@ -20,7 +21,8 @@ namespace EventBuilder { EVBApp::EVBApp() : m_rmin(0), m_rmax(0), m_ZT(0), m_AT(0), m_ZP(0), m_AP(0), m_ZE(0), m_AE(0), m_ZR(0), m_AR(0), m_B(0), m_Theta(0), m_BKE(0), m_progressFraction(0.1), m_workspace("none"), m_mapfile("none"), m_shiftfile("none"), - m_cutList("none"), m_SlowWindow(0), m_FastWindowIonCh(0), m_FastWindowSABRE(0) { + m_cutList("none"), m_scalerfile("none"), m_SlowWindow(0), m_FastWindowIonCh(0), m_FastWindowSABRE(0) + { SetProgressCallbackFunc(BIND_PROGRESS_CALLBACK_FUNCTION(EVBApp::DefaultProgressCallback)); } @@ -30,7 +32,7 @@ namespace EventBuilder { void EVBApp::DefaultProgressCallback(long curVal, long totalVal) { - double fraction = curVal/totalVal; + double fraction = ((double)curVal)/totalVal; EVB_INFO("Percent of run built: {0}", fraction*100); } diff --git a/src/evb/FP_kinematics.cpp b/src/evb/FP_kinematics.cpp index f01fdc8..8c1d968 100644 --- a/src/evb/FP_kinematics.cpp +++ b/src/evb/FP_kinematics.cpp @@ -31,6 +31,7 @@ */ +#include "EventBuilder.h" #include #include "MassLookup.h" #include "FP_kinematics.h" @@ -97,7 +98,6 @@ namespace EventBuilder { double denom = ME + MR - sqrt(MP*ME*EP/EE)*cos(angle); K /= denom; - std::cout<<"Delta Z= "<<-1*rho*DISP*MAG*K< #include "spdlog/spdlog.h" +#include "spdlog/fmt/ostr.h" namespace EventBuilder { diff --git a/src/evb/MassLookup.cpp b/src/evb/MassLookup.cpp index 972f5de..4352589 100644 --- a/src/evb/MassLookup.cpp +++ b/src/evb/MassLookup.cpp @@ -8,6 +8,7 @@ of this map (MASS) for use throughout code it is included into. Written by G.W. McCann Aug. 2020 */ +#include "EventBuilder.h" #include "MassLookup.h" namespace EventBuilder { diff --git a/src/evb/OrderChecker.cpp b/src/evb/OrderChecker.cpp index e7ad1f7..55db24b 100644 --- a/src/evb/OrderChecker.cpp +++ b/src/evb/OrderChecker.cpp @@ -5,6 +5,7 @@ Written by G.W. McCann Oct. 2020 */ +#include "EventBuilder.h" #include "OrderChecker.h" namespace EventBuilder { diff --git a/src/evb/RunCollector.cpp b/src/evb/RunCollector.cpp index 725afb1..3c983e1 100644 --- a/src/evb/RunCollector.cpp +++ b/src/evb/RunCollector.cpp @@ -1,3 +1,4 @@ +#include "EventBuilder.h" #include "RunCollector.h" #include #include diff --git a/src/evb/SFPAnalyzer.cpp b/src/evb/SFPAnalyzer.cpp index d645f88..a4524bc 100644 --- a/src/evb/SFPAnalyzer.cpp +++ b/src/evb/SFPAnalyzer.cpp @@ -9,6 +9,7 @@ * * Position calibrations swapped as of Aug. 2021 due to detector fixes -- GWM */ +#include "EventBuilder.h" #include "SFPAnalyzer.h" namespace EventBuilder { diff --git a/src/evb/SFPPlotter.cpp b/src/evb/SFPPlotter.cpp index 1067c36..8aa7205 100644 --- a/src/evb/SFPPlotter.cpp +++ b/src/evb/SFPPlotter.cpp @@ -6,6 +6,7 @@ *Created Jan 2020 by GWM */ +#include "EventBuilder.h" #include "SFPPlotter.h" #include diff --git a/src/evb/ShiftMap.cpp b/src/evb/ShiftMap.cpp index b7c56e5..91b8eda 100644 --- a/src/evb/ShiftMap.cpp +++ b/src/evb/ShiftMap.cpp @@ -9,6 +9,7 @@ Written by G.W. McCann Oct. 2020 */ +#include "EventBuilder.h" #include "ShiftMap.h" namespace EventBuilder { diff --git a/src/evb/SlowSort.cpp b/src/evb/SlowSort.cpp index 57db405..85edd47 100644 --- a/src/evb/SlowSort.cpp +++ b/src/evb/SlowSort.cpp @@ -7,6 +7,7 @@ * *Refurbished and updated Jan 2020 GWM */ +#include "EventBuilder.h" #include "SlowSort.h" namespace EventBuilder { diff --git a/src/evb/Stopwatch.cpp b/src/evb/Stopwatch.cpp index 8447d56..95feb6e 100644 --- a/src/evb/Stopwatch.cpp +++ b/src/evb/Stopwatch.cpp @@ -5,6 +5,7 @@ Written by G.W. McCann Oct. 2020 */ +#include "EventBuilder.h" #include "Stopwatch.h" namespace EventBuilder { diff --git a/src/gui_main.cpp b/src/gui_main.cpp index c06da98..601a322 100644 --- a/src/gui_main.cpp +++ b/src/gui_main.cpp @@ -1,3 +1,4 @@ +#include "evb/Logger.h" #include "spsdict/DataStructs.h" #include #include "guidict/EVBMainFrame.h" diff --git a/src/guidict/CMakeLists.txt b/src/guidict/CMakeLists.txt deleted file mode 100644 index 9dfc751..0000000 --- a/src/guidict/CMakeLists.txt +++ /dev/null @@ -1,38 +0,0 @@ -root_generate_dictionary(G__GUIDict EVBMainFrame.h FileViewFrame.h LINKDEF LinkDef_Gui.h) - -add_library(GUIDict SHARED EVBMainFrame.cpp FileViewFrame.cpp EVBMainFrame.h FileViewFrame.h G__GUIDict.cxx) -add_custom_command(TARGET GUIDict - POST_BUILD - COMMAND cp ${CMAKE_CURRENT_BINARY_DIR}/libGUIDict_rdict.pcm ${CMAKE_INSTALL_PREFIX}/lib/ - VERBATIM) -target_include_directories(GUIDict PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} ${PCH_DIR} ${SPDLOG_INCLUDE} ${CMAKE_CURRENT_SOURCE_DIR}/../evb) -target_precompile_headers(GUIDict PUBLIC ${PCH_DIR}/EventBuilder.h) -set_target_properties(GUIDict PROPERTIES PUBLIC_HEADER "EVBMainFrame.h;FileViewFrame.h") -target_link_libraries(GUIDict - PUBLIC - ROOT::Gui - ROOT::Core - ROOT::Gpad - ROOT::Graf3d - ROOT::Graf - ROOT::Hist - ROOT::Imt - ROOT::MathCore - ROOT::Matrix - ROOT::MultiProc - ROOT::Net - ROOT::Physics - ROOT::Postscript - ROOT::RIO - ROOT::ROOTDataFrame - ROOT::ROOTVecOps - ROOT::Rint - ROOT::Thread - ROOT::TreePlayer - ROOT::Tree - spdlog::spdlog -) - -install(TARGETS GUIDict - LIBRARY DESTINATION lib - PUBLIC_HEADER DESTINATION include) \ No newline at end of file diff --git a/src/guidict/EVBMainFrame.cpp b/src/guidict/EVBMainFrame.cpp index 1823a31..1e5203f 100644 --- a/src/guidict/EVBMainFrame.cpp +++ b/src/guidict/EVBMainFrame.cpp @@ -276,12 +276,14 @@ void EVBMainFrame::HandleMenuSelection(int id) if(id == M_Save_Config) { new TGFileDialog(gClient->GetRoot(), this, kFDOpen, fInfo); - SaveConfig(fInfo->fFilename); + if(fInfo->fFilename) + SaveConfig(fInfo->fFilename); } else if(id == M_Load_Config) { new TGFileDialog(gClient->GetRoot(), this, kFDOpen, fInfo); - LoadConfig(fInfo->fFilename); + if(fInfo->fFilename) + LoadConfig(fInfo->fFilename); } else if(id == M_Exit) CloseWindow(); @@ -295,25 +297,29 @@ void EVBMainFrame::DoOpenWorkdir() void EVBMainFrame::DoOpenCMapfile() { new TGFileDialog(gClient->GetRoot(), this, kFDOpen, fInfo); - DisplayCMap(fInfo->fFilename); + if(fInfo->fFilename) + DisplayCMap(fInfo->fFilename); } void EVBMainFrame::DoOpenSMapfile() { new TGFileDialog(gClient->GetRoot(), this, kFDOpen, fInfo); - DisplaySMap(fInfo->fFilename); + if(fInfo->fFilename) + DisplaySMap(fInfo->fFilename); } void EVBMainFrame::DoOpenScalerfile() { new TGFileDialog(gClient->GetRoot(), this, kFDOpen, fInfo); - DisplayScaler(fInfo->fFilename); + if(fInfo->fFilename) + DisplayScaler(fInfo->fFilename); } void EVBMainFrame::DoOpenCutfile() { new TGFileDialog(gClient->GetRoot(), this, kFDOpen, fInfo); - DisplayCut(fInfo->fFilename); + if(fInfo->fFilename) + DisplayCut(fInfo->fFilename); } void EVBMainFrame::DoRun() diff --git a/src/main.cpp b/src/main.cpp index bdb72b6..43f5b63 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,3 +1,4 @@ +#include "evb/Logger.h" #include "spsdict/DataStructs.h" #include "evb/EVBApp.h" #include "evb/Stopwatch.h" diff --git a/src/spsdict/CMakeLists.txt b/src/spsdict/CMakeLists.txt deleted file mode 100644 index c6e51ef..0000000 --- a/src/spsdict/CMakeLists.txt +++ /dev/null @@ -1,38 +0,0 @@ -root_generate_dictionary(G__SPSDict DataStructs.h LINKDEF LinkDef_sps.h) - -add_library(SPSDict SHARED DataStructs.h DataStructs.cpp G__SPSDict.cxx) -add_custom_command(TARGET SPSDict - POST_BUILD - COMMAND cp ${CMAKE_CURRENT_BINARY_DIR}/libSPSDict_rdict.pcm ${CMAKE_INSTALL_PREFIX}/lib/ - VERBATIM) -target_include_directories(SPSDict PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} ${PCH_DIR} ${SPDLOG_INCLUDE} ${CMAKE_CURRENT_SOURCE_DIR}/../evb) -target_precompile_headers(SPSDict PUBLIC ${PCH_DIR}/EventBuilder.h) -set_target_properties(SPSDict PROPERTIES PUBLIC_HEADER "DataStructs.h") -target_link_libraries(SPSDict - PUBLIC - ROOT::Gui - ROOT::Core - ROOT::Gpad - ROOT::Graf3d - ROOT::Graf - ROOT::Hist - ROOT::Imt - ROOT::MathCore - ROOT::Matrix - ROOT::MultiProc - ROOT::Net - ROOT::Physics - ROOT::Postscript - ROOT::RIO - ROOT::ROOTDataFrame - ROOT::ROOTVecOps - ROOT::Rint - ROOT::Thread - ROOT::TreePlayer - ROOT::Tree - spdlog::spdlog -) - -install(TARGETS SPSDict - LIBRARY DESTINATION lib - PUBLIC_HEADER DESTINATION include) \ No newline at end of file diff --git a/src/spsdict/DataStructs.h b/src/spsdict/DataStructs.h index e0c3a35..d57fb39 100644 --- a/src/spsdict/DataStructs.h +++ b/src/spsdict/DataStructs.h @@ -6,6 +6,8 @@ #ifndef DATA_STRUCTS_H #define DATA_STRUCTS_H +#include + struct DPPChannel { double Timestamp;