From f26a79a94785a526f35bedb6904f595fec85e2f3 Mon Sep 17 00:00:00 2001 From: Whitney Armstrong <warmstrong@anl.gov> Date: Mon, 4 Feb 2019 11:10:02 -0600 Subject: [PATCH] Added a bunch of fixes for root IO modified: Podd/Podd_LinkDef.h modified: Podd/THaExtTarCor.cxx modified: Podd/THaExtTarCor.h modified: Podd/THaRunBase.cxx modified: Podd/THaRunBase.h modified: include/podd2/Logger.h --- Podd/Podd_LinkDef.h | 41 ++++++++++++++++++++++++++++++++++++++++- Podd/THaExtTarCor.cxx | 1 + Podd/THaExtTarCor.h | 3 ++- Podd/THaRunBase.cxx | 4 ++-- Podd/THaRunBase.h | 4 ++-- include/podd2/Logger.h | 42 ++++++++++++++++++++++-------------------- 6 files changed, 69 insertions(+), 26 deletions(-) diff --git a/Podd/Podd_LinkDef.h b/Podd/Podd_LinkDef.h index ae90010a..a3ab2ab3 100644 --- a/Podd/Podd_LinkDef.h +++ b/Podd/Podd_LinkDef.h @@ -15,10 +15,29 @@ #pragma link C++ nestedclass; #pragma link C++ nestedtypedef; -#pragma link C++ namespace Podd; +#pragma link C++ namespace Podd; #pragma link C++ namespace podd2; +#pragma link C++ class podd2::EmptyBase+; + +#pragma link C++ class podd2::AnalysisLogging<podd2::EmptyBase>+; +#pragma link C++ class podd2::CutLogging<podd2::EmptyBase>+; +#pragma link C++ class podd2::ConfigLogging<podd2::EmptyBase>+; +#pragma link C++ class podd2::DetectorLogging<podd2::EmptyBase>+; +#pragma link C++ class podd2::HitLogging<podd2::EmptyBase>+; +#pragma link C++ class podd2::ParameterLogging<podd2::EmptyBase>+; +#pragma link C++ class podd2::RunLogging<podd2::EmptyBase>+; +#pragma link C++ class podd2::SpectrometerLogging<podd2::EmptyBase>+; + +#pragma link C++ class podd2::RunLogging<TObject>+; + +#pragma link C++ class podd2::ParameterLogging<TNamed>+; + +//podd2::ParameterLogging<TNamed> +// +// + #pragma link C++ class THaVar+; #pragma link C++ class THaVarList+; #pragma link C++ class THaNamedList+; @@ -34,6 +53,7 @@ #pragma link C++ class THaCodaRun+; #pragma link C++ class THaRunParameters+; #pragma link C++ class THaApparatus+; +#pragma link C++ class podd2::SpectrometerLogging<THaApparatus>+; #pragma link C++ class THaSpectrometer+; #pragma link C++ class Podd::DecData+; #pragma link C++ class BdataLoc+; @@ -43,6 +63,10 @@ #pragma link C++ class RoclenLoc+; #pragma link C++ class BankData+; #pragma link C++ class THaAnalysisObject+; +//#pragma link C++ class podd2::AnalysisLogging<THaAnalysisObject>+; +#pragma link C++ class podd2::AnalysisLogging<THaAnalysisObject>+; +#pragma link C++ class podd2::DetectorLogging<THaAnalysisObject>+; + #pragma link C++ class THaDetectorBase+; #pragma link C++ class THaPhysicsModule+; #pragma link C++ class THaVertexModule+; @@ -115,6 +139,19 @@ #pragma link C++ class Podd::SimDecoder+; #pragma link C++ class Podd::CodaRawDecoder+; +#pragma link C++ class podd2::AnalysisLogging<THaPostProcess>+; + +#pragma link C++ class podd2::ConfigLogging<TObject>+; +#pragma link C++ class podd2::ConfigLogging<THaVarList>+; +#pragma link C++ class podd2::ConfigLogging<THaExtTarCor>+; +#pragma link C++ class podd2::ConfigLogging<THaBeamDet>+; +#pragma link C++ class podd2::ConfigLogging<THaPhysicsModule>+; +#pragma link C++ class podd2::ConfigLogging<THaNonTrackingDetector>+; +#pragma link C++ class podd2::ConfigLogging<THaEvtTypeHandler>+; +#pragma link C++ class podd2::ConfigLogging<THaSpectrometer>+; +#pragma link C++ class podd2::ConfigLogging<THaEvtTypeHandler>+; +#pragma link C++ class podd2::ConfigLogging<THaHelicityDet>+; + #ifdef ONLINE_ET #pragma link C++ class THaOnlRun+; @@ -155,4 +192,6 @@ #pragma link C++ function THaVar::THaVar( const char*, const char*, std::vector<double>&, const Int_t* ); #pragma link C++ function THaVar::THaVar( const char*, const char*, std::vector<float>&, const Int_t* ); + + #endif diff --git a/Podd/THaExtTarCor.cxx b/Podd/THaExtTarCor.cxx index fcadde76..8cea78a2 100644 --- a/Podd/THaExtTarCor.cxx +++ b/Podd/THaExtTarCor.cxx @@ -49,6 +49,7 @@ #include "VarDef.h" //_____________________________________________________________________________ + THaExtTarCor::THaExtTarCor( const char* name, const char* description, const char* spectro, const char* vertex ) : THaPhysicsModule(name,description), fThetaCorr(0.0), fDeltaCorr(0.0), diff --git a/Podd/THaExtTarCor.h b/Podd/THaExtTarCor.h index 6d3bf671..4f7a2a07 100644 --- a/Podd/THaExtTarCor.h +++ b/Podd/THaExtTarCor.h @@ -16,7 +16,8 @@ class THaVertexModule; class THaExtTarCor : public THaPhysicsModule, public THaTrackingModule { public: - THaExtTarCor( const char* name, const char* description, + + THaExtTarCor( const char* name = "derp", const char* description = "" , const char* spectro="", const char* vertex="" ); virtual ~THaExtTarCor(); diff --git a/Podd/THaRunBase.cxx b/Podd/THaRunBase.cxx index c6e38fca..54d5cf20 100644 --- a/Podd/THaRunBase.cxx +++ b/Podd/THaRunBase.cxx @@ -26,7 +26,7 @@ static const char* DEFRUNPARAM = "THaRunParameters"; //_____________________________________________________________________________ THaRunBase::THaRunBase( const char* description ) : - podd2::RunLogging<TNamed>(NOTINIT, description ), + TNamed(NOTINIT, description ), podd2::RunLogging<podd2::EmptyBase>(), fNumber(-1), fType(0), fDate(UNDEFDATE,0), fNumAnalyzed(0), fDBRead(kFALSE), fIsInit(kFALSE), fOpened(kFALSE), fAssumeDate(kFALSE), fDataSet(0), fDataRead(0), fDataRequired(kDate), fParam(0), @@ -39,7 +39,7 @@ THaRunBase::THaRunBase( const char* description ) : //_____________________________________________________________________________ THaRunBase::THaRunBase( const THaRunBase& rhs ) : - podd2::RunLogging<TNamed>( rhs ), fNumber(rhs.fNumber), fType(rhs.fType), + TNamed( rhs ),podd2::RunLogging<podd2::EmptyBase>(), fNumber(rhs.fNumber), fType(rhs.fType), fDate(rhs.fDate), fNumAnalyzed(rhs.fNumAnalyzed), fDBRead(rhs.fDBRead), fIsInit(rhs.fIsInit), fOpened(kFALSE), fAssumeDate(rhs.fAssumeDate), fDataSet(rhs.fDataSet), fDataRead(rhs.fDataRead), diff --git a/Podd/THaRunBase.h b/Podd/THaRunBase.h index 1b8345f0..4d853ddb 100644 --- a/Podd/THaRunBase.h +++ b/Podd/THaRunBase.h @@ -16,7 +16,7 @@ class THaEvData; #include "podd2/Logger.h" -class THaRunBase : public podd2::RunLogging<TNamed> { +class THaRunBase : public TNamed, public podd2::RunLogging<podd2::EmptyBase> { public: THaRunBase( const char* description="" ); @@ -36,7 +36,7 @@ public: // Main functions virtual const UInt_t* GetEvBuffer() const = 0; - virtual Int_t Init(); + virtual Int_t Init(); virtual Int_t Open() = 0; virtual Int_t ReadEvent() = 0; virtual Int_t SkipToEndOfFile(Int_t skip_max = -1){ return 0;} diff --git a/include/podd2/Logger.h b/include/podd2/Logger.h index 96fa7ec5..0750e6b9 100644 --- a/include/podd2/Logger.h +++ b/include/podd2/Logger.h @@ -1,6 +1,8 @@ #ifndef podd2_Logger_hh #define podd2_Logger_hh +#include "TObject.h" + #include "spdlog/spdlog.h" #include "spdlog/sinks/stdout_color_sinks.h" //support for stdout logging #include "spdlog/sinks/basic_file_sink.h" // support for basic file logging @@ -11,7 +13,10 @@ namespace podd2 { std::shared_ptr<spdlog::logger> make_logger(std::string name, std::string file); } - struct EmptyBase {}; + struct EmptyBase { + virtual ~EmptyBase(){} + ClassDef(EmptyBase,1) + }; template <typename Base> class RunLogging : public Base { @@ -27,6 +32,8 @@ namespace podd2 { } //_logger->set_pattern("[%t] [%n] %^[%l]%$ %v"); } + virtual ~RunLogging(){} + ClassDef(RunLogging,1) }; template <typename Base> @@ -40,27 +47,10 @@ namespace podd2 { _logger = spdlog::get("config"); if(!_logger) { _logger = log::make_logger("config","logs/config.txt"); - //std::vector<spdlog::sink_ptr> sinks; - //sinks.push_back(std::make_shared<spdlog::sinks::stdout_color_sink_mt>()); - ////auto console_sink = std::make_shared<spdlog::sinks::stdout_color_sink_mt>(); - //sinks[0]->set_level(spdlog::level::info); - ////console_sink->set_pattern("[multi_sink_example] [%^%l%$] %v"); - //sinks[0]->set_pattern("[%t] [%n] %^[%l]%$ %v"); - - //sinks.push_back( - // std::make_shared<spdlog::sinks::basic_file_sink_mt>("logs/multisink.txt", true)); - ////auto file_sink = std::make_shared<spdlog::sinks::basic_file_sink_mt>("logs/multisink.txt", true); - //sinks[1]->set_level(spdlog::level::trace); - - //_logger = std::make_shared<spdlog::logger>("config", std::begin(sinks), std::end(sinks)); - //_logger->set_level(spdlog::level::debug); - //_logger->set_pattern("[%t] [%n] %^[%l]%$ %v"); - //_logger->warn("this should appear in both console and file"); - //_logger->info("this message should not appear in the console, only in the file"); - ////_logger = spdlog::stdout_color_mt("config"); - //spdlog::register_logger(_logger); } } + virtual ~ConfigLogging(){} + ClassDef(ConfigLogging,1) }; template <typename Base> @@ -77,6 +67,8 @@ namespace podd2 { } //_param_logger->set_pattern("[%t] [%n] %^[%l]%$ %v"); } + virtual ~ParameterLogging(){} + ClassDef(ParameterLogging,1) }; template <typename Base> @@ -93,6 +85,8 @@ namespace podd2 { } //_ana_logger->set_pattern("[%t] [%n] %^[%l]%$ %v"); } + virtual ~AnalysisLogging(){} + ClassDef(AnalysisLogging,1) }; template <typename Base> @@ -109,6 +103,8 @@ namespace podd2 { } //_hit_logger->set_pattern("[%t] [%n] %^[%l]%$ %v"); } + virtual ~HitLogging(){} + ClassDef(HitLogging,1) }; template <typename Base> @@ -125,6 +121,8 @@ namespace podd2 { } //_cut_logger->set_pattern("[%t] [%n] %^[%l]%$ %v"); } + virtual ~CutLogging(){} + ClassDef(CutLogging,1) }; @@ -142,6 +140,8 @@ namespace podd2 { } //_det_logger->set_pattern("[%t] [%n] %^[%l]%$ %v"); } + virtual ~DetectorLogging(){} + ClassDef(DetectorLogging,1) }; template <typename Base> @@ -158,6 +158,8 @@ namespace podd2 { } //_spec_logger->set_pattern("[%t] [%n] %^[%l]%$ %v"); } + virtual ~SpectrometerLogging(){} + ClassDef(SpectrometerLogging,1) }; -- GitLab