From b061a1f4fa8c90b3776b71c3c2fd75360fb2b0cd Mon Sep 17 00:00:00 2001
From: Vardan Tadevosyan <tadevosn@jlab.org>
Date: Wed, 9 Oct 2013 16:32:12 -0400
Subject: [PATCH] Added Y coordinate correction to calo. energy dep.-s

---
 examples/PARAM/52949/hhodo.param.vt |   2 +-
 examples/comphh.C                   |  45 +++++++
 examples/comptrackedepcor.C         |  61 ++++++++++
 examples/comptrackedepcor.pdf       | Bin 0 -> 17120 bytes
 examples/comptrackeprcor.C          |  61 ++++++++++
 examples/comptrackeprcor.pdf        | Bin 0 -> 16208 bytes
 examples/output_52949.def           | 175 +++++++++++++++-------------
 src/THcShower.cxx                   | 102 +++++++++++++---
 src/THcShower.h                     |  35 +++++-
 src/THcShowerCluster.h              |   2 +-
 src/THcShowerPlane.cxx              |   2 +-
 11 files changed, 382 insertions(+), 103 deletions(-)
 create mode 100644 examples/comphh.C
 create mode 100644 examples/comptrackedepcor.C
 create mode 100644 examples/comptrackedepcor.pdf
 create mode 100644 examples/comptrackeprcor.C
 create mode 100644 examples/comptrackeprcor.pdf

diff --git a/examples/PARAM/52949/hhodo.param.vt b/examples/PARAM/52949/hhodo.param.vt
index 39dc74b..bb26160 100644
--- a/examples/PARAM/52949/hhodo.param.vt
+++ b/examples/PARAM/52949/hhodo.param.vt
@@ -8,7 +8,7 @@
    hscin_tdc_max = 4000                                                         
 ; hscin_tdc_to_time   scin tdc time per channel                                 
    hscin_tdc_to_time = 0.0259                                                   
- new variable for picking good hits for tof fitting
+; new variable for picking good hits for tof fitting
 ; this should not be set tight until you are ready to fit
 ; tof and you figured out good values
    htof_tolerance = 100.0
