diff --git a/PhysicsAnalysis/TopPhys/xAOD/TopEventSelectionTools/Root/JetFlavorPlots.cxx b/PhysicsAnalysis/TopPhys/xAOD/TopEventSelectionTools/Root/JetFlavorPlots.cxx
index bd156abbb52f204dc007ab52393ad3f307e259b4..9e12ebdc80b9d10e38d20d52c92ccd8f8f22d3dc 100644
--- a/PhysicsAnalysis/TopPhys/xAOD/TopEventSelectionTools/Root/JetFlavorPlots.cxx
+++ b/PhysicsAnalysis/TopPhys/xAOD/TopEventSelectionTools/Root/JetFlavorPlots.cxx
@@ -34,6 +34,8 @@ namespace top {
     m_doNominal(false),
     m_doRadHigh(false),
     m_doRadLow(false),
+    m_doRadHighNoVar3c(false),
+    m_doRadLowNoVar3c(false),
     // default pT and eta binning, and default max number of Jets
     m_ptBins("15:20:30:45:60:80:110:160:210:260:310:400:500:600:800:1000:1200:1500:1800:2500"),
     m_etaBins("0.:0.3:0.8:1.2:2.1:2.8:3.6:4.5"),
@@ -73,25 +75,30 @@ namespace top {
                s == "radiationHigh") m_doRadHigh = true;
       else if (s == "radiationlow" || s == "RADIATIONLOW" || s == "RadiationLow" ||
                s == "radiationLow") m_doRadLow = true;
+      else if (s == "radiationhighnovar3c" || s == "RADIATIONHIGHNOVAR3C" || s == "RadiationHighNoVar3c" ||
+               s == "radiationHighNoVar3c") m_doRadHighNoVar3c = true;
+      else if (s == "radiationlownovar3c" || s == "RADIATIONLOWNOVAR3C" || s == "RadiationLowNoVar3c" ||
+               s == "radiationLowNoVar3c") m_doRadLowNoVar3c = true;
       else {
         throw std::runtime_error("ERROR: Can't understand argument " + s + "For JETFLAVORPLOTS");
       }
     }
     //If neither nominal or radiation has been selected, assume it's nominal
-    if ((m_doNominal + m_doRadHigh + m_doRadLow) == false) m_doNominal = true;
+    if ((m_doNominal && m_doRadHigh && m_doRadLow && m_doRadHighNoVar3c && m_doRadLowNoVar3c) == false) m_doNominal = true;
     // create the JetFlavorPlots and JetFlavorPlots_Loose directories only if needed
     if (m_config->doTightEvents()) {
       if (m_doNominal) m_hists = std::make_shared<PlotManager>(name + "/JetFlavorPlots", outputFile, wk);
-      if (m_doRadHigh) m_hists_RadHigh =
-          std::make_shared<PlotManager>(name + "/JetFlavorPlots_RadHigh", outputFile, wk);
+      if (m_doRadHigh) m_hists_RadHigh = std::make_shared<PlotManager>(name + "/JetFlavorPlots_RadHigh", outputFile, wk);
       if (m_doRadLow) m_hists_RadLow = std::make_shared<PlotManager>(name + "/JetFlavorPlots_RadLow", outputFile, wk);
+      if (m_doRadHighNoVar3c) m_hists_RadHighNoVar3c = std::make_shared<PlotManager>(name + "/JetFlavorPlots_RadHighNoVar3c", outputFile, wk);
+      if (m_doRadLowNoVar3c) m_hists_RadLowNoVar3c = std::make_shared<PlotManager>(name + "/JetFlavorPlots_RadLowNoVar3c", outputFile, wk);
     }
     if (m_config->doLooseEvents()) {
       if (m_doNominal) m_hists_Loose = std::make_shared<PlotManager>(name + "/JetFlavorPlots_Loose", outputFile, wk);
-      if (m_doRadHigh) m_hists_RadHigh_Loose = std::make_shared<PlotManager>(name + "/JetFlavorPlots_Loose_RadHigh",
-                                                                             outputFile, wk);
-      if (m_doRadLow) m_hists_RadLow_Loose = std::make_shared<PlotManager>(name + "/JetFlavorPlots_Loose_RadLow",
-                                                                           outputFile, wk);
+      if (m_doRadHigh) m_hists_RadHigh_Loose = std::make_shared<PlotManager>(name + "/JetFlavorPlots_Loose_RadHigh", outputFile, wk);
+      if (m_doRadLow) m_hists_RadLow_Loose = std::make_shared<PlotManager>(name + "/JetFlavorPlots_Loose_RadLow", outputFile, wk);
+      if (m_doRadHighNoVar3c) m_hists_RadHighNoVar3c_Loose = std::make_shared<PlotManager>(name + "/JetFlavorPlots_Loose_RadHighNoVar3c", outputFile, wk);
+      if (m_doRadLowNoVar3c) m_hists_RadLowNoVar3c_Loose = std::make_shared<PlotManager>(name + "/JetFlavorPlots_Loose_RadLowNoVar3c", outputFile, wk);
     }
     //handle binning
     std::vector<double> ptBinning;
