diff --git a/benchmarks/dis/analysis/truth_reconstruction.py b/benchmarks/dis/analysis/truth_reconstruction.py
index 5ef49cee9baba11b56bcdc76c6c854115b5ea0e8..8b072820414451ccb4a0b46994598ee22b733798 100644
--- a/benchmarks/dis/analysis/truth_reconstruction.py
+++ b/benchmarks/dis/analysis/truth_reconstruction.py
@@ -16,6 +16,8 @@ parser.add_argument('--pbeam', type=float, help='Proton (or ion) beam energy.')
 parser.add_argument('--minq2', type=float, help='Minimum four-momentum transfer squared Q2.')
 parser.add_argument('--nevents', type=float, help='Number of events to process.')
 parser.add_argument('-o', dest='outdir', default='results/dis/', help='Output directory.')
+parser.add_argument('--name_tag', type=str, help='Single events juggler file name tag')
+parser.add_argument('--benchmark_tag', type=str, help='Single or dis benchmarks')
 args = parser.parse_args()
 kwargs = vars(args)
 
@@ -25,6 +27,14 @@ minq2 = int(args.minq2)
 k = int(args.ebeam)
 p = int(args.pbeam)
 Nevents = int(args.nevents)
+tag = args.name_tag
+benchmark_tag = args.benchmark_tag
+
+r_path = dis_path = 'dis/%gon%g/minQ2=%g/truth_reconstruction/'
+single_path = 'single/truth_reconstruction/'
+if benchmark_tag == 'single':
+     r_path = single_path
+     config = tag
 
 for array in ur.iterate(rec_file + ':events',['MCParticles/MCParticles.generatorStatus',
                                           'MCParticles/MCParticles.mass',
@@ -126,15 +136,20 @@ for i in range(len(MC_list)):
     else:
         axs[0].hist2d(x=X_s,y=Y_s, bins = 10) 
     mplhep.hist2dplot(H=norm_h,norm=mpl.colors.LogNorm(vmin= 1e-4, vmax= 1),labels=norm_h_text, xbins = xedges, ybins = yedges, ax=axs[1])
-    fig.suptitle('(%g x %g)GeV  %gGeV minQ2  %s events'%(k,p,minq2,Nevents))
+    
     axs[0].set_title('%s Histogram'%(title_list[i]))
     axs[0].set_xlabel('%s_mc'%(title_list[i]))
     axs[0].set_ylabel('%s_rc'%(title_list[i]))
     axs[1].set_xlabel('%s_mc'%(title_list[i]))
     axs[1].set_ylabel('%s_rc'%(title_list[i]))
     axs[1].set_title('%s Correlation'%(title_list[i]))
-    plt.show()
-    plt.savefig(os.path.join(args.outdir, '%gon%g/minQ2=%g/truth_reconstruction/%s_correlation_%gx%g_minQ2=%g.png' %  (k,p,minq2,title_list[i],k,p,minq2)))
+
+    if benchmark_tag == 'single':
+        fig.suptitle('%s  %s events'%(config,Nevents))
+    else:
+        fig.suptitle('(%g x %g)GeV  %gGeV minQ2  %s events'%(k,p,minq2,Nevents))
+
+    plt.savefig(os.path.join(args.outdir, r_path, '%s_correlation_%s.png' %  (title_list[i],config)))
 
 
 #################
@@ -221,9 +236,13 @@ for i in range(len(MC_list)):
     ax6.set_xlabel('%s'%(title_list[i]))
     fig.set_figwidth(20)
     fig.set_figheight(10)
-  
-    ax1.set_title('%s %s  (%g x %g)GeV  %gGeV minQ2  %s events'%(title_list[i],tratio,k,p,minq2,Nevents))
-    plt.savefig(os.path.join(args.outdir, '%gon%g/minQ2=%g/truth_reconstruction/%s_%s_%gx%g_minQ2=%g.png' %  (k,p,minq2,title_list[i],tratio,k,p,minq2)))
+
+    if benchmark_tag == 'single':
+        ax1.set_title('%s %s  %s  %s events'%(title_list[i],tratio,config,Nevents))
+    else:
+        ax1.set_title('%s %s  (%g x %g)GeV  %gGeV minQ2  %s events'%(title_list[i],tratio,k,p,minq2,Nevents))
+
+    plt.savefig(os.path.join(args.outdir, r_path, '%s_%s_%s.png' %  (title_list[i],tratio,config)))
 
 
 ###############
@@ -301,8 +320,12 @@ for i in range(1,len(MC_list),1):
     fig.set_figwidth(20)
     fig.set_figheight(10)
     
-    ax1.set_title('%s Difference Vs Momentum  (%g x %g)GeV  %gGeV minQ2  %s events'%(title_list[i],k,p,minq2,Nevents))
-    plt.savefig(os.path.join(args.outdir, '%gon%g/minQ2=%g/truth_reconstruction/%s_ratio_vs_momentum_%gx%g_minQ2=%g.png' %  (k,p,minq2,title_list[i],k,p,minq2)))
+    if benchmark_tag == 'single':
+        ax1.set_title('%s Difference Vs Momentum  %s  %s events'%(title_list[i],config,Nevents))
+    else:
+        ax1.set_title('%s Difference Vs Momentum  (%g x %g)GeV  %gGeV minQ2  %s events'%(title_list[i],k,p,minq2,Nevents))
+    
+    plt.savefig(os.path.join(args.outdir, r_path, '%s_difference_vs_momentum_%s.png' %  (title_list[i],config)))
 
 
 ################
@@ -328,7 +351,6 @@ ratio = np.array((ak.Array(theta_rc_F)-(ak.Array(theta_mc_F))))
 fig = plt.figure()
 gs = fig.add_gridspec(2, 2, wspace=0.01)
 (ax1, ax2), (ax3, ax4) = gs.subplots(sharex=True, sharey=True)
-fig.suptitle('Photons in (%g x %g)GeV  %gGeV minQ2  %s events'%(k,p,minq2,Nevents))
 
 ax1.scatter(-theta_mc_F, ratio, s = ssize)
 ax2.scatter(-theta_rc_F, ratio, s = ssize)
@@ -343,8 +365,13 @@ ax3.set_xlabel('Theta mc')
 ax4.set_xlabel('Theta rc')
 fig.set_figwidth(20)
 fig.set_figheight(10)
+
+if benchmark_tag == 'single':
+    fig.suptitle('Photons in %s  %s events'%(config,Nevents))
+else:
+    fig.suptitle('Photons in (%g x %g)GeV  %gGeV minQ2  %s events'%(k,p,minq2,Nevents))
     
-plt.savefig(os.path.join(args.outdir, '%gon%g/minQ2=%g/truth_reconstruction/photons_%gx%g_minQ2=%g.png' %  (k,p,minq2,k,p,minq2)))
+plt.savefig(os.path.join(args.outdir, r_path, 'photons_%s.png' %  (config)))