Index: fittingview/src/sans/perspectives/fitting/fit_thread.py
===================================================================
--- fittingview/src/sans/perspectives/fitting/fit_thread.py	(revision 8aa5788d881b5d53929e27261b1666278dc69f54)
+++ fittingview/src/sans/perspectives/fitting/fit_thread.py	(revision 33dd2e53692eb5cf8971a7988112f1b7215ca28f)
@@ -20,5 +20,6 @@
                   page_id,
                    handler,
-                   batch_result, 
+                    batch_outputs,
+                    batch_inputs=None,             
                   pars=None,
                  completefn = None,
@@ -34,5 +35,6 @@
         self.fitter = fn
         self.pars = pars
-        self.batch_result = batch_result
+        self.batch_inputs = batch_inputs
+        self.batch_outputs = batch_outputs
         self.page_id = page_id
         self.starttime = 0
@@ -57,4 +59,5 @@
         msg = ""
         try:
+            import copy
             list_handler = []
             list_curr_thread = [] 
@@ -72,10 +75,10 @@
             from multiprocessing import Pool
             inputs = zip(list_map_get_attr,self.fitter, list_fit_function,
-                         list_handler, list_q, list_curr_thread,list_ftol)
+                         list_handler, list_q, list_curr_thread, list_ftol)
             result =  Pool(1).map(func=map_apply, 
                                iterable=inputs)