@@ -111,11 +118,15 @@ namespace top {
       if (m_doNominal) BookHistograms(m_hists, ptBinning, etaBinning);
       if (m_doRadHigh) BookHistograms(m_hists_RadHigh, ptBinning, etaBinning);
       if (m_doRadLow) BookHistograms(m_hists_RadLow, ptBinning, etaBinning);
+      if (m_doRadHighNoVar3c) BookHistograms(m_hists_RadHighNoVar3c, ptBinning, etaBinning);
+      if (m_doRadLowNoVar3c) BookHistograms(m_hists_RadLowNoVar3c, ptBinning, etaBinning);
     }
     if (m_config->doLooseEvents()) {
       if (m_doNominal) BookHistograms(m_hists_Loose, ptBinning, etaBinning);
       if (m_doRadHigh) BookHistograms(m_hists_RadHigh_Loose, ptBinning, etaBinning);
       if (m_doRadLow) BookHistograms(m_hists_RadLow_Loose, ptBinning, etaBinning);
+      if (m_doRadHighNoVar3c) BookHistograms(m_hists_RadHighNoVar3c_Loose, ptBinning, etaBinning);
+      if (m_doRadLowNoVar3c) BookHistograms(m_hists_RadLowNoVar3c_Loose, ptBinning, etaBinning);
     }
   }
 
@@ -165,28 +176,52 @@ namespace top {
       if (event.m_isLoose) FillHistograms(m_hists_Loose, eventWeight, event);
       else FillHistograms(m_hists, eventWeight, event);
     }
