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