Skip to content
Snippets Groups Projects
Commit 20c1c9f4 authored by Patrick Koppenburg's avatar Patrick Koppenburg :leaves:
Browse files

Merge branch 'pkoppenb-All' into 'master'

Add more functors to all test

See merge request !657
parents e4286a2c e63d5f72
No related branches found
No related tags found
2 merge requests!1103Draft: Add AnalysisHelpers to DaVinci Stack,!657Add more functors to all test
Pipeline #3588907 passed
......@@ -12,7 +12,7 @@
Example of a DaVinci job filling all available functors. This is obviously a stress test and not realistic.
This example is meant to be run with
$ ./run davinci run-mc --inputfiledb Spruce_all_lines_dst Phys/DaVinci/options/DaVinciDB-Example.yaml --joboptfile DaVinciTests/tests/options/option_davinci_sprucing.yaml --user_algorithms DaVinciExamples/python/DaVinciExamples/tupling/example-tupling-AllFunctors:alg_config --evt_max 100 |& cat | tee log
$ ./run davinci run-mc --inputfiledb Spruce_all_lines_dst Phys/DaVinci/options/DaVinciDB-Example.yaml --joboptfile DaVinciExamples/python/DaVinciExamples/tupling/option_davinci_tupling_from_spruce.yaml --user_algorithms DaVinciExamples/python/DaVinciExamples/tupling/example-tupling-AllFunctors:alg_config --evt_max 100 |& cat | tee log
"""
__author__ = "P. Koppenburg"
__date__ = "2021-11-23"
......@@ -40,85 +40,121 @@ _composite = 'composite'
def all_variables(pvs, DTFR, ptype):
"""
function that returns dictonary of functors that work.
functors are listed in order of https://gitlab.cern.ch/lhcb/Rec/-/blob/master/Phys/FunctorCore/python/Functors/__init__.py
"""
if ptype not in [_basic, _composite]:
Exception("I want {0} or {1}. Got {2}".format(_basic, _composite,
ptype))
vars = {}
vars['P'] = F.P
vars['PT'] = F.PT
vars['PHI'] = F.PHI
vars['ETA'] = F.ETA
vars['PX'] = F.PX
vars['PY'] = F.PY
vars['PZ'] = F.PZ
vars['ENERGY'] = F.ENERGY
vars['FOURMOMENTUM'] = F.FOURMOMENTUM
all_vars = {}
all_vars['REFERENCEPOINT_X'] = F.REFERENCEPOINT_X
all_vars['REFERENCEPOINT_Y'] = F.REFERENCEPOINT_Y
all_vars['REFERENCEPOINT_Z'] = F.REFERENCEPOINT_Z
all_vars['TX'] = F.TX
all_vars['TY'] = F.TY
# all_vars['COV'] = F.COV # 'Track__Covariance' object has no attribute 'to_json'
all_vars['P'] = F.P
all_vars['FOURMOMENTUM'] = F.FOURMOMENTUM
all_vars['PX'] = F.PX
all_vars['PY'] = F.PY
all_vars['PZ'] = F.PZ
all_vars['ENERGY'] = F.ENERGY
all_vars['PT'] = F.PT
all_vars['PHI'] = F.PHI
all_vars['ETA'] = F.ETA
if (_basic == ptype):
vars['MINIP'] = F.MINIP(pvs) # crashes on composites
vars['MINIPCHI2'] = F.MINIPCHI2(pvs) # crashes on composites
# if (_composite == ptype):
# vars['CHILD'] = F.CHILD(1,F.PT) # Needs ParticleCombination
# vars['SUBCOMB'] = F.SUBCOMB
# vars['MASSWITHHYPOTHESES'] = F.MASSWITHHYPOTHESES([939.,939.]) relies on numChildren. Not in LHCb::Particle
vars['MASS'] = F.MASS
all_vars['ISMUON'] = F.ISMUON
# all_vars['NDOF'] = F.NDOF # no member named 'nDoF' in 'LHCb::Particle
#if (_basic == ptype):
# all_vars['QOVERP'] = F.QOVERP # no member named 'qOverP' in 'LHCb::Particle'
all_vars['CHI2DOF'] = F.CHI2DOF # should work on both
all_vars['CHI2'] = F.CHI2 # should work on both
if (_basic == ptype):
all_vars['GHOSTPROB'] = F.GHOSTPROB
# all_vars['CLOSESTTOBEAM'] = F.CLOSESTTOBEAM # 'Track__ClosestToBeamState' object has no attribute 'to_json'
# all_vars['NHITS'] = F.NHITS # 'no member named 'nHits' in 'LHCb::Particle''
# all_vars['NVPHITS'] = F.NVPHITS
# all_vars['NUTHITS'] = F.NUTHITS
# all_vars['NFTHITS'] = F.NFTHITS
# all_vars['TRACKHISTORY'] = F.TRACKHISTORY
all_vars['MINIP'] = F.MINIP(pvs) # crashes on composites @CHECK
all_vars['MINIPCHI2'] = F.MINIPCHI2(pvs) # crashes on composites @CHECK
if (_composite == ptype):
vars['END_VX'] = F.END_VX
vars['END_VY'] = F.END_VY
vars['END_VZ'] = F.END_VZ
vars['END_VRho'] = F.END_VRho
vars['Ds_END_VZ'] = F.CHILD(1, F.END_VZ)
vars['Delta_END_VZ_DsB0'] = F.CHILD(1, F.END_VZ) - F.END_VZ
# vars['DOCA'] = F.DOCA(Child1=1,Child2=2) # no member named 'doca' in 'LHCb::Particle' (?)
# vars['DOCACHI2'] = F.DOCACHI2(Child1=1,Child2=2) # same here
# vars['ALV'] = F.ALV(Child1=1,Child2=2) # wants cos_angle_prod
# vars['MAXDOCA'] = F.MAXDOCA # does not work
# vars['MAXDOCACHI2'] = F.MAXDOCACHI2
vars['CHARGE'] = F.CHARGE
# vars['SIZE'] = F.SIZE(DTFParts) # doesn't work
vars['BPVIP'] = F.BPVIP(pvs)
vars['BPVIPCHI2'] = F.BPVIPCHI2(pvs)
all_vars['CHILD'] = F.CHILD(1, F.PT) # Needs ParticleCombination
# all_vars['SUBCOMB'] = F.SUBCOMB(1,2,F.PT)
# all_vars['MASSWITHHYPOTHESES'] = F.MASSWITHHYPOTHESES([939.,939.]) # relies on numChildren. Not in LHCb::Particle
all_vars['MASS'] = F.MASS
if (_composite == ptype):
all_vars['END_VX'] = F.END_VX
all_vars['END_VY'] = F.END_VY
all_vars['END_VZ'] = F.END_VZ
all_vars['END_VRho'] = F.END_VRho
all_vars['Ds_END_VZ'] = F.CHILD(1, F.END_VZ)
all_vars['Delta_END_VZ_DsB0'] = F.CHILD(1, F.END_VZ) - F.END_VZ
# https://gitlab.cern.ch/lhcb/DaVinci/-/merge_requests/656
# all_vars['SDOCA'] = F.SDOCA(Child1=1,Child2=2) # no member named 'doca' in 'LHCb::Particle' (?)
# all_vars['DOCA'] = F.DOCA(Child1=1,Child2=2) # no member named 'doca' in 'LHCb::Particle' (?)
# all_vars['DOCACHI2'] = F.DOCACHI2(Child1=1,Child2=2) # same here
# all_vars['MAXDOCA'] = F.MAXDOCA # does not work
# all_vars['MAXDOCACHI2'] = F.MAXDOCACHI2
# all_vars['ALV'] = F.ALV(Child1=1,Child2=2) # wants cos_angle_prod
all_vars['CHARGE'] = F.CHARGE
if (_basic == ptype):
all_vars['PID_MU'] = F.PID_MU
all_vars['PID_PI'] = F.PID_PI
all_vars['PID_K'] = F.PID_K
all_vars['PID_P'] = F.PID_P
all_vars['PID_E'] = F.PID_E
all_vars['PROBNN_D'] = F.PROBNN_D
all_vars['PROBNN_E'] = F.PROBNN_E
all_vars['PROBNN_GHOST'] = F.PROBNN_GHOST
all_vars['PROBNN_K'] = F.PROBNN_K
all_vars['PROBNN_MU'] = F.PROBNN_MU
all_vars['PROBNN_P'] = F.PROBNN_P
all_vars['PROBNN_PI'] = F.PROBNN_PI
# all_vars['SIZE'] = F.SIZE(DTFR) # no matching function for call to 'invoke'
if (_composite == ptype): # all these require a vertex
vars['BPVETA'] = F.BPVETA(pvs)
vars['BPVCORRM'] = F.BPVCORRM(pvs)
vars['BPVDIRA'] = F.BPVDIRA(pvs)
vars['BPVFDCHI2'] = F.BPVFDCHI2(pvs)
vars['BPVVDZ'] = F.BPVVDZ(pvs)
vars['BPVVDRHO'] = F.BPVVDRHO(pvs)
vars['BPVLTIME'] = F.BPVLTIME(pvs)
vars['BPVDLS'] = F.BPVDLS(pvs)
# vars['RUNNUMBER'] = F.RUNNUMBER(ODINLocation) # doesn't work.
# vars['EVENTNUMBER'] = F.EVENTNUMBER('/Event/DAQ/RawBanks/ODIN')
# vars['EVENTTYPE'] = F.EVENTTYPE('/Event/DAQ/RawBanks/ODIN')
# vars['MVA'] = F.MVA # needs an MVA
# vars['COMB'] = F.COMB # starts from combination
# vars['POD'] = F.POD # starts from combination
vars['DTF_PT'] = F.MAP_INPUT(Functor=F.PT, Relations=DTFR)
vars['DTF_BPVIPCHI2'] = F.MAP_INPUT(
all_vars['BPVETA'] = F.BPVETA(pvs)
all_vars['BPVCORRM'] = F.BPVCORRM(pvs)
all_vars['BPVDIRA'] = F.BPVDIRA(pvs)
all_vars['BPVIP'] = F.BPVIP(pvs)
all_vars['BPVIPCHI2'] = F.BPVIPCHI2(pvs)
if (_composite == ptype): # all these require a vertex
all_vars['BPVFDCHI2'] = F.BPVFDCHI2(pvs)
all_vars['BPVVDZ'] = F.BPVVDZ(pvs)
all_vars['BPVVDRHO'] = F.BPVVDRHO(pvs)
all_vars['BPVLTIME'] = F.BPVLTIME(pvs)
all_vars['BPVDLS'] = F.BPVDLS(pvs)
# all_vars['RUNNUMBER'] = F.RUNNUMBER(ODINLocation) # doesn't work.
# all_vars['EVENTNUMBER'] = F.EVENTNUMBER('/Event/DAQ/RawBanks/ODIN')
# all_vars['EVENTTYPE'] = F.EVENTTYPE('/Event/DAQ/RawBanks/ODIN')
# all_vars['MVA'] = F.MVA # needs an MVA
# all_vars['COMB'] = F.COMB # starts from combination
# all_vars['POD'] = F.POD # starts from combination
all_vars['DTF_PT'] = F.MAP_INPUT(Functor=F.PT, Relations=DTFR)
all_vars['DTF_BPVIPCHI2'] = F.MAP_INPUT(
Functor=F.BPVIPCHI2(pvs), Relations=DTFR)
if (_basic == ptype):
vars['PID_MU'] = F.PID_MU
vars['PID_PI'] = F.PID_PI
vars['PID_K'] = F.PID_K
vars['PID_P'] = F.PID_P
vars['PID_E'] = F.PID_E
vars['PROBNN_D'] = F.PROBNN_D
vars['PROBNN_E'] = F.PROBNN_E
vars['PROBNN_GHOST'] = F.PROBNN_GHOST
vars['PROBNN_K'] = F.PROBNN_K
vars['PROBNN_MU'] = F.PROBNN_MU
vars['PROBNN_P'] = F.PROBNN_P
vars['PROBNN_PI'] = F.PROBNN_PI
print("For {0} returning variables {1}".format(ptype, vars.keys()))
return vars
print("For {0} returning variables {1}".format(ptype, all_vars.keys()))
return all_vars
def alg_config():
......
......@@ -40,70 +40,7 @@ findReferenceBlock("""B0DsK_Tuple SUCCESS Booked 1 N-Tup
import sys, os, glob
from ROOT import TFile
B_vars_stored = ['B0_BPVCORRM'
, 'B0_BPVDIRA'
, 'B0_BPVDLS'
, 'B0_BPVETA'
, 'B0_BPVFDCHI2'
, 'B0_BPVIPCHI2'
, 'B0_BPVLTIME'
, 'B0_BPVVDRHO'
, 'B0_BPVVDZ'
, 'B0_CHARGE'
, 'B0_DTF_BPVIPCHI2'
, 'B0_DTF_PT'
, 'B0_ENERGY'
, 'B0_ETA'
, 'B0_FOURMOMENTUME'
, 'B0_FOURMOMENTUMX'
, 'B0_FOURMOMENTUMY'
, 'B0_FOURMOMENTUMZ'
, 'B0_MASS'
, 'B0_P'
, 'B0_PHI'
, 'B0_PT'
, 'B0_PX'
, 'B0_PY'
, 'B0_PZ'
, 'B0_END_VRho'
, 'B0_END_VX'
, 'B0_END_VY'
, 'B0_END_VZ'
, 'B0_Ds_END_VZ'
, 'B0_Delta_END_VZ_DsB0'
, 'B0_BPVIP'
, 'Kaon_BPVIP'
, 'Kaon_BPVIPCHI2'
, 'Kaon_CHARGE'
, 'Kaon_DTF_BPVIPCHI2'
, 'Kaon_DTF_PT'
, 'Kaon_ENERGY'
, 'Kaon_ETA'
, 'Kaon_FOURMOMENTUME'
, 'Kaon_FOURMOMENTUMX'
, 'Kaon_FOURMOMENTUMY'
, 'Kaon_FOURMOMENTUMZ'
, 'Kaon_MASS'
, 'Kaon_MINIP'
, 'Kaon_MINIPCHI2'
, 'Kaon_P'
, 'Kaon_PHI'
, 'Kaon_PID_E'
, 'Kaon_PID_K'
, 'Kaon_PID_MU'
, 'Kaon_PID_P'
, 'Kaon_PID_PI'
, 'Kaon_PROBNN_D'
, 'Kaon_PROBNN_E'
, 'Kaon_PROBNN_GHOST'
, 'Kaon_PROBNN_K'
, 'Kaon_PROBNN_MU'
, 'Kaon_PROBNN_P'
, 'Kaon_PROBNN_PI'
, 'Kaon_PT'
, 'Kaon_PX'
, 'Kaon_PY'
, 'Kaon_PZ']
B_vars_stored = [ 'B0_BPVCORRM', 'B0_BPVDIRA', 'B0_BPVDLS', 'B0_BPVETA', 'B0_BPVFDCHI2', 'B0_BPVIP', 'B0_BPVIPCHI2', 'B0_BPVLTIME', 'B0_BPVVDRHO', 'B0_BPVVDZ', 'B0_CHARGE', 'B0_CHI2', 'B0_CHI2DOF', 'B0_CHILD', 'B0_DTF_BPVIPCHI2', 'B0_DTF_PT', 'B0_Delta_END_VZ_DsB0', 'B0_Ds_END_VZ', 'B0_END_VRho', 'B0_END_VX', 'B0_END_VY', 'B0_END_VZ', 'B0_ENERGY', 'B0_ETA', 'B0_FOURMOMENTUME', 'B0_FOURMOMENTUMX', 'B0_FOURMOMENTUMY', 'B0_FOURMOMENTUMZ', 'B0_MASS', 'B0_MINIP', 'B0_MINIPCHI2', 'B0_P', 'B0_PHI', 'B0_PT', 'B0_PX', 'B0_PY', 'B0_PZ', 'B0_REFERENCEPOINT_X', 'B0_REFERENCEPOINT_Y', 'B0_REFERENCEPOINT_Z', 'B0_TX', 'B0_TY', 'Kaon_BPVIP', 'Kaon_BPVIPCHI2', 'Kaon_CHARGE', 'Kaon_ISMUON', 'Kaon_CHI2', 'Kaon_CHI2DOF', 'Kaon_DTF_BPVIPCHI2', 'Kaon_DTF_PT', 'Kaon_ENERGY', 'Kaon_ETA', 'Kaon_FOURMOMENTUME', 'Kaon_FOURMOMENTUMX', 'Kaon_FOURMOMENTUMY', 'Kaon_FOURMOMENTUMZ', 'Kaon_GHOSTPROB', 'Kaon_MASS', 'Kaon_MINIP', 'Kaon_MINIPCHI2', 'Kaon_P', 'Kaon_PHI', 'Kaon_PID_E', 'Kaon_PID_K', 'Kaon_PID_MU', 'Kaon_PID_P', 'Kaon_PID_PI', 'Kaon_PROBNN_D', 'Kaon_PROBNN_E', 'Kaon_PROBNN_GHOST', 'Kaon_PROBNN_K', 'Kaon_PROBNN_MU', 'Kaon_PROBNN_P', 'Kaon_PROBNN_PI', 'Kaon_PT', 'Kaon_PX', 'Kaon_PY', 'Kaon_PZ', 'Kaon_REFERENCEPOINT_X', 'Kaon_REFERENCEPOINT_Y', 'Kaon_REFERENCEPOINT_Z', 'Kaon_TX', 'Kaon_TY']
#sort the expected vars
B_vars_stored = sorted(B_vars_stored)
......
......@@ -12,4 +12,5 @@ ntuple_file: 'DV-Ntuple.root'
histo_file: 'DV-Histos.root'
lumi: False
enable_unpack: False
process: 'Turbo'
\ No newline at end of file
process: 'Turbo'
evt_max: 10
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment