diff --git a/src/THcShower.cxx b/src/THcShower.cxx index e1dbf46bdbec3bd8569e010e7ea950008f75bea1..622473fad9f08cb27d92941caafadc4fbd7ad3cd 100644 --- a/src/THcShower.cxx +++ b/src/THcShower.cxx @@ -215,6 +215,7 @@ Int_t THcShower::ReadDatabase( const TDatime& date ) {"cal_ADCMode", &fADCMode, kInt, 0, 1}, {"cal_AdcTimeWindowMin", &fAdcTimeWindowMin, kDouble, 0, 1}, {"cal_AdcTimeWindowMax", &fAdcTimeWindowMax, kDouble, 0, 1}, + {"cal_adc_tdc_offset", &fAdcTdcOffset, kDouble, 0, 1}, {"dbg_raw_cal", &fdbg_raw_cal, kInt, 0, 1}, {"dbg_decoded_cal", &fdbg_decoded_cal, kInt, 0, 1}, {"dbg_sparsified_cal", &fdbg_sparsified_cal, kInt, 0, 1}, @@ -232,6 +233,7 @@ Int_t THcShower::ReadDatabase( const TDatime& date ) fdbg_init_cal = 0; fAdcTimeWindowMin=0; fAdcTimeWindowMax=10000; + fAdcTdcOffset=0.0; fADCMode=kADCDynamicPedestal; gHcParms->LoadParmValues((DBRequest*)&list, prefix); } diff --git a/src/THcShower.h b/src/THcShower.h index b727503d8236713b2c07aa85dc4a87294c32e494..d78e265adcc1ce013208045651c502eb5a77b7b1 100644 --- a/src/THcShower.h +++ b/src/THcShower.h @@ -80,6 +80,9 @@ public: Double_t GetAdcTimeWindowMax() { return fAdcTimeWindowMax; } + Double_t GetAdcTdcOffset() { + return fAdcTdcOffset; + } Int_t GetMinPeds() { return fShMinPeds; } @@ -131,6 +134,7 @@ protected: static const Int_t kADCSampIntDynPed=3; Double_t fAdcTimeWindowMin; Double_t fAdcTimeWindowMax; + Double_t fAdcTdcOffset; Int_t fAnalyzePedestals; // Flag for pedestal analysis. diff --git a/src/THcShowerArray.cxx b/src/THcShowerArray.cxx index 1684af9e569a2e7e091d85ae94a6d4be254040c6..401976d4239fb1f785b6160c43327ad61eaee11c 100644 --- a/src/THcShowerArray.cxx +++ b/src/THcShowerArray.cxx @@ -149,6 +149,7 @@ Int_t THcShowerArray::ReadDatabase( const TDatime& date ) {"cal_arr_ADCMode", &fADCMode, kInt, 0, 1}, {"cal_arr_AdcTimeWindowMin", &fAdcTimeWindowMin, kDouble, 0, 1}, {"cal_arr_AdcTimeWindowMax", &fAdcTimeWindowMax, kDouble, 0, 1}, + {"cal_arr_adc_tdc_offset", &fAdcTdcOffset, kDouble, 0, 1}, {"cal_arr_AdcThreshold", &fAdcThreshold, kDouble, 0, 1}, {"cal_ped_sample_low", &fPedSampLow, kInt, 0, 1}, {"cal_ped_sample_high", &fPedSampHigh, kInt, 0, 1}, @@ -167,6 +168,7 @@ Int_t THcShowerArray::ReadDatabase( const TDatime& date ) fADCMode=kADCDynamicPedestal; fAdcTimeWindowMin=0; fAdcTimeWindowMax=10000; + fAdcTdcOffset=0.0; fAdcThreshold=0.; fNelem = fNRows*fNColumns; diff --git a/src/THcShowerArray.h b/src/THcShowerArray.h index acd12aed063d7fc0c1bef8f2411cd228faa61a69..8c7033dd99a60d1ed9fdf64d14f5161944bcfd23 100644 --- a/src/THcShowerArray.h +++ b/src/THcShowerArray.h @@ -146,6 +146,7 @@ protected: Double_t fAdcTimeWindowMin ; Double_t fAdcTimeWindowMax ; Double_t fAdcThreshold ; + Double_t fAdcTdcOffset; Int_t fDebugAdc; Int_t fPedSampLow; // Sample range for diff --git a/src/THcShowerPlane.cxx b/src/THcShowerPlane.cxx index 160b3a978ebcb765e769b584504eaae4a545b296..38903f56b12340230f08c3f669aae86e2e99db25 100644 --- a/src/THcShowerPlane.cxx +++ b/src/THcShowerPlane.cxx @@ -224,6 +224,8 @@ Int_t THcShowerPlane::ReadDatabase( const TDatime& date ) fOrigin.SetXYZ(xOrig, yOrig, zOrig); + fAdcTdcOffset=parent->GetAdcTdcOffset(); + // Create arrays to hold results here // @@ -584,7 +586,7 @@ Int_t THcShowerPlane::ProcessHits(TClonesArray* rawhits, Int_t nexthit) ((THcSignalHit*) frPosAdcPulseAmp->ConstructedAt(nrPosAdcHits))->Set(padnum, rawPosAdcHit.GetPulseAmp(thit)); ((THcSignalHit*) frPosAdcPulseTimeRaw->ConstructedAt(nrPosAdcHits))->Set(padnum, rawPosAdcHit.GetPulseTimeRaw(thit)); - ((THcSignalHit*) frPosAdcPulseTime->ConstructedAt(nrPosAdcHits))->Set(padnum, rawPosAdcHit.GetPulseTime(thit)); + ((THcSignalHit*) frPosAdcPulseTime->ConstructedAt(nrPosAdcHits))->Set(padnum, rawPosAdcHit.GetPulseTime(thit)+fAdcTdcOffset); if (rawPosAdcHit.GetPulseAmp(thit)>0&&rawPosAdcHit.GetPulseIntRaw(thit)>0) { ((THcSignalHit*) frPosAdcErrorFlag->ConstructedAt(nrPosAdcHits))->Set(padnum,0); @@ -609,7 +611,7 @@ Int_t THcShowerPlane::ProcessHits(TClonesArray* rawhits, Int_t nexthit) ((THcSignalHit*) frNegAdcPulseAmp->ConstructedAt(nrNegAdcHits))->Set(padnum, rawNegAdcHit.GetPulseAmp(thit)); ((THcSignalHit*) frNegAdcPulseTimeRaw->ConstructedAt(nrNegAdcHits))->Set(padnum, rawNegAdcHit.GetPulseTimeRaw(thit)); - ((THcSignalHit*) frNegAdcPulseTime->ConstructedAt(nrNegAdcHits))->Set(padnum, rawNegAdcHit.GetPulseTime(thit)); + ((THcSignalHit*) frNegAdcPulseTime->ConstructedAt(nrNegAdcHits))->Set(padnum, rawNegAdcHit.GetPulseTime(thit)+fAdcTdcOffset); if (rawNegAdcHit.GetPulseAmp(thit)>0&&rawNegAdcHit.GetPulseIntRaw(thit)>0) { ((THcSignalHit*) frNegAdcErrorFlag->ConstructedAt(nrNegAdcHits))->Set(padnum,0); diff --git a/src/THcShowerPlane.h b/src/THcShowerPlane.h index 19a43c5f2bcd60b2e8e00bbdbc80c6372e032554..ef68eca2e026c029127b9eaf94060e26dc8c2984 100644 --- a/src/THcShowerPlane.h +++ b/src/THcShowerPlane.h @@ -134,6 +134,7 @@ protected: Int_t fDataSampHigh; // sample integration Double_t fAdcNegThreshold; // Double_t fAdcPosThreshold; // + Double_t fAdcTdcOffset; //counting variables Int_t fTotNumPosAdcHits;