From 93693dfd81c3ad69b8f4da2c512deb7b51e72d19 Mon Sep 17 00:00:00 2001 From: "Stephen A. Wood" <saw@jlab.org> Date: Thu, 27 Jul 2017 14:37:21 -0400 Subject: [PATCH] Remove 5000 word event size limit in THcScalerEvtHandler Use pointer to event from evdata->GetRawDataBuffer() instead of making a local copy of the event before scanning it for scaler data --- src/THcScalerEvtHandler.cxx | 15 ++------------- src/THcScalerEvtHandler.h | 1 - 2 files changed, 2 insertions(+), 14 deletions(-) diff --git a/src/THcScalerEvtHandler.cxx b/src/THcScalerEvtHandler.cxx index 91d6ca5..a84380c 100644 --- a/src/THcScalerEvtHandler.cxx +++ b/src/THcScalerEvtHandler.cxx @@ -61,19 +61,16 @@ using namespace Decoder; static const UInt_t ICOUNT = 1; static const UInt_t IRATE = 2; static const UInt_t MAXCHAN = 32; -static const UInt_t MAXTEVT = 5000; static const UInt_t defaultDT = 4; THcScalerEvtHandler::THcScalerEvtHandler(const char *name, const char* description) : THaEvtTypeHandler(name,description), evcount(0), ifound(0), fNormIdx(-1), dvars(0), dvarsFirst(0), fScalerTree(0), fUseFirstEvent(kFALSE) { - rdata = new UInt_t[MAXTEVT]; } THcScalerEvtHandler::~THcScalerEvtHandler() { - delete [] rdata; if (fScalerTree) { delete fScalerTree; } @@ -130,19 +127,11 @@ Int_t THcScalerEvtHandler::Analyze(THaEvData *evdata) // Parse the data, load local data arrays. - Int_t ndata = evdata->GetEvLength(); - if (ndata >= static_cast<Int_t>(MAXTEVT)) { - cout << "THcScalerEvtHandler:: ERROR: Event length crazy "<<endl; - ndata = MAXTEVT-1; - } + UInt_t *rdata = (UInt_t*) evdata->GetRawDataBuffer(); if (fDebugFile) *fDebugFile<<"\n\nTHcScalerEvtHandler :: Debugging event type "<<dec<<evdata->GetEvType()<<endl<<endl; - // local copy of data - // Why do we need a local copy of the data? - for (Int_t i=0; i<ndata; i++) rdata[i] = evdata->GetRawData(i); - - UInt_t *p = rdata; + UInt_t *p = (UInt_t*) rdata; UInt_t *plast = p+*p; // Index to last word in the bank diff --git a/src/THcScalerEvtHandler.h b/src/THcScalerEvtHandler.h index 41078c6..c4c0c44 100644 --- a/src/THcScalerEvtHandler.h +++ b/src/THcScalerEvtHandler.h @@ -47,7 +47,6 @@ private: std::vector<Decoder::GenScaler*> scalers; std::vector<HCScalerLoc*> scalerloc; Double_t evcount; - UInt_t *rdata; std::vector<Int_t> index; Int_t Nvars, ifound, fNormIdx, nscalers; Double_t *dvars; -- GitLab