diff --git a/tasks/HIG21005.py b/tasks/HIG21005.py
index ba98d922a7d19374940d114b3d6586e2ecce43cc..e50eb51a4a90e0082f8d26ad4ffd278675dc865d 100644
--- a/tasks/HIG21005.py
+++ b/tasks/HIG21005.py
@@ -1259,3 +1259,87 @@ class ThesisbbWWSL(AN20119):
             f"rsync -r vispa:{self.output().path}/ </path/to/AN-20-119>/figures/nonresonant/results",
             sep="\n\t",
         )
+
+
+class CheckSR(ThesisbbWWSL):
+    # Check needed during CWR
+    # run with: law run CheckSR --version prod41 --recipe tth --model-version sr_check_01 --DatacardProducer-model-version approval --workers 12
+    analyses = ("bbww_sl", "bbww_dl")
+
+    def requires(self):
+        reqs = {}
+        reqs["dnn_outputs_postfit"] = []
+        reqs["fits"] = []
+        reqs["systematic_uncertainties"] = []
+
+        postfit_params = dict(
+            year="run2",
+            analyses=["bbww_sl", "bbww_dl"],
+            process_group=["compact"],
+            fit_style="preandpostfit",
+            unblind=True,
+            categories_tags={"fit", "signal"},
+        )
+        fit_params = dict(
+            fit_version="prod41",
+            fit_analyses=["bbww_sl", "bbww_dl"],
+            fit_model_version=self.model_version,
+            fit_years=("2016", "2017", "2018"),
+            fit_categories_tags={"fit", "signal"},
+        )
+        limit_params = dict(
+            limit_version="prod41",
+            limit_analyses=["bbww_sl", "bbww_dl"],
+            limit_model_version=self.model_version,
+            limit_statmodel="StatModel",
+            limit_categories_tags={"fit", "signal"},
+        )
+        plot_params = dict(
+            blind_thresh=0,
+            log_scale=True,
+            scale_signal_to_upper_limit=True,
+            cms_label="private",
+        )
+
+        # DNN Outputs Postift
+        reqs["dnn_outputs_postfit"].append(
+            PlotPostfitShapesFromWorkspace.req(
+                self,
+                analysis_choice="bbww_sl",
+                postfit_unc_frequentist_toys=True,
+                **postfit_params,
+                **plot_params,
+                **fit_params,
+                **limit_params,
+            )
+        )
+        reqs["dnn_outputs_postfit"].append(
+            PlotPostfitShapesFromWorkspace.req(
+                self,
+                analysis_choice="bbww_dl",
+                postfit_unc_frequentist_toys=True,
+                **postfit_params,
+                **plot_params,
+                **fit_params,
+                **limit_params,
+            )
+        )
+
+        # Fit results
+        combine_params = dict(
+            analyses=["bbww_sl", "bbww_dl"],
+            cms_label="private",
+            version="prod41",
+            model_version=self.model_version,
+            categories_tags={"fit", "signal"},
+        )
+
+        # fmt: off
+        # limits @SM
+        reqs["fits"].append(PlotUpperLimitsAtPoint.req(self, poi="r", unblind=True, **combine_params))
+        reqs["fits"].append(PlotUpperLimitsAtPoint.req(self, poi="r_qqhh", unblind=True, **combine_params))
+
+        # combined pulls
+        reqs["fits"].append(PlotPullsAndImpactsAN20119.req(self, unblind=True, **combine_params))
+
+        return reqs