From 9f949edd008348d8b754ec52d1226a57b02ed1e3 Mon Sep 17 00:00:00 2001 From: vsitaraman Date: Mon, 9 Feb 2026 16:11:07 -0500 Subject: [PATCH] new file: RunTimeSummary.C new file: Timing_Summary_Matplotlib.png modified: TrackRecon.C modified: process_mapped_run.sh --- RunTimeSummary.C | 140 ++++++++++++++++++++++++++++++++++ Timing_Summary_Matplotlib.png | Bin 0 -> 72068 bytes TrackRecon.C | 57 ++++++++------ process_mapped_run.sh | 2 +- 4 files changed, 173 insertions(+), 26 deletions(-) create mode 100644 RunTimeSummary.C create mode 100644 Timing_Summary_Matplotlib.png diff --git a/RunTimeSummary.C b/RunTimeSummary.C new file mode 100644 index 0000000..0b53bb6 --- /dev/null +++ b/RunTimeSummary.C @@ -0,0 +1,140 @@ +#include +#include +#include +#include +#include +#include +#include + +void RunTimeSummary(int startRun, int endRun) +{ + TString fileDir = "/mnt/d/Remapped_files/17F_data/root_data/"; + TString histName = "AnodeQQQ_Time"; + TString filePattern = "Run_%03d_mapped_histograms.root"; + TString filePatternAlt = "ProtonRun_%d_mapped_histograms.root"; + TString filePatternAlt2 = "Source_%d_mapped_histograms.root"; + + int nBinsTime = 0; + double timeMin = 0, timeMax = 0; + bool foundRef = false; + + for (int r = startRun; r <= endRun; r++) + { + TString tempName; + + // 1. Try Pattern 1: Run_XXX... + tempName = fileDir + Form(filePattern, r); + if (gSystem->AccessPathName(tempName)) + { // Returns true if MISSING + + // 2. Try Pattern 2: ProtonRun_X... + tempName = fileDir + Form(filePatternAlt, r); + if (gSystem->AccessPathName(tempName)) + { + + // 3. Try Pattern 3: Source_X... + tempName = fileDir + Form(filePatternAlt2, r); + if (gSystem->AccessPathName(tempName)) + { + // All 3 patterns failed. Skip this run. + continue; + } + } + } + + // If we get here, 'tempName' holds the valid filename that was found + TFile *fTemp = TFile::Open(tempName); + if (!fTemp || fTemp->IsZombie()) + { + if (fTemp) + delete fTemp; + continue; + } + + TH1F *hRef = (TH1F *)fTemp->Get(histName); + if (hRef) + { + + nBinsTime = hRef->GetNbinsX(); + timeMin = hRef->GetXaxis()->GetXmin(); + timeMax = hRef->GetXaxis()->GetXmax(); + foundRef = true; + + delete hRef; + fTemp->Close(); + delete fTemp; + printf("Reference found in Run %d: %d bins, Range [%.1f, %.1f]\n", r, nBinsTime, timeMin, timeMax); + break; + } + fTemp->Close(); + delete fTemp; + } + + if (!foundRef) + { + printf("Error: No valid histograms found in the entire range. Exiting.\n"); + return; + } + + int nRuns = endRun - startRun + 1; + TH2F *hSummary = new TH2F("hSummary", + Form("Timing Summary (Runs %d-%d);Timing;Run Number", startRun, endRun), + nBinsTime, timeMin, timeMax, + nRuns, startRun, endRun + 1); + + for (int run = startRun; run <= endRun; run++) + { + + TString filename = fileDir + Form(filePattern, run); + + if (gSystem->AccessPathName(filename)) + continue; + + TFile *fin = TFile::Open(filename); + if (!fin || fin->IsZombie()) + { + if (fin) + delete fin; + continue; + } + + TH1F *hin = (TH1F *)fin->Get(histName); + + if (hin) + { + // Determine which ROW (Y-bin) corresponds to this Run + // Note: ROOT bins start at 1. + // If startRun=10 and run=10 -> binY=1. + int binY_Run = run - startRun + 1; + + // Loop through the Time bins (X-bins in the 1D hist) + for (int binX_Time = 1; binX_Time <= hin->GetNbinsX(); binX_Time++) + { + + double content = hin->GetBinContent(binX_Time); + + // Copy content to: (Time, Run) + if (content > 0) + { + hSummary->SetBinContent(binX_Time, binY_Run, content); + } + } + delete hin; + } + + fin->Close(); + delete fin; + + if ((run - startRun) % 10 == 0) + printf("Stitched Run %d...\n", run); + } + + TFile *fOut = new TFile("SummaryPlot.root", "RECREATE"); + hSummary->Write(); + + TCanvas *c1 = new TCanvas("c1", "Time Summary Plot", 1000, 800); + hSummary->SetStats(0); + hSummary->Draw("COLZ"); + + printf("Done! Saved to SummaryPlot.root\n"); +} \ No newline at end of file diff --git a/Timing_Summary_Matplotlib.png b/Timing_Summary_Matplotlib.png new file mode 100644 index 0000000000000000000000000000000000000000..a5178eada9505a9cf2374a0737dd776c8f6dcef6 GIT binary patch literal 72068 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 Ai~s-t literal 0 HcmV?d00001 diff --git a/TrackRecon.C b/TrackRecon.C index 56e8797..09d6d89 100644 --- a/TrackRecon.C +++ b/TrackRecon.C @@ -42,15 +42,16 @@ bool HitNonZero; bool sx3ecut; bool qqqEcut; -void TrackRecon::Begin(TTree * tree) -{ //get file name - std::cout<GetCurrentFile()->GetName()<GetCurrentFile()->GetName() << std::endl; + // get substring from file name to identify run number TString option = GetOption(); std::string treefilename(tree->GetCurrentFile()->GetName()); - plotter = new HistPlotter(treefilename.substr(0,treefilename.length()-std::string(".root").length())+"_histograms.root", "TFILE"); + plotter = new HistPlotter(treefilename.substr(0, treefilename.length() - std::string(".root").length()) + "_histograms.root", "TFILE"); + // plotter = new HistPlotter("Analyzer.root", "TFILE"); pw_contr.ConstructGeo(); pwinstance.ConstructGeo(); @@ -88,7 +89,7 @@ void TrackRecon::Begin(TTree * tree) Crossover[i][j][0].y = pwinstance.An[i].first.Y() + alpha * a.Y(); Crossover[i][j][0].z = pwinstance.An[i].first.Z() + alpha * a.Z(); - if (Crossover[i][j][0].z < -190 || Crossover[i][j][0].z > 190) + if (Crossover[i][j][0].z < -190 || Crossover[i][j][0].z > 190 || (i + j) % 24 == 12) { Crossover[i][j][0].z = 9999999; } @@ -99,7 +100,7 @@ void TrackRecon::Begin(TTree * tree) } // Load PC Calibrations - std::ifstream inputFile("slope_intercept_results.txt"); + std::ifstream inputFile("slope_intercept_results.dat"); if (inputFile.is_open()) { std::string line; @@ -324,7 +325,7 @@ Bool_t TrackRecon::Process(Long64_t entry) plotter->Fill2D("DelT_Vs_QQQRingECal", 500, -2500, 2500, 1000, 0, 10, tRing - static_cast(pc.t[k]), eRingMeV, "hTiming"); plotter->Fill2D("CalibratedQQQEvsAnodeE_R", 1000, 0, 10, 2000, 0, 30000, eRingMeV, pc.e[k], "hPCQQQ"); plotter->Fill2D("CalibratedQQQEvsAnodeE_W", 1000, 0, 10, 2000, 0, 30000, eWedgeMeV, pc.e[k], "hPCQQQ"); - if (tRing - static_cast(pc.t[k]) < -150 && tRing - static_cast(pc.t[k]) > -450) // 27Al + if (tRing - static_cast(pc.t[k]) < -150) // 27Al // if (tRing - static_cast(pc.t[k]) < -75 && tRing - static_cast(pc.t[k]) > -145) // 17F { PCQQQTimeCut = true; @@ -338,7 +339,7 @@ Bool_t TrackRecon::Process(Long64_t entry) } double theta = -TMath::Pi() / 2 + 2 * TMath::Pi() / 16 / 4. * (qqq.id[i] * 16 + chWedge + 0.5); - double rho = 50. + 40. / 16. * (chRing + 0.5); + double rho = 50. + 50. / 16. * (chRing + 0.5); plotter->Fill2D("QQQPolarPlot", 16 * 4, -TMath::Pi(), TMath::Pi(), 32, 40, 100, theta, rho, "hCalQQQ"); plotter->Fill2D("QQQCartesianPlot", 200, -100, 100, 200, -100, 100, rho * TMath::Cos(theta), rho * TMath::Sin(theta), "hCalQQQ"); @@ -507,7 +508,7 @@ Bool_t TrackRecon::Process(Long64_t entry) ; // to ignore events with no valid crossover points else - anodeIntersection = TVector3(x, y, -z); + anodeIntersection = TVector3(x, y, z); // std::cout << "Anode Intersection: " << anodeIntersection.X() << ", " << anodeIntersection.Y() << ", " << anodeIntersection.Z() << std::endl; } bool PCQQQPhiCut = false; @@ -517,36 +518,41 @@ Bool_t TrackRecon::Process(Long64_t entry) PCQQQPhiCut = true; } - // for (double Tz = -190; Tz <= 190; Tz += 10.0) - // { - // TVector3 TargetPos(0, 0, Tz); - // plotter->Fill2D("Inttheta_vs_QQQtheta_TC" + std::to_string(PCQQQTimeCut) + "_TZ" + std::to_string(Tz), 90, 0, 180, 120, 0, 180, (anodeIntersection - TargetPos).Theta() * 180. / TMath::Pi(), (hitPos - TargetPos).Theta() * 180. / TMath::Pi(), "TPosVariation"); - // } + for (double AIz = 20; AIz <= 100; AIz += 5.0) + { + TVector3 TargetPos(0, 0, AIz); + if (PCQQQPhiCut && anodeIntersection.Perp() != 0 && cathodeHits.size() >= 2) + // TVector3 anodePosAtZ(anodeIntersection.X() * (AIz / anodeIntersection.Z()), anodeIntersection.Y() * (AIz / anodeIntersection.Z()), AIz); + // TVector3 anodePosAtZ(anodeIntersection.X(), anodeIntersection.Y(),anodeIntersection.Z() + AIz); + plotter->Fill2D("Inttheta_vs_QQQtheta_TC" + std::to_string(PCQQQTimeCut) + "_TZ" + std::to_string(AIz), 180, 0, 180, 90, 0, 90, (anodeIntersection - TargetPos).Theta() * 180. / TMath::Pi(), + (hitPos - TargetPos).Theta() * 180. / TMath::Pi(), "TPosVariation"); + } - if (anodeIntersection.Z() != 0) + if (anodeIntersection.Perp() != 0) { plotter->Fill1D("PC_Z_Projection", 600, -300, 300, anodeIntersection.Z(), "hPCzQQQ"); plotter->Fill2D("Z_Proj_VsDelTime", 600, -300, 300, 200, -2000, 2000, anodeIntersection.Z(), anodeT - cathodeT, "hPCzQQQ"); plotter->Fill2D("IntPhi_vs_QQQphi", 100, -200, 200, 80, -200, 200, anodeIntersection.Phi() * 180. / TMath::Pi(), hitPos.Phi() * 180. / TMath::Pi(), "hPCQQQ"); + plotter->Fill1D("IntRho", 200, 0, 100, anodeIntersection.Perp(), "hRawPC"); plotter->Fill2D("Inttheta_vs_QQQtheta", 90, 0, 180, 20, 0, 45, anodeIntersection.Theta() * 180. / TMath::Pi(), hitPos.Theta() * 180. / TMath::Pi(), "hPCQQQ"); plotter->Fill2D("Inttheta_vs_QQQtheta_TC" + std::to_string(PCQQQTimeCut), 90, 0, 180, 20, 0, 45, anodeIntersection.Theta() * 180. / TMath::Pi(), hitPos.Theta() * 180. / TMath::Pi(), "hPCQQQ"); plotter->Fill2D("IntPhi_vs_QQQphi_TC" + std::to_string(PCQQQTimeCut) + "PhiC" + std::to_string(PCQQQPhiCut), 100, -200, 200, 80, -200, 200, anodeIntersection.Phi() * 180. / TMath::Pi(), hitPos.Phi() * 180. / TMath::Pi(), "hPCQQQ"); } - if (anodeIntersection.Z() != 0 && cathodeHits.size() >= 2) + if (anodeIntersection.Perp() != 0 && cathodeHits.size() >= 2) plotter->Fill1D("PC_Z_Projection_TC" + std::to_string(PCQQQTimeCut) + "PhiC" + std::to_string(PCQQQPhiCut), 600, -300, 300, anodeIntersection.Z(), "hPCzQQQ"); - if (anodeIntersection.Z() != 0 && cathodeHits.size() == 1) + if (anodeIntersection.Perp() != 0 && cathodeHits.size() == 1) { plotter->Fill1D("PC_Z_proj_1C", 600, -300, 300, anodeIntersection.Z(), "hPCzQQQ"); plotter->Fill2D("IntersectionPhi_vs_AnodeZ_1C", 400, -200, 200, 600, -300, 300, anodeIntersection.Phi() * 180. / TMath::Pi(), anodeIntersection.Z(), "hPCzQQQ"); } - if (anodeIntersection.Z() != 0 && cathodeHits.size() == 2) + if (anodeIntersection.Perp() != 0 && cathodeHits.size() == 2) { plotter->Fill1D("PC_Z_proj_2C", 600, -300, 300, anodeIntersection.Z(), "hPCzQQQ"); plotter->Fill2D("IntersectionPhi_vs_AnodeZ_2C", 400, -200, 200, 600, -300, 300, anodeIntersection.Phi() * 180. / TMath::Pi(), anodeIntersection.Z(), "hGMPC"); } - if (anodeIntersection.Z() != 0 && cathodeHits.size() > 2) + if (anodeIntersection.Perp() != 0 && cathodeHits.size() > 2) { plotter->Fill1D("PC_Z_proj_nC", 600, -300, 300, anodeIntersection.Z(), "hPCzQQQ"); plotter->Fill2D("IntersectionPhi_vs_AnodeZ_nC", 400, -200, 200, 600, -300, 300, anodeIntersection.Phi() * 180. / TMath::Pi(), anodeIntersection.Z(), "hGMPC"); @@ -615,8 +621,8 @@ Bool_t TrackRecon::Process(Long64_t entry) { if (cathodeHits.size() == 2) plotter->Fill1D("VertexRecon_TC_PhiC_2C", 600, -300, 300, pw_contr.GetZ0()); - } - plotter->Fill1D("VertexRecon_TC" + std::to_string(PCQQQTimeCut) + "_PhiC" + std::to_string(PCQQQPhiCut), 600, -300, 300, pw_contr.GetZ0()); + } + plotter->Fill1D("VertexRecon_TC" + std::to_string(PCQQQTimeCut) + "_PhiC" + std::to_string(PCQQQPhiCut), 600, -300, 300, pw_contr.GetZ0()); } for (int i = 0; i < qqq.multi; i++) @@ -691,11 +697,12 @@ Bool_t TrackRecon::Process(Long64_t entry) plotter->Fill2D("PC_Z_vs_QQQRing_Det" + std::to_string(qqqID), 600, -300, 300, 16, 0, 16, anodeIntersection.Z(), chRing, "hPCQQQ"); for (int k = 0; k < pc.multi; k++) { - if(pc.index[k] >= 24) - continue; + if (pc.index[k] >= 24) + continue; plotter->Fill2D("CalibratedQQQE_RvsAnodeE_TC" + std::to_string(PCQQQTimeCut) + "PhiC" + std::to_string(PCQQQPhiCut), 1000, 0, 10, 2000, 0, 30000, eRingMeV, pc.e[k], "hPCQQQ"); plotter->Fill2D("CalibratedQQQE_WvsAnodeE_TC" + std::to_string(PCQQQTimeCut) + "PhiC" + std::to_string(PCQQQPhiCut), 1000, 0, 10, 2000, 0, 30000, eWedgeMeV, pc.e[k], "hPCQQQ"); - plotter->Fill2D("AnodeQQQ_dTimevsdPhi", 200, -2000, 2000, 80, -200, 200, tRing - static_cast(pc.t[k]), (hitPos.Phi()-anodeIntersection.Phi()) * 180. / TMath::Pi(), "hTiming"); + plotter->Fill2D("AnodeQQQ_dTimevsdPhi", 200, -2000, 2000, 80, -200, 200, tRing - static_cast(pc.t[k]), (hitPos.Phi() - anodeIntersection.Phi()) * 180. / TMath::Pi(), "hTiming"); + plotter->Fill1D("AnodeQQQ_Time", 200, -2000, 2000, tRing - static_cast(pc.t[k])); } } } diff --git a/process_mapped_run.sh b/process_mapped_run.sh index 6d7b88c..29f3827 100755 --- a/process_mapped_run.sh +++ b/process_mapped_run.sh @@ -3,7 +3,7 @@ # ========================================== # CONFIGURATION # ========================================== -DATA_DIR="/mnt/d/Remapped_files/17F_data/root_data" +DATA_DIR="/mnt/d/Remapped_files/27Al_data/root_data" MACRO="TrackRecon.C" # SAFETY SETTINGS