diff --git a/src/THcHitList.cxx b/src/THcHitList.cxx
index 06976187316f99231a5861552b032528be64fec5..45697822e41dc26aa122f220ae1388b8a1ce353a 100644
--- a/src/THcHitList.cxx
+++ b/src/THcHitList.cxx
@@ -10,6 +10,10 @@
 #include "TError.h"
 #include "TClass.h"
 
+#include "THcConfigEvtHandler.h"
+#include "THaGlobals.h"
+#include "TList.h"
+
 using namespace std;
 
 THcHitList::THcHitList()
@@ -17,6 +21,7 @@ THcHitList::THcHitList()
   // Normal constructor.
 
   fRawHitList = NULL;
+  fPSE125 = NULL;
 
 }
 
@@ -101,6 +106,10 @@ void THcHitList::InitHitList(THaDetMap* detmap,
     }
   }
 
+  fPSE125 = static_cast<THcConfigEvtHandler*>(gHaEvtHandlers->FindObject("HC"));
+  if (!fPSE125) {
+    cout << "THcHitList::InitHitList : Prestart event 125 not found." << endl;
+  }
 }
 
 Int_t THcHitList::DecodeToHitList( const THaEvData& evdata ) {
@@ -112,6 +121,7 @@ Int_t THcHitList::DecodeToHitList( const THaEvData& evdata ) {
   // hits for multihit tdcs.
   // The hit list is sorted (by plane, counter) after filling.
 
+
   // cout << " Clearing TClonesArray " << endl;
   fRawHitList->Clear( );
   fNRawHits = 0;
@@ -212,6 +222,15 @@ Int_t THcHitList::DecodeToHitList( const THaEvData& evdata ) {
 	  }
 	}
       } else {			// This is a Flash ADC
+
+        if (fPSE125) {  // Set F250 parameters.
+          rawhit->SetF250Params(
+            fPSE125->GetNSA(d->crate),
+            fPSE125->GetNSB(d->crate),
+            fPSE125->GetNPED(d->crate)
+          );
+        }
+
 	// Copy the samples
 	Int_t nsamples=evdata.GetNumEvents(Decoder::kSampleADC, d->crate, d->slot, chan);
 
diff --git a/src/THcHitList.h b/src/THcHitList.h
index 8f3bc81b20bee0cfc785690d96e57ffce7977b63..9ab07220b2f1707f138523071c75c88b46a06833 100644
--- a/src/THcHitList.h
+++ b/src/THcHitList.h
@@ -18,6 +18,7 @@ using namespace std;
 //////////////////////////////////////////////////////////////////////////
 
 //class THaDetMap;
+class THcConfigEvtHandler;
 
 class THcHitList {
 
@@ -58,6 +59,8 @@ protected:
   UInt_t fNSignals;
   THcRawHit::ESignalType *fSignalTypes;
 
+  THcConfigEvtHandler* fPSE125;
+
   ClassDef(THcHitList,0);  // List of raw hits sorted by plane, counter
 };
 #endif
diff --git a/src/THcRawAdcHit.cxx b/src/THcRawAdcHit.cxx
index e35c5f513117b33a6e4a65b5eddd69eddf74f7a7..508b39bb0fc75944940ea18cdd2c5896574588bf 100644
--- a/src/THcRawAdcHit.cxx
+++ b/src/THcRawAdcHit.cxx
@@ -167,6 +167,14 @@ Returns 0 if no signal pedestal is set.
 \brief Gets pedestal subtracted integral of samples. In channels.
 */
 
+/**
+\fn void THcRawAdcHit::SetF250Params(Int_t NSA, Int_t NSB, Int_t NPED)
+\brief Sets F250 parameters used for pedestal subtraction.
+\param [in] NSA NSA parameter of F250 modules.
+\param [in] NSB NSB parameter of F250 modules.
+\param [in] NPED NPED parameter of F250 modules.
+*/
+
 // TODO: Disallow using both SetData and SetDataTimePedestalPeak.
 
 
@@ -450,4 +458,11 @@ Double_t THcRawAdcHit::GetSampleInt() const {
 }
 
 
+void THcRawAdcHit::SetF250Params(Int_t NSA, Int_t NSB, Int_t NPED) {
+  fNPedestalSamples = NPED;
+  fNPeakSamples = NSA + NSB;
+  fPeakPedestalRatio = 1.0*fNPeakSamples/fNPedestalSamples;
+}
+
+
 ClassImp(THcRawAdcHit)
diff --git a/src/THcRawAdcHit.h b/src/THcRawAdcHit.h
index 210dfbc4d19d92416509c026c8222d848e40d207..82a1922aae6956f38243d609c4ad13ed6dc8069a 100644
--- a/src/THcRawAdcHit.h
+++ b/src/THcRawAdcHit.h
@@ -46,6 +46,8 @@ class THcRawAdcHit : public TObject {
     Int_t GetSampleIntRaw() const;
     Double_t GetSampleInt() const;
 
+    void SetF250Params(Int_t NSA, Int_t NSB, Int_t NPED);
+
   protected:
     static const UInt_t fMaxNPulses = 4;
     static const UInt_t fMaxNSamples = 511;
diff --git a/src/THcRawHit.h b/src/THcRawHit.h
index 9406e25ee5549b7fed1563229d2c2296ed6d288d..e56674f96a66d32ab4fc71a76cb6d72a25f74a43 100644
--- a/src/THcRawHit.h
+++ b/src/THcRawHit.h
@@ -42,6 +42,8 @@ public:
   virtual Bool_t HasReference(Int_t signal) {return kFALSE;};
   virtual Int_t GetReference(Int_t signal) {return 0;};
 
+  virtual void SetF250Params(Int_t NSA, Int_t NSB, Int_t NPED) {};
+
   // Derived objects must be sortable and supply Compare method
   //  virtual Bool_t  IsSortable () const {return kFALSE; }
   //  virtual Int_t   Compare(const TObject* obj) const {return 0;}
diff --git a/src/THcRawHodoHit.cxx b/src/THcRawHodoHit.cxx
index fa1407e8f183b792449be5b835add100b873cdea..db2d487ede19b3a50e17cff4848e976179e41172 100644
--- a/src/THcRawHodoHit.cxx
+++ b/src/THcRawHodoHit.cxx
@@ -198,4 +198,11 @@ THcRawTdcHit& THcRawHodoHit::GetRawTdcHitNeg() {
 }
 
 
+void THcRawHodoHit::SetF250Params(Int_t NSA, Int_t NSB, Int_t NPED) {
+  for (Int_t iAdcSig=0; iAdcSig<fNAdcSignals; ++iAdcSig) {
+    fAdcHits[iAdcSig].SetF250Params(NSA, NSB, NPED);
+  }
+}
+
+
 ClassImp(THcRawHodoHit)
diff --git a/src/THcRawHodoHit.h b/src/THcRawHodoHit.h
index 679d36fa4fc346c4a52f756b0d59afb89c37e4cd..dc2528f6e81267b295150d97a95534d34af475b9 100644
--- a/src/THcRawHodoHit.h
+++ b/src/THcRawHodoHit.h
@@ -39,6 +39,8 @@ class THcRawHodoHit : public THcRawHit {
     THcRawTdcHit& GetRawTdcHitPos();
     THcRawTdcHit& GetRawTdcHitNeg();
 
+    void SetF250Params(Int_t NSA, Int_t NSB, Int_t NPED);
+
   protected:
     static const Int_t fNAdcSignals = 2;
     static const Int_t fNTdcSignals = 2;
diff --git a/src/THcRawShowerHit.cxx b/src/THcRawShowerHit.cxx
index 165a74955c0abb571f087903ecbc431698c10d9c..982266f5625260b3ffd53b37d7af5505070ace4d 100644
--- a/src/THcRawShowerHit.cxx
+++ b/src/THcRawShowerHit.cxx
@@ -142,4 +142,11 @@ THcRawAdcHit& THcRawShowerHit::GetRawAdcHitNeg() {
 }
 
 
+void THcRawShowerHit::SetF250Params(Int_t NSA, Int_t NSB, Int_t NPED) {
+  for (Int_t iAdcSig=0; iAdcSig<fNAdcSignals; ++iAdcSig) {
+    fAdcHits[iAdcSig].SetF250Params(NSA, NSB, NPED);
+  }
+}
+
+
 ClassImp(THcRawShowerHit)
diff --git a/src/THcRawShowerHit.h b/src/THcRawShowerHit.h
index a70af838c51a00303604d407de9803edd8ca4dce..9008831e54362303bed9a48474ed0ccbd5a6ac85 100644
--- a/src/THcRawShowerHit.h
+++ b/src/THcRawShowerHit.h
@@ -31,6 +31,8 @@ class THcRawShowerHit : public THcRawHit {
     THcRawAdcHit& GetRawAdcHitPos();
     THcRawAdcHit& GetRawAdcHitNeg();
 
+    void SetF250Params(Int_t NSA, Int_t NSB, Int_t NPED);
+
   protected:
     static const Int_t fNAdcSignals = 2;
 
diff --git a/src/THcTrigRawHit.cxx b/src/THcTrigRawHit.cxx
index d0dbd476a6b686db61d0f01ab3065544de4774da..60e3b60c35cf66c35d912e9c4e973700dbba774f 100644
--- a/src/THcTrigRawHit.cxx
+++ b/src/THcTrigRawHit.cxx
@@ -121,6 +121,11 @@ It supports rich data from flash 250 ADC modules.
 \brief Gets reference to THcRawTdcHit.
 */
 
+/**
+\fn void THcTrigRawHit::SetF250Params(Int_t NSA, Int_t NSB, Int_t NPED)
+\brief See THcRawAdcHit::SetF250Params.
+*/
+
 // TODO: Check if signal matches plane.
 
 #include "THcTrigRawHit.h"
@@ -307,4 +312,11 @@ THcRawTdcHit& THcTrigRawHit::GetRawTdcHit() {
 }
 
 
+void THcTrigRawHit::SetF250Params(Int_t NSA, Int_t NSB, Int_t NPED) {
+  for (Int_t iAdcSig=0; iAdcSig<fNAdcSignals; ++iAdcSig) {
+    fAdcHits[iAdcSig].SetF250Params(NSA, NSB, NPED);
+  }
+}
+
+
 ClassImp(THcTrigRawHit)
diff --git a/src/THcTrigRawHit.h b/src/THcTrigRawHit.h
index 762cac778bfe983e220a335a11c28be1f107abf7..345e3d055de770a4a80f85d68e44622ad28c6bf4 100644
--- a/src/THcTrigRawHit.h
+++ b/src/THcTrigRawHit.h
@@ -33,6 +33,8 @@ class THcTrigRawHit : public THcRawHit {
     THcRawAdcHit& GetRawAdcHit();
     THcRawTdcHit& GetRawTdcHit();
 
+    void SetF250Params(Int_t NSA, Int_t NSB, Int_t NPED);
+
   protected:
     static const Int_t fNAdcSignals = 1;
     static const Int_t fNTdcSignals = 1;