diff --git a/MC/config/PWGLF/ini/GeneratorLF_ResonancesML_K1Minus_KstarPi_pp1360.ini b/MC/config/PWGLF/ini/GeneratorLF_ResonancesML_K1Minus_KstarPi_pp1360.ini new file mode 100644 index 000000000..fe2129761 --- /dev/null +++ b/MC/config/PWGLF/ini/GeneratorLF_ResonancesML_K1Minus_KstarPi_pp1360.ini @@ -0,0 +1,13 @@ +#---> GeneratorLF_ResonancesML_K1Plus_KstarPi_pp1360 +# Single-channel ML signal sample: one K1(1270)- per pp 13.6 TeV inelastic event (no gap), flat pT 0-8 GeV/c, +# |y| < 0.7, forced decay chain from resonance_ml_k1_kstarpi.cfg. One stratum (charge x channel) per job. +[GeneratorExternal] +fileName=${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator_pythia8_LF_rapidity_width.C +funcName=generateLFRapidity("${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator/resonancegun_ml_k1minus_kstarpi.json", true, 0, false, true, "${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator/pythia8_inel_136tev.cfg", "") + +[GeneratorPythia8] # if triggered then this will be used as the background event +config=${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator/pythia8_inel_136tev.cfg + +[DecayerPythia8] # after for transport code! +config[0]=${O2DPG_MC_CONFIG_ROOT}/MC/config/common/pythia8/decayer/base.cfg +config[1]=${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator/resonance_ml_k1_kstarpi.cfg diff --git a/MC/config/PWGLF/ini/GeneratorLF_ResonancesML_K1Minus_KstarPi_pp5360.ini b/MC/config/PWGLF/ini/GeneratorLF_ResonancesML_K1Minus_KstarPi_pp5360.ini new file mode 100644 index 000000000..f886c011b --- /dev/null +++ b/MC/config/PWGLF/ini/GeneratorLF_ResonancesML_K1Minus_KstarPi_pp5360.ini @@ -0,0 +1,13 @@ +#---> GeneratorLF_ResonancesML_K1Plus_KstarPi_pp1360 +# Single-channel ML signal sample: one K1(1270)- per pp 5.36 TeV inelastic event (no gap), flat pT 0-8 GeV/c, +# |y| < 0.7, forced decay chain from resonance_ml_k1_kstarpi.cfg. One stratum (charge x channel) per job. +[GeneratorExternal] +fileName=${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator_pythia8_LF_rapidity_width.C +funcName=generateLFRapidity("${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator/resonancegun_ml_k1minus_kstarpi.json", true, 0, false, true, "${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator/pythia8_inel_pp536tev.cfg", "") + +[GeneratorPythia8] # if triggered then this will be used as the background event +config=${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator/pythia8_inel_pp536tev.cfg + +[DecayerPythia8] # after for transport code! +config[0]=${O2DPG_MC_CONFIG_ROOT}/MC/config/common/pythia8/decayer/base.cfg +config[1]=${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator/resonance_ml_k1_kstarpi.cfg diff --git a/MC/config/PWGLF/ini/GeneratorLF_ResonancesML_K1Minus_RhoK_pp1360.ini b/MC/config/PWGLF/ini/GeneratorLF_ResonancesML_K1Minus_RhoK_pp1360.ini new file mode 100644 index 000000000..30793f3c2 --- /dev/null +++ b/MC/config/PWGLF/ini/GeneratorLF_ResonancesML_K1Minus_RhoK_pp1360.ini @@ -0,0 +1,13 @@ +#---> GeneratorLF_ResonancesML_K1Plus_RhoK_pp1360 +# Single-channel ML signal sample: one K1(1270)- per pp 13.6 TeV inelastic event (no gap), flat pT 0-8 GeV/c, +# |y| < 0.7, forced decay chain from resonance_ml_k1_rhok.cfg. One stratum (charge x channel) per job. +[GeneratorExternal] +fileName=${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator_pythia8_LF_rapidity_width.C +funcName=generateLFRapidity("${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator/resonancegun_ml_k1minus_rhok.json", true, 0, false, true, "${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator/pythia8_inel_136tev.cfg", "") + +[GeneratorPythia8] # if triggered then this will be used as the background event +config=${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator/pythia8_inel_136tev.cfg + +[DecayerPythia8] # after for transport code! +config[0]=${O2DPG_MC_CONFIG_ROOT}/MC/config/common/pythia8/decayer/base.cfg +config[1]=${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator/resonance_ml_k1_rhok.cfg diff --git a/MC/config/PWGLF/ini/GeneratorLF_ResonancesML_K1Minus_RhoK_pp5360.ini b/MC/config/PWGLF/ini/GeneratorLF_ResonancesML_K1Minus_RhoK_pp5360.ini new file mode 100644 index 000000000..1aecef325 --- /dev/null +++ b/MC/config/PWGLF/ini/GeneratorLF_ResonancesML_K1Minus_RhoK_pp5360.ini @@ -0,0 +1,13 @@ +#---> GeneratorLF_ResonancesML_K1Plus_RhoK_pp1360 +# Single-channel ML signal sample: one K1(1270)- per pp 5.36 TeV inelastic event (no gap), flat pT 0-8 GeV/c, +# |y| < 0.7, forced decay chain from resonance_ml_k1_rhok.cfg. One stratum (charge x channel) per job. +[GeneratorExternal] +fileName=${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator_pythia8_LF_rapidity_width.C +funcName=generateLFRapidity("${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator/resonancegun_ml_k1minus_rhok.json", true, 0, false, true, "${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator/pythia8_inel_pp536tev.cfg", "") + +[GeneratorPythia8] # if triggered then this will be used as the background event +config=${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator/pythia8_inel_pp536tev.cfg + +[DecayerPythia8] # after for transport code! +config[0]=${O2DPG_MC_CONFIG_ROOT}/MC/config/common/pythia8/decayer/base.cfg +config[1]=${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator/resonance_ml_k1_rhok.cfg diff --git a/MC/config/PWGLF/ini/GeneratorLF_ResonancesML_K1Plus_KstarPi_pp1360.ini b/MC/config/PWGLF/ini/GeneratorLF_ResonancesML_K1Plus_KstarPi_pp1360.ini new file mode 100644 index 000000000..c3fae3e14 --- /dev/null +++ b/MC/config/PWGLF/ini/GeneratorLF_ResonancesML_K1Plus_KstarPi_pp1360.ini @@ -0,0 +1,12 @@ +# Single-channel ML signal sample: one K1(1270)+ per pp 13.6 TeV inelastic event (no gap), flat pT 0-8 GeV/c, +# |y| < 0.7, forced decay chain from resonance_ml_k1_kstarpi.cfg. One stratum (charge x channel) per job. +[GeneratorExternal] +fileName=${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator_pythia8_LF_rapidity_width.C +funcName=generateLFRapidity("${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator/resonancegun_ml_k1plus_kstarpi.json", true, 0, false, true, "${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator/pythia8_inel_136tev.cfg", "") + +[GeneratorPythia8] # if triggered then this will be used as the background event +config=${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator/pythia8_inel_136tev.cfg + +[DecayerPythia8] # after for transport code! +config[0]=${O2DPG_MC_CONFIG_ROOT}/MC/config/common/pythia8/decayer/base.cfg +config[1]=${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator/resonance_ml_k1_kstarpi.cfg diff --git a/MC/config/PWGLF/ini/GeneratorLF_ResonancesML_K1Plus_KstarPi_pp5360.ini b/MC/config/PWGLF/ini/GeneratorLF_ResonancesML_K1Plus_KstarPi_pp5360.ini new file mode 100644 index 000000000..92d9f6131 --- /dev/null +++ b/MC/config/PWGLF/ini/GeneratorLF_ResonancesML_K1Plus_KstarPi_pp5360.ini @@ -0,0 +1,13 @@ +#---> GeneratorLF_ResonancesML_K1Plus_KstarPi_pp1360 +# Single-channel ML signal sample: one K1(1270)+ per pp 5.36 TeV inelastic event (no gap), flat pT 0-8 GeV/c, +# |y| < 0.7, forced decay chain from resonance_ml_k1_kstarpi.cfg. One stratum (charge x channel) per job. +[GeneratorExternal] +fileName=${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator_pythia8_LF_rapidity_width.C +funcName=generateLFRapidity("${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator/resonancegun_ml_k1plus_kstarpi.json", true, 0, false, true, "${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator/pythia8_inel_pp536tev.cfg", "") + +[GeneratorPythia8] # if triggered then this will be used as the background event +config=${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator/pythia8_inel_pp536tev.cfg + +[DecayerPythia8] # after for transport code! +config[0]=${O2DPG_MC_CONFIG_ROOT}/MC/config/common/pythia8/decayer/base.cfg +config[1]=${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator/resonance_ml_k1_kstarpi.cfg diff --git a/MC/config/PWGLF/ini/GeneratorLF_ResonancesML_K1Plus_RhoK_pp1360.ini b/MC/config/PWGLF/ini/GeneratorLF_ResonancesML_K1Plus_RhoK_pp1360.ini new file mode 100644 index 000000000..e94f3b17e --- /dev/null +++ b/MC/config/PWGLF/ini/GeneratorLF_ResonancesML_K1Plus_RhoK_pp1360.ini @@ -0,0 +1,12 @@ +# Single-channel ML signal sample: one K1(1270)+ per pp 13.6 TeV inelastic event (no gap), flat pT 0-8 GeV/c, +# |y| < 0.7, forced decay chain from resonance_ml_k1_rhok.cfg. One stratum (charge x channel) per job. +[GeneratorExternal] +fileName=${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator_pythia8_LF_rapidity_width.C +funcName=generateLFRapidity("${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator/resonancegun_ml_k1plus_rhok.json", true, 0, false, true, "${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator/pythia8_inel_136tev.cfg", "") + +[GeneratorPythia8] # if triggered then this will be used as the background event +config=${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator/pythia8_inel_136tev.cfg + +[DecayerPythia8] # after for transport code! +config[0]=${O2DPG_MC_CONFIG_ROOT}/MC/config/common/pythia8/decayer/base.cfg +config[1]=${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator/resonance_ml_k1_rhok.cfg diff --git a/MC/config/PWGLF/ini/GeneratorLF_ResonancesML_K1Plus_RhoK_pp5360.ini b/MC/config/PWGLF/ini/GeneratorLF_ResonancesML_K1Plus_RhoK_pp5360.ini new file mode 100644 index 000000000..7f1c12b03 --- /dev/null +++ b/MC/config/PWGLF/ini/GeneratorLF_ResonancesML_K1Plus_RhoK_pp5360.ini @@ -0,0 +1,13 @@ +#---> GeneratorLF_ResonancesML_K1Plus_RhoK_pp1360 +# Single-channel ML signal sample: one K1(1270)+ per pp 5.36 TeV inelastic event (no gap), flat pT 0-8 GeV/c, +# |y| < 0.7, forced decay chain from resonance_ml_k1_rhok.cfg. One stratum (charge x channel) per job. +[GeneratorExternal] +fileName=${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator_pythia8_LF_rapidity_width.C +funcName=generateLFRapidity("${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator/resonancegun_ml_k1plus_rhok.json", true, 0, false, true, "${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator/pythia8_inel_pp536tev.cfg", "") + +[GeneratorPythia8] # if triggered then this will be used as the background event +config=${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator/pythia8_inel_pp536tev.cfg + +[DecayerPythia8] # after for transport code! +config[0]=${O2DPG_MC_CONFIG_ROOT}/MC/config/common/pythia8/decayer/base.cfg +config[1]=${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator/resonance_ml_k1_rhok.cfg diff --git a/MC/config/PWGLF/ini/GeneratorLF_ResonancesML_Omega2012Minus_Xi1530K_pp1360.ini b/MC/config/PWGLF/ini/GeneratorLF_ResonancesML_Omega2012Minus_Xi1530K_pp1360.ini new file mode 100644 index 000000000..1fc017a75 --- /dev/null +++ b/MC/config/PWGLF/ini/GeneratorLF_ResonancesML_Omega2012Minus_Xi1530K_pp1360.ini @@ -0,0 +1,12 @@ +# Single-channel ML signal sample: one Omega(2012)- per pp 13.6 TeV inelastic event (no gap), flat pT 0-15 GeV/c, +# |y| < 0.7, forced decay chain from resonance_ml_omega2012_xi1530k.cfg. One stratum (charge x channel) per job. +[GeneratorExternal] +fileName=${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator_pythia8_LF_rapidity_width.C +funcName=generateLFRapidity("${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator/resonancegun_ml_omega2012minus_xi1530k.json", true, 0, false, true, "${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator/pythia8_inel_136tev.cfg", "") + +[GeneratorPythia8] # if triggered then this will be used as the background event +config=${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator/pythia8_inel_136tev.cfg + +[DecayerPythia8] # after for transport code! +config[0]=${O2DPG_MC_CONFIG_ROOT}/MC/config/common/pythia8/decayer/base.cfg +config[1]=${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator/resonance_ml_omega2012_xi1530k.cfg diff --git a/MC/config/PWGLF/ini/GeneratorLF_ResonancesML_Omega2012Minus_Xi1530K_pp5360.ini b/MC/config/PWGLF/ini/GeneratorLF_ResonancesML_Omega2012Minus_Xi1530K_pp5360.ini new file mode 100644 index 000000000..cf1849986 --- /dev/null +++ b/MC/config/PWGLF/ini/GeneratorLF_ResonancesML_Omega2012Minus_Xi1530K_pp5360.ini @@ -0,0 +1,13 @@ +#---> GeneratorLF_ResonancesML_Omega2012Minus_Xi1530K_pp1360 +# Single-channel ML signal sample: one Omega(2012)- per pp 5.36 TeV inelastic event (no gap), flat pT 0-15 GeV/c, +# |y| < 0.7, forced decay chain from resonance_ml_omega2012_xi1530k.cfg. One stratum (charge x channel) per job. +[GeneratorExternal] +fileName=${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator_pythia8_LF_rapidity_width.C +funcName=generateLFRapidity("${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator/resonancegun_ml_omega2012minus_xi1530k.json", true, 0, false, true, "${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator/pythia8_inel_pp536tev.cfg", "") + +[GeneratorPythia8] # if triggered then this will be used as the background event +config=${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator/pythia8_inel_pp536tev.cfg + +[DecayerPythia8] # after for transport code! +config[0]=${O2DPG_MC_CONFIG_ROOT}/MC/config/common/pythia8/decayer/base.cfg +config[1]=${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator/resonance_ml_omega2012_xi1530k.cfg diff --git a/MC/config/PWGLF/ini/GeneratorLF_ResonancesML_Omega2012Minus_XiK0s_pp1360.ini b/MC/config/PWGLF/ini/GeneratorLF_ResonancesML_Omega2012Minus_XiK0s_pp1360.ini new file mode 100644 index 000000000..c711e9b4f --- /dev/null +++ b/MC/config/PWGLF/ini/GeneratorLF_ResonancesML_Omega2012Minus_XiK0s_pp1360.ini @@ -0,0 +1,12 @@ +# Single-channel ML signal sample: one Omega(2012)- per pp 13.6 TeV inelastic event (no gap), flat pT 0-15 GeV/c, +# |y| < 0.7, forced decay chain from resonance_ml_omega2012_xik0s.cfg. One stratum (charge x channel) per job. +[GeneratorExternal] +fileName=${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator_pythia8_LF_rapidity_width.C +funcName=generateLFRapidity("${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator/resonancegun_ml_omega2012minus_xik0s.json", true, 0, false, true, "${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator/pythia8_inel_136tev.cfg", "") + +[GeneratorPythia8] # if triggered then this will be used as the background event +config=${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator/pythia8_inel_136tev.cfg + +[DecayerPythia8] # after for transport code! +config[0]=${O2DPG_MC_CONFIG_ROOT}/MC/config/common/pythia8/decayer/base.cfg +config[1]=${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator/resonance_ml_omega2012_xik0s.cfg diff --git a/MC/config/PWGLF/ini/GeneratorLF_ResonancesML_Omega2012Minus_XiK0s_pp5360.ini b/MC/config/PWGLF/ini/GeneratorLF_ResonancesML_Omega2012Minus_XiK0s_pp5360.ini new file mode 100644 index 000000000..0956fa592 --- /dev/null +++ b/MC/config/PWGLF/ini/GeneratorLF_ResonancesML_Omega2012Minus_XiK0s_pp5360.ini @@ -0,0 +1,13 @@ +#---> GeneratorLF_ResonancesML_Omega2012Minus_XiK0s_pp1360 +# Single-channel ML signal sample: one Omega(2012)- per pp 5.36 TeV inelastic event (no gap), flat pT 0-15 GeV/c, +# |y| < 0.7, forced decay chain from resonance_ml_omega2012_xik0s.cfg. One stratum (charge x channel) per job. +[GeneratorExternal] +fileName=${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator_pythia8_LF_rapidity_width.C +funcName=generateLFRapidity("${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator/resonancegun_ml_omega2012minus_xik0s.json", true, 0, false, true, "${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator/pythia8_inel_pp536tev.cfg", "") + +[GeneratorPythia8] # if triggered then this will be used as the background event +config=${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator/pythia8_inel_pp536tev.cfg + +[DecayerPythia8] # after for transport code! +config[0]=${O2DPG_MC_CONFIG_ROOT}/MC/config/common/pythia8/decayer/base.cfg +config[1]=${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator/resonance_ml_omega2012_xik0s.cfg diff --git a/MC/config/PWGLF/ini/GeneratorLF_ResonancesML_Omega2012Plus_Xi1530K_pp1360.ini b/MC/config/PWGLF/ini/GeneratorLF_ResonancesML_Omega2012Plus_Xi1530K_pp1360.ini new file mode 100644 index 000000000..860aad35c --- /dev/null +++ b/MC/config/PWGLF/ini/GeneratorLF_ResonancesML_Omega2012Plus_Xi1530K_pp1360.ini @@ -0,0 +1,13 @@ +#---> GeneratorLF_ResonancesML_Omega2012Minus_Xi1530K_pp1360 +# Single-channel ML signal sample: one Omega(2012)+ per pp 13.6 TeV inelastic event (no gap), flat pT 0-15 GeV/c, +# |y| < 0.7, forced decay chain from resonance_ml_omega2012_xi1530k.cfg. One stratum (charge x channel) per job. +[GeneratorExternal] +fileName=${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator_pythia8_LF_rapidity_width.C +funcName=generateLFRapidity("${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator/resonancegun_ml_omega2012plus_xi1530k.json", true, 0, false, true, "${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator/pythia8_inel_136tev.cfg", "") + +[GeneratorPythia8] # if triggered then this will be used as the background event +config=${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator/pythia8_inel_136tev.cfg + +[DecayerPythia8] # after for transport code! +config[0]=${O2DPG_MC_CONFIG_ROOT}/MC/config/common/pythia8/decayer/base.cfg +config[1]=${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator/resonance_ml_omega2012_xi1530k.cfg diff --git a/MC/config/PWGLF/ini/GeneratorLF_ResonancesML_Omega2012Plus_Xi1530K_pp5360.ini b/MC/config/PWGLF/ini/GeneratorLF_ResonancesML_Omega2012Plus_Xi1530K_pp5360.ini new file mode 100644 index 000000000..fb32b1e09 --- /dev/null +++ b/MC/config/PWGLF/ini/GeneratorLF_ResonancesML_Omega2012Plus_Xi1530K_pp5360.ini @@ -0,0 +1,13 @@ +#---> GeneratorLF_ResonancesML_Omega2012Minus_Xi1530K_pp1360 +# Single-channel ML signal sample: one Omega(2012)+ per pp 5.36 TeV inelastic event (no gap), flat pT 0-15 GeV/c, +# |y| < 0.7, forced decay chain from resonance_ml_omega2012_xi1530k.cfg. One stratum (charge x channel) per job. +[GeneratorExternal] +fileName=${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator_pythia8_LF_rapidity_width.C +funcName=generateLFRapidity("${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator/resonancegun_ml_omega2012plus_xi1530k.json", true, 0, false, true, "${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator/pythia8_inel_pp536tev.cfg", "") + +[GeneratorPythia8] # if triggered then this will be used as the background event +config=${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator/pythia8_inel_pp536tev.cfg + +[DecayerPythia8] # after for transport code! +config[0]=${O2DPG_MC_CONFIG_ROOT}/MC/config/common/pythia8/decayer/base.cfg +config[1]=${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator/resonance_ml_omega2012_xi1530k.cfg diff --git a/MC/config/PWGLF/ini/GeneratorLF_ResonancesML_Omega2012Plus_XiK0s_pp1360.ini b/MC/config/PWGLF/ini/GeneratorLF_ResonancesML_Omega2012Plus_XiK0s_pp1360.ini new file mode 100644 index 000000000..f033dffee --- /dev/null +++ b/MC/config/PWGLF/ini/GeneratorLF_ResonancesML_Omega2012Plus_XiK0s_pp1360.ini @@ -0,0 +1,13 @@ +#---> GeneratorLF_ResonancesML_Omega2012Minus_XiK0s_pp1360 +# Single-channel ML signal sample: one Omega(2012)+ per pp 13.6 TeV inelastic event (no gap), flat pT 0-15 GeV/c, +# |y| < 0.7, forced decay chain from resonance_ml_omega2012_xik0s.cfg. One stratum (charge x channel) per job. +[GeneratorExternal] +fileName=${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator_pythia8_LF_rapidity_width.C +funcName=generateLFRapidity("${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator/resonancegun_ml_omega2012plus_xik0s.json", true, 0, false, true, "${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator/pythia8_inel_136tev.cfg", "") + +[GeneratorPythia8] # if triggered then this will be used as the background event +config=${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator/pythia8_inel_136tev.cfg + +[DecayerPythia8] # after for transport code! +config[0]=${O2DPG_MC_CONFIG_ROOT}/MC/config/common/pythia8/decayer/base.cfg +config[1]=${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator/resonance_ml_omega2012_xik0s.cfg diff --git a/MC/config/PWGLF/ini/GeneratorLF_ResonancesML_Omega2012Plus_XiK0s_pp5360.ini b/MC/config/PWGLF/ini/GeneratorLF_ResonancesML_Omega2012Plus_XiK0s_pp5360.ini new file mode 100644 index 000000000..d3bb9a3cf --- /dev/null +++ b/MC/config/PWGLF/ini/GeneratorLF_ResonancesML_Omega2012Plus_XiK0s_pp5360.ini @@ -0,0 +1,13 @@ +#---> GeneratorLF_ResonancesML_Omega2012Minus_XiK0s_pp1360 +# Single-channel ML signal sample: one Omega(2012)+ per pp 5.36 TeV inelastic event (no gap), flat pT 0-15 GeV/c, +# |y| < 0.7, forced decay chain from resonance_ml_omega2012_xik0s.cfg. One stratum (charge x channel) per job. +[GeneratorExternal] +fileName=${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator_pythia8_LF_rapidity_width.C +funcName=generateLFRapidity("${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator/resonancegun_ml_omega2012plus_xik0s.json", true, 0, false, true, "${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator/pythia8_inel_pp536tev.cfg", "") + +[GeneratorPythia8] # if triggered then this will be used as the background event +config=${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator/pythia8_inel_pp536tev.cfg + +[DecayerPythia8] # after for transport code! +config[0]=${O2DPG_MC_CONFIG_ROOT}/MC/config/common/pythia8/decayer/base.cfg +config[1]=${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator/resonance_ml_omega2012_xik0s.cfg diff --git a/MC/config/PWGLF/ini/tests/GeneratorLF_ResonancesML_K1Plus_KstarPi_pp1360.C b/MC/config/PWGLF/ini/tests/GeneratorLF_ResonancesML_K1Plus_KstarPi_pp1360.C new file mode 100644 index 000000000..c46abf9f4 --- /dev/null +++ b/MC/config/PWGLF/ini/tests/GeneratorLF_ResonancesML_K1Plus_KstarPi_pp1360.C @@ -0,0 +1,96 @@ +// Test of the single-channel ML signal samples GeneratorLF_ResonancesML_*.ini of this channel (both charges, pp 13.6 and 5.36 TeV; the others redirect here). +// Every event carries exactly one injected parent (no gap); the parent and the intermediate resonances decayed by the +// generator must follow the forced chain (charge conjugated for the negative-PDG parent). Parents with a mother come +// from the underlying Pythia event, decay with the default table, and are only counted. +int External() +{ + const std::string path{"o2sim_Kine.root"}; + const int parentPDG{10323}; + const std::vector daughtersOfPositive{313, 211}; + const std::map> intermediateDecaysOfPositive{{313, {321, -211}}}; + const std::set selfConjugate{111, 113, 310}; + auto conjugate = [&](int pdg, int sign) { return (sign > 0 || selfConjugate.count(pdg)) ? pdg : -pdg; }; + auto sorted = [](std::vector v) { std::sort(v.begin(), v.end()); return v; }; + + TFile file(path.c_str(), "READ"); + if (file.IsZombie()) { + std::cerr << "Cannot open ROOT file " << path << "\n"; + return 1; + } + auto tree = (TTree*)file.Get("o2sim"); + if (!tree) { + std::cerr << "Cannot find tree o2sim in file " << path << "\n"; + return 1; + } + std::vector* tracks{}; + tree->SetBranchAddress("MCTrack", &tracks); + + int nEventsWrongParentCount{0}, nFromUnderlyingEvent{0}, nParents{0}, nNotDecayed{0}, nWrongDecay{0}, nIntermediates{0}, nWrongIntermediate{0}; + std::map nParentsBySign; + for (Long64_t i = 0; i < tree->GetEntries(); ++i) { + tree->GetEntry(i); + int nParentsInEvent{0}; + for (const auto& track : *tracks) { + const int pdg = track.GetPdgCode(); + if (std::abs(pdg) != parentPDG) { + continue; + } + if (track.getMotherTrackId() >= 0) { + ++nFromUnderlyingEvent; + continue; + } + ++nParentsInEvent; + ++nParents; + const int sign = pdg > 0 ? 1 : -1; + ++nParentsBySign[sign]; + if (track.getFirstDaughterTrackId() < 0) { + ++nNotDecayed; + continue; + } + std::vector expected, found; + for (int d : daughtersOfPositive) { + expected.push_back(conjugate(d, sign)); + } + for (int j = track.getFirstDaughterTrackId(); j <= track.getLastDaughterTrackId(); ++j) { + const auto& daughter = tracks->at(j); + found.push_back(daughter.GetPdgCode()); + const auto it = intermediateDecaysOfPositive.find(sign > 0 ? daughter.GetPdgCode() : conjugate(daughter.GetPdgCode(), -1)); + if (it == intermediateDecaysOfPositive.end()) { + continue; + } + ++nIntermediates; + std::vector expectedGrand, foundGrand; + for (int g : it->second) { + expectedGrand.push_back(conjugate(g, sign)); + } + for (int k = daughter.getFirstDaughterTrackId(); k >= 0 && k <= daughter.getLastDaughterTrackId(); ++k) { + foundGrand.push_back(tracks->at(k).GetPdgCode()); + } + if (sorted(expectedGrand) != sorted(foundGrand)) { + ++nWrongIntermediate; + } + } + if (sorted(expected) != sorted(found)) { + ++nWrongDecay; + } + } + if (nParentsInEvent != 1) { + ++nEventsWrongParentCount; + } + } + + std::cout << "--------------------------------\n"; + std::cout << "# Events: " << tree->GetEntries() << "\n"; + std::cout << "# Parents " << parentPDG << ": " << nParentsBySign[1] << ", anti: " << nParentsBySign[-1] << "\n"; + std::cout << "# Parents from the underlying event (not checked): " << nFromUnderlyingEvent << "\n"; + std::cout << "# Events without exactly one parent: " << nEventsWrongParentCount << "\n"; + std::cout << "# Parents not decayed: " << nNotDecayed << ", with wrong daughters: " << nWrongDecay << "\n"; + std::cout << "# Intermediate resonances: " << nIntermediates << ", with wrong daughters: " << nWrongIntermediate << "\n"; + std::cout << "--------------------------------\n"; + if (tree->GetEntries() == 0 || nEventsWrongParentCount || nNotDecayed || nWrongDecay || nWrongIntermediate || + (!intermediateDecaysOfPositive.empty() && nIntermediates != nParents)) { + std::cerr << "Forced decay chain not reproduced\n"; + return 1; + } + return 0; +} diff --git a/MC/config/PWGLF/ini/tests/GeneratorLF_ResonancesML_K1Plus_RhoK_pp1360.C b/MC/config/PWGLF/ini/tests/GeneratorLF_ResonancesML_K1Plus_RhoK_pp1360.C new file mode 100644 index 000000000..25d22a966 --- /dev/null +++ b/MC/config/PWGLF/ini/tests/GeneratorLF_ResonancesML_K1Plus_RhoK_pp1360.C @@ -0,0 +1,96 @@ +// Test of the single-channel ML signal samples GeneratorLF_ResonancesML_*.ini of this channel (both charges, pp 13.6 and 5.36 TeV; the others redirect here). +// Every event carries exactly one injected parent (no gap); the parent and the intermediate resonances decayed by the +// generator must follow the forced chain (charge conjugated for the negative-PDG parent). Parents with a mother come +// from the underlying Pythia event, decay with the default table, and are only counted. +int External() +{ + const std::string path{"o2sim_Kine.root"}; + const int parentPDG{10323}; + const std::vector daughtersOfPositive{321, 113}; + const std::map> intermediateDecaysOfPositive{{113, {211, -211}}}; + const std::set selfConjugate{111, 113, 310}; + auto conjugate = [&](int pdg, int sign) { return (sign > 0 || selfConjugate.count(pdg)) ? pdg : -pdg; }; + auto sorted = [](std::vector v) { std::sort(v.begin(), v.end()); return v; }; + + TFile file(path.c_str(), "READ"); + if (file.IsZombie()) { + std::cerr << "Cannot open ROOT file " << path << "\n"; + return 1; + } + auto tree = (TTree*)file.Get("o2sim"); + if (!tree) { + std::cerr << "Cannot find tree o2sim in file " << path << "\n"; + return 1; + } + std::vector* tracks{}; + tree->SetBranchAddress("MCTrack", &tracks); + + int nEventsWrongParentCount{0}, nFromUnderlyingEvent{0}, nParents{0}, nNotDecayed{0}, nWrongDecay{0}, nIntermediates{0}, nWrongIntermediate{0}; + std::map nParentsBySign; + for (Long64_t i = 0; i < tree->GetEntries(); ++i) { + tree->GetEntry(i); + int nParentsInEvent{0}; + for (const auto& track : *tracks) { + const int pdg = track.GetPdgCode(); + if (std::abs(pdg) != parentPDG) { + continue; + } + if (track.getMotherTrackId() >= 0) { + ++nFromUnderlyingEvent; + continue; + } + ++nParentsInEvent; + ++nParents; + const int sign = pdg > 0 ? 1 : -1; + ++nParentsBySign[sign]; + if (track.getFirstDaughterTrackId() < 0) { + ++nNotDecayed; + continue; + } + std::vector expected, found; + for (int d : daughtersOfPositive) { + expected.push_back(conjugate(d, sign)); + } + for (int j = track.getFirstDaughterTrackId(); j <= track.getLastDaughterTrackId(); ++j) { + const auto& daughter = tracks->at(j); + found.push_back(daughter.GetPdgCode()); + const auto it = intermediateDecaysOfPositive.find(sign > 0 ? daughter.GetPdgCode() : conjugate(daughter.GetPdgCode(), -1)); + if (it == intermediateDecaysOfPositive.end()) { + continue; + } + ++nIntermediates; + std::vector expectedGrand, foundGrand; + for (int g : it->second) { + expectedGrand.push_back(conjugate(g, sign)); + } + for (int k = daughter.getFirstDaughterTrackId(); k >= 0 && k <= daughter.getLastDaughterTrackId(); ++k) { + foundGrand.push_back(tracks->at(k).GetPdgCode()); + } + if (sorted(expectedGrand) != sorted(foundGrand)) { + ++nWrongIntermediate; + } + } + if (sorted(expected) != sorted(found)) { + ++nWrongDecay; + } + } + if (nParentsInEvent != 1) { + ++nEventsWrongParentCount; + } + } + + std::cout << "--------------------------------\n"; + std::cout << "# Events: " << tree->GetEntries() << "\n"; + std::cout << "# Parents " << parentPDG << ": " << nParentsBySign[1] << ", anti: " << nParentsBySign[-1] << "\n"; + std::cout << "# Parents from the underlying event (not checked): " << nFromUnderlyingEvent << "\n"; + std::cout << "# Events without exactly one parent: " << nEventsWrongParentCount << "\n"; + std::cout << "# Parents not decayed: " << nNotDecayed << ", with wrong daughters: " << nWrongDecay << "\n"; + std::cout << "# Intermediate resonances: " << nIntermediates << ", with wrong daughters: " << nWrongIntermediate << "\n"; + std::cout << "--------------------------------\n"; + if (tree->GetEntries() == 0 || nEventsWrongParentCount || nNotDecayed || nWrongDecay || nWrongIntermediate || + (!intermediateDecaysOfPositive.empty() && nIntermediates != nParents)) { + std::cerr << "Forced decay chain not reproduced\n"; + return 1; + } + return 0; +} diff --git a/MC/config/PWGLF/ini/tests/GeneratorLF_ResonancesML_Omega2012Minus_Xi1530K_pp1360.C b/MC/config/PWGLF/ini/tests/GeneratorLF_ResonancesML_Omega2012Minus_Xi1530K_pp1360.C new file mode 100644 index 000000000..82afde70c --- /dev/null +++ b/MC/config/PWGLF/ini/tests/GeneratorLF_ResonancesML_Omega2012Minus_Xi1530K_pp1360.C @@ -0,0 +1,96 @@ +// Test of the single-channel ML signal samples GeneratorLF_ResonancesML_*.ini of this channel (both charges, pp 13.6 and 5.36 TeV; the others redirect here). +// Every event carries exactly one injected parent (no gap); the parent and the intermediate resonances decayed by the +// generator must follow the forced chain (charge conjugated for the negative-PDG parent). Parents with a mother come +// from the underlying Pythia event, decay with the default table, and are only counted. +int External() +{ + const std::string path{"o2sim_Kine.root"}; + const int parentPDG{123334}; + const std::vector daughtersOfPositive{3324, -321}; + const std::map> intermediateDecaysOfPositive{{3324, {3312, 211}}}; + const std::set selfConjugate{111, 113, 310}; + auto conjugate = [&](int pdg, int sign) { return (sign > 0 || selfConjugate.count(pdg)) ? pdg : -pdg; }; + auto sorted = [](std::vector v) { std::sort(v.begin(), v.end()); return v; }; + + TFile file(path.c_str(), "READ"); + if (file.IsZombie()) { + std::cerr << "Cannot open ROOT file " << path << "\n"; + return 1; + } + auto tree = (TTree*)file.Get("o2sim"); + if (!tree) { + std::cerr << "Cannot find tree o2sim in file " << path << "\n"; + return 1; + } + std::vector* tracks{}; + tree->SetBranchAddress("MCTrack", &tracks); + + int nEventsWrongParentCount{0}, nFromUnderlyingEvent{0}, nParents{0}, nNotDecayed{0}, nWrongDecay{0}, nIntermediates{0}, nWrongIntermediate{0}; + std::map nParentsBySign; + for (Long64_t i = 0; i < tree->GetEntries(); ++i) { + tree->GetEntry(i); + int nParentsInEvent{0}; + for (const auto& track : *tracks) { + const int pdg = track.GetPdgCode(); + if (std::abs(pdg) != parentPDG) { + continue; + } + if (track.getMotherTrackId() >= 0) { + ++nFromUnderlyingEvent; + continue; + } + ++nParentsInEvent; + ++nParents; + const int sign = pdg > 0 ? 1 : -1; + ++nParentsBySign[sign]; + if (track.getFirstDaughterTrackId() < 0) { + ++nNotDecayed; + continue; + } + std::vector expected, found; + for (int d : daughtersOfPositive) { + expected.push_back(conjugate(d, sign)); + } + for (int j = track.getFirstDaughterTrackId(); j <= track.getLastDaughterTrackId(); ++j) { + const auto& daughter = tracks->at(j); + found.push_back(daughter.GetPdgCode()); + const auto it = intermediateDecaysOfPositive.find(sign > 0 ? daughter.GetPdgCode() : conjugate(daughter.GetPdgCode(), -1)); + if (it == intermediateDecaysOfPositive.end()) { + continue; + } + ++nIntermediates; + std::vector expectedGrand, foundGrand; + for (int g : it->second) { + expectedGrand.push_back(conjugate(g, sign)); + } + for (int k = daughter.getFirstDaughterTrackId(); k >= 0 && k <= daughter.getLastDaughterTrackId(); ++k) { + foundGrand.push_back(tracks->at(k).GetPdgCode()); + } + if (sorted(expectedGrand) != sorted(foundGrand)) { + ++nWrongIntermediate; + } + } + if (sorted(expected) != sorted(found)) { + ++nWrongDecay; + } + } + if (nParentsInEvent != 1) { + ++nEventsWrongParentCount; + } + } + + std::cout << "--------------------------------\n"; + std::cout << "# Events: " << tree->GetEntries() << "\n"; + std::cout << "# Parents " << parentPDG << ": " << nParentsBySign[1] << ", anti: " << nParentsBySign[-1] << "\n"; + std::cout << "# Parents from the underlying event (not checked): " << nFromUnderlyingEvent << "\n"; + std::cout << "# Events without exactly one parent: " << nEventsWrongParentCount << "\n"; + std::cout << "# Parents not decayed: " << nNotDecayed << ", with wrong daughters: " << nWrongDecay << "\n"; + std::cout << "# Intermediate resonances: " << nIntermediates << ", with wrong daughters: " << nWrongIntermediate << "\n"; + std::cout << "--------------------------------\n"; + if (tree->GetEntries() == 0 || nEventsWrongParentCount || nNotDecayed || nWrongDecay || nWrongIntermediate || + (!intermediateDecaysOfPositive.empty() && nIntermediates != nParents)) { + std::cerr << "Forced decay chain not reproduced\n"; + return 1; + } + return 0; +} diff --git a/MC/config/PWGLF/ini/tests/GeneratorLF_ResonancesML_Omega2012Minus_XiK0s_pp1360.C b/MC/config/PWGLF/ini/tests/GeneratorLF_ResonancesML_Omega2012Minus_XiK0s_pp1360.C new file mode 100644 index 000000000..a55c402d4 --- /dev/null +++ b/MC/config/PWGLF/ini/tests/GeneratorLF_ResonancesML_Omega2012Minus_XiK0s_pp1360.C @@ -0,0 +1,96 @@ +// Test of the single-channel ML signal samples GeneratorLF_ResonancesML_*.ini of this channel (both charges, pp 13.6 and 5.36 TeV; the others redirect here). +// Every event carries exactly one injected parent (no gap); the parent and the intermediate resonances decayed by the +// generator must follow the forced chain (charge conjugated for the negative-PDG parent). Parents with a mother come +// from the underlying Pythia event, decay with the default table, and are only counted. +int External() +{ + const std::string path{"o2sim_Kine.root"}; + const int parentPDG{123334}; + const std::vector daughtersOfPositive{3312, 310}; + const std::map> intermediateDecaysOfPositive{}; + const std::set selfConjugate{111, 113, 310}; + auto conjugate = [&](int pdg, int sign) { return (sign > 0 || selfConjugate.count(pdg)) ? pdg : -pdg; }; + auto sorted = [](std::vector v) { std::sort(v.begin(), v.end()); return v; }; + + TFile file(path.c_str(), "READ"); + if (file.IsZombie()) { + std::cerr << "Cannot open ROOT file " << path << "\n"; + return 1; + } + auto tree = (TTree*)file.Get("o2sim"); + if (!tree) { + std::cerr << "Cannot find tree o2sim in file " << path << "\n"; + return 1; + } + std::vector* tracks{}; + tree->SetBranchAddress("MCTrack", &tracks); + + int nEventsWrongParentCount{0}, nFromUnderlyingEvent{0}, nParents{0}, nNotDecayed{0}, nWrongDecay{0}, nIntermediates{0}, nWrongIntermediate{0}; + std::map nParentsBySign; + for (Long64_t i = 0; i < tree->GetEntries(); ++i) { + tree->GetEntry(i); + int nParentsInEvent{0}; + for (const auto& track : *tracks) { + const int pdg = track.GetPdgCode(); + if (std::abs(pdg) != parentPDG) { + continue; + } + if (track.getMotherTrackId() >= 0) { + ++nFromUnderlyingEvent; + continue; + } + ++nParentsInEvent; + ++nParents; + const int sign = pdg > 0 ? 1 : -1; + ++nParentsBySign[sign]; + if (track.getFirstDaughterTrackId() < 0) { + ++nNotDecayed; + continue; + } + std::vector expected, found; + for (int d : daughtersOfPositive) { + expected.push_back(conjugate(d, sign)); + } + for (int j = track.getFirstDaughterTrackId(); j <= track.getLastDaughterTrackId(); ++j) { + const auto& daughter = tracks->at(j); + found.push_back(daughter.GetPdgCode()); + const auto it = intermediateDecaysOfPositive.find(sign > 0 ? daughter.GetPdgCode() : conjugate(daughter.GetPdgCode(), -1)); + if (it == intermediateDecaysOfPositive.end()) { + continue; + } + ++nIntermediates; + std::vector expectedGrand, foundGrand; + for (int g : it->second) { + expectedGrand.push_back(conjugate(g, sign)); + } + for (int k = daughter.getFirstDaughterTrackId(); k >= 0 && k <= daughter.getLastDaughterTrackId(); ++k) { + foundGrand.push_back(tracks->at(k).GetPdgCode()); + } + if (sorted(expectedGrand) != sorted(foundGrand)) { + ++nWrongIntermediate; + } + } + if (sorted(expected) != sorted(found)) { + ++nWrongDecay; + } + } + if (nParentsInEvent != 1) { + ++nEventsWrongParentCount; + } + } + + std::cout << "--------------------------------\n"; + std::cout << "# Events: " << tree->GetEntries() << "\n"; + std::cout << "# Parents " << parentPDG << ": " << nParentsBySign[1] << ", anti: " << nParentsBySign[-1] << "\n"; + std::cout << "# Parents from the underlying event (not checked): " << nFromUnderlyingEvent << "\n"; + std::cout << "# Events without exactly one parent: " << nEventsWrongParentCount << "\n"; + std::cout << "# Parents not decayed: " << nNotDecayed << ", with wrong daughters: " << nWrongDecay << "\n"; + std::cout << "# Intermediate resonances: " << nIntermediates << ", with wrong daughters: " << nWrongIntermediate << "\n"; + std::cout << "--------------------------------\n"; + if (tree->GetEntries() == 0 || nEventsWrongParentCount || nNotDecayed || nWrongDecay || nWrongIntermediate || + (!intermediateDecaysOfPositive.empty() && nIntermediates != nParents)) { + std::cerr << "Forced decay chain not reproduced\n"; + return 1; + } + return 0; +} diff --git a/MC/config/PWGLF/pythia8/generator/resonance_ml_k1_kstarpi.cfg b/MC/config/PWGLF/pythia8/generator/resonance_ml_k1_kstarpi.cfg new file mode 100644 index 000000000..4ecb4c80d --- /dev/null +++ b/MC/config/PWGLF/pythia8/generator/resonance_ml_k1_kstarpi.cfg @@ -0,0 +1,8 @@ +# Forced K1(1270) -> K*(892) pi -> K pi pi for single-channel ML signal samples (one decay channel per job). +# Used for both charges: Pythia applies the charge conjugate of the positive-PDG table to K1(1270)-. +# Mass and width are the Pythia defaults of 10323; the width macro samples the line shape (mSel). +# Branching fractions are forced to unity: weight with the natural fractions in the analysis. +### K1(1270)+ -> K*(892)0 pi+ +10323:oneChannel = 1 1.000 0 313 211 +### K*(892)0 -> K+ pi- +313:oneChannel = 1 1.000 0 321 -211 diff --git a/MC/config/PWGLF/pythia8/generator/resonance_ml_k1_rhok.cfg b/MC/config/PWGLF/pythia8/generator/resonance_ml_k1_rhok.cfg new file mode 100644 index 000000000..8dbe76e82 --- /dev/null +++ b/MC/config/PWGLF/pythia8/generator/resonance_ml_k1_rhok.cfg @@ -0,0 +1,8 @@ +# Forced K1(1270) -> K rho0 -> K pi+ pi- for single-channel ML signal samples (one decay channel per job). +# Used for both charges: Pythia applies the charge conjugate of the positive-PDG table to K1(1270)-. +# Mass and width are the Pythia defaults of 10323; the width macro samples the line shape (mSel). +# Branching fractions are forced to unity: weight with the natural fractions in the analysis. +### K1(1270)+ -> K+ rho0 +10323:oneChannel = 1 1.000 0 321 113 +### rho0 -> pi+ pi- +113:oneChannel = 1 1.000 0 211 -211 diff --git a/MC/config/PWGLF/pythia8/generator/resonance_ml_omega2012_xi1530k.cfg b/MC/config/PWGLF/pythia8/generator/resonance_ml_omega2012_xi1530k.cfg new file mode 100644 index 000000000..fb912c3b6 --- /dev/null +++ b/MC/config/PWGLF/pythia8/generator/resonance_ml_omega2012_xi1530k.cfg @@ -0,0 +1,11 @@ +# Forced Omega(2012)- -> Xi(1530)0 K- -> Xi- pi+ K- for single-channel ML signal samples (one decay channel per job). +# Used for both charges: Pythia applies the charge conjugate of the positive-PDG table to Omega(2012)+. +# Particle definition as in resonances_width.cfg (123334 is not a Pythia default particle). +# Xi and Lambda are not decayed by the generator (base.cfg: mayDecay off) but by the transport code with +# their natural branching fractions; forcing them here would have no effect. +# id::all = name antiName spinType chargeType colType m0 mWidth mMin mMax tau0 +123334:all = Omega2012Minus Omega2012Minusbar 4 -3 0 2.0125 0.0064 1.8210 2.0765 0 +### Omega(2012)- -> Xi(1530)0 K- +123334:oneChannel = 1 1.000 0 3324 -321 +### Xi(1530)0 -> Xi- pi+ +3324:oneChannel = 1 1.000 0 3312 211 diff --git a/MC/config/PWGLF/pythia8/generator/resonance_ml_omega2012_xik0s.cfg b/MC/config/PWGLF/pythia8/generator/resonance_ml_omega2012_xik0s.cfg new file mode 100644 index 000000000..a6536ad79 --- /dev/null +++ b/MC/config/PWGLF/pythia8/generator/resonance_ml_omega2012_xik0s.cfg @@ -0,0 +1,9 @@ +# Forced Omega(2012)- -> Xi- K0S for single-channel ML signal samples (one decay channel per job). +# Used for both charges: Pythia applies the charge conjugate of the positive-PDG table to Omega(2012)+. +# Particle definition as in resonances_width.cfg (123334 is not a Pythia default particle). +# Xi, Lambda and K0S are not decayed by the generator (base.cfg: mayDecay off) but by the transport code with +# its natural branching fractions; forcing them here would have no effect. +# id::all = name antiName spinType chargeType colType m0 mWidth mMin mMax tau0 +123334:all = Omega2012Minus Omega2012Minusbar 4 -3 0 2.0125 0.0064 1.8210 2.0765 0 +### Omega(2012)- -> Xi- K0S +123334:oneChannel = 1 1.000 0 3312 310 diff --git a/MC/config/PWGLF/pythia8/generator/resonancegun_ml_k1minus_kstarpi.json b/MC/config/PWGLF/pythia8/generator/resonancegun_ml_k1minus_kstarpi.json new file mode 100644 index 000000000..d9f1a037d --- /dev/null +++ b/MC/config/PWGLF/pythia8/generator/resonancegun_ml_k1minus_kstarpi.json @@ -0,0 +1,13 @@ +{ + "K1(1270)-": { + "pdg": -10323, + "n": 1, + "ptMin": 0.0, + "ptMax": 8.0, + "etaMin": -0.7, + "etaMax": 0.7, + "rapidityMin": -0.7, + "rapidityMax": 0.7, + "genDecayed": true + } +} diff --git a/MC/config/PWGLF/pythia8/generator/resonancegun_ml_k1minus_rhok.json b/MC/config/PWGLF/pythia8/generator/resonancegun_ml_k1minus_rhok.json new file mode 100644 index 000000000..d9f1a037d --- /dev/null +++ b/MC/config/PWGLF/pythia8/generator/resonancegun_ml_k1minus_rhok.json @@ -0,0 +1,13 @@ +{ + "K1(1270)-": { + "pdg": -10323, + "n": 1, + "ptMin": 0.0, + "ptMax": 8.0, + "etaMin": -0.7, + "etaMax": 0.7, + "rapidityMin": -0.7, + "rapidityMax": 0.7, + "genDecayed": true + } +} diff --git a/MC/config/PWGLF/pythia8/generator/resonancegun_ml_k1plus_kstarpi.json b/MC/config/PWGLF/pythia8/generator/resonancegun_ml_k1plus_kstarpi.json new file mode 100644 index 000000000..c1737f238 --- /dev/null +++ b/MC/config/PWGLF/pythia8/generator/resonancegun_ml_k1plus_kstarpi.json @@ -0,0 +1,13 @@ +{ + "K1(1270)+": { + "pdg": 10323, + "n": 1, + "ptMin": 0.0, + "ptMax": 8.0, + "etaMin": -0.7, + "etaMax": 0.7, + "rapidityMin": -0.7, + "rapidityMax": 0.7, + "genDecayed": true + } +} diff --git a/MC/config/PWGLF/pythia8/generator/resonancegun_ml_k1plus_rhok.json b/MC/config/PWGLF/pythia8/generator/resonancegun_ml_k1plus_rhok.json new file mode 100644 index 000000000..c1737f238 --- /dev/null +++ b/MC/config/PWGLF/pythia8/generator/resonancegun_ml_k1plus_rhok.json @@ -0,0 +1,13 @@ +{ + "K1(1270)+": { + "pdg": 10323, + "n": 1, + "ptMin": 0.0, + "ptMax": 8.0, + "etaMin": -0.7, + "etaMax": 0.7, + "rapidityMin": -0.7, + "rapidityMax": 0.7, + "genDecayed": true + } +} diff --git a/MC/config/PWGLF/pythia8/generator/resonancegun_ml_omega2012minus_xi1530k.json b/MC/config/PWGLF/pythia8/generator/resonancegun_ml_omega2012minus_xi1530k.json new file mode 100644 index 000000000..6e13333ff --- /dev/null +++ b/MC/config/PWGLF/pythia8/generator/resonancegun_ml_omega2012minus_xi1530k.json @@ -0,0 +1,13 @@ +{ + "Omega(2012)-": { + "pdg": 123334, + "n": 1, + "ptMin": 0.0, + "ptMax": 15.0, + "etaMin": -0.7, + "etaMax": 0.7, + "rapidityMin": -0.7, + "rapidityMax": 0.7, + "genDecayed": true + } +} diff --git a/MC/config/PWGLF/pythia8/generator/resonancegun_ml_omega2012minus_xik0s.json b/MC/config/PWGLF/pythia8/generator/resonancegun_ml_omega2012minus_xik0s.json new file mode 100644 index 000000000..6e13333ff --- /dev/null +++ b/MC/config/PWGLF/pythia8/generator/resonancegun_ml_omega2012minus_xik0s.json @@ -0,0 +1,13 @@ +{ + "Omega(2012)-": { + "pdg": 123334, + "n": 1, + "ptMin": 0.0, + "ptMax": 15.0, + "etaMin": -0.7, + "etaMax": 0.7, + "rapidityMin": -0.7, + "rapidityMax": 0.7, + "genDecayed": true + } +} diff --git a/MC/config/PWGLF/pythia8/generator/resonancegun_ml_omega2012plus_xi1530k.json b/MC/config/PWGLF/pythia8/generator/resonancegun_ml_omega2012plus_xi1530k.json new file mode 100644 index 000000000..e3a27d8e0 --- /dev/null +++ b/MC/config/PWGLF/pythia8/generator/resonancegun_ml_omega2012plus_xi1530k.json @@ -0,0 +1,13 @@ +{ + "Omega(2012)+": { + "pdg": -123334, + "n": 1, + "ptMin": 0.0, + "ptMax": 15.0, + "etaMin": -0.7, + "etaMax": 0.7, + "rapidityMin": -0.7, + "rapidityMax": 0.7, + "genDecayed": true + } +} diff --git a/MC/config/PWGLF/pythia8/generator/resonancegun_ml_omega2012plus_xik0s.json b/MC/config/PWGLF/pythia8/generator/resonancegun_ml_omega2012plus_xik0s.json new file mode 100644 index 000000000..e3a27d8e0 --- /dev/null +++ b/MC/config/PWGLF/pythia8/generator/resonancegun_ml_omega2012plus_xik0s.json @@ -0,0 +1,13 @@ +{ + "Omega(2012)+": { + "pdg": -123334, + "n": 1, + "ptMin": 0.0, + "ptMax": 15.0, + "etaMin": -0.7, + "etaMax": 0.7, + "rapidityMin": -0.7, + "rapidityMax": 0.7, + "genDecayed": true + } +}