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;