diff --git a/examples/comphh.C b/examples/comphh.C
new file mode 100644
index 0000000..f8a2ba7
--- /dev/null
+++ b/examples/comphh.C
@@ -0,0 +1,45 @@
+void comphh(Int_t run, TH1F* h1, TH1F* h2)
+{
+  TFile* f = new TFile(Form("hodtest_%d.root",run));
+  cout << "hcana root file " << Form("hodtest_%d.root",run) << endl;
+
+  TCanvas *c1 = new TCanvas("c1", "h1 vs h2", 1000, 667); 
+
+  //  gPad->SetLogy();
+
+  h1->SetFillColor(kGreen);
+  h1->SetLineColor(kGreen);
+  h1->Draw();
+
+  h2->SetLineColor(kBlue);
+  h2->SetFillStyle(0);
+  h2->SetLineWidth(2);
+  h2->Draw("same");
+
+  TLatex l;
+  l.SetTextSize(0.04);
+  Float_t maxy = h1->GetBinContent(h1->GetMaximumBin());
+  Float_t xmin = h1->GetXaxis()->GetXmin();
+  Float_t xmax = h1->GetXaxis()->GetXmax();
+  Float_t xt = xmin + 0.75*(xmax-xmin);
+
+  l.SetTextColor(kGreen);
+  l.DrawLatex(xt,0.65*maxy,"h1");
+  l.SetTextColor(kBlue);
+  l.DrawLatex(xt,0.75*maxy,"h2");
+    
+  // Difference between the histograms.
+
+  TCanvas *c2 = new TCanvas("c2", "Epr differences", 1000, 667); 
+
+  TH1F* dif = h2->Clone();
+
+  dif->Add(h2,h1,1.,-1.);
+
+  dif->SetTitle("Difference");
+  dif->SetFillColor(kRed);
+  dif->SetLineColor(kRed);
+  dif->SetLineWidth(1);
+  dif->SetFillStyle(1111);
+  dif->Draw();
+} 
diff --git a/examples/comptrackedepcor.C b/examples/comptrackedepcor.C
new file mode 100644
index 0000000..fbed4f4
--- /dev/null
+++ b/examples/comptrackedepcor.C
@@ -0,0 +1,61 @@
+void comptrackedepcor(Int_t run)
+{
+  TFile* f = new TFile(Form("hodtest_%d.root",run));
+  cout << "hcana root file " << Form("hodtest_%d.root",run) << endl;
+  TH1F* h = trecor;
+
+  TFile* f1 = new TFile(Form("%d_hbk.root",run));
+  cout << "Engine root file " << Form("%d_hbk.root",run) << endl;
+  TH1F* h1;
+  switch (run) {
+  case 50017 :
+  //    h1 = h212;   //A+
+    break;
+  default :
+    h1 = h422;   //edep y corrected
+  }
+
+  TCanvas *c1 = new TCanvas("c1", "Shower Track 1 Edep (Y-corr.)", 800, 1000);
+
+  c1->Divide(1,2);
+
+  //  gPad->SetLogy();
+
+  c1->cd(1);
+
+  h1->SetFillColor(kGreen);
+  h1->SetLineColor(kGreen);
+  h1->Draw();
+
+  h->SetLineColor(kBlue);
+  h->SetFillStyle(0);
+  h->SetLineWidth(2);
+  h->Draw("same");
+
+  TLatex l;
+  l.SetTextSize(0.04);
+  Float_t maxy = h1->GetBinContent(h1->GetMaximumBin());
+  Float_t xmin = h1->GetXaxis()->GetXmin();
+  Float_t xmax = h1->GetXaxis()->GetXmax();
+  Float_t xt = xmin + 0.75*(xmax-xmin);
+
+  l.SetTextColor(kGreen);
+  l.DrawLatex(xt,0.65*maxy,"Engine");
+  l.SetTextColor(kBlue);
+  l.DrawLatex(xt,0.75*maxy,"hcana");
+    
+  // Difference between the histograms.
+
+  c1->cd(2);
+
+  TH1F* dif = h->Clone();
+
+  dif->Add(h,h1,1.,-1.);
+
+  dif->SetTitle("Edep cor. Difference");
+  dif->SetFillColor(kRed);
+  dif->SetLineColor(kRed);
+  dif->SetLineWidth(1);
+  dif->SetFillStyle(1111);
+  dif->Draw();
+} 
diff --git a/examples/comptrackedepcor.pdf b/examples/comptrackedepcor.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..f4427ce7cc8645b21b58f50daf418ba81de981de
GIT binary patch
literal 17120
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
TG)siU;L%7{X=#0P1J?fo_k`$-

literal 0
HcmV?d00001

diff --git a/examples/comptrackeprcor.C b/examples/comptrackeprcor.C
new file mode 100644
index 0000000..099541e
--- /dev/null
+++ b/examples/comptrackeprcor.C
@@ -0,0 +1,61 @@
+void comptrackeprcor(Int_t run)
+{
+  TFile* f = new TFile(Form("hodtest_%d.root",run));
+  cout << "hcana root file " << Form("hodtest_%d.root",run) << endl;
+  TH1F* h = treprcor;
+
+  TFile* f1 = new TFile(Form("%d_hbk.root",run));
+  cout << "Engine root file " << Form("%d_hbk.root",run) << endl;
+  TH1F* h1;
+  switch (run) {
+  case 50017 :
+  //    h1 = h212;   //A+
+    break;
+  default :
+    h1 = h423;   //epr y corrected
+  }
+
+  TCanvas *c1 = new TCanvas("c1", "Shower Track 1 Edep (Y-corr.)", 800, 1000); 
+
+  c1->Divide(1,2);
+
+  //  gPad->SetLogy();
+
+  c1->cd(1);
+
+  h1->SetFillColor(kGreen);
+  h1->SetLineColor(kGreen);
+  h1->Draw();
+
+  h->SetLineColor(kBlue);
+  h->SetFillStyle(0);
+  h->SetLineWidth(2);
+  h->Draw("same");
+
+  TLatex l;
+  l.SetTextSize(0.04);
+  Float_t maxy = h1->GetBinContent(h1->GetMaximumBin());
+  Float_t xmin = h1->GetXaxis()->GetXmin();
+  Float_t xmax = h1->GetXaxis()->GetXmax();
+  Float_t xt = xmin + 0.75*(xmax-xmin);
+
+  l.SetTextColor(kGreen);
+  l.DrawLatex(xt,0.65*maxy,"Engine");
+  l.SetTextColor(kBlue);
+  l.DrawLatex(xt,0.75*maxy,"hcana");
+    
+  // Difference between the histograms.
+
+  c1->cd(2);
+
+  TH1F* dif = h->Clone();
+
+  dif->Add(h,h1,1.,-1.);
+
+  dif->SetTitle("Epr cor. Difference");
+  dif->SetFillColor(kRed);
+  dif->SetLineColor(kRed);
+  dif->SetLineWidth(1);
+  dif->SetFillStyle(1111);
+  dif->Draw();
+} 
diff --git a/examples/comptrackeprcor.pdf b/examples/comptrackeprcor.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..c08f6fdb0fec904e12a262ce6c2e196a533e5119
GIT binary patch
literal 16208
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
PJBZeR$;%sA8N>b$pkUOV

literal 0
HcmV?d00001

diff --git a/examples/output_52949.def b/examples/output_52949.def
index 283b044..22c1ef5 100644
--- a/examples/output_52949.def
+++ b/examples/output_52949.def
@@ -74,89 +74,98 @@ TH1F tre 'HMS Cal Track Clust. Edep' H.cal.tre 200 -0.1 1.622 H.dc.ntrack==1
 # Preshower Energy of the cluster associated to the main (currently 1st) track
 TH1F trepr 'HMS PrSh Track Clust. Edep' H.cal.trepr 100 -0.1 0.811 H.dc.ntrack==1
 
-#Calorimeter ADC channels
-TH1F hcaladc_A1p 'HMS Cal ADC A1p - PED' H.cal.1pr.apos_p[0] 150 50 500
-TH1F hcaladc_A2p 'HMS Cal ADC A2p - PED' H.cal.1pr.apos_p[1] 150 50 500
-TH1F hcaladc_A3p 'HMS Cal ADC A3p - PED' H.cal.1pr.apos_p[2] 150 50 500
-TH1F hcaladc_A4p 'HMS Cal ADC A4p - PED' H.cal.1pr.apos_p[3] 150 50 500
-TH1F hcaladc_A5p 'HMS Cal ADC A5p - PED' H.cal.1pr.apos_p[4] 150 50 500
-TH1F hcaladc_A6p 'HMS Cal ADC A6p - PED' H.cal.1pr.apos_p[5] 150 50 500
-TH1F hcaladc_A7p 'HMS Cal ADC A7p - PED' H.cal.1pr.apos_p[6] 150 50 500
-TH1F hcaladc_A8p 'HMS Cal ADC A8p - PED' H.cal.1pr.apos_p[7] 150 50 500
-TH1F hcaladc_A9p 'HMS Cal ADC A9p - PED' H.cal.1pr.apos_p[8] 150 50 500
-TH1F hcaladc_A10p 'HMS Cal ADC A10p - PED' H.cal.1pr.apos_p[9] 150 50 500
-TH1F hcaladc_A11p 'HMS Cal ADC A11p - PED' H.cal.1pr.apos_p[10] 150 50 500
-TH1F hcaladc_A12p 'HMS Cal ADC A12p - PED' H.cal.1pr.apos_p[11] 150 50 500
-TH1F hcaladc_A13p 'HMS Cal ADC A13p - PED' H.cal.1pr.apos_p[12] 150 50 500
-TH1F hcaladc_B1p 'HMS Cal ADC B1p - PED' H.cal.2ta.apos_p[0] 150 50 500
-TH1F hcaladc_B2p 'HMS Cal ADC B2p - PED' H.cal.2ta.apos_p[1] 150 50 500
-TH1F hcaladc_B3p 'HMS Cal ADC B3p - PED' H.cal.2ta.apos_p[2] 150 50 500
-TH1F hcaladc_B4p 'HMS Cal ADC B4p - PED' H.cal.2ta.apos_p[3] 150 50 500
-TH1F hcaladc_B5p 'HMS Cal ADC B5p - PED' H.cal.2ta.apos_p[4] 150 50 500
-TH1F hcaladc_B6p 'HMS Cal ADC B6p - PED' H.cal.2ta.apos_p[5] 150 50 500
-TH1F hcaladc_B7p 'HMS Cal ADC B7p - PED' H.cal.2ta.apos_p[6] 150 50 500
-TH1F hcaladc_B8p 'HMS Cal ADC B8p - PED' H.cal.2ta.apos_p[7] 150 50 500
-TH1F hcaladc_B9p 'HMS Cal ADC B9p - PED' H.cal.2ta.apos_p[8] 150 50 500
-TH1F hcaladc_B10p 'HMS Cal ADC B10p - PED' H.cal.2ta.apos_p[9] 150 50 500
-TH1F hcaladc_B11p 'HMS Cal ADC B11p - PED' H.cal.2ta.apos_p[10] 150 50 500
-TH1F hcaladc_B12p 'HMS Cal ADC B12p - PED' H.cal.2ta.apos_p[11] 150 50 500
-TH1F hcaladc_B13p 'HMS Cal ADC B13p - PED' H.cal.2ta.apos_p[12] 150 50 500
-
-TH1F hcaladc_C1p 'HMS Cal ADC C1p - PED' H.cal.3ta.apos_p[0] 150 50 500
-TH1F hcaladc_C2p 'HMS Cal ADC C2p - PED' H.cal.3ta.apos_p[1] 150 50 500
-TH1F hcaladc_C3p 'HMS Cal ADC C3p - PED' H.cal.3ta.apos_p[2] 150 50 500
-TH1F hcaladc_C4p 'HMS Cal ADC C4p - PED' H.cal.3ta.apos_p[3] 150 50 500
-TH1F hcaladc_C5p 'HMS Cal ADC C5p - PED' H.cal.3ta.apos_p[4] 150 50 500
-TH1F hcaladc_C6p 'HMS Cal ADC C6p - PED' H.cal.3ta.apos_p[5] 150 50 500
-TH1F hcaladc_C7p 'HMS Cal ADC C7p - PED' H.cal.3ta.apos_p[6] 150 50 500
-TH1F hcaladc_C8p 'HMS Cal ADC C8p - PED' H.cal.3ta.apos_p[7] 150 50 500
-TH1F hcaladc_C9p 'HMS Cal ADC C9p - PED' H.cal.3ta.apos_p[8] 150 50 500
-TH1F hcaladc_C10p 'HMS Cal ADC C10p - PED' H.cal.3ta.apos_p[9] 150 50 500
-TH1F hcaladc_C11p 'HMS Cal ADC C11p - PED' H.cal.3ta.apos_p[10] 150 50 500
-TH1F hcaladc_C12p 'HMS Cal ADC C12p - PED' H.cal.3ta.apos_p[11] 150 50 500
-TH1F hcaladc_C13p 'HMS Cal ADC C13p - PED' H.cal.3ta.apos_p[12] 150 50 500
-
-TH1F hcaladc_D1p 'HMS Cal ADC D1p - PED' H.cal.4ta.apos_p[0] 150 50 500
-TH1F hcaladc_D2p 'HMS Cal ADC D2p - PED' H.cal.4ta.apos_p[1] 150 50 500
-TH1F hcaladc_D3p 'HMS Cal ADC D3p - PED' H.cal.4ta.apos_p[2] 150 50 500
-TH1F hcaladc_D4p 'HMS Cal ADC D4p - PED' H.cal.4ta.apos_p[3] 150 50 500
-TH1F hcaladc_D5p 'HMS Cal ADC D5p - PED' H.cal.4ta.apos_p[4] 150 50 500
-TH1F hcaladc_D6p 'HMS Cal ADC D6p - PED' H.cal.4ta.apos_p[5] 150 50 500
-TH1F hcaladc_D7p 'HMS Cal ADC D7p - PED' H.cal.4ta.apos_p[6] 150 50 500
-TH1F hcaladc_D8p 'HMS Cal ADC D8p - PED' H.cal.4ta.apos_p[7] 150 50 500
-TH1F hcaladc_D9p 'HMS Cal ADC D9p - PED' H.cal.4ta.apos_p[8] 150 50 500
-TH1F hcaladc_D10p 'HMS Cal ADC D10p - PED' H.cal.4ta.apos_p[9] 150 50 500
-TH1F hcaladc_D11p 'HMS Cal ADC D11p - PED' H.cal.4ta.apos_p[10] 150 50 500
-TH1F hcaladc_D12p 'HMS Cal ADC D12p - PED' H.cal.4ta.apos_p[11] 150 50 500
-TH1F hcaladc_D13p 'HMS Cal ADC D13p - PED' H.cal.4ta.apos_p[12] 150 50 500
-
-TH1F hcaladc_A1n 'HMS Cal ADC A1n - PED' H.cal.1pr.aneg_p[0] 150 50 500
-TH1F hcaladc_A2n 'HMS Cal ADC A2n - PED' H.cal.1pr.aneg_p[1] 150 50 500
-TH1F hcaladc_A3n 'HMS Cal ADC A3n - PED' H.cal.1pr.aneg_p[2] 150 50 500
-TH1F hcaladc_A4n 'HMS Cal ADC A4n - PED' H.cal.1pr.aneg_p[3] 150 50 500
-TH1F hcaladc_A5n 'HMS Cal ADC A5n - PED' H.cal.1pr.aneg_p[4] 150 50 500
-TH1F hcaladc_A6n 'HMS Cal ADC A6n - PED' H.cal.1pr.aneg_p[5] 150 50 500
-TH1F hcaladc_A7n 'HMS Cal ADC A7n - PED' H.cal.1pr.aneg_p[6] 150 50 500
-TH1F hcaladc_A8n 'HMS Cal ADC A8n - PED' H.cal.1pr.aneg_p[7] 150 50 500
-TH1F hcaladc_A9n 'HMS Cal ADC A9n - PED' H.cal.1pr.aneg_p[8] 150 50 500
-TH1F hcaladc_A10n 'HMS Cal ADC A10n - PED' H.cal.1pr.aneg_p[9] 150 50 500
-TH1F hcaladc_A11n 'HMS Cal ADC A11n - PED' H.cal.1pr.aneg_p[10] 150 50 500
-TH1F hcaladc_A12n 'HMS Cal ADC A12n - PED' H.cal.1pr.aneg_p[11] 150 50 500
-TH1F hcaladc_A13n 'HMS Cal ADC A13n - PED' H.cal.1pr.aneg_p[12] 150 50 500
-
-TH1F hcaladc_B1n 'HMS Cal ADC B1n - PED' H.cal.2ta.aneg_p[0] 150 50 500
-TH1F hcaladc_B2n 'HMS Cal ADC B2n - PED' H.cal.2ta.aneg_p[1] 150 50 500
-TH1F hcaladc_B3n 'HMS Cal ADC B3n - PED' H.cal.2ta.aneg_p[2] 150 50 500
-TH1F hcaladc_B4n 'HMS Cal ADC B4n - PED' H.cal.2ta.aneg_p[3] 150 50 500
-TH1F hcaladc_B5n 'HMS Cal ADC B5n - PED' H.cal.2ta.aneg_p[4] 150 50 500
-TH1F hcaladc_B6n 'HMS Cal ADC B6n - PED' H.cal.2ta.aneg_p[5] 150 50 500
-TH1F hcaladc_B7n 'HMS Cal ADC B7n - PED' H.cal.2ta.aneg_p[6] 150 50 500
-TH1F hcaladc_B8n 'HMS Cal ADC B8n - PED' H.cal.2ta.aneg_p[7] 150 50 500
-TH1F hcaladc_B9n 'HMS Cal ADC B9n - PED' H.cal.2ta.aneg_p[8] 150 50 500
-TH1F hcaladc_B10n 'HMS Cal ADC B10n - PED' H.cal.2ta.aneg_p[9] 150 50 500
-TH1F hcaladc_B11n 'HMS Cal ADC B11n - PED' H.cal.2ta.aneg_p[10] 150 50 500
-TH1F hcaladc_B12n 'HMS Cal ADC B12n - PED' H.cal.2ta.aneg_p[11] 150 50 500
-TH1F hcaladc_B13n 'HMS Cal ADC B13n - PED' H.cal.2ta.aneg_p[12] 150 50 500
+# Coordinate corrected energy deposition from the main track (currently first)
+TH1F trecor 'HMS Cal Track Edep' H.cal.trecor 200 -0.1 1.622 H.dc.ntrack==1
+
+# Coordinate corrected preshower energy from the main track (currently first)
+TH1F treprcor 'HMS PrSh Track Edep' H.cal.treprcor 100 -0.1 0.811 H.dc.ntrack==1
+# Coordinate corrected energy deposition from the main track (currently first)
+# in the planes. Currently works for the 1-st pnae only.
+TH1F treplcor 'HMS Cal Track E1' H.cal.treplcor 100 -0.1 0.811 H.dc.ntrack==1
+
+# Calorimeter ADC channels
+#TH1F hcaladc_A1p 'HMS Cal ADC A1p - PED' H.cal.1pr.apos_p[0] 150 50 500
+#TH1F hcaladc_A2p 'HMS Cal ADC A2p - PED' H.cal.1pr.apos_p[1] 150 50 500
+#TH1F hcaladc_A3p 'HMS Cal ADC A3p - PED' H.cal.1pr.apos_p[2] 150 50 500
+#TH1F hcaladc_A4p 'HMS Cal ADC A4p - PED' H.cal.1pr.apos_p[3] 150 50 500
+#TH1F hcaladc_A5p 'HMS Cal ADC A5p - PED' H.cal.1pr.apos_p[4] 150 50 500
+#TH1F hcaladc_A6p 'HMS Cal ADC A6p - PED' H.cal.1pr.apos_p[5] 150 50 500
+#TH1F hcaladc_A7p 'HMS Cal ADC A7p - PED' H.cal.1pr.apos_p[6] 150 50 500
+#TH1F hcaladc_A8p 'HMS Cal ADC A8p - PED' H.cal.1pr.apos_p[7] 150 50 500
+#TH1F hcaladc_A9p 'HMS Cal ADC A9p - PED' H.cal.1pr.apos_p[8] 150 50 500
+#TH1F hcaladc_A10p 'HMS Cal ADC A10p - PED' H.cal.1pr.apos_p[9] 150 50 500
+#TH1F hcaladc_A11p 'HMS Cal ADC A11p - PED' H.cal.1pr.apos_p[10] 150 50 500
+#TH1F hcaladc_A12p 'HMS Cal ADC A12p - PED' H.cal.1pr.apos_p[11] 150 50 500
+#TH1F hcaladc_A13p 'HMS Cal ADC A13p - PED' H.cal.1pr.apos_p[12] 150 50 500
+#TH1F hcaladc_B1p 'HMS Cal ADC B1p - PED' H.cal.2ta.apos_p[0] 150 50 500
+#TH1F hcaladc_B2p 'HMS Cal ADC B2p - PED' H.cal.2ta.apos_p[1] 150 50 500
+#TH1F hcaladc_B3p 'HMS Cal ADC B3p - PED' H.cal.2ta.apos_p[2] 150 50 500
+#TH1F hcaladc_B4p 'HMS Cal ADC B4p - PED' H.cal.2ta.apos_p[3] 150 50 500
+#TH1F hcaladc_B5p 'HMS Cal ADC B5p - PED' H.cal.2ta.apos_p[4] 150 50 500
+#TH1F hcaladc_B6p 'HMS Cal ADC B6p - PED' H.cal.2ta.apos_p[5] 150 50 500
+#TH1F hcaladc_B7p 'HMS Cal ADC B7p - PED' H.cal.2ta.apos_p[6] 150 50 500
+#TH1F hcaladc_B8p 'HMS Cal ADC B8p - PED' H.cal.2ta.apos_p[7] 150 50 500
+#TH1F hcaladc_B9p 'HMS Cal ADC B9p - PED' H.cal.2ta.apos_p[8] 150 50 500
+#TH1F hcaladc_B10p 'HMS Cal ADC B10p - PED' H.cal.2ta.apos_p[9] 150 50 500
+#TH1F hcaladc_B11p 'HMS Cal ADC B11p - PED' H.cal.2ta.apos_p[10] 150 50 500
+#TH1F hcaladc_B12p 'HMS Cal ADC B12p - PED' H.cal.2ta.apos_p[11] 150 50 500
+#TH1F hcaladc_B13p 'HMS Cal ADC B13p - PED' H.cal.2ta.apos_p[12] 150 50 500
+
+#TH1F hcaladc_C1p 'HMS Cal ADC C1p - PED' H.cal.3ta.apos_p[0] 150 50 500
+#TH1F hcaladc_C2p 'HMS Cal ADC C2p - PED' H.cal.3ta.apos_p[1] 150 50 500
+#TH1F hcaladc_C3p 'HMS Cal ADC C3p - PED' H.cal.3ta.apos_p[2] 150 50 500
+#TH1F hcaladc_C4p 'HMS Cal ADC C4p - PED' H.cal.3ta.apos_p[3] 150 50 500
+#TH1F hcaladc_C5p 'HMS Cal ADC C5p - PED' H.cal.3ta.apos_p[4] 150 50 500
+#TH1F hcaladc_C6p 'HMS Cal ADC C6p - PED' H.cal.3ta.apos_p[5] 150 50 500
+#TH1F hcaladc_C7p 'HMS Cal ADC C7p - PED' H.cal.3ta.apos_p[6] 150 50 500
+#TH1F hcaladc_C8p 'HMS Cal ADC C8p - PED' H.cal.3ta.apos_p[7] 150 50 500
+#TH1F hcaladc_C9p 'HMS Cal ADC C9p - PED' H.cal.3ta.apos_p[8] 150 50 500
+#TH1F hcaladc_C10p 'HMS Cal ADC C10p - PED' H.cal.3ta.apos_p[9] 150 50 500
+#TH1F hcaladc_C11p 'HMS Cal ADC C11p - PED' H.cal.3ta.apos_p[10] 150 50 500
+#TH1F hcaladc_C12p 'HMS Cal ADC C12p - PED' H.cal.3ta.apos_p[11] 150 50 500
+#TH1F hcaladc_C13p 'HMS Cal ADC C13p - PED' H.cal.3ta.apos_p[12] 150 50 500
+
+#TH1F hcaladc_D1p 'HMS Cal ADC D1p - PED' H.cal.4ta.apos_p[0] 150 50 500
+#TH1F hcaladc_D2p 'HMS Cal ADC D2p - PED' H.cal.4ta.apos_p[1] 150 50 500
+#TH1F hcaladc_D3p 'HMS Cal ADC D3p - PED' H.cal.4ta.apos_p[2] 150 50 500
+#TH1F hcaladc_D4p 'HMS Cal ADC D4p - PED' H.cal.4ta.apos_p[3] 150 50 500
+#TH1F hcaladc_D5p 'HMS Cal ADC D5p - PED' H.cal.4ta.apos_p[4] 150 50 500
+#TH1F hcaladc_D6p 'HMS Cal ADC D6p - PED' H.cal.4ta.apos_p[5] 150 50 500
+#TH1F hcaladc_D7p 'HMS Cal ADC D7p - PED' H.cal.4ta.apos_p[6] 150 50 500
+#TH1F hcaladc_D8p 'HMS Cal ADC D8p - PED' H.cal.4ta.apos_p[7] 150 50 500
+#TH1F hcaladc_D9p 'HMS Cal ADC D9p - PED' H.cal.4ta.apos_p[8] 150 50 500
+#TH1F hcaladc_D10p 'HMS Cal ADC D10p - PED' H.cal.4ta.apos_p[9] 150 50 500
+#TH1F hcaladc_D11p 'HMS Cal ADC D11p - PED' H.cal.4ta.apos_p[10] 150 50 500
+#TH1F hcaladc_D12p 'HMS Cal ADC D12p - PED' H.cal.4ta.apos_p[11] 150 50 500
+#TH1F hcaladc_D13p 'HMS Cal ADC D13p - PED' H.cal.4ta.apos_p[12] 150 50 500
+
+#TH1F hcaladc_A1n 'HMS Cal ADC A1n - PED' H.cal.1pr.aneg_p[0] 150 50 500
+#TH1F hcaladc_A2n 'HMS Cal ADC A2n - PED' H.cal.1pr.aneg_p[1] 150 50 500
+#TH1F hcaladc_A3n 'HMS Cal ADC A3n - PED' H.cal.1pr.aneg_p[2] 150 50 500
+#TH1F hcaladc_A4n 'HMS Cal ADC A4n - PED' H.cal.1pr.aneg_p[3] 150 50 500
+#TH1F hcaladc_A5n 'HMS Cal ADC A5n - PED' H.cal.1pr.aneg_p[4] 150 50 500
+#TH1F hcaladc_A6n 'HMS Cal ADC A6n - PED' H.cal.1pr.aneg_p[5] 150 50 500
+#TH1F hcaladc_A7n 'HMS Cal ADC A7n - PED' H.cal.1pr.aneg_p[6] 150 50 500
+#TH1F hcaladc_A8n 'HMS Cal ADC A8n - PED' H.cal.1pr.aneg_p[7] 150 50 500
+#TH1F hcaladc_A9n 'HMS Cal ADC A9n - PED' H.cal.1pr.aneg_p[8] 150 50 500
+#TH1F hcaladc_A10n 'HMS Cal ADC A10n - PED' H.cal.1pr.aneg_p[9] 150 50 500
+#TH1F hcaladc_A11n 'HMS Cal ADC A11n - PED' H.cal.1pr.aneg_p[10] 150 50 500
+#TH1F hcaladc_A12n 'HMS Cal ADC A12n - PED' H.cal.1pr.aneg_p[11] 150 50 500
+#TH1F hcaladc_A13n 'HMS Cal ADC A13n - PED' H.cal.1pr.aneg_p[12] 150 50 500
+
+#TH1F hcaladc_B1n 'HMS Cal ADC B1n - PED' H.cal.2ta.aneg_p[0] 150 50 500
+#TH1F hcaladc_B2n 'HMS Cal ADC B2n - PED' H.cal.2ta.aneg_p[1] 150 50 500
+#TH1F hcaladc_B3n 'HMS Cal ADC B3n - PED' H.cal.2ta.aneg_p[2] 150 50 500
+#TH1F hcaladc_B4n 'HMS Cal ADC B4n - PED' H.cal.2ta.aneg_p[3] 150 50 500
+#TH1F hcaladc_B5n 'HMS Cal ADC B5n - PED' H.cal.2ta.aneg_p[4] 150 50 500
+#TH1F hcaladc_B6n 'HMS Cal ADC B6n - PED' H.cal.2ta.aneg_p[5] 150 50 500
+#TH1F hcaladc_B7n 'HMS Cal ADC B7n - PED' H.cal.2ta.aneg_p[6] 150 50 500
+#TH1F hcaladc_B8n 'HMS Cal ADC B8n - PED' H.cal.2ta.aneg_p[7] 150 50 500
+#TH1F hcaladc_B9n 'HMS Cal ADC B9n - PED' H.cal.2ta.aneg_p[8] 150 50 500
+#TH1F hcaladc_B10n 'HMS Cal ADC B10n - PED' H.cal.2ta.aneg_p[9] 150 50 500
+#TH1F hcaladc_B11n 'HMS Cal ADC B11n - PED' H.cal.2ta.aneg_p[10] 150 50 500
+#TH1F hcaladc_B12n 'HMS Cal ADC B12n - PED' H.cal.2ta.aneg_p[11] 150 50 500
+#TH1F hcaladc_B13n 'HMS Cal ADC B13n - PED' H.cal.2ta.aneg_p[12] 150 50 500
 
 # Can we use variables for the constants.  In CTP we used hdc_nwire(i)
 #
diff --git a/src/THcShower.cxx b/src/THcShower.cxx
index 36fc4a5..167807d 100644
--- a/src/THcShower.cxx
+++ b/src/THcShower.cxx
@@ -410,6 +410,12 @@ Int_t THcShower::ReadDatabase( const TDatime& date )
     cout <<  endl;
   };
 
