From 04384be039879cebf60291b7281c1f9c72a32b70 Mon Sep 17 00:00:00 2001
From: John Matter <matter@virginia.edu>
Date: Tue, 21 Nov 2017 12:00:01 -0500
Subject: [PATCH] Make projected track position at Cherenkov/Aerogel available
 in tree

Fix typo in previous commit's THcCherenkov.cxx
---
 src/THcAerogel.cxx   | 68 ++++++++++++++++++++++++--------------------
 src/THcAerogel.h     |  2 ++
 src/THcCherenkov.cxx | 66 +++++++++++++++++++++++-------------------
 src/THcCherenkov.h   |  2 ++
 4 files changed, 77 insertions(+), 61 deletions(-)

diff --git a/src/THcAerogel.cxx b/src/THcAerogel.cxx
index 45f4abc..026ff80 100644
--- a/src/THcAerogel.cxx
+++ b/src/THcAerogel.cxx
@@ -431,6 +431,9 @@ Int_t THcAerogel::DefineVariables( EMode mode )
     {"totNumTracksMatched", "Total Number of Tracks Matched Per Region", "fTotNumTracksMatched"},
     {"totNumTracksFired",   "Total Number of Tracks that Fired",         "fTotNumTracksFired"},
 
+    {"xAtAero",       "Track X at Aero diffusion box",    "fXAtAero"},
+    {"yAtAero",       "Track Y at Aero diffusion box",    "fYAtAero"},
+
     {"posNpe",    "Number of Positive PEs",       "fPosNpe"},
     {"negNpe",    "Number of Negative PEs",       "fNegNpe"},
     {"posNpeSum", "Total Number of Positive PEs", "fPosNpeSum"},
@@ -468,6 +471,9 @@ void THcAerogel::Clear(Option_t* opt)
   fTotNumTracksMatched  = 0;
   fTotNumTracksFired    = 0;
 
+  fXAtAero   = 0.0;
+  fYAtAero   = 0.0;
+
   fNpeSum    = 0.0;
   fPosNpeSum = 0.0;
   fNegNpeSum = 0.0;
@@ -826,37 +832,37 @@ Int_t THcAerogel::FineProcess( TClonesArray& tracks )
 
     if (trackRedChi2Cut && trackBetaCut && trackENormCut && trackDpCut) {
 
-      // Project the track to the Aerogel diffuser box plane
-      Double_t xAtAero = trackXfp + trackTheta * fDiffBoxZPos;
-      Double_t yAtAero = trackYfp + trackPhi   * fDiffBoxZPos;
-
-      // cout << "Aerogel Detector: " << GetName() << endl;
-      // cout << "nTracks = " << nTracks << "\t" << "trackChi2 = " << trackChi2
-      // 	   << "\t" << "trackNDof = " << trackNDoF << "\t" << "trackRedChi2 = " << trackRedChi2 << endl;
-      // cout << "trackBeta = " << trackBeta << "\t" << "trackEnergy = " << trackEnergy << "\t"
-      // 	   << "trackMom = " << trackMom << "\t" << "trackENorm = " << trackENorm << endl;
-      // cout << "trackXfp = " << trackXfp << "\t" << "trackYfp = " << trackYfp << "\t"
-      // 	   << "trackTheta = " << trackTheta << "\t" << "trackPhi = " << trackPhi << endl;
-      // cout << "fDiffBoxZPos = " << fDiffBoxZPos << "\t" << "xAtAero = " << xAtAero << "\t" << "yAtAero = " << yAtAero << endl;
-      // cout << "=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:" << endl;
-
-
-      for (Int_t iregion = 0; iregion < fNRegions; iregion++) {
-
-      	if ((TMath::Abs(fRegionValue[GetIndex(iregion, 0)] - xAtAero)    < fRegionValue[GetIndex(iregion, 4)]) &&
-      	    (TMath::Abs(fRegionValue[GetIndex(iregion, 1)] - yAtAero)    < fRegionValue[GetIndex(iregion, 5)]) &&
-      	    (TMath::Abs(fRegionValue[GetIndex(iregion, 2)] - trackTheta) < fRegionValue[GetIndex(iregion, 6)]) &&
-      	    (TMath::Abs(fRegionValue[GetIndex(iregion, 3)] - trackPhi)   < fRegionValue[GetIndex(iregion, 7)])) {
-
-	  fTotNumTracksMatched++;
-      	  fNumTracksMatched.at(iregion) = iregion + 1;
-
-      	  if (fNpeSum > fNpeThresh) {
-      	    fTotNumTracksFired++;
-      	    fNumTracksFired.at(iregion) = iregion + 1;
-      	  }  // NPE threshold cut
-      	}  // Regional cuts
-      }  // Loop over regions
+        // Project the track to the Aerogel diffuser box plane
+        fXAtAero = trackXfp + trackTheta * fDiffBoxZPos;
+        fYAtAero = trackYfp + trackPhi   * fDiffBoxZPos;
+
+        // cout << "Aerogel Detector: " << GetName() << endl;
+        // cout << "nTracks = " << nTracks << "\t" << "trackChi2 = " << trackChi2
+        // 	   << "\t" << "trackNDof = " << trackNDoF << "\t" << "trackRedChi2 = " << trackRedChi2 << endl;
+        // cout << "trackBeta = " << trackBeta << "\t" << "trackEnergy = " << trackEnergy << "\t"
+        // 	   << "trackMom = " << trackMom << "\t" << "trackENorm = " << trackENorm << endl;
+        // cout << "trackXfp = " << trackXfp << "\t" << "trackYfp = " << trackYfp << "\t"
+        // 	   << "trackTheta = " << trackTheta << "\t" << "trackPhi = " << trackPhi << endl;
+        // cout << "fDiffBoxZPos = " << fDiffBoxZPos << "\t" << "fXAtAero = " << fXAtAero << "\t" << "fYAtAero = " << fYAtAero << endl;
+        // cout << "=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:" << endl;
+
+
+        for (Int_t iregion = 0; iregion < fNRegions; iregion++) {
+
+            if ((TMath::Abs(fRegionValue[GetIndex(iregion, 0)] - fXAtAero)   < fRegionValue[GetIndex(iregion, 4)]) &&
+                (TMath::Abs(fRegionValue[GetIndex(iregion, 1)] - fYAtAero)   < fRegionValue[GetIndex(iregion, 5)]) &&
+                (TMath::Abs(fRegionValue[GetIndex(iregion, 2)] - trackTheta) < fRegionValue[GetIndex(iregion, 6)]) &&
+                (TMath::Abs(fRegionValue[GetIndex(iregion, 3)] - trackPhi)   < fRegionValue[GetIndex(iregion, 7)])) {
+
+                fTotNumTracksMatched++;
+                fNumTracksMatched.at(iregion) = iregion + 1;
+
+                if (fNpeSum > fNpeThresh) {
+                    fTotNumTracksFired++;
+                    fNumTracksFired.at(iregion) = iregion + 1;
+                }  // NPE threshold cut
+            }  // Regional cuts
+        }  // Loop over regions
     }  // Tracking cuts
   }  // Track loop
 
