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