diff --git a/CALIBRATION/shms_cal_calib/THcPShowerCalib.h b/CALIBRATION/shms_cal_calib/THcPShowerCalib.h
index 6078a098423ba01f249249756293390fad38dfbb..60f10bdbfe47257c1eb4c4840844149078535aa8 100644
--- a/CALIBRATION/shms_cal_calib/THcPShowerCalib.h
+++ b/CALIBRATION/shms_cal_calib/THcPShowerCalib.h
@@ -34,6 +34,9 @@
 #define PR_ADC_THR 0
 #define SH_ADC_THR 0
 
+#define BETA_MIN 0.5
+#define BETA_MAX 1.5
+
 //#define MAX_TRACKS 10
 
 using namespace std;
@@ -101,6 +104,7 @@ class THcPShowerCalib {
   Double_t        P_tr_tg_dp;
 
   Double_t        P_hgcer_npe[4];
+  Double_t        P_tr_beta;
 
   TBranch* b_P_tr_p;
   TBranch* b_P_pr_apos_p;
@@ -113,6 +117,7 @@ class THcPShowerCalib {
   TBranch* b_P_tr_yp;
   TBranch* b_P_tr_tg_dp;
   TBranch* b_P_hgcer_npe;
+  TBranch* b_P_tr_beta;
 
   // Quantities for calculations of the calibration constants.
 
@@ -221,6 +226,8 @@ void THcPShowerCalib::Init() {
  
   fTree->SetBranchAddress("P.hgcer.npe", P_hgcer_npe,&b_P_hgcer_npe);
 
+  fTree->SetBranchAddress("P.tr.beta", &P_tr_beta,&b_P_tr_beta);
+
   // Histogram declarations.
 
   //  hEunc = new TH1F("hEunc", "Edep/P uncalibrated", 500, 0., 5.);
@@ -408,6 +415,10 @@ bool THcPShowerCalib::ReadShRawTrack(THcPShTrack &trk, UInt_t ientry) {
 		    P_hgcer_npe[3] > 2  ;
   if(!good_hgcer) return 0;
 
+  bool good_beta = P_tr_beta > BETA_MIN &&
+                   P_tr_beta < BETA_MAX ;
+  if(!good_beta) return 0;
+
   //  cout << "    Track is good." << endl << endl;
   //  getchar();
 
diff --git a/CALIBRATION/shms_cal_calib/pcal_calib.cpp b/CALIBRATION/shms_cal_calib/pcal_calib.cpp
index 1144001934edf095d63d8ad50720f9de3c6d2cf0..78f75a73e031f7eee4e296911b1cbef8dab45bf8 100644
--- a/CALIBRATION/shms_cal_calib/pcal_calib.cpp
+++ b/CALIBRATION/shms_cal_calib/pcal_calib.cpp
@@ -8,7 +8,6 @@
 // A steering Root script for the SHMS calorimeter calibration.
 //
 
-////void pcal_calib(Int_t RunNumber) {
 void pcal_calib(string RunNumber) {
 
   // Initialize the analysis clock