From 285ceede90936738a077f0e904a68771efac0f60 Mon Sep 17 00:00:00 2001
From: Buddhini Waidyawansa <buddhini@jlab.org>
Date: Mon, 5 May 2014 12:38:11 -0400
Subject: [PATCH] Renamed the raster variables in the hcana to match what is
 being used in the ENIGNE. Added the raw raster ADC values to the histos and
 trees. Modified the ranges and binning of the histogram definitions in
 output_bpw_.def accordingly.

---
 examples/output_bpw.def | 10 ++++++----
 src/THcRaster.cxx       | 42 ++++++++++++++++++-----------------------
 src/THcRaster.h         | 10 ++++++----
 3 files changed, 30 insertions(+), 32 deletions(-)

diff --git a/examples/output_bpw.def b/examples/output_bpw.def
index ff1e985..0fc6248 100644
--- a/examples/output_bpw.def
+++ b/examples/output_bpw.def
@@ -175,7 +175,9 @@ TH1F hs2yfptime 'HODO s2y fptime' H.hod.2y.fptime 80 0 80 H.hod.hgoodstarttime
 TH1F starttime  'HODO start time' H.hod.starttime 80 0 80 H.hod.hgoodstarttime
 
 # Beam related ADC channels. eg. raster
-TH1F rstrx_i 'Raster X Current' RB.raster.xcurrent 4000 -2000 2000
-TH1F rstry_i 'Raster Y Current' RB.raster.ycurrent 4000 -2000 2000
-TH1F rstrx_p 'Raster X Position' RB.raster.xpos 40 -20   20
-TH1F rstry_p 'Raster Y Position' RB.raster.ypos 40 -20   20
+TH1F frx_raw_adc 'Raster X Raw ADC' RB.raster.frx_raw_adc 1200 3200 4400
+TH1F fry_raw_adc 'Raster Y Raw ADC' RB.raster.fry_raw_adc 1200 3200 4400
+TH1F frx_adc 'Raster X ADC' RB.raster.frx_adc 1000 -500 500
+TH1F fry_adc 'Raster Y ADC' RB.raster.fry_adc 1000 -500 500
+TH1F frx 'Raster X Position' RB.raster.frx 100 -0.5   0.5
+TH1F fry 'Raster Y Position' RB.raster.fry 100 -0.5   0.5
diff --git a/src/THcRaster.cxx b/src/THcRaster.cxx
index de128f3..5e85551 100644
--- a/src/THcRaster.cxx
+++ b/src/THcRaster.cxx
@@ -40,6 +40,8 @@ THcRaster::THcRaster( const char* name, const char* description,
 
   fAnalyzePedestals = 0;
   fNPedestalEvents = 0;
+  fRawXADC = 0;
+  fRawYADC = 0;
   fXADC = 0;
   fYADC = 0;
   fXpos = 0;
@@ -58,29 +60,19 @@ THcRaster::THcRaster( const char* name, const char* description,
 //_____________________________________________________________________________
 THcRaster::~THcRaster()
 {
-  //  delete [] fPedADC;
-  //  delete [] fAvgPedADC;
-
+  delete [] fPedADC;
+  delete [] fAvgPedADC;
 }
 
 
-
-//____________________________________________________________________________// _
-// void THcRaster::InitializeReconstruction()
-// {
-
-// }
-  
-
+ 
 
 //_____________________________________________________________________________
 Int_t THcRaster::ReadDatabase( const TDatime& date )
 {
 
   // Read parameters such as calibration factor, of this detector from the database.
-  // static const char* const here = "THcRaster::ReadDatabase";
- 
-  // InitializeReconstruction();
+  cout << "THcRaster::ReadDatabase()" << endl;
 
   char prefix[2];
 
@@ -121,10 +113,12 @@ Int_t THcRaster::DefineVariables( EMode mode )
   // Register variables in global list
 
   RVarDef vars[] = {
-    {"xcurrent",  "Raster X current",    "fXADC"},
-    {"ycurrent",  "Raster Y current",    "fYADC"},
-    {"xpos",  "Raster X position",    "fXpos"},
-    {"ypos",  "Raster Y position",    "fYpos"},
+    {"frx_raw_adc",  "Raster X raw ADC",    "fRawXADC"},
+    {"fry_raw_adc",  "Raster Y raw ADC",    "fRawYADC"},
+    {"frx_adc",  "Raster X ADC",    "fXADC"},
+    {"fry_adc",  "Raster Y ADC",    "fYADC"},
+    {"frx",  "Raster X position",    "fXpos"},
+    {"fry",  "Raster Y position",    "fYpos"},
     { 0 }
   };
 
@@ -258,13 +252,13 @@ Int_t THcRaster::Decode( const THaEvData& evdata )
     THcRasterRawHit* hit = (THcRasterRawHit *) fRawHitList->At(ihit);
     
     if(hit->fADC_xsig>0) {
-      fRawADC[0] = hit->fADC_xsig;
-      // std::cout<<" Raw X = "<<fRawADC[0]<<std::endl;
+      fRawXADC = hit->fADC_xsig;
+      //std::cout<<" Raw X ADC = "<<fRawXADC<<std::endl;
     }
     
     if(hit->fADC_ysig>0) {
-      fRawADC[1] = hit->fADC_ysig;
-      // std::cout<<" Raw Y ADC = "<<fRawADC[1]<<std::endl;
+      fRawYADC = hit->fADC_ysig;
+      //std::cout<<" Raw Y ADC = "<<fRawYADC<<std::endl;
     } 
     ihit++;
   }  
@@ -290,8 +284,8 @@ Int_t THcRaster::Process( ){
   */
 
   // calculate the raster currents
-  fXADC =  fRawADC[0]-fAvgPedADC[0];
-  fYADC =  fRawADC[1]-fAvgPedADC[1];
+  fXADC =  fRawXADC-fAvgPedADC[0];
+  fYADC =  fRawYADC-fAvgPedADC[1];
   //std::cout<<" Raw X ADC = "<<fXADC<<" Raw Y ADC = "<<fYADC<<std::endl;
 
   /*
diff --git a/src/THcRaster.h b/src/THcRaster.h
index 3117648..29d3f08 100644
--- a/src/THcRaster.h
+++ b/src/THcRaster.h
@@ -40,14 +40,16 @@ class THcRaster : public THaBeamDet, public THcHitList {
   Int_t  ReadDatabase( const TDatime& date );
   Int_t DefineVariables( EMode mode );
 
-  Double_t       fgpbeam;     //
+  Double_t       fgpbeam;   //beam momentum
 
-  Double_t       fXADC;     // X current
-  Double_t       fYADC;     // Y current
+  Double_t       fRawXADC;  // X raw ADC
+  Double_t       fRawYADC;  // Y raw ADC
+  Double_t       fXADC;     // X ADC
+  Double_t       fYADC;     // Y ADC
   Double_t       fXpos;     // X position
   Double_t       fYpos;     // Y position
   
-  Double_t       fRawADC[2];     // raw ADC values
+
   Double_t       fPedADC[2];     // ADC poedestals 
   Double_t       fAvgPedADC[2];     // Avergage ADC poedestals 
 
-- 
GitLab