diff --git a/PhysicsAnalysis/Algorithms/AsgAnalysisAlgorithms/python/OutputAnalysisConfig.py b/PhysicsAnalysis/Algorithms/AsgAnalysisAlgorithms/python/OutputAnalysisConfig.py
index 2efb88bdccfafcf6f0cb5180071686be0a8ba18e..6837a04476169193d5245e0a8b7ea943c4b256dd 100644
--- a/PhysicsAnalysis/Algorithms/AsgAnalysisAlgorithms/python/OutputAnalysisConfig.py
+++ b/PhysicsAnalysis/Algorithms/AsgAnalysisAlgorithms/python/OutputAnalysisConfig.py
@@ -12,6 +12,7 @@ class OutputAnalysisConfig (ConfigBlock):
         super (OutputAnalysisConfig, self).__init__ (configName)
         self.addOption ('postfix', '', type=str)
         self.addOption ('vars', [], type=None)
+        self.addOption ('varsOnlyForMC', [], type=None)
         self.addOption ('metVars', [], type=None)
         self.addOption ('containers', {}, type=None)
         self.addOption ('treeName', 'analysis', type=str)
@@ -24,6 +25,12 @@ class OutputAnalysisConfig (ConfigBlock):
 
     def makeAlgs (self, config) :
 
+        self.vars = set(self.vars)
+        self.varsOnlyForMC = set(self.varsOnlyForMC)
+        # merge the MC-specific branches into the main list only if we are not running on data
+        if config.dataType() is not DataType.Data:
+            self.vars |= self.varsOnlyForMC
+
         if self.storeSelectionFlags:
             self.createSelectionFlagBranches(config)
 
@@ -95,7 +102,7 @@ class OutputAnalysisConfig (ConfigBlock):
         if len (self.vars) + len (autoVars) :
             ntupleMaker = config.createAlgorithm( 'CP::AsgxAODNTupleMakerAlg', 'NTupleMaker' + postfix )
             ntupleMaker.TreeName = self.treeName
-            ntupleMaker.Branches = self.vars + autoVars
+            ntupleMaker.Branches = list( self.vars | set(autoVars) )
             # ntupleMaker.OutputLevel = 2  # For output validation
 
         if len (self.metVars) + len (autoMetVars) > 0: