From ed5c3d1a002bd08bb039cd7c6b1f148dd211c4f0 Mon Sep 17 00:00:00 2001 From: lintao <lintao51@gmail.com> Date: Sun, 10 Nov 2019 21:14:14 +0800 Subject: [PATCH] WIP: migrate SLCIORdr.cpp. --- Generator/CMakeLists.txt | 2 +- Generator/src/SLCIORdr.cpp | 39 +++++++++++++++++++++++++++++--------- Generator/src/SLCIORdr.h | 30 ++++++++++++++++++++--------- 3 files changed, 52 insertions(+), 19 deletions(-) diff --git a/Generator/CMakeLists.txt b/Generator/CMakeLists.txt index 79fbb6a6..43149bd0 100644 --- a/Generator/CMakeLists.txt +++ b/Generator/CMakeLists.txt @@ -9,7 +9,7 @@ set(GenAlgo_srcs src/GenPrinter.cpp # src/LCAscHepRdr.cc # src/HepevtRdr.cpp - # src/SLCIORdr.cpp + src/SLCIORdr.cpp # src/HepMCRdr.cpp src/GtGunTool.cpp ) diff --git a/Generator/src/SLCIORdr.cpp b/Generator/src/SLCIORdr.cpp index c57a8e7d..9db71153 100644 --- a/Generator/src/SLCIORdr.cpp +++ b/Generator/src/SLCIORdr.cpp @@ -31,13 +31,7 @@ using namespace IMPL; using namespace plcio; using namespace std; - -SLCIORdr::SLCIORdr(string name){ - -m_slcio_rdr = IOIMPL::LCFactory::getInstance()->createLCReader(); -m_slcio_rdr->open(name.c_str()); -m_processed_event=0; -} +DECLARE_COMPONENT(SLCIORdr) SLCIORdr::~SLCIORdr(){ delete m_slcio_rdr; @@ -160,10 +154,37 @@ bool SLCIORdr::isEnd(){ return false; } -bool SLCIORdr::configure(){ -return true; +bool SLCIORdr::configure_gentool(){ + m_slcio_rdr = IOIMPL::LCFactory::getInstance()->createLCReader(); + m_slcio_rdr->open(m_filename.value().c_str()); + m_processed_event=0; + + + return true; } bool SLCIORdr::finish(){ return true; } + + +StatusCode +SLCIORdr::initialize() { + StatusCode sc; + if (not configure_gentool()) { + error() << "failed to initialize." << endmsg; + return StatusCode::FAILURE; + } + + return sc; +} + +StatusCode +SLCIORdr::finalize() { + StatusCode sc; + if (not finish()) { + error() << "Failed to finalize." << endmsg; + return StatusCode::FAILURE; + } + return sc; +} diff --git a/Generator/src/SLCIORdr.h b/Generator/src/SLCIORdr.h index b429475f..a37fa5ed 100644 --- a/Generator/src/SLCIORdr.h +++ b/Generator/src/SLCIORdr.h @@ -1,6 +1,8 @@ #ifndef SLCIORdr_h #define SLCIORdr_h 1 +#include "GaudiKernel/AlgTool.h" + #include "GenReader.h" #include "GenEvent.h" @@ -13,19 +15,29 @@ #include "IO/LCReader.h" -class SLCIORdr: public GenReader{ +class SLCIORdr: public extends<AlgTool, GenReader> { public: - SLCIORdr(string name); + using extends::extends; + ~SLCIORdr(); - bool configure(); - bool mutate(MyHepMC::GenEvent& event); - bool finish(); - bool isEnd(); + + // Overriding initialize and finalize + StatusCode initialize() override; + StatusCode finalize() override; + + bool configure_gentool() override; + bool mutate(MyHepMC::GenEvent& event) override; + bool finish() override; + bool isEnd() override; private: - IO::LCReader* m_slcio_rdr; - long m_total_event; - long m_processed_event; + IO::LCReader* m_slcio_rdr{nullptr}; + long m_total_event{-1}; + long m_processed_event{-1}; + + // input file name + Gaudi::Property<std::string> m_filename{this, "Input"}; + }; #endif -- GitLab