+  // Corrdiante corrected track energies per plane
+
+  fTREpl_cor     = new Double_t [fNLayers];
+  fTREpl_pos_cor = new Double_t [fNLayers];
+  fTREpl_neg_cor = new Double_t [fNLayers];
+
   // Origin of the calorimeter, at tha middle of the face of the detector,
   // or at the middle of the front plane of the 1-st layer.
   //
@@ -462,8 +468,8 @@ Int_t THcShower::DefineVariables( EMode mode )
  //   { "asum_p", "Sum of ped-subtracted ADCs",         "fAsum_p" },
  //   { "asum_c", "Sum of calibrated ADCs",             "fAsum_c" },
     { "nclust", "Number of clusters",                 "fNclust" },
-    { "emax",   "Energy (MeV) of largest cluster",    "fE" },
-    { "eprmax",   "Preshower Energy (MeV) of largest cluster",    "fEpr" },
+    { "emax",   "Energy of largest cluster",    "fE" },
+    { "eprmax",   "Preshower Energy of largest cluster",    "fEpr" },
     { "xmax",      "x-position (cm) of largest cluster", "fX" },
  //   { "z",      "z-position (cm) of largest cluster", "fZ" },
     { "mult",   "Multiplicity of largest cluster",    "fMult" },
@@ -473,10 +479,28 @@ Int_t THcShower::DefineVariables( EMode mode )
     { "try",    "track y-position in det plane (1st track)",      "fTRY" },
     { "tre",    "track energy in the calorimeter (1st track)",    "fTRE" },
     { "trepr",  "track energy in the preshower (1st track)",      "fTREpr" },
