From f1fb954f6d57058e7adea43fdf03891fb67aa619 Mon Sep 17 00:00:00 2001
From: "Stephen A. Wood" <saw@jlab.org>
Date: Tue, 23 Jul 2013 16:28:14 -0400
Subject: [PATCH] Histogram the calculated focal plane ray.

---
 examples/tracking.C | 19 +++++++++++++++++++
 src/THcDC.cxx       |  5 +++++
 src/THcDCTrack.h    |  4 ++++
 3 files changed, 28 insertions(+)
 create mode 100644 examples/tracking.C

diff --git a/examples/tracking.C b/examples/tracking.C
new file mode 100644
index 0000000..74d40e2
--- /dev/null
+++ b/examples/tracking.C
@@ -0,0 +1,19 @@
+{
+  TFile* f = new TFile("hodtest.root");
+  TTree *T=(TTree*)f->Get("T");
+  TCanvas *c1 = new TCanvas("c1", "Drift Tracking", 800, 1000); 
+  c1->Divide(2,3);
+
+  c1->cd(1);
+  T->Draw("H.dc.nhit");
+  c1->cd(2);
+  T->Draw("H.dc.ntrack");
+  c1->cd(3);
+  T->Draw("H.dc.x:H.dc.y");
+  c1->cd(4);
+  T->Draw("H.dc.x:H.dc.xp");
+  c1->cd(5);
+  T->Draw("H.dc.y:H.dc.yp");
+  c1->cd(6);
+  T->Draw("H.dc.xp:H.dc.yp");
+}
diff --git a/src/THcDC.cxx b/src/THcDC.cxx
index 812bdcf..e2804ff 100644
--- a/src/THcDC.cxx
+++ b/src/THcDC.cxx
@@ -328,6 +328,11 @@ Int_t THcDC::DefineVariables( EMode mode )
 
   RVarDef vars[] = {
     { "nhit", "Number of DC hits",  "fNhits" },
+    { "ntrack", "Number of Tracks", "fNDCTracks" },
+    { "x", "X at focal plane", "fDCTracks.THcDCTrack.GetX()"},
+    { "y", "Y at focal plane", "fDCTracks.THcDCTrack.GetY()"},
+    { "xp", "YP at focal plane", "fDCTracks.THcDCTrack.GetXP()"},
+    { "yp", "YP at focal plane", "fDCTracks.THcDCTrack.GetYP()"},
     { 0 }
   };
   return DefineVarsFromList( vars, mode );
diff --git a/src/THcDCTrack.h b/src/THcDCTrack.h
index 2b67faf..a44b949 100644
--- a/src/THcDCTrack.h
+++ b/src/THcDCTrack.h
@@ -35,6 +35,10 @@ public:
   Double_t GetCoord(Int_t ip)     const {return fCoords[ip];}
   Double_t GetResidual(Int_t ip)     const {return fResiduals[ip];}
   void GetRay(Double_t *ray) const {ray[0]=fX_fp; ray[1]=fY_fp; ray[2]=fXp_fp; ray[3]=fYp_fp;}
+  Double_t GetX()                 const {return fX_fp;}
+  Double_t GetY()                 const {return fY_fp;}
+  Double_t GetXP()                 const {return fXp_fp;}
+  Double_t GetYP()                 const {return fYp_fp;}
   void SetNFree(Int_t nfree)           {fNfree = nfree;}
   void SetCoord(Int_t ip, Double_t coord) {fCoords[ip] = coord;}
   void SetResidual(Int_t ip, Double_t coord) {fResiduals[ip] = coord;}
-- 
GitLab