8 #ifndef LIBRARIES_DREBUILDFROMRAWFADC_FACTORY_H_
9 #define LIBRARIES_DREBUILDFROMRAWFADC_FACTORY_H_
15 #include <JANA/JFactory.h>
16 #include <JANA/JEventLoop.h>
42 BUILDER* hitBuilder =
nullptr;
53 virtual const char*
Tag() {
54 return (
std::string(BASE_FACTORY::Tag()) + BUILDER::getTagString()).c_str();
58 virtual jerror_t init(
void)
override;
59 virtual jerror_t brun(jana::JEventLoop *eventLoop, int32_t runnumber)
61 virtual jerror_t evnt(jana::JEventLoop *eventLoop, uint64_t eventNumber)
63 virtual jerror_t erun(
void)
override;
64 virtual jerror_t fini(
void)
override;
69 template<
typename BASE_FACTORY,
typename BUILDER>
76 template<
typename BASE_FACTORY,
typename BUILDER>
78 jana::JEventLoop *eventLoop, int32_t runnumber) {
79 BASE_FACTORY::brun(eventLoop, runnumber);
82 hitBuilder =
new BUILDER( eventLoop );
88 template<
typename BASE_FACTORY,
typename BUILDER>
90 jana::JEventLoop* eventLoop, uint64_t eventNumber) {
95 vector<const DTACHit*> baseHitVector;
96 eventLoop->Get(baseHitVector,
"");
126 vector<DTACHit*> newHitVector = (*hitBuilder)(baseHitVector);
127 for (
auto newHit : newHitVector) {
128 this->AppendData(newHit);
139 template<
typename BASE_FACTORY,
typename BUILDER>
141 if (hitBuilder !=
nullptr) {
143 hitBuilder =
nullptr;
145 BASE_FACTORY::erun();
152 template<
typename BASE_FACTORY,
typename BUILDER>
154 BASE_FACTORY::fini();
virtual jerror_t erun(void) override
Called everytime run number changes, if brun has been called.
virtual const char * Tag()
virtual jerror_t brun(jana::JEventLoop *eventLoop, int32_t runnumber) override
Called everytime a new run number is detected.
virtual jerror_t fini(void) override
Called after last event of last event source has been processed.
DRebuildFromRawFADC_factory()
virtual jerror_t init(void) override
virtual ~DRebuildFromRawFADC_factory()
virtual jerror_t evnt(jana::JEventLoop *eventLoop, uint64_t eventNumber) override
Called every event.