+    { "trecor",    "Y-corrected track Edep (1st track)", "fTRE_cor" },
+    { "treprcor",  "Y-corrected track Epr (1st track)", "fTREpr_cor" },
+    { "treplcor", "Y-corrected track Edep for planes", "fTREpl_cor" },
     { 0 }
   };
   return DefineVarsFromList( vars, mode );
 
+  /*
+  for (Int_t i=0; i<fNLayers; i++) {
+    RVarDef vars[] = {
+      { Form("treplcor%d",i+1),
+	Form("Y-corrected track Edep for plane %d",i+1),
+	Form("fTREpl_cor[%d]",i) },
+      { 0 }
+    };
+    return DefineVarsFromList( vars, mode );
+  };
+  */
+
+  //{ "treplposcor","Y-corrected track pos. Edep per plane", "fTREpl_pos_cor"},
+  //{ "treplnegcor","Y-corrected track neg. Edep per plane", "fTREpl_neg_cor"},
+
   return kOK;
 }
 
@@ -530,8 +554,15 @@ void THcShower::Clear(Option_t* opt)
   fX = -75.;    //out of acceptance
   fTRX = -75.;  //out of acceptance
   fTRY = -40.;  //out of acceptance
-  fTRE = -1.;
-  fTREpr = -1.;
+  fTRE = -0.;
+  fTREpr = -0.;
+  fTRE_cor = -0.;
+  fTREpr_cor = -0.;
+  for(Int_t ip=0;ip<fNLayers;ip++) {
+    fTREpl_cor[ip] = -0.;
+    fTREpl_pos_cor[ip] = -0.;
+    fTREpl_neg_cor[ip] = -0.;
+  }
 }
 
 //_____________________________________________________________________________
