Skip to content
Snippets Groups Projects
Commit 69c55ed8 authored by lintao@ihep.ac.cn's avatar lintao@ihep.ac.cn
Browse files

WIP: migrate StdHepRdr.

parent 3b7aec88
No related branches found
No related tags found
No related merge requests found
...@@ -5,7 +5,7 @@ set(GenAlgo_srcs ...@@ -5,7 +5,7 @@ set(GenAlgo_srcs
src/GenAlgo.cpp src/GenAlgo.cpp
src/GenEvent.cpp src/GenEvent.cpp
src/GenReader.cpp src/GenReader.cpp
# src/StdHepRdr.cpp src/StdHepRdr.cpp
# src/GenPrinter.cpp # src/GenPrinter.cpp
# src/LCAscHepRdr.cc # src/LCAscHepRdr.cc
# src/HepevtRdr.cpp # src/HepevtRdr.cpp
......
...@@ -92,10 +92,10 @@ GenAlgo::execute() { ...@@ -92,10 +92,10 @@ GenAlgo::execute() {
StatusCode StatusCode
GenAlgo::finalize() { GenAlgo::finalize() {
cout << "finalize" << endl; // cout << "finalize" << endl;
for(auto gentool: m_genTools) { // for(auto gentool: m_genTools) {
if (gentool->finish()) {} // if (gentool->finish()) {}
else {cout << "finish Failed" << endl; return StatusCode::FAILURE; } // else {cout << "finish Failed" << endl; return StatusCode::FAILURE; }
} // }
return StatusCode::SUCCESS; return StatusCode::SUCCESS;
} }
...@@ -26,17 +26,10 @@ using namespace IMPL; ...@@ -26,17 +26,10 @@ using namespace IMPL;
using namespace plcio; using namespace plcio;
using namespace std; using namespace std;
DECLARE_COMPONENT(StdHepRdr)
StdHepRdr::StdHepRdr(string name){
m_stdhep_rdr = new LCStdHepRdrNew(name.c_str());
m_stdhep_rdr->printHeader();
m_total_event = m_stdhep_rdr->getNumberOfEvents() - 1 ;
m_processed_event=0;
}
StdHepRdr::~StdHepRdr(){ StdHepRdr::~StdHepRdr(){
delete m_stdhep_rdr; delete m_stdhep_rdr;
} }
bool StdHepRdr::mutate(MyHepMC::GenEvent& event){ bool StdHepRdr::mutate(MyHepMC::GenEvent& event){
...@@ -98,10 +91,40 @@ if(m_processed_event == m_total_event) {std::cout<<"Have read all events, end no ...@@ -98,10 +91,40 @@ if(m_processed_event == m_total_event) {std::cout<<"Have read all events, end no
else return false; else return false;
} }
bool StdHepRdr::configure(){ bool StdHepRdr::configure_gentool(){
return true; m_stdhep_rdr = new LCStdHepRdrNew(m_filename.value().c_str());
m_stdhep_rdr->printHeader();
if (m_stdhep_rdr->getNumberOfEvents()<=1) {
return false;
}
m_total_event = m_stdhep_rdr->getNumberOfEvents() - 1 ;
m_processed_event=0;
return true;
} }
bool StdHepRdr::finish(){ bool StdHepRdr::finish(){
return true; return true;
}
StatusCode
StdHepRdr::initialize() {
StatusCode sc;
if (not configure_gentool()) {
error() << "failed to initialize." << endmsg;
return StatusCode::FAILURE;
}
return sc;
}
StatusCode
StdHepRdr::finalize() {
StatusCode sc;
if (not finish()) {
error() << "Failed to finalize." << endmsg;
return StatusCode::FAILURE;
}
return sc;
} }
#ifndef StdHepRdr_h #ifndef StdHepRdr_h
#define StdHepRdr_h 1 #define StdHepRdr_h 1
#include "GaudiKernel/AlgTool.h"
#include "GenReader.h" #include "GenReader.h"
#include "GenEvent.h" #include "GenEvent.h"
...@@ -9,19 +11,30 @@ ...@@ -9,19 +11,30 @@
#include "UTIL/LCStdHepRdrNew.h" #include "UTIL/LCStdHepRdrNew.h"
class StdHepRdr: public GenReader{ class StdHepRdr: public extends<AlgTool, GenReader> {
public:
using extends::extends;
~StdHepRdr();
// 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:
lcio::LCStdHepRdrNew* m_stdhep_rdr{nullptr};
long m_total_event{-1};
long m_processed_event{-1};
// input file name
Gaudi::Property<std::string> m_filename{this, "Input"};
public:
StdHepRdr(string name);
~StdHepRdr();
bool configure();
bool mutate(MyHepMC::GenEvent& event);
bool finish();
bool isEnd();
private:
lcio::LCStdHepRdrNew* m_stdhep_rdr;
long m_total_event;
long m_processed_event;
}; };
#endif #endif
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment