diff --git a/docs/source/developers.rst b/docs/source/developers.rst
index fe46ab7ddf0a51e7160f3d52b228255fc7c85e31..56e3ca5edc156b00fe1cebcbce8f0d5440f3664a 100644
--- a/docs/source/developers.rst
+++ b/docs/source/developers.rst
@@ -13,6 +13,10 @@ Please lint, format and run tests before sending a PR:
    black higgs_dna
    pytest
 
+We follow certain conventions in the codebase. Please make sure to follow them when contributing:
+
+#. Make use of the common abbreviations for frequent packages, e.g., ``np`` for ``numpy`` and ``ak`` for ``awkward``.
+#. When using the ``argparse`` package, use kebab case for the argument names, e.g., ``--input-file``. Do not use snake case (underscores). Note: Internally, this is converted back to snake case, so you access the argument with ``args.input_file``, but using kebab case in argparse is the unix convention.
 
 --------------------
 Update Documentation
diff --git a/docs/source/postprocessing.rst b/docs/source/postprocessing.rst
index f29f4fe6156fdf689d88196ad52ae7e671b3ac84..03533b006f2b96fb94f98e24616763cb5cf21956 100644
--- a/docs/source/postprocessing.rst
+++ b/docs/source/postprocessing.rst
@@ -12,7 +12,7 @@ The script will perform multiple steps:
 
 All the steps can be performed in one go with a command more or less like this::
 
-        python3 prepare_output_file.py --input [path to output dir] --merge --root --ws --syst --cats --args "--do_syst"
+        python3 prepare_output_file.py --input [path to output dir] --merge --root --ws --syst --cats --args "--do-syst"
 
 or the single steps can be performed by running the auxiliary files (``merge_parquet.py``, ``convert_parquet_to_root.py``, ``Tree2WS``) separately.
 A complete set of options for the main script is listed below.
@@ -57,7 +57,7 @@ During the merging step MC samples can also be normalised to the ``efficiency x
 Root step 
 ---------
 
-During this step the script calls multiple times the script ``convert_parquet_to_root.py``. The arguments to pass to the script, for instance if you want the systematic variation included in the output ``ROOT tree`` are specified when calling ``prepare_output_file.py`` using ``--args "--do_syst"``.
+During this step the script calls multiple times the script ``convert_parquet_to_root.py``. The arguments to pass to the script, for instance if you want the systematic variation included in the output ``ROOT tree`` are specified when calling ``prepare_output_file.py`` using ``--args "--do-syst"``.
 As before the script creates a new called ``root`` under ``out_dir``, if this directory already exists it will throw an error and exit. In the script there is a dictionary called ``outfiles`` that contains the name of the output root file that will be created according to the process tipe, if the wf is run using the main script this correspond to the proces containd in ``process_dict``.
 
 By default, ``prepare_output_file.py`` uses the local execution to process files. If one wants to process the files via HTCondor (tested on LXPLUS), the ``--apptainer`` flag is to be used. It uses a docker image of the HiggsDNA master branch in conjunction with HTCondor to facilitate the work.
@@ -125,7 +125,7 @@ A valid command would for example be:
 Workspace step
 --------------
 
-During this step the main script uses multiple time the ``Flashgg_FinalFit``, it moves to the directory defined in the ``--final_fit`` option (improvable) and uses the ``Tree2WS`` script there on the content of the ``root`` directory previously created. The output is stored in ``out_dir/root/smaple_name/ws/``.
+During this step the main script uses multiple time the ``Flashgg_FinalFit``, it moves to the directory defined in the ``--final-fit`` option (improvable) and uses the ``Tree2WS`` script there on the content of the ``root`` directory previously created. The output is stored in ``out_dir/root/smaple_name/ws/``.
 
 Commands
 --------
@@ -134,21 +134,21 @@ The workflow is meant to be run in one go using the ``prepare_output_file.py`` s
 
 To run everything starting from the output of HiggsDNA with categories and systematic variatrion one can use::
 