diff --git a/src/THcAerogel.h b/src/THcAerogel.h
index 55e8a58..59794a9 100644
--- a/src/THcAerogel.h
+++ b/src/THcAerogel.h
@@ -57,6 +57,8 @@ class THcAerogel : public THaNonTrackingDetector, public THcHitList {
   Double_t  fDpMin;
   Double_t  fDpMax;
   Double_t  fDiffBoxZPos;
+  Double_t  fXAtAero;
+  Double_t  fYAtAero;
   Double_t  fNpeThresh;
   Double_t  fAdcTimeWindowMin;
   Double_t  fAdcTimeWindowMax;
diff --git a/src/THcCherenkov.cxx b/src/THcCherenkov.cxx
index 7dd3785..40bc534 100644
--- a/src/THcCherenkov.cxx
+++ b/src/THcCherenkov.cxx
@@ -272,6 +272,9 @@ Int_t THcCherenkov::DefineVariables( EMode mode )
     {"totNumTracksMatched", "Total Number of Tracks Matched Per Region", "fTotNumTracksMatched"},
     {"totNumTracksFired",   "Total Number of Tracks that Fired",         "fTotNumTracksFired"},
 
+    {"xAtCer",       "Track X at Cherenkov mirror",    "fXAtCer"},
+    {"yAtCer",       "Track Y at Cherenkov mirror",    "fYAtCer"},
+
     {"npe",          "Number of PEs",                  "fNpe"},
     {"npeSum",       "Total Number of PEs",            "fNpeSum"},
 
@@ -296,6 +299,9 @@ void THcCherenkov::Clear(Option_t* opt)
   fTotNumTracksMatched = 0;
   fTotNumTracksFired   = 0;
 
+  fXAtCer = 0.0;
+  fYAtCer = 0.0;
+
   fNpeSum = 0.0;
 
   frAdcPedRaw->Clear();
@@ -451,36 +457,36 @@ Int_t THcCherenkov::FineProcess( TClonesArray& tracks )
 
     if (trackRedChi2Cut && trackBetaCut && trackENormCut && trackDpCut) {
 
-      // Project the track to the Cherenkov mirror planes
-      Double_t xAtCher = trackXfp + trackTheta * fMirrorZPos;
-      Double_t yAtCher = trackYfp + trackPhi   * fMirrorZPos;
-
-      // cout << "Cherenkov Detector: " << GetName() << " has fNRegions = " << fNRegions << endl;
-      // cout << "nTracks = " << nTracks << "\t" << "trackChi2 = " << trackChi2
-      // 	   << "\t" << "trackNDof = " << trackNDoF << "\t" << "trackRedChi2 = " << trackRedChi2 << endl;
-      // cout << "trackBeta = " << trackBeta << "\t" << "trackEnergy = " << trackEnergy << "\t"
-      // 	   << "trackMom = " << trackMom << "\t" << "trackENorm = " << trackENorm << endl;
-      // cout << "trackXfp = " << trackXfp << "\t" << "trackYfp = " << trackYfp << "\t"
-      // 	   << "trackTheta = " << trackTheta << "\t" << "trackPhi = " << trackPhi << endl;
-      // cout << "fMirrorZPos = " << fMirrorZPos << "\t" << "xAtCher = " << xAtCher << "\t" << "yAtCher = " << yAtCher << endl;
-      // cout << "=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:" << endl;
-
-      for (Int_t iregion = 0; iregion < fNRegions; iregion++) {
-
-	if ((TMath::Abs(fRegionValue[GetIndex(iregion, 0)] - xAtCher)    < fRegionValue[GetIndex(iregion, 4)]) &&
-	    (TMath::Abs(fRegionValue[GetIndex(iregion, 1)] - yAtCher)    < fRegionValue[GetIndex(iregion, 5)]) &&
-	    (TMath::Abs(fRegionValue[GetIndex(iregion, 2)] - trackTheta) < fRegionValue[GetIndex(iregion, 6)]) &&
-	    (TMath::Abs(fRegionValue[GetIndex(iregion, 3)] - trackPhi)   < fRegionValue[GetIndex(iregion, 7)])) {
-
-	  fTotNumTracksMatched++;
-	  fNumTracksMatched.at(iregion) = iregion + 1;
-
-	  if (fNpeSum > fNpeThresh) {
-	    fTotNumTracksFired++;
-	    fNumTracksFired.at(iregion) = iregion + 1;
-	  }  // NPE threshold cut
-	}  // Regional cuts
-      }  // Loop over regions
+        // Project the track to the Cherenkov mirror planes
+        fXAtCer = trackXfp + trackTheta * fMirrorZPos;
+        fYAtCer = trackYfp + trackPhi   * fMirrorZPos;
+
+        // cout << "Cherenkov Detector: " << GetName() << " has fNRegions = " << fNRegions << endl;
+        // cout << "nTracks = " << nTracks << "\t" << "trackChi2 = " << trackChi2
+        // 	   << "\t" << "trackNDof = " << trackNDoF << "\t" << "trackRedChi2 = " << trackRedChi2 << endl;
+        // cout << "trackBeta = " << trackBeta << "\t" << "trackEnergy = " << trackEnergy << "\t"
+        // 	   << "trackMom = " << trackMom << "\t" << "trackENorm = " << trackENorm << endl;
+        // cout << "trackXfp = " << trackXfp << "\t" << "trackYfp = " << trackYfp << "\t"
+        // 	   << "trackTheta = " << trackTheta << "\t" << "trackPhi = " << trackPhi << endl;
+        // cout << "fMirrorZPos = " << fMirrorZPos << "\t" << "fXAtCer = " << fXAtCer << "\t" << "fYAtCer = " << fYAtCer << endl;
+        // cout << "=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:" << endl;
+
+        for (Int_t iregion = 0; iregion < fNRegions; iregion++) {
+
+            if ((TMath::Abs(fRegionValue[GetIndex(iregion, 0)] - fXAtCer)   < fRegionValue[GetIndex(iregion, 4)]) &&
+                (TMath::Abs(fRegionValue[GetIndex(iregion, 1)] - fYAtCer)   < fRegionValue[GetIndex(iregion, 5)]) &&
+                (TMath::Abs(fRegionValue[GetIndex(iregion, 2)] - trackTheta) < fRegionValue[GetIndex(iregion, 6)]) &&
+                (TMath::Abs(fRegionValue[GetIndex(iregion, 3)] - trackPhi)   < fRegionValue[GetIndex(iregion, 7)])) {
+
+                fTotNumTracksMatched++;
+                fNumTracksMatched.at(iregion) = iregion + 1;
+
+                if (fNpeSum > fNpeThresh) {
+                    fTotNumTracksFired++;
+                    fNumTracksFired.at(iregion) = iregion + 1;
+                }  // NPE threshold cut
+            }  // Regional cuts
+        }  // Loop over regions
     }  // Tracking cuts
   }  // Track loop
 
diff --git a/src/THcCherenkov.h b/src/THcCherenkov.h
index b8f2bdf..110a64f 100644
--- a/src/THcCherenkov.h
+++ b/src/THcCherenkov.h
@@ -77,6 +77,8 @@ class THcCherenkov : public THaNonTrackingDetector, public THcHitList {
   Double_t  fDpMin;
   Double_t  fDpMax;
   Double_t  fMirrorZPos;
+  Double_t  fXAtCer;
+  Double_t  fYAtCer;
   Double_t  fNpeThresh;
   Double_t  fAdcTimeWindowMin;
   Double_t  fAdcTimeWindowMax;
-- 
GitLab