From de787b3ee21f12d25fe88c3526f64c938b651fe0 Mon Sep 17 00:00:00 2001 From: Mark Jones <jones@jlab.org> Date: Wed, 29 Nov 2017 08:22:54 -0500 Subject: [PATCH] Additional changes for adc reftime Modified so that the fGoodPosAdcPulseTime, fGoodNegAdcPulseTime or fGoodAdcPulseTime is set to kBig Modified THcShowerRawHit::SetReference to takeADC signals Modified THcTrigRawHit::SetReference to take ADC signals Modified THcShowerArray::ProcessHits so that fAdcTdcOffset add to frAdcPulseTime Modified THcShowerArray::ReadDatabase so that defaults for fAdcThreshold etc are before gHcParms->LoadParmValues --- src/THcAerogel.cxx | 4 ++-- src/THcCherenkov.cxx | 2 +- src/THcRawShowerHit.cxx | 12 +++++++----- src/THcScintillatorPlane.cxx | 4 ++-- src/THcShowerArray.cxx | 10 +++++----- src/THcShowerPlane.cxx | 4 ++-- src/THcTrigRawHit.cxx | 9 +++++---- 7 files changed, 24 insertions(+), 21 deletions(-) diff --git a/src/THcAerogel.cxx b/src/THcAerogel.cxx index 99bb5f5..94746cf 100644 --- a/src/THcAerogel.cxx +++ b/src/THcAerogel.cxx @@ -519,7 +519,7 @@ void THcAerogel::Clear(Option_t* opt) fGoodPosAdcPulseInt.at(ielem) = 0.0; fGoodPosAdcPulseIntRaw.at(ielem) = 0.0; fGoodPosAdcPulseAmp.at(ielem) = 0.0; - fGoodPosAdcPulseTime.at(ielem) = 0.0; + fGoodPosAdcPulseTime.at(ielem) = kBig; fPosNpe.at(ielem) = 0.0; } for (UInt_t ielem = 0; ielem < fGoodNegAdcPed.size(); ielem++) { @@ -527,7 +527,7 @@ void THcAerogel::Clear(Option_t* opt) fGoodNegAdcPulseInt.at(ielem) = 0.0; fGoodNegAdcPulseIntRaw.at(ielem) = 0.0; fGoodNegAdcPulseAmp.at(ielem) = 0.0; - fGoodNegAdcPulseTime.at(ielem) = 0.0; + fGoodNegAdcPulseTime.at(ielem) = kBig; fNegNpe.at(ielem) = 0.0; } diff --git a/src/THcCherenkov.cxx b/src/THcCherenkov.cxx index 4e6ecfd..a639970 100644 --- a/src/THcCherenkov.cxx +++ b/src/THcCherenkov.cxx @@ -330,7 +330,7 @@ void THcCherenkov::Clear(Option_t* opt) fGoodAdcPulseInt.at(ielem) = 0.0; fGoodAdcPulseIntRaw.at(ielem) = 0.0; fGoodAdcPulseAmp.at(ielem) = 0.0; - fGoodAdcPulseTime.at(ielem) = 0.0; + fGoodAdcPulseTime.at(ielem) = kBig; fNpe.at(ielem) = 0.0; } diff --git a/src/THcRawShowerHit.cxx b/src/THcRawShowerHit.cxx index 982266f..1a32508 100644 --- a/src/THcRawShowerHit.cxx +++ b/src/THcRawShowerHit.cxx @@ -83,11 +83,13 @@ void THcRawShowerHit::SetDataTimePedestalPeak( void THcRawShowerHit::SetReference(Int_t signal, Int_t reference) { - std::cerr - << "Warning:" - << " `THcRawShowerHit::SetReference`:" - << " ADC signal should not have reference time!" - << std::endl; + if (signal < fNAdcSignals) { + fAdcHits[signal].SetRefTime(reference); + } else { + throw std::out_of_range( + "`THcRawHodoHit::SetReference`: only signals `2` and `3` available!" + ); + } } diff --git a/src/THcScintillatorPlane.cxx b/src/THcScintillatorPlane.cxx index 1625aca..c74dad0 100644 --- a/src/THcScintillatorPlane.cxx +++ b/src/THcScintillatorPlane.cxx @@ -494,13 +494,13 @@ void THcScintillatorPlane::Clear( Option_t* ) fGoodPosAdcPed.at(ielem) = 0.0; fGoodPosAdcPulseInt.at(ielem) = 0.0; fGoodPosAdcPulseAmp.at(ielem) = 0.0; - fGoodPosAdcPulseTime.at(ielem) = 0.0; + fGoodPosAdcPulseTime.at(ielem) = kBig; } for (UInt_t ielem = 0; ielem < fGoodNegAdcPed.size(); ielem++) { fGoodNegAdcPed.at(ielem) = 0.0; fGoodNegAdcPulseInt.at(ielem) = 0.0; fGoodNegAdcPulseAmp.at(ielem) = 0.0; - fGoodNegAdcPulseTime.at(ielem) = 0.0; + fGoodNegAdcPulseTime.at(ielem) = kBig; } //Clear Good TDC Variables diff --git a/src/THcShowerArray.cxx b/src/THcShowerArray.cxx index 401976d..aca7f40 100644 --- a/src/THcShowerArray.cxx +++ b/src/THcShowerArray.cxx @@ -163,13 +163,13 @@ Int_t THcShowerArray::ReadDatabase( const TDatime& date ) }; fDebugAdc = 0; // Set ADC debug parameter to false unless set in parameter file - - gHcParms->LoadParmValues((DBRequest*)&list, prefix); fADCMode=kADCDynamicPedestal; fAdcTimeWindowMin=0; fAdcTimeWindowMax=10000; fAdcTdcOffset=0.0; fAdcThreshold=0.; + + gHcParms->LoadParmValues((DBRequest*)&list, prefix); fNelem = fNRows*fNColumns; fXPos = new Double_t* [fNRows]; @@ -483,7 +483,7 @@ void THcShowerArray::Clear( Option_t* ) fGoodAdcPed.at(ielem) = 0.0; fGoodAdcPulseInt.at(ielem) = 0.0; fGoodAdcPulseAmp.at(ielem) = 0.0; - fGoodAdcPulseTime.at(ielem) = 0.0; + fGoodAdcPulseTime.at(ielem) = kBig; fNumGoodAdcHits.at(ielem) = 0.0; fE.at(ielem) = 0.0; } @@ -913,7 +913,7 @@ Int_t THcShowerArray::ProcessHits(TClonesArray* rawhits, Int_t nexthit) } fEarray = 0; - + // Process raw hits. Get ADC hits for the plane, assign variables for each // channel. @@ -945,7 +945,7 @@ Int_t THcShowerArray::ProcessHits(TClonesArray* rawhits, Int_t nexthit) ((THcSignalHit*) frAdcPulseAmp->ConstructedAt(nrAdcHits))->Set(padnum, rawAdcHit.GetPulseAmp(thit)); ((THcSignalHit*) frAdcPulseTimeRaw->ConstructedAt(nrAdcHits))->Set(padnum, rawAdcHit.GetPulseTimeRaw(thit)); - ((THcSignalHit*) frAdcPulseTime->ConstructedAt(nrAdcHits))->Set(padnum, rawAdcHit.GetPulseTime(thit)); + ((THcSignalHit*) frAdcPulseTime->ConstructedAt(nrAdcHits))->Set(padnum, rawAdcHit.GetPulseTime(thit)+fAdcTdcOffset); if (rawAdcHit.GetPulseAmp(thit)>0&&rawAdcHit.GetPulseIntRaw(thit)>0) { ((THcSignalHit*) frAdcErrorFlag->ConstructedAt(nrAdcHits))->Set(padnum,0); diff --git a/src/THcShowerPlane.cxx b/src/THcShowerPlane.cxx index 38903f5..be73ef5 100644 --- a/src/THcShowerPlane.cxx +++ b/src/THcShowerPlane.cxx @@ -430,7 +430,7 @@ void THcShowerPlane::Clear( Option_t* ) fGoodPosAdcPulseIntRaw.at(ielem) = 0.0; fGoodPosAdcPulseInt.at(ielem) = 0.0; fGoodPosAdcPulseAmp.at(ielem) = 0.0; - fGoodPosAdcPulseTime.at(ielem) = 0.0; + fGoodPosAdcPulseTime.at(ielem) = kBig; fEpos.at(ielem) = 0.0; fNumGoodPosAdcHits.at(ielem) = 0.0; } @@ -440,7 +440,7 @@ void THcShowerPlane::Clear( Option_t* ) fGoodNegAdcPulseIntRaw.at(ielem) = 0.0; fGoodNegAdcPulseInt.at(ielem) = 0.0; fGoodNegAdcPulseAmp.at(ielem) = 0.0; - fGoodNegAdcPulseTime.at(ielem) = 0.0; + fGoodNegAdcPulseTime.at(ielem) = kBig; fEneg.at(ielem) = 0.0; fNumGoodNegAdcHits.at(ielem) = 0.0; } diff --git a/src/THcTrigRawHit.cxx b/src/THcTrigRawHit.cxx index 60e3b60..4d87b2e 100644 --- a/src/THcTrigRawHit.cxx +++ b/src/THcTrigRawHit.cxx @@ -217,12 +217,13 @@ void THcTrigRawHit::SetDataTimePedestalPeak( void THcTrigRawHit::SetReference(Int_t signal, Int_t reference) { - if (fNAdcSignals <= signal && signal < fNAdcSignals+fNTdcSignals) { + if (signal < fNAdcSignals) { + fAdcHits[signal].SetRefTime(reference); + } else if (signal < fNAdcSignals+fNTdcSignals) { fTdcHits[signal-fNAdcSignals].SetRefTime(reference); - } - else { + } else { throw std::out_of_range( - "`THcTrigRawHit::SetReference`: only signal `1` available!" + "`THcTrigRawHit::SetReference`: only signals `2` and `3` available!" ); } } -- GitLab