From f92e222a974ced5bb7404fcb54b66b20724828c4 Mon Sep 17 00:00:00 2001 From: Jure Bericic <bericic@jlab.org> Date: Mon, 27 Feb 2017 16:43:11 -0500 Subject: [PATCH] Added some checks on PSE125. --- src/THcConfigEvtHandler.cxx | 8 ++++++++ src/THcConfigEvtHandler.h | 1 + src/THcHitList.cxx | 2 +- src/THcRawAdcHit.cxx | 7 +++++++ 4 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/THcConfigEvtHandler.cxx b/src/THcConfigEvtHandler.cxx index c75b7db..6e7ae61 100644 --- a/src/THcConfigEvtHandler.cxx +++ b/src/THcConfigEvtHandler.cxx @@ -193,6 +193,14 @@ void THcConfigEvtHandler::PrintConfig() it++; } } + +Int_t THcConfigEvtHandler::IsPresent(Int_t crate) { + if(CrateInfoMap.find(crate)!=CrateInfoMap.end()) { + CrateInfo_t *cinfo = CrateInfoMap[crate]; + return cinfo->FADC250.present; + } + return(0); +} Int_t THcConfigEvtHandler::GetNSA(Int_t crate) { if(CrateInfoMap.find(crate)!=CrateInfoMap.end()) { CrateInfo_t *cinfo = CrateInfoMap[crate]; diff --git a/src/THcConfigEvtHandler.h b/src/THcConfigEvtHandler.h index 07007fd..dd2727c 100644 --- a/src/THcConfigEvtHandler.h +++ b/src/THcConfigEvtHandler.h @@ -25,6 +25,7 @@ public: virtual Int_t Analyze(THaEvData *evdata); virtual void AddEventType(Int_t evtype); virtual void PrintConfig(); + virtual Int_t IsPresent(Int_t crate); virtual Int_t GetNSA(Int_t crate); virtual Int_t GetNSB(Int_t crate); virtual Int_t GetNPED(Int_t crate); diff --git a/src/THcHitList.cxx b/src/THcHitList.cxx index 4569782..eafad16 100644 --- a/src/THcHitList.cxx +++ b/src/THcHitList.cxx @@ -223,7 +223,7 @@ Int_t THcHitList::DecodeToHitList( const THaEvData& evdata ) { } } else { // This is a Flash ADC - if (fPSE125) { // Set F250 parameters. + if (fPSE125 && fPSE125->IsPresent(d->crate)) { // Set F250 parameters. rawhit->SetF250Params( fPSE125->GetNSA(d->crate), fPSE125->GetNSB(d->crate), diff --git a/src/THcRawAdcHit.cxx b/src/THcRawAdcHit.cxx index 508b39b..60dd6ed 100644 --- a/src/THcRawAdcHit.cxx +++ b/src/THcRawAdcHit.cxx @@ -459,6 +459,13 @@ Double_t THcRawAdcHit::GetSampleInt() const { void THcRawAdcHit::SetF250Params(Int_t NSA, Int_t NSB, Int_t NPED) { + if (NSA < 0 || NSB < 0 || NPED < 0) { + TString msg = TString::Format( + "`THcRawAdcHit::SetF250Params`: One of the params is negative! NSA = %d NSB = %d NPED = %d", + NSA, NSB, NPED + ); + throw std::invalid_argument(msg.Data()); + } fNPedestalSamples = NPED; fNPeakSamples = NSA + NSB; fPeakPedestalRatio = 1.0*fNPeakSamples/fNPedestalSamples; -- GitLab