@@ -738,12 +769,12 @@ Int_t THcShower::CoarseProcess( TClonesArray& tracks)
     cout << "Number of reconstructed tracks = " << Ntracks << endl;
   }
 
-  for (Int_t i=0; i<Ntracks; i++) {
+  for (Int_t itrk=0; itrk<Ntracks; itrk++) {
 
-    THaTrack* theTrack = static_cast<THaTrack*>( tracks[i] );
+    THaTrack* theTrack = static_cast<THaTrack*>( tracks[itrk] );
 
     if (fdbg_tracks_cal) {
-      cout << "   Track " << i << ": "
+      cout << "   Track " << itrk << ": "
 	   << "  X = " << theTrack->GetX()
 	   << "  Y = " << theTrack->GetY()
 	   << "  Theta = " << theTrack->GetTheta()
@@ -751,22 +782,67 @@ Int_t THcShower::CoarseProcess( TClonesArray& tracks)
 	   << endl;
     }
 
-    Double_t Xtr;
-    Double_t Ytr;
+    Double_t Xtr = -75.;
+    Double_t Ytr = -40.;
 
     Int_t mclust = MatchCluster(theTrack, ClusterList, Xtr, Ytr);
 
-    if (i==0) {
+    if (itrk==0) {
+
       fTRX = Xtr;
       fTRY = Ytr;
+
       if (mclust >= 0) {
+
 	THcShowerCluster* cluster = (*ClusterList).ListedCluster(mclust);
 	fTRE = (*cluster).clE();
 	fTREpr = (*cluster).clEpr();
-      }
-    }
 
-  }
+	fTRE_cor = 0.;
+
+	for (Int_t ip=0; ip<fNLayers; ip++) {
+
+	  Float_t corpos = 1.;
+	  Float_t corneg = 1.;
+	  if (ip < fNegCols) {
+	    corpos = Ycor(Ytr,0);
+	    corneg = Ycor(Ytr,1);
+	  }
+	  else {
+	    corpos = Ycor(Ytr);
+	    corneg = 0.;
+	  }
+
+	  if (fdbg_tracks_cal) {
+	    cout << "   Plane " << ip << "  Ytr = " << Ytr 
+		 << "  corpos = " << corpos 
+		 << "  corneg = " << corneg << endl;
+	  }
+
+	  fTREpl_pos_cor[ip] = (*cluster).clEplane(ip,0) * corpos;
+	  fTREpl_neg_cor[ip] = (*cluster).clEplane(ip,1) * corneg;;
+	  fTREpl_cor[ip] = fTREpl_pos_cor[ip] + fTREpl_neg_cor[ip];
+
+	  if (fdbg_tracks_cal) {
+	    cout << "   fTREpl_pos_cor = " << fTREpl_pos_cor[ip]
+		 << "   fTREpl_neg_cor = " << fTREpl_neg_cor[ip] << endl;
+	  }
+
+	  fTRE_cor += fTREpl_cor[ip];
+
+	}   //over planes
+
+	fTREpr_cor = fTREpl_cor[0];
+
+	if (fdbg_tracks_cal)
+	  cout << "   fTREpr = " << fTREpr 
+	       << "   fTREpr_cor = " << fTREpr_cor << endl;
+
+      }   //mclust>=0
+
+    }     //itrk==0
+
+  }       //over tracks
 
   if (fdbg_tracks_cal)
     cout << "1st track cluster:  fTRX = " << fTRX << "  fTRY = " << fTRY 
