diff --git a/src/THcRaster.cxx b/src/THcRaster.cxx
index 91b48a7c85058f7a8ba48817b59f73b6cbc3c87e..1347e499a7c4e6e5252b6c449a8b5d9e29296e49 100644
--- a/src/THcRaster.cxx
+++ b/src/THcRaster.cxx
@@ -82,7 +82,9 @@ THcRaster::THcRaster( const char* name, const char* description,
   fFrYB_ADC_zero_offset =0;
 
   frPosAdcPulseIntRaw  = NULL;
-
+  fEbeamEpics_read=0.;
+  fEbeamEpics_prev=0.;
+  fEbeamEpics=0.;
   for(Int_t i=0;i<4;i++){
 
 	fPedADC[i] = 0;
@@ -269,6 +271,7 @@ Int_t THcRaster::DefineVariables( EMode mode )
     {"fr_ybpmB",  "Y BPM at BPMB (+Y is up)",    "fYbpm_B"},
     {"fr_xbpmC",  "X BPM at BPMC (+X is beam right)",    "fXbpm_C"},
     {"fr_ybpmC",  "Y BPM at BPMC (+Y is up)",    "fYbpm_C"},
+    {"ebeam_epics",  "Beam energy of epics variable HALLC:p",    "fEbeamEpics"},
     { 0 }
   };
  
@@ -441,6 +444,9 @@ Int_t THcRaster::Decode( const THaEvData& evdata )
            if (fEpicsHandler->IsLoaded("IPM3H07C.YRAW")){
             BPMYC_raw = atof(fEpicsHandler->GetString("IPM3H07C.YRAW"));
            }
+           if (fEpicsHandler->IsLoaded("HALLC:p")){
+            fEbeamEpics_read = atof(fEpicsHandler->GetString("HALLC:p"));
+           }
    }
 
   return 0;
@@ -525,6 +531,8 @@ Int_t THcRaster::Process(){
         fYbeam_prev[2]=BPMYB_pos;
         fXbeam_prev[3]=BPMXC_pos;
         fYbeam_prev[3]=BPMYC_pos;
+        fEbeamEpics = fEbeamEpics_read;
+	fEbeamEpics_prev=fEbeamEpics_read;
  }else{
 	  fgbeam_xoff = fXbeam_prev[0];
 	  fgbeam_yoff = fYbeam_prev[0];
@@ -536,7 +544,8 @@ Int_t THcRaster::Process(){
         BPMYC_pos=fYbeam_prev[3];
 	  fgbeam_xpoff = 0;
 	  fgbeam_ypoff = 0;
-  }
+         fEbeamEpics = fEbeamEpics_prev;
+ }
 
   fXbpm_tar= -fgbeam_xoff; 
   fYbpm_tar= fgbeam_yoff;
diff --git a/src/THcRaster.h b/src/THcRaster.h
index e0025a45de6b636a4a5601bc111e94de11dca821..13b19f248a13d3806a58496319048226d8066a8d 100644
--- a/src/THcRaster.h
+++ b/src/THcRaster.h
@@ -117,6 +117,11 @@ class THcRaster : public THaBeamDet, public THcHitList {
   Double_t       fYbpm_C;     // Y BPM at BPMC (+Y is up)
   Double_t       fXbeam_prev[4];     // 
   Double_t       fYbeam_prev[4];     // 
+  //
+  Double_t        fEbeamEpics;
+  Double_t        fEbeamEpics_read;
+  Double_t        fEbeamEpics_prev;
+  //
 
   Double_t       fFrXA_ADC_zero_offset;
   Double_t       fFrYA_ADC_zero_offset;