-    if (m_doRadHigh) {
+    if (m_doRadHigh || m_doRadHighNoVar3c) {
       // 2 different names are acceptable
       double scaleWeight = 1.;
       if (m_PMGTruthWeights->hasWeight(" muR = 0.5, muF = 0.5 ")) scaleWeight = m_PMGTruthWeights->getWeight(" muR = 0.5, muF = 0.5 ");
       else if (m_PMGTruthWeights->hasWeight(" muR = 0.50, muF = 0.50 ")) scaleWeight = m_PMGTruthWeights->getWeight(" muR = 0.50, muF = 0.50 ");
+      else if (m_PMGTruthWeights->hasWeight("MUR0.5_MUF0.5_PDF261000")) scaleWeight = m_PMGTruthWeights->getWeight("MUR0.5_MUF0.5_PDF261000"); // for e.g. Sherpa Z+jets
+      else if (m_PMGTruthWeights->hasWeight(" muR=0.50000E+00 muF=0.50000E+00 ")) scaleWeight = m_PMGTruthWeights->getWeight(" muR=0.50000E+00 muF=0.50000E+00 "); // for e.g. ttZ DSID 410218
+      else if (m_PMGTruthWeights->hasWeight(" dyn=   0 muR=0.50000E+00 muF=0.50000E+00 ")) scaleWeight = m_PMGTruthWeights->getWeight(" dyn=   0 muR=0.50000E+00 muF=0.50000E+00 "); // for e.g. tWZ 412118
+      else if (m_PMGTruthWeights->hasWeight("1009")) scaleWeight = m_PMGTruthWeights->getWeight("1009"); // for e.g. tZ 412063
+      else if (m_PMGTruthWeights->hasWeight("muR=05,muF=05")) scaleWeight = m_PMGTruthWeights->getWeight("muR=05,muF=05"); // for some other generator setups
       else top::check(m_PMGTruthWeights->hasWeight(" muR = 0.5, muF = 0.5 "), "JetFlavorPlots::apply(): Weight \" muR = 0.5, muF = 0.5 \" not found. Please report this message!");
-      top::check(m_PMGTruthWeights->hasWeight("Var3cUp"), "JetFlavorPlots::apply(): Weight \"Var3cUp\" not found. Please report this message!");
-      double eventWeight = scaleWeight * m_PMGTruthWeights->getWeight("Var3cUp") / nominalWeight;
-      if (event.m_isLoose) FillHistograms(m_hists_RadHigh_Loose, eventWeight, event);
-      else FillHistograms(m_hists_RadHigh, eventWeight, event);
+      double eventWeight = scaleWeight;
+      if (!m_doRadHighNoVar3c) {
+        top::check(m_PMGTruthWeights->hasWeight("Var3cUp"), "JetFlavorPlots::apply(): Weight \"Var3cUp\" not found. Please report this message!");
+        eventWeight *= m_PMGTruthWeights->getWeight("Var3cUp") / nominalWeight;
+        if (event.m_isLoose) FillHistograms(m_hists_RadHigh_Loose, eventWeight, event);
+        else FillHistograms(m_hists_RadHigh, eventWeight, event);
+      } // finish if (!m_doRadHighNoVar3c) 
+      else { // m_doRadHighVar3c is true
+        if (event.m_isLoose) FillHistograms(m_hists_RadHighNoVar3c_Loose, eventWeight, event);
+        else FillHistograms(m_hists_RadHighNoVar3c, eventWeight, event);
+      } // finish else 
     }
-    if (m_doRadLow) {
+    if (m_doRadLow || m_doRadLowNoVar3c) {
       //2 different names are acceptable
       double scaleWeight = 1.;
       if (m_PMGTruthWeights->hasWeight(" muR = 2.0, muF = 2.0 ")) scaleWeight = m_PMGTruthWeights->getWeight(" muR = 2.0, muF = 2.0 ");
       else if (m_PMGTruthWeights->hasWeight(" muR = 2.00, muF = 2.00 ")) scaleWeight = m_PMGTruthWeights->getWeight(" muR = 2.00, muF = 2.00 ");
+      else if (m_PMGTruthWeights->hasWeight("MUR2_MUF2_PDF261000")) scaleWeight = m_PMGTruthWeights->getWeight("MUR2_MUF2_PDF261000"); // for e.g. Sherpa Z+jets
+      else if (m_PMGTruthWeights->hasWeight(" muR=0.20000E+01 muF=0.20000E+01 ")) scaleWeight = m_PMGTruthWeights->getWeight(" muR=0.20000E+01 muF=0.20000E+01 "); // for e.g. ttZ DSID 410218
+      else if (m_PMGTruthWeights->hasWeight(" dyn=   0 muR=0.20000E+01 muF=0.20000E+01 ")) scaleWeight = m_PMGTruthWeights->getWeight(" dyn=   0 muR=0.20000E+01 muF=0.20000E+01 "); // for e.g. tWZ 412118
+      else if (m_PMGTruthWeights->hasWeight("1005")) scaleWeight = m_PMGTruthWeights->getWeight("1005"); // for e.g. tZ 412063
+      else if (m_PMGTruthWeights->hasWeight("muR=20,muF=20")) scaleWeight = m_PMGTruthWeights->getWeight("muR=20,muF=20"); // for some other generator setups
       else top::check(m_PMGTruthWeights->hasWeight(" muR = 2.0, muF = 2.0 "), "JetFlavorPlots::apply(): Weight \" muR = 2.0, muF = 2.0 \" not found. Please report this message!");
-      top::check(m_PMGTruthWeights->hasWeight("Var3cUp"), "JetFlavorPlots::apply(): Weight \"Var3cUp\" not found. Please report this message!");
-      top::check(m_PMGTruthWeights->hasWeight("Var3cDown"), "JetFlavorPlots::apply(): Weight \"Var3cDown\" not found. Please report this message!");
-      double eventWeight = scaleWeight * m_PMGTruthWeights->getWeight("Var3cDown") / nominalWeight;
-      if (event.m_isLoose) FillHistograms(m_hists_RadLow_Loose, eventWeight, event);
-      else FillHistograms(m_hists_RadLow, eventWeight, event);
+      double eventWeight = scaleWeight;
+      if (!m_doRadLowNoVar3c) {
+        top::check(m_PMGTruthWeights->hasWeight("Var3cDown"), "JetFlavorPlots::apply(): Weight \"Var3cDown\" not found. Please report this message!");
+        eventWeight *= m_PMGTruthWeights->getWeight("Var3cDown") / nominalWeight;
+        if (event.m_isLoose) FillHistograms(m_hists_RadLow_Loose, eventWeight, event);
+        else FillHistograms(m_hists_RadLow, eventWeight, event);
+      } // finish if (!m_doRadLowNoVar3c) {
+      else { // m_doRadLowNoVar3c is true
+        if (event.m_isLoose) FillHistograms(m_hists_RadLowNoVar3c_Loose, eventWeight, event);
+        else FillHistograms(m_hists_RadLowNoVar3c, eventWeight, event);
+      } // finish else 
+      
     }
     return true;
   }
diff --git a/PhysicsAnalysis/TopPhys/xAOD/TopEventSelectionTools/TopEventSelectionTools/JetFlavorPlots.h b/PhysicsAnalysis/TopPhys/xAOD/TopEventSelectionTools/TopEventSelectionTools/JetFlavorPlots.h
index 383a2547715e537329c15046b3b32faf3d275002..2c29d5876940fd21b77f055cd3a690e164d4384d 100644
--- a/PhysicsAnalysis/TopPhys/xAOD/TopEventSelectionTools/TopEventSelectionTools/JetFlavorPlots.h
+++ b/PhysicsAnalysis/TopPhys/xAOD/TopEventSelectionTools/TopEventSelectionTools/JetFlavorPlots.h
@@ -67,6 +67,10 @@ namespace top {
     std::shared_ptr<PlotManager> m_hists_RadHigh_Loose = nullptr;
     std::shared_ptr<PlotManager> m_hists_RadLow = nullptr;
     std::shared_ptr<PlotManager> m_hists_RadLow_Loose = nullptr;
+    std::shared_ptr<PlotManager> m_hists_RadHighNoVar3c = nullptr;
+    std::shared_ptr<PlotManager> m_hists_RadHighNoVar3c_Loose = nullptr;
+    std::shared_ptr<PlotManager> m_hists_RadLowNoVar3c = nullptr;
+    std::shared_ptr<PlotManager> m_hists_RadLowNoVar3c_Loose = nullptr;
 
     // Nominal hash value
     std::size_t m_nominalHashValue;
@@ -78,6 +82,8 @@ namespace top {
     bool m_doNominal;
     bool m_doRadHigh;
     bool m_doRadLow;
+    bool m_doRadHighNoVar3c; // doRadHigh but don't take Var3c into account
+    bool m_doRadLowNoVar3c; // doRadLow but don't take Var3c into account
 
     // pT and eta bin edges, separated by colons
     std::string m_ptBins;