Skip to content
Snippets Groups Projects

Update tagging array qmtest including mctruth infos

Merged Davide Fazzini requested to merge dfazzini_update_tagging_test into master
Files
2
@@ -31,6 +31,7 @@ from DaVinci.algorithms import add_filter
from DaVinci.common_particles import make_long_pions
from DaVinci.truth_matching import configured_MCTruthAndBkgCatAlg
def main(options: Options):
fields = {
'B0': "[B0 -> D_s- K+]CC",
@@ -55,17 +56,19 @@ def main(options: Options):
mctruth = configured_MCTruthAndBkgCatAlg(inputs=bd2dsk_data)
mctruth_pions = configured_MCTruthAndBkgCatAlg(inputs=tagging_container)
# helper lambda function
# helper lambda functions
MCTRUTH = lambda func: F.MAP_INPUT(Functor=func, Relations=mctruth.MCAssocTable)
MCTRUTH_pions = lambda func: F.MAP_INPUT(Functor=func, Relations=mctruth_pions.MCAssocTable)
#make collection of functors
#N.B: a default value has to be defined for functors returning an integer (or an array
#of integers) in case the output is empty: e.g. "TRUEID" or "TagTr_TRUEKEY[nTags]".
variables_B = FC({
'THOR_MASS':
F.MASS,
'PT':
F.PT,
"TRUEEID":
"TRUEID":
F.VALUE_OR(0) @ MCTRUTH(F.PARTICLE_ID),
# Define variables for the tagging particles
"TagTr_P":
@@ -76,24 +79,45 @@ def main(options: Options):
F.MAP_INPUT_ARRAY(Functor=F.PT, Relations=tagAlg_rels),
"TagTr_PHI[nTags]":
F.MAP_INPUT_ARRAY(Functor=F.PHI, Relations=tagAlg_rels),
#N.B.: an additional default value has to be added in the definition of
#MAP_INPUT_ARRAY in case of internal functors built via lambda functions
#in order to ensure that a valid output is always defined, e.g. MCTRUTH_pions.
"TagTr_TRUEID[nTags]":
F.VALUE_OR(0) @ F.MAP_INPUT_ARRAY(Functor=F.VALUE_OR(0) @ MCTRUTH_pions(F.PARTICLE_ID), Relations=tagAlg_rels),
F.VALUE_OR([0]) @ F.MAP_INPUT_ARRAY(
Functor=F.VALUE_OR(0) @ MCTRUTH_pions(F.PARTICLE_ID),
Relations=tagAlg_rels),
"TagTr_TRUEKEY[nTags]":
F.VALUE_OR(-1) @ F.MAP_INPUT_ARRAY(Functor=F.VALUE_OR(-1) @ MCTRUTH_pions(F.OBJECT_KEY), Relations=tagAlg_rels),
F.VALUE_OR([-1]) @ F.MAP_INPUT_ARRAY(
Functor=F.VALUE_OR(-1) @ MCTRUTH_pions(F.OBJECT_KEY),
Relations=tagAlg_rels),
"TagTr_TRUEP[nTags]":
F.MAP_INPUT_ARRAY(Functor=F.VALUE_OR(float("nan")) @ MCTRUTH_pions(F.P), Relations=tagAlg_rels),
F.MAP_INPUT_ARRAY(
Functor=F.VALUE_OR(F.NaN) @ MCTRUTH_pions(F.P),
Relations=tagAlg_rels),
"TagTr_TRUEPT[nTags]":
F.MAP_INPUT_ARRAY(Functor=F.VALUE_OR(float("nan")) @ MCTRUTH_pions(F.PT), Relations=tagAlg_rels),
F.MAP_INPUT_ARRAY(
Functor=F.VALUE_OR(F.NaN) @ MCTRUTH_pions(F.PT),
Relations=tagAlg_rels),
"TagTr_TRUEPX[nTags]":
F.MAP_INPUT_ARRAY(Functor=F.VALUE_OR(float("nan")) @ MCTRUTH_pions(F.PX), Relations=tagAlg_rels),
F.MAP_INPUT_ARRAY(
Functor=F.VALUE_OR(F.NaN) @ MCTRUTH_pions(F.PX),
Relations=tagAlg_rels),
"TagTr_TRUEPY[nTags]":
F.MAP_INPUT_ARRAY(Functor=F.VALUE_OR(float("nan")) @ MCTRUTH_pions(F.PY), Relations=tagAlg_rels),
F.MAP_INPUT_ARRAY(
Functor=F.VALUE_OR(F.NaN) @ MCTRUTH_pions(F.PY),
Relations=tagAlg_rels),
"TagTr_TRUEPZ[nTags]":
F.MAP_INPUT_ARRAY(Functor=F.VALUE_OR(float("nan")) @ MCTRUTH_pions(F.PZ), Relations=tagAlg_rels),
F.MAP_INPUT_ARRAY(
Functor=F.VALUE_OR(F.NaN) @ MCTRUTH_pions(F.PZ),
Relations=tagAlg_rels),
"TagTr_TRUEENERGY[nTags]":
F.MAP_INPUT_ARRAY(Functor=F.VALUE_OR(float("nan")) @ MCTRUTH_pions(F.ENERGY), Relations=tagAlg_rels),
F.MAP_INPUT_ARRAY(
Functor=F.VALUE_OR(F.NaN) @ MCTRUTH_pions(F.ENERGY),
Relations=tagAlg_rels),
"TagTr_TRUEPHI[nTags]":
F.MAP_INPUT_ARRAY(Functor=F.VALUE_OR(float("nan")) @ MCTRUTH_pions(F.PHI), Relations=tagAlg_rels),
F.MAP_INPUT_ARRAY(
Functor=F.VALUE_OR(F.NaN) @ MCTRUTH_pions(F.PHI),
Relations=tagAlg_rels),
})
#make collection of functors for Muplus
Loading