diff --git a/Generator/CMakeLists.txt b/Generator/CMakeLists.txt index 79fbb6a6dc67f24ef9c01104893d8ae8272732c0..43149bd050bea7d47b3336a8a24100cad971b8cf 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 c57a8e7ded7b0ba100c4d26cc4725537c6f2e78d..9db71153961d29ece2a4479d36bddfa8fb7dde98 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 b429475fee3f53e80c48b881a54fc1bbea324077..a37fa5edb610093a984f4a907f308d5f1fad50bc 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