diff --git a/src/THcAerogel.cxx b/src/THcAerogel.cxx index 026ff80c8848afd2c81d7092dfc5e0dbf6d09756..99bb5f5087fa43eeb8b63054822e98bcf033dd0e 100644 --- a/src/THcAerogel.cxx +++ b/src/THcAerogel.cxx @@ -305,6 +305,7 @@ Int_t THcAerogel::ReadDatabase( const TDatime& date ) {"aero_npe_thresh", &fNpeThresh, kDouble}, {"aero_adcTimeWindowMin", &fAdcTimeWindowMin, kDouble}, {"aero_adcTimeWindowMax", &fAdcTimeWindowMax, kDouble}, + {"aero_adc_tdc_offset", &fAdcTdcOffset, kDouble, 0, 1}, {"aero_debug_adc", &fDebugAdc, kInt, 0, 1}, {"aero_six_gev_data", &fSixGevData, kInt, 0, 1}, {"aero_pos_gain", fPosGain, kDouble, (UInt_t) fNelem}, @@ -322,6 +323,7 @@ Int_t THcAerogel::ReadDatabase( const TDatime& date ) fSixGevData = 0; // Set 6 GeV data parameter to false unless set in parameter file fDebugAdc = 0; // Set ADC debug parameter to false unless set in parameter file + fAdcTdcOffset = 0.0; gHcParms->LoadParmValues((DBRequest*)&list, prefix); @@ -600,7 +602,7 @@ Int_t THcAerogel::Decode( const THaEvData& evdata ) ((THcSignalHit*) frPosAdcPulseAmp->ConstructedAt(nrPosAdcHits))->Set(npmt, rawPosAdcHit.GetPulseAmp(thit)); ((THcSignalHit*) frPosAdcPulseTimeRaw->ConstructedAt(nrPosAdcHits))->Set(npmt, rawPosAdcHit.GetPulseTimeRaw(thit)); - ((THcSignalHit*) frPosAdcPulseTime->ConstructedAt(nrPosAdcHits))->Set(npmt, rawPosAdcHit.GetPulseTime(thit)); + ((THcSignalHit*) frPosAdcPulseTime->ConstructedAt(nrPosAdcHits))->Set(npmt, rawPosAdcHit.GetPulseTime(thit)+fAdcTdcOffset); if (rawPosAdcHit.GetPulseAmpRaw(thit) > 0) ((THcSignalHit*) fPosAdcErrorFlag->ConstructedAt(nrPosAdcHits))->Set(npmt, 0); if (rawPosAdcHit.GetPulseAmpRaw(thit) <= 0) ((THcSignalHit*) fPosAdcErrorFlag->ConstructedAt(nrPosAdcHits))->Set(npmt, 1); diff --git a/src/THcAerogel.h b/src/THcAerogel.h index 59794a9ee0cd8a947ce0a474629631a65824d257..99ec46430de72cdbffd142b96dd8b8271d6a9334 100644 --- a/src/THcAerogel.h +++ b/src/THcAerogel.h @@ -62,6 +62,7 @@ class THcAerogel : public THaNonTrackingDetector, public THcHitList { Double_t fNpeThresh; Double_t fAdcTimeWindowMin; Double_t fAdcTimeWindowMax; + Double_t fAdcTdcOffset; Double_t *fRegionValue; // Counting variables Int_t fTotNumAdcHits; diff --git a/src/THcCherenkov.cxx b/src/THcCherenkov.cxx index 40bc534788cb6ebea81be7c27a81e61dce2ae151..4e6ecfdc3be4416ea059431dfe10b6e8d2fb289f 100644 --- a/src/THcCherenkov.cxx +++ b/src/THcCherenkov.cxx @@ -205,12 +205,14 @@ Int_t THcCherenkov::ReadDatabase( const TDatime& date ) {"_debug_adc", &fDebugAdc, kInt, 0, 1}, {"_adcTimeWindowMin", &fAdcTimeWindowMin, kDouble}, {"_adcTimeWindowMax", &fAdcTimeWindowMax, kDouble}, + {"_adc_tdc_offset", &fAdcTdcOffset, kDouble, 0, 1}, {"_num_regions", &fNRegions, kInt}, {"_region", &fRegionValue[0], kDouble, (UInt_t) fRegionsValueMax}, {0} }; fDebugAdc = 0; // Set ADC debug parameter to false unless set in parameter file + fAdcTdcOffset = 0.0; gHcParms->LoadParmValues((DBRequest*)&list, prefix.c_str()); @@ -372,7 +374,7 @@ Int_t THcCherenkov::Decode( const THaEvData& evdata ) ((THcSignalHit*) frAdcPulseAmp->ConstructedAt(nrAdcHits))->Set(npmt, rawAdcHit.GetPulseAmp(thit)); ((THcSignalHit*) frAdcPulseTimeRaw->ConstructedAt(nrAdcHits))->Set(npmt, rawAdcHit.GetPulseTimeRaw(thit)); - ((THcSignalHit*) frAdcPulseTime->ConstructedAt(nrAdcHits))->Set(npmt, rawAdcHit.GetPulseTime(thit)); + ((THcSignalHit*) frAdcPulseTime->ConstructedAt(nrAdcHits))->Set(npmt, rawAdcHit.GetPulseTime(thit)+fAdcTdcOffset); if (rawAdcHit.GetPulseAmpRaw(thit) > 0) ((THcSignalHit*) fAdcErrorFlag->ConstructedAt(nrAdcHits))->Set(npmt, 0); if (rawAdcHit.GetPulseAmpRaw(thit) <= 0) ((THcSignalHit*) fAdcErrorFlag->ConstructedAt(nrAdcHits))->Set(npmt, 1); diff --git a/src/THcCherenkov.h b/src/THcCherenkov.h index 110a64f1b11f9410d97874c68667662e1a439954..86b69737e83c5e0c361f04dfb978eb882d8c46db 100644 --- a/src/THcCherenkov.h +++ b/src/THcCherenkov.h @@ -82,6 +82,7 @@ class THcCherenkov : public THaNonTrackingDetector, public THcHitList { Double_t fNpeThresh; Double_t fAdcTimeWindowMin; Double_t fAdcTimeWindowMax; + Double_t fAdcTdcOffset; Double_t* fRegionValue; // 6 Gev pedestal variables