diff --git a/src/THcShower.h b/src/THcShower.h
index 28b710c..0452731 100644
--- a/src/THcShower.h
+++ b/src/THcShower.h
@@ -12,6 +12,7 @@
 #include "THcHitList.h"
 #include "THcShowerPlane.h"
 #include "THcShowerCluster.h"
+#include "TMath.h"
 
 class THaScCalib;
 
@@ -88,6 +89,27 @@ public:
     return fNLayers;
   }
 
+  //Coordinate correction for single PMT modules.
+  //PMT attached at right (negative) side.
+
+  Float_t Ycor(Double_t y) {
+    return TMath::Exp(y/fAcor)/(1. + y*y/fBcor);
+    //    return TMath::Exp(-y/fAcor)/(1. + y*y/fBcor);
+  }
+
+  //Coordinate correction for double PMT modules.
+  //
+
+  Float_t Ycor(Double_t y, Int_t side) {
+    if (side!=0&&side!=1) {
+      cout << "THcShower::Ycor : wrong side " << side << endl;
+      return 0.;
+    }
+    Int_t sign = 1 - 2*side;
+    //    Int_t sign = 2*side - 1;
+    return (fCcor + sign*y)/(fCcor + sign*y/fDcor);
+  }
+
   THcShower();  // for ROOT I/O
 
 protected:
