From cb3417fb6b107eced644397024e010d7967b59f5 Mon Sep 17 00:00:00 2001
From: Whitney Armstrong <warmstrong@anl.gov>
Date: Tue, 3 Nov 2020 16:47:10 -0600
Subject: [PATCH] Added analysis script to the tracking job

	modified:   central_electrons.sh
	modified:   options/tracker_reconstruction.py
	modified:   scripts/rec_central_electrons.cxx
---
 tracking/central_electrons.sh              | 14 +++++++++++--
 tracking/options/tracker_reconstruction.py | 15 +++++++++++---
 tracking/scripts/rec_central_electrons.cxx | 23 ++++++++++++----------
 3 files changed, 37 insertions(+), 15 deletions(-)

diff --git a/tracking/central_electrons.sh b/tracking/central_electrons.sh
index 376135cb..61a81c4c 100644
--- a/tracking/central_electrons.sh
+++ b/tracking/central_electrons.sh
@@ -47,6 +47,11 @@ npsim --runType batch \
       --compactFile ${JUGGLER_DETECTOR}.xml \
       --inputFiles ../${JUGGLER_FILE_NAME_TAG}.hepmc \
       --outputFile  ${JUGGLER_SIM_FILE}
+if [[ "$?" -ne "0" ]] ; then
+  echo "ERROR running script"
+  exit 1
+fi
+
 
 # Need to figure out how to pass file name to juggler from the commandline
 xenv -x ${JUGGLER_INSTALL_PREFIX}/Juggler.xenv gaudirun.py ../tracking/options/tracker_reconstruction.py
@@ -59,6 +64,11 @@ ls -l
 popd
 
 pwd
-mkdir -p results
-cp topside/${JUGGLER_REC_FILE} results/.
+mkdir -p results/tracking
+
+root -b -q "tracking/scripts/rec_central_electrons.cxx(\"${JUGGLER_DETECTOR}/${JUGGLER_REC_FILE}\")"
+
+if [[ "${JUGGLER_N_EVENTS}" -lt "500" ]] ; then 
+cp ${JUGGLER_DETECTOR}/${JUGGLER_REC_FILE} results/.
+fi
 
diff --git a/tracking/options/tracker_reconstruction.py b/tracking/options/tracker_reconstruction.py
index 12260e4f..1fec0a4a 100644
--- a/tracking/options/tracker_reconstruction.py
+++ b/tracking/options/tracker_reconstruction.py
@@ -91,6 +91,12 @@ trk_find_alg = TrackFindingAlgorithm("trk_find_alg",
         outputTrajectories="trajectories",
         OutputLevel=DEBUG)
 
+trk_find_alg1 = TrackFindingAlgorithm("trk_find_alg1",
+        inputSourceLinks="BarrelTrackSourceLinks",
+        inputInitialTrackParameters= "InitTrackParamsFromClusters", 
+        outputTrajectories="trajectories1",
+        OutputLevel=DEBUG)
+
 parts_from_fit = ParticlesFromTrackFit("parts_from_fit",
         inputTrajectories="trajectories",
         outputParticles="ReconstructedParticles",
@@ -120,18 +126,21 @@ out.outputCommands = ["keep *",
         "drop InitTrackParams",
         "drop trajectories",
         "drop outputSourceLinks",
-        "drop outputInitialTrackParameters"
+        "drop outputInitialTrackParameters",
+        "drop mcparticles"
         ]
 
 ApplicationMgr(
     TopAlg = [podioinput, 
-              #copier, trkcopier,
+              copier, trkcopier,
               ecal_digi,ecal_reco, 
               simple_cluster,
               ufsd_digi, trackerhit, 
               sourcelinker, 
               cluster_init, trackpartruth, 
-              trk_find_alg, parts_from_fit,
+              trk_find_alg, 
+              #trk_find_alg1,
+              parts_from_fit,
               out
               ],
     EvtSel = 'NONE',
diff --git a/tracking/scripts/rec_central_electrons.cxx b/tracking/scripts/rec_central_electrons.cxx
index accea3f0..01413ab5 100644
--- a/tracking/scripts/rec_central_electrons.cxx
+++ b/tracking/scripts/rec_central_electrons.cxx
@@ -6,6 +6,9 @@
 #include "eicd/ClusterCollection.h"
 #include "eicd/ClusterData.h"
 
+using ROOT::RDataFrame;
+using namespace ROOT::VecOps;
+
 //namespace edm4hep {
 //
 //std::vector<float> pt (std::vector<MCParticleData> const& in){
@@ -54,9 +57,6 @@ std::vector<float> pt (std::vector<dd4pod::Geant4ParticleData> const& in){
   return result;
 }
 
-using ROOT::RDataFrame;
-using namespace ROOT::VecOps;
-
 auto momentum = [](std::vector<ROOT::Math::PxPyPzMVector> const& in) {
   std::vector<double> result;
   for (size_t i = 0; i < in.size(); ++i) {
@@ -81,8 +81,8 @@ auto fourvec = [](ROOT::VecOps::RVec<dd4pod::Geant4ParticleData> const& in) {
   return result;
 };
 
-
-int rec_central_electrons(const char* fname = "topside/rec_central_electrons.root") {
+int rec_central_electrons(const char* fname = "topside/rec_central_electrons.root")
+{
 
   ROOT::EnableImplicitMT();
   ROOT::RDataFrame df("events", fname);
@@ -94,8 +94,8 @@ int rec_central_electrons(const char* fname = "topside/rec_central_electrons.roo
                  .Define("nTracks", "outputTrackParameters.size()")
                  .Define("p_track", p_track, {"outputTrackParameters"})
                  .Define("delta_p",
-                         [](const std::vector<double> &tracks,
-                            const std::vector<double> &thrown) {
+                         [](const std::vector<double>& tracks,
+                            const std::vector<double>& thrown) {
                            std::vector<double> res;
                            for (const auto &p1 : thrown) {
                              for (const auto &p2 : tracks) {
@@ -113,13 +113,16 @@ int rec_central_electrons(const char* fname = "topside/rec_central_electrons.roo
   auto c = new TCanvas();
 
   h_nTracks->DrawCopy();
-  c->SaveAs("results/rec_central_electrons_nTracks.png");
+  c->SaveAs("results/tracking/rec_central_electrons_nTracks.png");
+  c->SaveAs("results/tracking/rec_central_electrons_nTracks.pdf");
 
   h_pTracks->DrawCopy();
-  c->SaveAs("results/rec_central_electrons_pTracks.png");
+  c->SaveAs("results/tracking/rec_central_electrons_pTracks.png");
+  c->SaveAs("results/tracking/rec_central_electrons_pTracks.pdf");
 
   h_delta_p->DrawCopy();
-  c->SaveAs("results/rec_central_electrons_delta_p.png");
+  c->SaveAs("results/tracking/rec_central_electrons_delta_p.png");
+  c->SaveAs("results/tracking/rec_central_electrons_delta_p.pdf");
 
   return 0;
 }
-- 
GitLab