diff --git a/Podd/Podd_LinkDef.h b/Podd/Podd_LinkDef.h index ae90010a9758546554362acb8fe485e860f84b79..a3ab2ab39ca339f9e5793aa5892fa1ea71d5e04c 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 fcadde76f419d9c939b83a4c10f03459538a39e2..8cea78a2810a56db7dbca15e8bdc737d055faa17 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 6d3bf67168ee1dae1b2f883d2d19a3a21730c057..4f7a2a073d678188d730ad9cde05e5c3b260762c 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 c6e38fca941759d8dde9b4253b009abdb3ef9f44..54d5cf206759fa3ab721209d29521319b4aae4c9 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 1b8345f0c6611b6a22ec225746eb0e090ca269c7..4d853ddb5bfb033fee4f1a810a7e8351001c8a39 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 96fa7ec567b8cbbd927b9290b111a254605eeec1..0750e6b9b3d0e759baffe9467b8936ea1946efb6 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) };