@@ -106,8 +128,8 @@ protected:
 
   Int_t fNhits;              // Total number of hits
   Int_t fNclust;             // Number of clusters
-  Double_t fE;               // Energy (MeV) of the largest cluster
-  Double_t fEpr;             // Preshower Energy (MeV) of the largest cluster
+  Double_t fE;               // Energy of the largest cluster
+  Double_t fEpr;             // Preshower Energy of the largest cluster
   Double_t fX;               // x-position (cm) of the largest cluster
   Double_t fZ;               // z-position (cm) of the largest cluster
   Int_t fMult;               // # of hits in the largest cluster
@@ -115,8 +137,13 @@ protected:
   //  Double_t* fEblk;       // Energies of blocks in main cluster
   Double_t fTRX;             // track x-position in det plane (1st track)
   Double_t fTRY;             // track y-position in det plane (1st track)
-  Double_t fTRE;             // Energy (MeV) of the cluster associated to track
-  Double_t fTREpr;           // Preshower Energy (MeV) of the track's cluster
+  Double_t fTRE;             // Energy of the cluster associated to track
+  Double_t fTREpr;           // Preshower Energy of the track's cluster
+  Double_t fTRE_cor;         // Y-corrected track total energy
+  Double_t fTREpr_cor;       // Y-corrected track Preshower energy
+  Double_t* fTREpl_cor;      // Y-corrected track energy per plane
+  Double_t* fTREpl_pos_cor;  // Y-corrected track positive energy per plane
+  Double_t* fTREpl_neg_cor;  // Y-corrected track negative energy per plane
 
   // Potential Hall C parameters.  Mostly here for demonstration
 