-            #self.handler.starting_fit()
-            self.complete(result= result,
-                          batch_result=self.batch_result,
+            self.complete(result=result,
+                          batch_inputs=self.batch_inputs,
+                           batch_outputs=self.batch_outputs,
                           page_id=self.page_id,
                           pars = self.pars)
Index: fittingview/src/sans/perspectives/fitting/fitting.py
===================================================================
--- fittingview/src/sans/perspectives/fitting/fitting.py	(revision 8aa5788d881b5d53929e27261b1666278dc69f54)
+++ fittingview/src/sans/perspectives/fitting/fitting.py	(revision 33dd2e53692eb5cf8971a7988112f1b7215ca28f)
@@ -682,5 +682,6 @@
         list_page_id = []
         fit_id = 0
-        batch_result = {}
+        batch_inputs = {}
+        batch_outputs = {}
         for page_id, value in self.page_finder.iteritems():
             # For simulfit (uid give with None), do for-loop
@@ -702,11 +703,19 @@
                         if sim_fitter is None:
                             fitter = Fit(self._fit_engine)  
-                            self._fit_helper(fitproblem, pars, fitter,
-                                              fit_id, batch_result)
+                            self._fit_helper(fitproblem=fitproblem, 
+                                                pars=pars, 
+                                                fitter=fitter,
+                                              fit_id=fit_id, 
+                                              batch_inputs=batch_inputs,
+                                              batch_outputs=batch_outputs)
                             fitter_list.append(fitter) 
                         else:
                             fitter = sim_fitter
-                            self._fit_helper(fitproblem, pars, fitter,
-                                              fit_id, batch_result)
+                            self._fit_helper(fitproblem=fitproblem, 
+                                                pars=pars, 
+                                                fitter=fitter,
+                                              fit_id=fit_id, 
+                                              batch_inputs=batch_inputs,
+                                              batch_outputs=batch_outputs)
                         fit_id += 1
                     list_page_id.append(page_id)
@@ -714,4 +723,5 @@
                     value.clear_model_param()
             except:
+                raise
                 msg= "%s error: %s" % (engineType, sys.exc_value)
                 wx.PostEvent(self.parent, StatusEvent(status=msg, info="error",
@@ -734,5 +744,6 @@
                                     fn=fitter_list,
                                     pars=pars,
-                                    batch_result=batch_result,
+                                    batch_inputs=batch_inputs,
+                                    batch_outputs=batch_outputs,
                                     page_id=list_page_id,
                                     completefn=self._single_fit_completed,
@@ -743,5 +754,6 @@
             calc_fit = FitThread(handler=handler,
                                     fn=fitter_list,
-                                    batch_result=batch_result, 
+                                    batch_inputs=batch_inputs,
+                                    batch_outputs=batch_outputs,
                                     page_id=list_page_id,
                                     updatefn=handler.update_fit,
@@ -857,5 +869,5 @@
         self.store_data(uid=page.uid, data_list=page.get_data_list(), 
                         caption=page.window_caption)
-        if self.sim_page is not None:
+        if self.sim_page is not None and not self.batch_on:
             self.sim_page.draw_page()
         return page
@@ -902,5 +914,6 @@
                 self.page_finder[uid].schedule_tofit(value)
                 
-    def _fit_helper(self, fitproblem, pars, fitter, fit_id, batch_result):
+    def _fit_helper(self, fitproblem, pars, fitter, fit_id,
+                    batch_inputs, batch_outputs):
         """
         Create and set fit engine with series of data and model
@@ -921,13 +934,27 @@
                 if item[0] != None and item[1] != None:
                     listOfConstraint.append((item[0],item[1]))
+        for param in model.getParamList():
+            if param not in pars:
+                if param not in batch_inputs.keys():
+                    batch_inputs[param] = []
+                batch_inputs[param].append(model.getParam(param))
         fitter.set_model(model, fit_id, pars, constraints=listOfConstraint)
-        if "Data" not in batch_result.keys():
-            batch_result["Data"] = []
-        batch_result["Data"].append(data.name)
         fitter.set_data(data=data, id=fit_id, smearer=smearer, qmin=qmin, 
                         qmax=qmax)
         fitter.select_problem_for_fit(id=fit_id, value=1)
-       
-       
+        #fill batch result information
+        if "Data" not in batch_outputs.keys():
+            batch_outputs["Data"] = []
+        batch_outputs["Data"].append(data.name)
+        for key, value in data.meta_data.iteritems():
+            if key not in batch_inputs.keys():
+                batch_inputs[key] = []
+            batch_inputs[key].append(value)
+        param = "temperature"
+        if hasattr(data.sample, param):
+            if param not in  batch_inputs.keys():
+                 batch_inputs[param] = []
+            batch_inputs[param].append(data.sample.temperature)
+    
     def _onSelect(self,event):
         """ 
@@ -955,5 +982,5 @@
         
     def _batch_single_fit_complete_helper(self, result, pars, page_id, 
-                                         batch_result,  elapsed=None):
+                            batch_outputs, batch_inputs, elapsed=None):
         """
         Display fit result in batch 
@@ -967,26 +994,30 @@
         wx.PostEvent(self.parent, StatusEvent(status=msg, info="info",
                                                       type="stop"))
+        if batch_outputs is None:
+            batch_outputs = {}
         if self.batch_on:
-            batch_result = {"Chi2":[]}
+            # format batch_outputs
+            batch_outputs["Chi2"] = []
             for index  in range(len(pars)):
-                batch_result[pars[index]] = []
-                batch_result["error on %s" % pars[index]] = []
+                batch_outputs[pars[index]] = []
+                batch_outputs["error on %s" % pars[index]] = []
             for res in result:
                 if res is None:
                     null_value = numpy.nan
-                    batch_result["Chi2"].append(null_value)
+                    batch_outputs["Chi2"].append(null_value)
                     for index  in range(len(pars)):
-                        batch_result[pars[index]].append(null_value)
+                        batch_outputs[pars[index]].append(null_value)
                         item = null_value
-                        batch_result["error on %s" % pars[index]].append(item)
+                        batch_outputs["error on %s" % pars[index]].append(item)
                 else:
-                    batch_result["Chi2"].append(res.fitness)
+                    batch_outputs["Chi2"].append(res.fitness)
                     for index  in range(len(pars)):
-                        batch_result[pars[index]].append(res.pvec[index])
+                        batch_outputs[pars[index]].append(res.pvec[index])
                         item = res.stderr[index]
-                        batch_result["error on %s" % pars[index]].append(item)
+                        batch_outputs["error on %s" % pars[index]].append(item)
             pid = page_id[0]
-            self.page_finder[pid].set_result(result=batch_result)   
-            self.parent.on_set_batch_result(data=batch_result, 
+            self.page_finder[pid].set_result(result=batch_outputs)   
+            self.parent.on_set_batch_result(data_outputs=batch_outputs, 
+                                            data_inputs=batch_inputs,
                                             plugin_name=self.sub_menu)
             for uid in page_id:
@@ -994,6 +1025,6 @@
                 cpage._on_fit_complete()
             
-    def _single_fit_completed(self, result, pars, page_id, 
-                              batch_result, elapsed=None):
+    def _single_fit_completed(self, result, pars, page_id, batch_outputs,
+                          batch_inputs=None,  elapsed=None):
         """
          Display fit result on one page of the notebook.
@@ -1008,5 +1039,6 @@
         if self.batch_on:
             wx.CallAfter(self._batch_single_fit_complete_helper,
-                          result, pars, page_id, batch_result, elapsed)
+                          result, pars, page_id, batch_outputs, 
+                          batch_inputs, elapsed)
             return 
         else:  
@@ -1058,5 +1090,7 @@
                 raise
                
-    def _simul_fit_completed(self, result, page_id, batch_result, pars=None, 
+    def _simul_fit_completed(self, result, page_id, batch_outputs,
+                             batch_inputs=None,
+                              pars=None, 
                              elapsed=None):
         """
@@ -1244,5 +1278,5 @@
         self.page_finder[uid].set_range(qmin=qmin, qmax=qmax)
         self.page_finder[uid].set_fit_tab_caption(caption=caption)
-        if self.sim_page is not None:
+        if self.sim_page is not None and not self.batch_on:
             self.sim_page.draw_page()
         
