diff --git a/src/THcAerogel.cxx b/src/THcAerogel.cxx index d8d7f8aa32e1d4c0326d5cebe8e12c8d3fa6ac1c..1dc6285783b36c9c30caec922f0e39592917c4b0 100644 --- a/src/THcAerogel.cxx +++ b/src/THcAerogel.cxx @@ -312,6 +312,11 @@ Int_t THcAerogel::ReadDatabase( const TDatime& date ) fRegionsValueMax = fNRegions * 8; fRegionValue = new Double_t[fRegionsValueMax]; + fAdcPosTimeWindowMin = new Double_t [fNelem]; + fAdcPosTimeWindowMax = new Double_t [fNelem]; + fAdcNegTimeWindowMin = new Double_t [fNelem]; + fAdcNegTimeWindowMax = new Double_t [fNelem]; + DBRequest list[]={ {"aero_num_regions", &fNRegions, kInt}, {"aero_red_chi2_min", &fRedChi2Min, kDouble}, @@ -326,10 +331,10 @@ Int_t THcAerogel::ReadDatabase( const TDatime& date ) {"aero_npe_thresh", &fNpeThresh, kDouble}, //// {"aero_adcTimeWindowMin", &fAdcTimeWindowMin, kDouble}, //// {"aero_adcTimeWindowMax", &fAdcTimeWindowMax, kDouble}, - {"aero_adcPosTimeWindowMin", &fAdcPosTimeWindowMin, kDouble, 0, 1}, - {"aero_adcPosTimeWindowMax", &fAdcPosTimeWindowMax, kDouble, 0, 1}, - {"aero_adcNegTimeWindowMin", &fAdcNegTimeWindowMin, kDouble, 0, 1}, - {"aero_adcNegTimeWindowMax", &fAdcNegTimeWindowMax, kDouble, 0, 1}, + {"aero_adcPosTimeWindowMin", fAdcPosTimeWindowMin, kDouble, static_cast<UInt_t>(fNelem), 1}, + {"aero_adcPosTimeWindowMax", fAdcPosTimeWindowMax, kDouble, static_cast<UInt_t>(fNelem), 1}, + {"aero_adcNegTimeWindowMin", fAdcNegTimeWindowMin, kDouble, static_cast<UInt_t>(fNelem), 1}, + {"aero_adcNegTimeWindowMax", fAdcNegTimeWindowMax, kDouble, static_cast<UInt_t>(fNelem), 1}, {"aero_adc_tdc_offset", &fAdcTdcOffset, kDouble, 0, 1}, {"aero_debug_adc", &fDebugAdc, kInt, 0, 1}, {"aero_six_gev_data", &fSixGevData, kInt, 0, 1}, @@ -345,10 +350,14 @@ Int_t THcAerogel::ReadDatabase( const TDatime& date ) {"aero_adcrefcut", &fADC_RefTimeCut, kInt, 0, 1}, {0} }; - fAdcPosTimeWindowMin=-1000.; - fAdcNegTimeWindowMin=-1000.; - fAdcPosTimeWindowMax=1000.; - fAdcNegTimeWindowMax=1000.; + + for(Int_t ip=0;ip<fNelem;ip++) { + fAdcPosTimeWindowMin[ip] = -1000.; + fAdcNegTimeWindowMin[ip] = -1000.; + fAdcPosTimeWindowMax[ip] = 1000.; + fAdcNegTimeWindowMax[ip] = 1000.; + } + 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; @@ -704,7 +713,7 @@ Int_t THcAerogel::CoarseProcess( TClonesArray& ) //tracks Double_t adctdcdiffTime = StartTime-pulseTime; Bool_t errorFlag = ((THcSignalHit*) fPosAdcErrorFlag->ConstructedAt(ielem))->GetData(); //// Bool_t pulseTimeCut = adctdcdiffTime > fAdcTimeWindowMin && adctdcdiffTime < fAdcTimeWindowMax; - Bool_t pulseTimeCut = adctdcdiffTime > fAdcPosTimeWindowMin && adctdcdiffTime < fAdcPosTimeWindowMax; + Bool_t pulseTimeCut = adctdcdiffTime > fAdcPosTimeWindowMin[npmt] && adctdcdiffTime < fAdcPosTimeWindowMax[npmt]; // By default, the last hit within the timing cut will be considered "good" if (!errorFlag && pulseTimeCut) { @@ -738,7 +747,7 @@ Int_t THcAerogel::CoarseProcess( TClonesArray& ) //tracks Double_t adctdcdiffTime = StartTime-pulseTime; Bool_t errorFlag = ((THcSignalHit*) fNegAdcErrorFlag->ConstructedAt(ielem))->GetData(); //// Bool_t pulseTimeCut = adctdcdiffTime > fAdcTimeWindowMin && adctdcdiffTime < fAdcTimeWindowMax; - Bool_t pulseTimeCut = adctdcdiffTime > fAdcNegTimeWindowMin && adctdcdiffTime < fAdcNegTimeWindowMax; + Bool_t pulseTimeCut = adctdcdiffTime > fAdcNegTimeWindowMin[npmt] && adctdcdiffTime < fAdcNegTimeWindowMax[npmt]; // By default, the last hit within the timing cut will be considered "good" if (!errorFlag && pulseTimeCut) { diff --git a/src/THcAerogel.h b/src/THcAerogel.h index 27a73003f256c4c714fdf3187859ba74e5669de0..a3e7176b52a8a2b3990eb427df1e6d234920b8e2 100644 --- a/src/THcAerogel.h +++ b/src/THcAerogel.h @@ -68,10 +68,10 @@ class THcAerogel : public THaNonTrackingDetector, public THcHitList { //// Double_t fAdcTimeWindowMin; //// Double_t fAdcTimeWindowMax; - Double_t fAdcPosTimeWindowMin; - Double_t fAdcPosTimeWindowMax; - Double_t fAdcNegTimeWindowMin; - Double_t fAdcNegTimeWindowMax; + Double_t *fAdcPosTimeWindowMin; + Double_t *fAdcPosTimeWindowMax; + Double_t *fAdcNegTimeWindowMin; + Double_t *fAdcNegTimeWindowMax; Double_t fAdcTdcOffset; Double_t *fRegionValue;