diff --git a/src/THcShowerCluster.h b/src/THcShowerCluster.h
index 9f0ff50..5705abb 100644
--- a/src/THcShowerCluster.h
+++ b/src/THcShowerCluster.h
@@ -109,7 +109,7 @@ class THcShowerCluster : THcShowerHitList {
 
   Double_t clEplane(Int_t iplane, Int_t side) {
 
-    if (side!=0&&side!=1||side!=2) {
+    if (side!=0&&side!=1&&side!=2) {
       cout << "*** Wrong Side in clEplane:" << side << " ***" << endl;
       return -1;
     }
diff --git a/src/THcShowerPlane.cxx b/src/THcShowerPlane.cxx
index b90f01d..bdca666 100644
--- a/src/THcShowerPlane.cxx
+++ b/src/THcShowerPlane.cxx
@@ -207,7 +207,7 @@ Int_t THcShowerPlane::DefineVariables( EMode mode )
     {"aneg_p", "Ped-subtracted Negative ADC Amplitudes", "fA_Neg_p"},
     {"epos",   "Energy Depositions from Positive Side PMTs", "fEpos"},
     {"eneg",   "Energy Depositions from Negative Side PMTs", "fEneg"},
-    {"emean",  "Mean Energy Depositions",                    "fEMean"},
+    {"emean",  "Mean Energy Depositions",                    "fEmean"},
     {"eplane", "Energy Deposition per plane",                "fEplane"},
     {"eplane_pos", "Energy Deposition per plane from pos. PMTs","fEplane_pos"},
     {"eplane_neg", "Energy Deposition per plane from neg. PMTs","fEplane_neg"},
-- 
GitLab