-        python3 prepare_output_file.py --input [path to output dir] --merge --root --ws --syst --cats --args "--do_syst"
+        python3 prepare_output_file.py --input [path to output dir] --merge --root --ws --syst --cats --args "--do-syst"
 
 and everithing should run smoothly, it does for me at least (I've not tried the scripts in a while so thing may have to be adjusted in this document).
-Some options can be removed. If you want to use ``--syst`` and ``--root`` you should also add ``--args "--do_syst"``.
+Some options can be removed. If you want to use ``--syst`` and ``--root`` you should also add ``--args "--do-syst"``.
 
 The complete list of options for the main file is here:
 
     * ``--merge``, "Do merging of the .parquet files"
     * ``--root``, "Do root conversion step"
     * ``--ws``, "Do root to workspace conversion step"
-    * ``--ws_config``, "configuration file for Tree2WS, as it is now it must be stored in Tree2WS directory in FinalFit",
-    * ``--final_fit``, "FlashggFinalFit path" # the default is just for me, it should be changed but I don't see a way to make this generally valid
+    * ``--ws-config``, "configuration file for Tree2WS, as it is now it must be stored in Tree2WS directory in FinalFit",
+    * ``--final-fit``, "FlashggFinalFit path" # the default is just for me, it should be changed but I don't see a way to make this generally valid
     * ``--syst``, "Do systematics variation treatment"
     * ``--cats``, ="Split into categories",
-    * ``--args``, "additional options for root converter: --do_syst, --notag",
+    * ``--args``, "additional options for root converter: --do-syst, --notag",
     * ``--skip-normalisation``, "Independent of file type, skip normalisation step",
     * ``--verbose``, "verbose lefer for the logger: INFO (default), DEBUG",
     * ``--output``, "Output path for the merged and ROOT files.",
@@ -167,9 +167,9 @@ the script works also without the ``--cats`` option, it creates a dummy selectio
 
 Same for the root step::
 
-        python3 convert_parquet_to_root.py [/path/to/merged.parquet] [path to output file containing also the filename] mc (or data depending what you're doing) --process [process name (should match one of the outfiles dict entries)] --do_syst --cats [cat_dict] --vars [variation.json]
+        python3 convert_parquet_to_root.py [/path/to/merged.parquet] [path to output file containing also the filename] mc (or data depending what you're doing) --process [process name (should match one of the outfiles dict entries)] --do-syst --cats [cat_dict] --vars [variation.json]
 
-``--do_syst`` is not mandatory, but if it's there also the dictionary containing the variations must be specified with the ``--var`` option. As before the script works also without the ``--cats`` option.
+``--do-syst`` is not mandatory, but if it's there also the dictionary containing the variations must be specified with the ``--var`` option. As before the script works also without the ``--cats`` option.
 
 
 
diff --git a/higgs_dna/scripts/make_correction_json.py b/higgs_dna/scripts/make_correction_json.py
index 39c847e52cb52ef1b8ba843cf2b90c6432774a5d..c683752020482d60f8881a63d3a919ef81e1e783 100644
--- a/higgs_dna/scripts/make_correction_json.py
+++ b/higgs_dna/scripts/make_correction_json.py
@@ -31,70 +31,70 @@ def main():
         help="year to select correction values from",
     )
     parser.add_option(
-        "--do_fnuf",
+        "--do-fnuf",
         dest="do_fnuf",
         action="store_true",
         default=False,
         help="create FNUF correction json",
     )
     parser.add_option(
-        "--do_showsh",
+        "--do-showsh",
         dest="do_showsh",
         action="store_true",
         default=False,
         help="create shower shape correction json",
     )
     parser.add_option(
-        "--do_idmva",
+        "--do-idmva",
         dest="do_IDMVA",
         action="store_true",
         default=False,
         help="create PhotonID MVA correction json",
     )
     parser.add_option(
-        "--do_Mat",
+        "--do-Mat",
         dest="do_Material",
         action="store_true",
         default=False,
         help="create Material correction json",
     )
     parser.add_option(
-        "--do_eVeto",
+        "--do-eVeto",
         dest="do_eVeto",
         action="store_true",
         default=False,
         help="create Electron Veto correction json",
     )
     parser.add_option(
-        "--do_presel",
+        "--do-presel",
         dest="do_presel",
         action="store_true",
         default=False,
         help="create Preselection Scale Factor json",
     )
     parser.add_option(
-        "--do_trigger",
+        "--do-trigger",
         dest="do_trigger",
         action="store_true",
         default=False,
         help="create Trigger Scale Factor jsons",
     )
     parser.add_option(
-        "--do_trigger_lead",
+        "--do-trigger-lead",
         dest="do_trigger_lead",
         action="store_true",
         default=False,
         help="create lead photon Trigger Scale Factor json",
     )
     parser.add_option(
-        "--do_trigger_sublead",
+        "--do-trigger-sublead",
         dest="do_trigger_sublead",
         action="store_true",
         default=False,
         help="create sublead photon Trigger Scale Factor json",
     )
     parser.add_option(
-        "--do_all",
+        "--do-all",
         dest="do_all",
         action="store_true",
         default=False,
diff --git a/higgs_dna/scripts/postprocessing/convert_parquet_to_root.py b/higgs_dna/scripts/postprocessing/convert_parquet_to_root.py
index 0be543a77bf598c7c22d47560195d45142b0c041..13158628891ad752ce16fc6aa5f862dde3e96683 100644
--- a/higgs_dna/scripts/postprocessing/convert_parquet_to_root.py
+++ b/higgs_dna/scripts/postprocessing/convert_parquet_to_root.py
@@ -29,7 +29,7 @@ def main():
         help="create NOTAG dataset as well.",
     )
     parser.add_argument(
-        "--do_syst",
+        "--do-syst",
         dest="do_syst",
         action="store_true",
         default=False,
diff --git a/higgs_dna/scripts/postprocessing/prepare_output_file.py b/higgs_dna/scripts/postprocessing/prepare_output_file.py
index 62ea3cb84199201853bcdf66ff4eca8308358c43..050ae6941b19a2b3d8211bf6b91da9dfa6131153 100644
--- a/higgs_dna/scripts/postprocessing/prepare_output_file.py
+++ b/higgs_dna/scripts/postprocessing/prepare_output_file.py
@@ -143,14 +143,14 @@ def main():
         help="Do root to workspace conversion step",
     )
     parser.add_option(
-        "--ws_config",
+        "--ws-config",
         dest="config",
         type="string",
         default="config_simple.py",
         help="configuration file for Tree2WS, as it is now it must be stored in Tree2WS directory in FinalFit",
     )
     parser.add_option(
-        "--final_fit",
+        "--final-fit",
         dest="final_fit",
         type="string",
         default="/afs/cern.ch/user/n/niharrin/cernbox/PhD/Higgs/CMSSW_10_2_13/src/",
@@ -477,7 +477,7 @@ def main():
             logger.info("Starting root step")
             if opt.syst:
                 logger.info("you've selected the run with systematics")
-                args = "--do_syst"
+                args = "--do-syst"
             else:
                 logger.info("you've selected the run without systematics")
                 args = ""
@@ -803,7 +803,7 @@ def main():
             logger.info("Starting root step")
             if opt.syst:
                 logger.info("you've selected the run with systematics")
-                args = "--do_syst"
+                args = "--do-syst"
             else:
                 logger.info("you've selected the run without systematics")
                 args = ""
diff --git a/higgs_dna/scripts/pull_files.py b/higgs_dna/scripts/pull_files.py
index 826248119457703519107ada6ff01953cc89d431..38561f795332392dccbc69f71d8424bdff9703df 100644
--- a/higgs_dna/scripts/pull_files.py
+++ b/higgs_dna/scripts/pull_files.py
@@ -1293,7 +1293,7 @@ def main():
         "--log", dest="log", type=str, default="INFO", help="Logger info level"
     )
     parser.add_argument(
-        "--target_dir",
+        "--target-dir",
         type=str,
         default=None,
         help="directory to place the correction jsons, default: ../higgs-dna/systematics/JSONs",
@@ -1305,13 +1305,13 @@ def main():
         help="Name of the analysis you're perfoming, ideally it would match the output directory in which you're analysis parquet will end up, default: higgs-dna-test.",
     )
     parser.add_argument(
-        "--log_dir",
+        "--log-dir",
         type=str,
         default="./json-log/",
         help="Log file summarising the json will end up here, default: ./json-log/",
     )
     parser.add_argument(
-        "--use_xrdcp",
+        "--use-xrdcp",
         action="store_true",
         help="Use xrdcp to copy the files, default: %(default)s",
         default=False,
@@ -1428,4 +1428,4 @@ if __name__ == "__main__":
 # python pull_files.py --all
 # python pull_files.py --target GoldenJSON
 # python pull_files.py --target cTag
-# python pull_files.py --target GoldenJSON --target_dir ./test_json --log_dir ./json-log --analysis goldenjson_test
+# python pull_files.py --target GoldenJSON --target-dir ./test_json --log-dir ./json-log --analysis goldenjson_test
diff --git a/higgs_dna/utils/runner_utils.py b/higgs_dna/utils/runner_utils.py
index a1fa2564bb9bf19a2b2d3248c72193758c9c058d..464edca0700378d39644c180fe8449b509062522 100644
--- a/higgs_dna/utils/runner_utils.py
+++ b/higgs_dna/utils/runner_utils.py
@@ -243,19 +243,19 @@ def get_main_parser():
         help="Perform the mass resolution decorrelation",
     )
     parser.add_argument(
-        "--Smear_sigma_m",
+        "--Smear-sigma-m",
         default=False,
         action="store_true",
         help="Perform the mass resolution Smearing",
     )
     parser.add_argument(
-        "--doFlow_corrections",
+        "--doFlow-corrections",
         default=False,
         action="store_true",
         help="Perform the mvaID and energyErr corrections with normalizing flows",
     )
     parser.add_argument(
-        "--output_format",
+        "--output-format",
         choices=[
             "root",
             "parquet",
diff --git a/higgs_dna/workflows/base.py b/higgs_dna/workflows/base.py
index 751bcbf225111fb896d290807a2b986ba3ec8054..882742d095d87114f6f9cf32600ac435ab11ac62 100644
--- a/higgs_dna/workflows/base.py
+++ b/higgs_dna/workflows/base.py
@@ -343,7 +343,7 @@ class HggBaseProcessor(processor.ProcessorABC):  # type: ignore
         except KeyError:
             systematic_names = []
 
-        # If --Smear_sigma_m == True and no Smearing correction in .json for MC throws an error, since the pt spectrum need to be smeared in order to properly calculate the smeared sigma_m_m
+        # If --Smear-sigma_m == True and no Smearing correction in .json for MC throws an error, since the pt spectrum need to be smeared in order to properly calculate the smeared sigma_m_m
         if (
             self.data_kind == "mc"
             and self.Smear_sigma_m
diff --git a/higgs_dna/workflows/btagging.py b/higgs_dna/workflows/btagging.py
index 1e3fecef53e71b692a0fd91481164bf123b5d34f..cfd2e5029afef3766d57e3aac2ec93b36dbac2ba 100644
--- a/higgs_dna/workflows/btagging.py
+++ b/higgs_dna/workflows/btagging.py
@@ -172,7 +172,7 @@ class BTaggingEfficienciesProcessor(HggBaseProcessor):
         except KeyError:
             systematic_names = []
 
-        # If --Smear_sigma_m == True and no Smearing correction in .json for MC throws an error, since the pt spectrum need to be smeared in order to properly calculate the smeared sigma_m_m
+        # If --Smear-sigma_m == True and no Smearing correction in .json for MC throws an error, since the pt spectrum need to be smeared in order to properly calculate the smeared sigma_m_m
         if (
             self.data_kind == "mc"
             and self.Smear_sigma_m
diff --git a/higgs_dna/workflows/diphoton_training.py b/higgs_dna/workflows/diphoton_training.py
index 7fe62956d6ff61d0b6194bbb8a4664bb9d1c929f..c6db07544ada3b4b449d1d00a99116ba8ad5e3bf 100644
--- a/higgs_dna/workflows/diphoton_training.py
+++ b/higgs_dna/workflows/diphoton_training.py
@@ -363,7 +363,7 @@ class DiphoTrainingProcessor(HggBaseProcessor):  # type: ignore
         except KeyError:
             systematic_names = []
 
-        # If --Smear_sigma_m == True and no Smearing correction in .json for MC throws an error, since the pt scpectrum need to be smeared in order to properly calculate the smeared sigma_m_m
+        # If --Smear-sigma_m == True and no Smearing correction in .json for MC throws an error, since the pt scpectrum need to be smeared in order to properly calculate the smeared sigma_m_m
         if (
             self.data_kind == "mc"
             and self.Smear_sigma_m
diff --git a/higgs_dna/workflows/dystudies.py b/higgs_dna/workflows/dystudies.py
index 18dee3b8a27507886231f088a443858c27538009..d7474c67585dfa746e18c9e1e2352f57a5320905 100644
--- a/higgs_dna/workflows/dystudies.py
+++ b/higgs_dna/workflows/dystudies.py
@@ -154,7 +154,7 @@ class TagAndProbeProcessor(HggBaseProcessor):
         except KeyError:
             systematic_names = []
 
-        # If --Smear_sigma_m == True and no Smearing correction in .json for MC throws an error, since the pt scpectrum need to be smeared in order to properly calculate the smeared sigma_m_m
+        # If --Smear-sigma_m == True and no Smearing correction in .json for MC throws an error, since the pt scpectrum need to be smeared in order to properly calculate the smeared sigma_m_m
         if (
             self.data_kind == "mc"
             and self.Smear_sigma_m
diff --git a/higgs_dna/workflows/hpc_processor.py b/higgs_dna/workflows/hpc_processor.py
index 1e3ef69cdfdfa685b6a7ce8025df2f7249252c2c..bcf82e41ee73cfa752dee21d192ff2bd053c3a39 100644
--- a/higgs_dna/workflows/hpc_processor.py
+++ b/higgs_dna/workflows/hpc_processor.py
@@ -407,7 +407,7 @@ class HplusCharmProcessor(HggBaseProcessor):  # type: ignore
         except KeyError:
             systematic_names = []
 
-        # If --Smear_sigma_m == True and no Smearing correction in .json for MC throws an error, since the pt scpectrum need to be smeared in order to properly calculate the smeared sigma_m_m
+        # If --Smear-sigma_m == True and no Smearing correction in .json for MC throws an error, since the pt scpectrum need to be smeared in order to properly calculate the smeared sigma_m_m
         if (
             self.data_kind == "mc"
             and self.Smear_sigma_m
diff --git a/higgs_dna/workflows/lowmass.py b/higgs_dna/workflows/lowmass.py
index 29c235d60d38aee6bb0f2de139dcfd56094c7a0a..5cbc158ee86112f7ba4fde82546c01702c7e3c73 100644
--- a/higgs_dna/workflows/lowmass.py
+++ b/higgs_dna/workflows/lowmass.py
@@ -496,7 +496,7 @@ class lowmassProcessor(HggBaseProcessor):
         except KeyError:
             systematic_names = []
 
-        # If --Smear_sigma_m == True and no Smearing correction in .json for MC throws an error, since the pt scpectrum need to be smeared in order to properly calculate the smeared sigma_m_m
+        # If --Smear-sigma_m == True and no Smearing correction in .json for MC throws an error, since the pt scpectrum need to be smeared in order to properly calculate the smeared sigma_m_m
         if (
             self.data_kind == "mc"
             and self.Smear_sigma_m
diff --git a/higgs_dna/workflows/stxs.py b/higgs_dna/workflows/stxs.py
index 964ef7a1176aa461ca837f8316ef69d07d5b99c7..032b23c0729405cfd92bf9f5caef1704d2186f58 100644
--- a/higgs_dna/workflows/stxs.py
+++ b/higgs_dna/workflows/stxs.py
@@ -178,7 +178,7 @@ class STXSProcessor(HggBaseProcessor):
         except KeyError:
             systematic_names = []
 
-        # If --Smear_sigma_m == True and no Smearing correction in .json for MC throws an error, since the pt spectrum need to be smeared in order to properly calculate the smeared sigma_m_m
+        # If --Smear-sigma_m == True and no Smearing correction in .json for MC throws an error, since the pt spectrum need to be smeared in order to properly calculate the smeared sigma_m_m
         if (
             self.data_kind == "mc"
             and self.Smear_sigma_m
diff --git a/higgs_dna/workflows/zee_processor.py b/higgs_dna/workflows/zee_processor.py
index 2324acd53effe3ccf79db8a98abd709130c7eb79..b2d77774cac68505df55d77014e36676dc017a6d 100644
--- a/higgs_dna/workflows/zee_processor.py
+++ b/higgs_dna/workflows/zee_processor.py
@@ -164,7 +164,7 @@ class ZeeProcessor(HggBaseProcessor):
         except KeyError:
             systematic_names = []
 
-        # If --Smear_sigma_m == True and no Smearing correction in .json for MC throws an error, since the pt spectrum need to be smeared in order to properly calculate the smeared sigma_m_m
+        # If --Smear-sigma_m == True and no Smearing correction in .json for MC throws an error, since the pt spectrum need to be smeared in order to properly calculate the smeared sigma_m_m
         if (
             self.data_kind == "mc"
             and self.Smear_sigma_m