Skip to content
Snippets Groups Projects
Commit 731f21e9 authored by LHCb Data Processing and Analysis's avatar LHCb Data Processing and Analysis :robot: Committed by Luke Grazette
Browse files

Revert "New AP for dst_to_dee MagUp 24c2 & 24c3 (supersedes !1602)"

This reverts merge request !1788
parent b0cf8040
No related branches found
No related tags found
No related merge requests found
import Functors as F
from Functors.math import log
from DaVinci import Options, make_config
from DaVinci.algorithms import create_lines_filter
from PyConf.reading import get_particles
from FunTuple import FunctorCollection
from PyConf.reading import get_particles, get_pvs
import FunTuple.functorcollections as FC
from FunTuple import FunTuple_Particles as Funtuple
from DecayTreeFitter import DecayTreeFitter
from Hlt2Conf.lines.charm.dst_to_dee_makers import (dst_BDT_functor)
from .tupling import (
make_DeltaM_variable,
make_basic_variables,
make_composite_variables,
make_composite_variables_3body,
make_composite_variables_4body,
make_hlt2_event_variables,
make_basic_dtf_variables,
make_composite_dtf_variables,
make_composite_dtf_variables_3body,
make_composite_dtf_variables_4body,
Hlt1_lines,
photon_isolation_variables
)
extra_brem_variables= (FunctorCollection(
{
"BREMHYPODELTAX": F.BREMHYPODELTAX,
"BREMHYPOENERGY": F.BREMHYPOENERGY,
"BREMHYPOID": F.BREMHYPOID,
"BREMHYPOMATCH_CHI2": F.BREMHYPOMATCH_CHI2,
"BREMPIDE": F.BREMPIDE,
"INBREM": F.INBREM,
"MASS_WITH_BREM": F.MASS_WITH_BREM,
"PT_WITH_BREM": F.PT_WITH_BREM,
"P_WITH_BREM": F.P_WITH_BREM,
"ECALPIDE": F.ECALPIDE,
"HCALPIDE": F.HCALPIDE,
"ELECTRONSHOWEREOP": F.ELECTRONSHOWEREOP,
"CLUSTERMATCH_CHI2": F.CLUSTERMATCH_CHI2,
"ELECTRONMATCH_CHI2": F.ELECTRONMATCH_CHI2,
"ELECTRONENERGY": F.ELECTRONENERGY,
"ELECTRONID": F.ELECTRONID,
"HCALEOP": F.HCALEOP,
"CALO_NEUTRAL_SHOWER_SHAPE": F.CALO_NEUTRAL_SHOWER_SHAPE,
"RICH_DLL_E": F.VALUE_OR(F.NaN)@F.RICH_DLL_E,
"TRACKPX": F.VALUE_OR(-1) @ F.TRACK_PX,
"TRACKPY": F.VALUE_OR(-1) @ F.TRACK_PY,
"TRACKPZ": F.VALUE_OR(-1) @ F.TRACK_PZ,
})
)
decay_descriptor = {
'dst_kpi_os' : {
"Dst0": "[ D*(2007)0 -> (D0 -> K- pi+) (gamma -> e+ e-)]CC",
"D0": "[ D*(2007)0 -> ^(D0 -> K- pi+) (gamma -> e+ e-)]CC",
"Kminus": "[ D*(2007)0 -> (D0 -> ^K- pi+) (gamma -> e+ e-)]CC",
"piplus": "[ D*(2007)0 -> (D0 -> K- ^pi+) (gamma -> e+ e-)]CC",
"gamma": "[ D*(2007)0 -> (D0 -> K- pi+) ^(gamma -> e+ e-)]CC",
"eplus": "[ D*(2007)0 -> (D0 -> K- pi+) (gamma -> ^e+ e-)]CC",
"eminus": "[ D*(2007)0 -> (D0 -> K- pi+) (gamma -> e+ ^e-)]CC",
},
'dst_kpi_ss' : {
"Dst0": "[ D*(2007)0 -> (D0 -> K- pi+) ([gamma -> e+ e+]CC)]CC",
"D0": "[ D*(2007)0 -> ^(D0 -> K- pi+) ([gamma -> e+ e+]CC)]CC",
"Kminus": "[ D*(2007)0 -> (D0 -> ^K- pi+) ([gamma -> e+ e+]CC)]CC",
"piplus": "[ D*(2007)0 -> (D0 -> K- ^pi+) ([gamma -> e+ e+]CC)]CC",
"gamma": "[ D*(2007)0 -> (D0 -> K- pi+) ^([gamma -> e+ e+]CC)]CC",
"eplus": "[ D*(2007)0 -> (D0 -> K- pi+) ([gamma -> ^e+ e+]CC)]CC",
"eminus": "[ D*(2007)0 -> (D0 -> K- pi+) ([gamma -> e+ ^e+]CC)]CC",
},
'dst_k3pi_os' : {
"Dst0": "[ D*(2007)0 -> (D0 -> K- pi- pi+ pi+) (gamma -> e+ e-)]CC",
"D0": "[ D*(2007)0 -> ^(D0 -> K- pi- pi+ pi+) (gamma -> e+ e-)]CC",
"Kminus": "[ D*(2007)0 -> (D0 -> ^K- pi- pi+ pi+) (gamma -> e+ e-)]CC",
"piminus": "[ D*(2007)0 -> (D0 -> K- ^pi- pi+ pi+) (gamma -> e+ e-)]CC",
"piplus1": "[ D*(2007)0 -> (D0 -> K- pi- ^pi+ pi+) (gamma -> e+ e-)]CC",
"piplus2": "[ D*(2007)0 -> (D0 -> K- pi- pi+ ^pi+) (gamma -> e+ e-)]CC",
"gamma": "[ D*(2007)0 -> (D0 -> K- pi- pi+ pi+) ^(gamma -> e+ e-)]CC",
"eplus": "[ D*(2007)0 -> (D0 -> K- pi- pi+ pi+) (gamma -> ^e+ e-)]CC",
"eminus": "[ D*(2007)0 -> (D0 -> K- pi- pi+ pi+) (gamma -> e+ ^e-)]CC",
},
'dst_k3pi_ss' : {
"Dst0": "[ D*(2007)0 -> (D0 -> K- pi- pi+ pi+) ([gamma -> e+ e+]CC)]CC",
"D0": "[ D*(2007)0 -> ^(D0 -> K- pi- pi+ pi+) ([gamma -> e+ e+]CC)]CC",
"Kminus": "[ D*(2007)0 -> (D0 -> ^K- pi- pi+ pi+) ([gamma -> e+ e+]CC)]CC",
"piminus": "[ D*(2007)0 -> (D0 -> K- ^pi- pi+ pi+) ([gamma -> e+ e+]CC)]CC",
"piplus1": "[ D*(2007)0 -> (D0 -> K- pi- ^pi+ pi+) ([gamma -> e+ e+]CC)]CC",
"piplus2": "[ D*(2007)0 -> (D0 -> K- pi- pi+ ^pi+) ([gamma -> e+ e+]CC)]CC",
"gamma": "[ D*(2007)0 -> (D0 -> K- pi- pi+ pi+) ^([gamma -> e+ e+]CC)]CC",
"eplus": "[ D*(2007)0 -> (D0 -> K- pi- pi+ pi+) ([gamma -> ^e+ e+]CC)]CC",
"eminus": "[ D*(2007)0 -> (D0 -> K- pi- pi+ pi+) ([gamma -> e+ ^e+]CC)]CC",
},
'dsstp_2kpi_os' : {
"Dstp": "[ D*_s+ -> (D_s+ -> K- K+ pi+) (gamma -> e+ e-)]CC",
"DpDs": "[ D*_s+ -> ^(D_s+ -> K- K+ pi+) (gamma -> e+ e-)]CC",
"Kminus": "[ D*_s+ -> (D_s+ -> ^K- K+ pi+) (gamma -> e+ e-)]CC",
"Kplus": "[ D*_s+ -> (D_s+ -> K- ^K+ pi+) (gamma -> e+ e-)]CC",
"piplus": "[ D*_s+ -> (D_s+ -> K- K+ ^pi+) (gamma -> e+ e-)]CC",
"gamma": "[ D*_s+ -> (D_s+ -> K- K+ pi+) ^(gamma -> e+ e-)]CC",
"eplus": "[ D*_s+ -> (D_s+ -> K- K+ pi+) (gamma -> ^e+ e-)]CC",
"eminus": "[ D*_s+ -> (D_s+ -> K- K+ pi+) (gamma -> e+ ^e-)]CC",
},
'dsstp_2kpi_ss' : {
"Dstp": "[ D*_s+ -> (D_s+ -> K- K+ pi+) ([gamma -> e+ e+]CC)]CC",
"DpDs": "[ D*_s+ -> ^(D_s+ -> K- K+ pi+) ([gamma -> e+ e+]CC)]CC",
"Kminus": "[ D*_s+ -> (D_s+ -> ^K- K+ pi+) ([gamma -> e+ e+]CC)]CC",
"Kplus": "[ D*_s+ -> (D_s+ -> K- ^K+ pi+) ([gamma -> e+ e+]CC)]CC",
"piplus": "[ D*_s+ -> (D_s+ -> K- K+ ^pi+) ([gamma -> e+ e+]CC)]CC",
"gamma": "[ D*_s+ -> (D_s+ -> K- K+ pi+) ^([gamma -> e+ e+]CC)]CC",
"eplus": "[ D*_s+ -> (D_s+ -> K- K+ pi+) ([gamma -> ^e+ e+]CC)]CC",
"eminus": "[ D*_s+ -> (D_s+ -> K- K+ pi+) ([gamma -> e+ ^e+]CC)]CC",
},
}
def MVA_dst_variables(line, pvs):
return (FunctorCollection( { "MVA": dst_BDT_functor(pvs, line=line)}))
#make_dtf_variables(options, input_data, ptype):
def make_dtf_variables(options, input_data, pvs, ptype="basic", mass_constrain = ["D*(2007)0", "D0" ], nparticles=2):
DTF = DecayTreeFitter(
name="DTF_{hash}",
input_particles=input_data,
)
DTF_DMass_BestPV = DecayTreeFitter(
name="DTF_DMass_BestPV_{hash}",
input_particles=input_data,
mass_constraints=mass_constrain,
input_pvs=pvs,
fit_all_pvs=False,
)
DTF_Mass_BestPV = DecayTreeFitter(
name="DTF_Mass_BestPV_{hash}",
input_particles=input_data,
mass_constraints=[mass_constrain[1]],
input_pvs=pvs,
fit_all_pvs=False,
)
DTF_BestPV = DecayTreeFitter(
name="DTF_BestPV_{hash}",
input_particles=input_data,
#mass_constraints=["D*(2007)0", "D0" ],
input_pvs=pvs,
fit_all_pvs=False,
)
DTF_DMass = DecayTreeFitter(
name="DTF_DMass_{hash}",
input_particles=input_data,
mass_constraints=mass_constrain,
output_level=3,
)
DTF_Mass = DecayTreeFitter(
name="DTF_Mass_{hash}",
input_particles=input_data,
mass_constraints=[mass_constrain[1]],
output_level=3,
)
if ptype == "basic":
dtf_variables = make_basic_dtf_variables
elif ptype == "composite":
if nparticles == 2:
dtf_variables = make_composite_dtf_variables
elif nparticles == 3:
dtf_variables = make_composite_dtf_variables_3body
elif nparticles == 4:
dtf_variables = make_composite_dtf_variables_4body
#dtf_vars = dtf_variables(options, pvs, input_data,
# DTF=DTF,
# pv_constraint=False,
# mass_constraint=False)
dtf_vars = dtf_variables(options, pvs, input_data,
DTF=DTF_BestPV,
pv_constraint=True,
mass_constraint=False)
#dtf_vars += dtf_variables(options, pvs, input_data,
# DTF=DTF_Mass,
# pv_constraint=False,
# mass_constraint=True, particle_name="D")
#dtf_vars += dtf_variables(options, pvs, input_data,
# DTF=DTF_Mass_BestPV,
# pv_constraint=True,
# mass_constraint=True, particle_name="D")
dtf_vars += dtf_variables(options, pvs, input_data,
DTF=DTF_DMass,
pv_constraint=False,
mass_constraint=True, particle_name="DstD")
dtf_vars += dtf_variables(options, pvs, input_data,
DTF=DTF_DMass_BestPV,
pv_constraint=True,
mass_constraint=True, particle_name="DstD")
return dtf_vars
def make_Dst0ToD0EmEp_D0ToKmPip_tuple(options, line, pvs , rec_summary, dd='dst_kpi_os'):
input_data=get_particles(f"/Event/HLT2/{line}/Particles")
extra_photons = get_particles(f"/Event/HLT2/{line}/{line[10:]}_prompt_Photons/Particles")
my_filter = create_lines_filter(f"LineFilter_{line}_{{hash}}",[line],)
fields = decay_descriptor[dd]
extra_variables= photon_isolation_variables(input_data, extra_photons)
composite_tuple_variables = {
"Dst0" : make_composite_variables(options, pvs, input_data) + make_dtf_variables(options, input_data, pvs, "composite") +\
MVA_dst_variables("Hlt2Charm_Dst0ToD0EmEp_D0ToKmPip", pvs) + make_DeltaM_variable(options),
"D0" : make_composite_variables(options, pvs, input_data) + make_dtf_variables(options, input_data, pvs, "composite"),
"gamma" : make_composite_variables(options, pvs, input_data) + make_dtf_variables(options, input_data, pvs, "composite")+extra_variables
}
basic_tuple_variables = {
"Kminus" : make_basic_variables(options, pvs, input_data)+make_dtf_variables(options, input_data, pvs, "basic"),
"piplus" : make_basic_variables(options, pvs, input_data)+make_dtf_variables(options, input_data, pvs, "basic"),
"eplus" : make_basic_variables(options, pvs, input_data)+make_dtf_variables(options, input_data, pvs, "basic") + extra_brem_variables,
"eminus" : make_basic_variables(options, pvs, input_data)+make_dtf_variables(options, input_data, pvs, "basic") + extra_brem_variables,
}
my_tuple = Funtuple(
name=f"Tuple_{line}_{dd}",
tuple_name="DecayTree",
fields=fields,
variables= {**composite_tuple_variables, **basic_tuple_variables},
event_variables=make_hlt2_event_variables(options, pvs, rec_summary),
inputs=input_data,
store_multiple_cand_info=True
)
return [ my_filter, my_tuple]
def make_Dst0ToD0EmEp_D0ToKmPimPipPip_tuple(options, line, pvs, rec_summary, dd='dst_k3pi_os'):
input_data=get_particles(f"/Event/HLT2/{line}/Particles")
extra_photons = get_particles(f"/Event/HLT2/{line}/{line[10:]}_prompt_Photons/Particles")
my_filter = create_lines_filter(f"LineFilter_{line}_{{hash}}",[line],)
fields = decay_descriptor[dd]
extra_variables= photon_isolation_variables(input_data, extra_photons)
composite_tuple_variables = {
"Dst0" : make_composite_variables(options, pvs, input_data) + make_dtf_variables(options, input_data, pvs, "composite") +\
MVA_dst_variables("Hlt2Charm_Dst0ToD0EmEp_D0ToKmPimPipPip", pvs) + make_DeltaM_variable(options),
"D0" : make_composite_variables_4body(options, pvs, input_data) + make_dtf_variables(options, input_data, pvs, "composite", nparticles=4),
"gamma" : make_composite_variables(options, pvs, input_data) + make_dtf_variables(options, input_data, pvs, "composite")+extra_variables
}
basic_tuple_variables = {
"Kminus" : make_basic_variables(options, pvs, input_data)+make_dtf_variables(options, input_data, pvs, "basic"),
"piminus" : make_basic_variables(options, pvs, input_data)+make_dtf_variables(options, input_data, pvs, "basic"),
"piplus1" : make_basic_variables(options, pvs, input_data)+make_dtf_variables(options, input_data, pvs, "basic"),
"piplus2" : make_basic_variables(options, pvs, input_data)+make_dtf_variables(options, input_data, pvs, "basic"),
"eplus" : make_basic_variables(options, pvs, input_data)+make_dtf_variables(options, input_data, pvs, "basic") + extra_brem_variables,
"eminus" : make_basic_variables(options, pvs, input_data)+make_dtf_variables(options, input_data, pvs, "basic") + extra_brem_variables,
}
my_tuple = Funtuple(
name=f"Tuple_{line}_{dd}",
tuple_name="DecayTree",
fields=fields,
variables= {**composite_tuple_variables, **basic_tuple_variables},
event_variables=make_hlt2_event_variables(options, pvs, rec_summary),
inputs=input_data,
store_multiple_cand_info=True
)
return [ my_filter, my_tuple]
def make_DstpToDpDspEmEp_DpDspToKmKpPip_tuple(options, line, pvs , rec_summary, dd='dsstp_2kpi_os'):
input_data=get_particles(f"/Event/HLT2/{line}/Particles")
extra_photons = get_particles(f"/Event/HLT2/{line}/{line[10:]}_prompt_Photons/Particles")
my_filter = create_lines_filter(f"LineFilter_{line}_{{hash}}",[line],)
fields = decay_descriptor[dd]
extra_variables= photon_isolation_variables(input_data, extra_photons)
composite_tuple_variables = {
"Dstp" : make_composite_variables(options, pvs, input_data) + make_dtf_variables(options, input_data, pvs, "composite", mass_constrain = ["D*_s+", "D_s+"]) +\
MVA_dst_variables("Hlt2Charm_DstpToDpDspEmEp_DpDspToKmKpPip", pvs) + make_DeltaM_variable(options),
"DpDs" : make_composite_variables_3body(options, pvs, input_data) + make_dtf_variables(options, input_data, pvs, "composite", mass_constrain = ["D*_s+", "D_s+"], nparticles=3),
"gamma" : make_composite_variables(options, pvs, input_data) + make_dtf_variables(options, input_data, pvs, "composite", mass_constrain = ["D*_s+", "D_s+"])+extra_variables,
}
basic_tuple_variables = {
"Kminus" : make_basic_variables(options, pvs, input_data)+make_dtf_variables(options, input_data, pvs, "basic", mass_constrain = ["D*_s+", "D_s+"]),
"Kplus" : make_basic_variables(options, pvs, input_data)+make_dtf_variables(options, input_data, pvs, "basic", mass_constrain = ["D*_s+", "D_s+"]),
"piplus" : make_basic_variables(options, pvs, input_data)+make_dtf_variables(options, input_data, pvs, "basic", mass_constrain = ["D*_s+", "D_s+"]),
"eplus" : make_basic_variables(options, pvs, input_data)+make_dtf_variables(options, input_data, pvs, "basic", mass_constrain = ["D*_s+", "D_s+"])+ extra_brem_variables,
"eminus" : make_basic_variables(options, pvs, input_data)+make_dtf_variables(options, input_data, pvs, "basic", mass_constrain = ["D*_s+", "D_s+"])+ extra_brem_variables,
}
my_tuple = Funtuple(
name=f"Tuple_{line}_{dd}",
tuple_name="DecayTree",
fields=fields,
variables= {**composite_tuple_variables, **basic_tuple_variables},
event_variables=make_hlt2_event_variables(options, pvs, rec_summary),
inputs=input_data,
store_multiple_cand_info=True
)
return [ my_filter, my_tuple]
from DaVinci import Options, make_config
from PyConf.reading import get_pvs, get_rec_summary
def main(options: Options):
# get ODIN and DecReports location
pvs = get_pvs()
rec_summary = get_rec_summary()
tuples = {
'Hlt2Charm_Dst0ToD0EmEp_D0ToKmPip_OS': make_Dst0ToD0EmEp_D0ToKmPip_tuple(options, "Hlt2Charm_Dst0ToD0EmEp_D0ToKmPip_OS", pvs, rec_summary, 'dst_kpi_os'),
'Hlt2Charm_Dst0ToD0EmEp_D0ToKmPip_SS': make_Dst0ToD0EmEp_D0ToKmPip_tuple(options, "Hlt2Charm_Dst0ToD0EmEp_D0ToKmPip_SS", pvs, rec_summary, 'dst_kpi_ss'),
'Hlt2Charm_Dst0ToD0EmEp_D0ToKmPip_OS_MVA': make_Dst0ToD0EmEp_D0ToKmPip_tuple(options, "Hlt2Charm_Dst0ToD0EmEp_D0ToKmPip_OS_MVA", pvs, rec_summary, 'dst_kpi_os'),
'Hlt2Charm_Dst0ToD0EmEp_D0ToKmPip_SS_MVA': make_Dst0ToD0EmEp_D0ToKmPip_tuple(options, "Hlt2Charm_Dst0ToD0EmEp_D0ToKmPip_SS_MVA", pvs, rec_summary, 'dst_kpi_ss'),
'Hlt2Charm_Dst0ToD0EmEp_D0ToKmPimPipPip_OS': make_Dst0ToD0EmEp_D0ToKmPimPipPip_tuple(options, "Hlt2Charm_Dst0ToD0EmEp_D0ToKmPimPipPip_OS", pvs, rec_summary,'dst_k3pi_os' ),
'Hlt2Charm_Dst0ToD0EmEp_D0ToKmPimPipPip_SS': make_Dst0ToD0EmEp_D0ToKmPimPipPip_tuple(options, "Hlt2Charm_Dst0ToD0EmEp_D0ToKmPimPipPip_SS", pvs, rec_summary, 'dst_k3pi_ss'),
'Hlt2Charm_Dst0ToD0EmEp_D0ToKmPimPipPip_OS_MVA': make_Dst0ToD0EmEp_D0ToKmPimPipPip_tuple(options, "Hlt2Charm_Dst0ToD0EmEp_D0ToKmPimPipPip_OS_MVA", pvs, rec_summary, 'dst_k3pi_os'),
'Hlt2Charm_Dst0ToD0EmEp_D0ToKmPimPipPip_SS_MVA': make_Dst0ToD0EmEp_D0ToKmPimPipPip_tuple(options, "Hlt2Charm_Dst0ToD0EmEp_D0ToKmPimPipPip_SS_MVA", pvs, rec_summary, 'dst_k3pi_ss'),
'Hlt2Charm_DstpToDpDspEmEp_DpDspToKmKpPip_OS': make_DstpToDpDspEmEp_DpDspToKmKpPip_tuple(options, "Hlt2Charm_DstpToDpDspEmEp_DpDspToKmKpPip_OS", pvs, rec_summary, "dsstp_2kpi_os"),
'Hlt2Charm_DstpToDpDspEmEp_DpDspToKmKpPip_SS': make_DstpToDpDspEmEp_DpDspToKmKpPip_tuple(options, "Hlt2Charm_DstpToDpDspEmEp_DpDspToKmKpPip_SS", pvs, rec_summary, "dsstp_2kpi_ss"),
'Hlt2Charm_DstpToDpDspEmEp_DpDspToKmKpPip_OS_MVA': make_DstpToDpDspEmEp_DpDspToKmKpPip_tuple(options, "Hlt2Charm_DstpToDpDspEmEp_DpDspToKmKpPip_OS_MVA", pvs, rec_summary, "dsstp_2kpi_os"),
'Hlt2Charm_DstpToDpDspEmEp_DpDspToKmKpPip_SS_MVA': make_DstpToDpDspEmEp_DpDspToKmKpPip_tuple(options, "Hlt2Charm_DstpToDpDspEmEp_DpDspToKmKpPip_SS_MVA", pvs, rec_summary, "dsstp_2kpi_ss"),
}
config = make_config(options, tuples)
return config
# Analysis production for dst_to_dee charm module.
Creates tuples for Charm 2024-validation MC and data
## Analysis motivation
The module dst_to_dee contains several HLT2 lines to search for dark photons produced by a Charm decay.
\ No newline at end of file
###############################################################################
# (c) Copyright 2023 CERN for the benefit of the LHCb Collaboration #
# #
# This software is distributed under the terms of the GNU General Public #
# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". #
# #
# In applying this licence, CERN does not waive the privileges and immunities #
# granted to it by virtue of its status as an Intergovernmental Organization #
# or submit itself to any jurisdiction. #
###############################################################################
"""
Configures running HLT1 via Moore.
"""
"""
Configures running HLT1 via Moore.
"""
from Moore import Options
from Moore.config import allen_control_flow
from RecoConf.hlt1_allen import allen_gaudi_config, get_allen_line_names
from PyConf.application import configure_input, configure
from RecoConf.muonid import make_muon_hits
make_muon_hits.global_bind(geometry_version=3)
def alg_config(options: Options):
"""
Configures algorithm running of HLT1 via Moore to be passed to Analysis Productions.
"""
config = configure_input(options)
with allen_gaudi_config.bind(sequence="hlt1_pp_matching_no_ut_1000KHz"):
line_names = get_allen_line_names()
allen_node = allen_control_flow(options)
config.update(configure(options, allen_node))
return config
\ No newline at end of file
###############################################################################
# (c) Copyright 2024 CERN for the benefit of the LHCb Collaboration #
# #
# This software is distributed under the terms of the GNU General Public #
# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". #
# #
# In applying this licence, CERN does not waive the privileges and immunities #
# granted to it by virtue of its status as an Intergovernmental Organization #
# or submit itself to any jurisdiction. #
###############################################################################
"""Options for running a set of HLT2 lines -> mdf to calculate BW.
Run like any other options file:
./Moore/run gaudirun.py hlt2_bandwidth_example.py
file_size = ls -lh --si hlt2_bandwidth_example.mdf
b/w (GB/s) = input rate (1140 kHz for this min bias) x file_size (MB) / options.evt_max
"""
from Moore import Options, run_moore
from DDDB.CheckDD4Hep import UseDD4Hep
from Hlt2Conf.settings.hlt2_binds import config_pp_2024_without_UT
# Imports for 2024-like no-UT reconstruction scenario aligned with hlt2_pp_thor_without_UT
from RecoConf.global_tools import (
stateProvider_with_simplified_geom,
trackMasterExtrapolator_with_simplified_geom,
)
from RecoConf.reconstruction_objects import reconstruction
from RecoConf.hlt2_global_reco import (
reconstruction as hlt2_reconstruction,
make_light_reco_pr_kf_without_UT,
)
from RecoConf.hlt2_tracking import (
make_TrackBestTrackCreator_tracks,
make_PrKalmanFilter_noUT_tracks,
make_PrKalmanFilter_Velo_tracks,
make_PrKalmanFilter_Seed_tracks,
)
from RecoConf.decoders import default_VeloCluster_source
from RecoConf.event_filters import require_gec
from RecoConf.protoparticles import make_charged_protoparticles
from Hlt2Conf.settings.defaults import get_default_hlt1_filter_code_for_hlt2
import sys
from Moore.streams import DETECTORS, Stream, Streams
from Hlt2Conf.lines.charm.dst_to_dee import all_lines
if UseDD4Hep:
raise RuntimeError("Sorry, you'll need a detdesc stack to run over this MC. Please see https://lhcbdoc.web.cern.ch/lhcbdoc/moore/master/tutorials/running_over_mc.html#switching-to-a-detdesc-compatible-platform")
def make_streams():
streams = [
Stream(
"dst_to_dee",
lines=[builder() for builder in all_lines.values()], # whole module
routing_bit=85, # some dummy value != 94 or 95
# lines=[line_to_run()] # single line
detectors=[]) # Turbo and Full case - no detector raw banks
# detectors=DETECTORS) # if persisting detector raw banks i.e. special cases or TurCal lines
]
return Streams(streams=streams)
public_tools = [
trackMasterExtrapolator_with_simplified_geom(),
stateProvider_with_simplified_geom(),
]
def alg_config(options: Options):
with reconstruction.bind(from_file=False), config_pp_2024_without_UT():
config = run_moore(options, make_streams, public_tools)
return config
###############################################################################
# (c) Copyright 2024 CERN for the benefit of the LHCb Collaboration #
# #
# This software is distributed under the terms of the GNU General Public #
# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". #
# #
# In applying this licence, CERN does not waive the privileges and immunities #
# granted to it by virtue of its status as an Intergovernmental Organization #
# or submit itself to any jurisdiction. #
###############################################################################
"""Options for running a set of HLT2 lines -> mdf to calculate BW.
Run like any other options file:
./Moore/run gaudirun.py hlt2_bandwidth_example.py
file_size = ls -lh --si hlt2_bandwidth_example.mdf
b/w (GB/s) = input rate (1140 kHz for this min bias) x file_size (MB) / options.evt_max
"""
from Moore import Options, run_moore
from Hlt2Conf.settings.hlt2_binds import config_pp_2024
from DDDB.CheckDD4Hep import UseDD4Hep
# Imports for 2024-like no-UT reconstruction scenario aligned with hlt2_pp_thor_without_UT
from RecoConf.global_tools import (
stateProvider_with_simplified_geom,
trackMasterExtrapolator_with_simplified_geom,
)
from RecoConf.reconstruction_objects import reconstruction
from RecoConf.hlt2_global_reco import (
reconstruction as hlt2_reconstruction,
make_light_reco_pr_kf,
)
from RecoConf.hlt2_tracking import (
make_TrackBestTrackCreator_tracks,
make_PrKalmanFilter_noUT_tracks,
make_PrKalmanFilter_Velo_tracks,
make_PrKalmanFilter_Seed_tracks,
)
from RecoConf.decoders import default_VeloCluster_source
from RecoConf.event_filters import require_gec
from RecoConf.protoparticles import make_charged_protoparticles
from Hlt2Conf.settings.defaults import get_default_hlt1_filter_code_for_hlt2
import sys
from Moore.streams import DETECTORS, Stream, Streams
from Hlt2Conf.lines.charm.dst_to_dee import all_lines
if UseDD4Hep:
raise RuntimeError("Sorry, you'll need a detdesc stack to run over this MC. Please see https://lhcbdoc.web.cern.ch/lhcbdoc/moore/master/tutorials/running_over_mc.html#switching-to-a-detdesc-compatible-platform")
def make_streams():
streams = [
Stream(
"dst_to_dee",
lines=[builder() for builder in all_lines.values()], # whole module
routing_bit=85, # some dummy value != 94 or 95
# lines=[line_to_run()] # single line
detectors=[]) # Turbo and Full case - no detector raw banks
# detectors=DETECTORS) # if persisting detector raw banks i.e. special cases or TurCal lines
]
return Streams(streams=streams)
public_tools = [
trackMasterExtrapolator_with_simplified_geom(),
stateProvider_with_simplified_geom(),
]
def alg_config(options: Options):
with reconstruction.bind(from_file=False), config_pp_2024():
config = run_moore(options, make_streams, public_tools)
return config
defaults:
inform:
- carlos.eduardo.cocha.toapaxi@cern.ch
wg: Charm
{%- set UT_conditions = [
('-Excl-UT'),
('-Incl-UT')
]%}
{%- set evttype_subsample_nutext_nu_dir1_dir2_dddb_geometry = [
( '27184011', 'dst_to_dee', '1p6', '1.6', 'Dev','-expected' , '.Q1.2', '10c', 'dddb-20240311', 'sim-20231017-vc', 'run3/2024.Q1.2-v00.00', 'mc','MagDown', 'md', '','',''),
( '27186011', 'dst_to_dee', '1p6', '1.6', 'Dev','-expected' , '.Q1.2', '10c', 'dddb-20240311', 'sim-20231017-vc', 'run3/2024.Q1.2-v00.00', 'mc','MagDown', 'md', '','',''),
( '27185021', 'dst_to_dee', '1p6', '1.6', 'Dev','-expected' , '.Q1.2', '10c', 'dddb-20240311', 'sim-20231017-vc', 'run3/2024.Q1.2-v00.00', 'mc','MagDown', 'md', '','',''),
( '27184011', 'dst_to_dee', '4p3', '4.3', 'Dev','-expected' , '.Q1.2', '10c', 'dddb-20240311', 'sim-20231017-vc', 'run3/2024.Q1.2-v00.00', 'mc','MagDown', 'md', '','',''),
( '27186011', 'dst_to_dee', '4p3', '4.3', 'Dev','-expected' , '.Q1.2', '10c', 'dddb-20240311', 'sim-20231017-vc', 'run3/2024.Q1.2-v00.00', 'mc','MagDown', 'md', '','',''),
( '27185021', 'dst_to_dee', '4p3', '4.3', 'Dev','-expected' , '.Q1.2', '10c', 'dddb-20240311', 'sim-20231017-vc', 'run3/2024.Q1.2-v00.00', 'mc','MagDown', 'md', '','',''),
( '27184011', 'dst_to_dee', '5p7', '5.7', 'Dev','-expected' , '.Q1.2', '10c', 'dddb-20240311', 'sim-20231017-vc', 'run3/2024.Q1.2-v00.00', 'mc','MagDown', 'md', '','',''),
( '27186011', 'dst_to_dee', '5p7', '5.7', 'Dev','-expected' , '.Q1.2', '10c', 'dddb-20240311', 'sim-20231017-vc', 'run3/2024.Q1.2-v00.00', 'mc','MagDown', 'md', '','',''),
( '27185021', 'dst_to_dee', '5p7', '5.7', 'Dev','-expected' , '.Q1.2', '10c', 'dddb-20240311', 'sim-20231017-vc', 'run3/2024.Q1.2-v00.00', 'mc','MagDown', 'md', '','',''),
( '27184011', 'dst_to_dee', '7p6', '7.6', 'Dev','-expected' , '.Q1.2', '10c', 'dddb-20240311', 'sim-20231017-vc', 'run3/2024.Q1.2-v00.00', 'mc','MagDown', 'md', '','',''),
( '27186011', 'dst_to_dee', '7p6', '7.6', 'Dev','-expected' , '.Q1.2', '10c', 'dddb-20240311', 'sim-20231017-vc', 'run3/2024.Q1.2-v00.00', 'mc','MagDown', 'md', '','',''),
( '27185021', 'dst_to_dee', '7p6', '7.6', 'Dev','-expected' , '.Q1.2', '10c', 'dddb-20240311', 'sim-20231017-vc', 'run3/2024.Q1.2-v00.00', 'mc','MagDown', 'md', '','',''),
( '30000000', 'dst_to_dee', '7p6', '7.6', 'Dev', '-expected', '', '10c', 'dddb-20231017', 'sim-20231017-vc', 'run3/2024.Q1.2-v00.00', 'mc','MagDown', 'md', '','',''),
( '30000000', 'dst_to_dee', '7p6', '7.6', 'Dev', '-expected', '', '10c', 'dddb-20231017', 'sim-20231017-vc', 'run3/2024.Q1.2-v00.00', 'mc','MagUp', 'mu', '','',''),
( '27184011', 'dst_to_dee', '4p3', '4.3', '2024', '', '.Q1.2', '10d', 'dddb-20240427', 'sim10-2024.Q1.2-v1.0', 'run3/2024.Q1.2-v00.00', 'mc','MagDown', 'md', '','',''),
( '27186011', 'dst_to_dee', '4p3', '4.3', '2024', '', '.Q1.2', '10d', 'dddb-20240427', 'sim10-2024.Q1.2-v1.0', 'run3/2024.Q1.2-v00.00', 'mc','MagDown', 'md', '','',''),
( '27185021', 'dst_to_dee', '4p3', '4.3', '2024', '', '.Q1.2', '10d', 'dddb-20240427', 'sim10-2024.Q1.2-v1.0', 'run3/2024.Q1.2-v00.00', 'mc','MagDown', 'md', '','',''),
( '27184011', 'dst_to_dee', '5p7', '5.7', '2024', '', '.Q1.2', '10d', 'dddb-20240427', 'sim10-2024.Q1.2-v1.0', 'run3/2024.Q1.2-v00.00', 'mc','MagDown', 'md', '','',''),
( '27186011', 'dst_to_dee', '5p7', '5.7', '2024', '', '.Q1.2', '10d', 'dddb-20240427', 'sim10-2024.Q1.2-v1.0', 'run3/2024.Q1.2-v00.00', 'mc','MagDown', 'md', '','',''),
( '27185021', 'dst_to_dee', '5p7', '5.7', '2024', '', '.Q1.2', '10d', 'dddb-20240427', 'sim10-2024.Q1.2-v1.0', 'run3/2024.Q1.2-v00.00', 'mc','MagDown', 'md', '','',''),
( '27184011', 'dst_to_dee', '7p6', '7.6', '2024', '', '.Q1.2', '10d', 'dddb-20240427', 'sim10-2024.Q1.2-v1.0', 'run3/2024.Q1.2-v00.00', 'mc','MagDown', 'md', '','',''),
( '27186011', 'dst_to_dee', '7p6', '7.6', '2024', '', '.Q1.2', '10d', 'dddb-20240427', 'sim10-2024.Q1.2-v1.0', 'run3/2024.Q1.2-v00.00', 'mc','MagDown', 'md', '','',''),
( '27185021', 'dst_to_dee', '7p6', '7.6', '2024', '', '.Q1.2', '10d', 'dddb-20240427', 'sim10-2024.Q1.2-v1.0', 'run3/2024.Q1.2-v00.00', 'mc','MagDown', 'md', '','',''),
( '27184011', 'dst_to_dee', '4p3', '4.3', '2024', '', '.Q1.2', '10d', 'dddb-20240427', 'sim10-2024.Q1.2-v1.0', 'run3/2024.Q1.2-v00.00', 'mc','MagUp', 'mu', '','',''),
( '27186011', 'dst_to_dee', '4p3', '4.3', '2024', '', '.Q1.2', '10d', 'dddb-20240427', 'sim10-2024.Q1.2-v1.0', 'run3/2024.Q1.2-v00.00', 'mc','MagUp', 'mu', '','',''),
( '27185021', 'dst_to_dee', '4p3', '4.3', '2024', '', '.Q1.2', '10d', 'dddb-20240427', 'sim10-2024.Q1.2-v1.0', 'run3/2024.Q1.2-v00.00', 'mc','MagUp', 'mu', '','',''),
( '27184011', 'dst_to_dee', '5p7', '5.7', '2024', '', '.Q1.2', '10d', 'dddb-20240427', 'sim10-2024.Q1.2-v1.0', 'run3/2024.Q1.2-v00.00', 'mc','MagUp', 'mu', '','',''),
( '27186011', 'dst_to_dee', '5p7', '5.7', '2024', '', '.Q1.2', '10d', 'dddb-20240427', 'sim10-2024.Q1.2-v1.0', 'run3/2024.Q1.2-v00.00', 'mc','MagUp', 'mu', '','',''),
( '27185021', 'dst_to_dee', '5p7', '5.7', '2024', '', '.Q1.2', '10d', 'dddb-20240427', 'sim10-2024.Q1.2-v1.0', 'run3/2024.Q1.2-v00.00', 'mc','MagUp', 'mu', '','',''),
( '27184011', 'dst_to_dee', '7p6', '7.6', '2024', '', '.Q1.2', '10d', 'dddb-20240427', 'sim10-2024.Q1.2-v1.0', 'run3/2024.Q1.2-v00.00', 'mc','MagUp', 'mu', '','',''),
( '27186011', 'dst_to_dee', '7p6', '7.6', '2024', '', '.Q1.2', '10d', 'dddb-20240427', 'sim10-2024.Q1.2-v1.0', 'run3/2024.Q1.2-v00.00', 'mc','MagUp', 'mu', '','',''),
( '27185021', 'dst_to_dee', '7p6', '7.6', '2024', '', '.Q1.2', '10d', 'dddb-20240427', 'sim10-2024.Q1.2-v1.0', 'run3/2024.Q1.2-v00.00', 'mc','MagUp', 'mu', '','',''),
( '' , 'dst_to_dee', '' , '' , '', '', '', '', '', '', 'run3/2024.Q1.2-v00.00', 'data','MagUp', 'mu', '24c2',301325 ,302403),
( '' , 'dst_to_dee', '' , '' , '', '', '', '', '', '', 'run3/2024.Q1.2-v00.00', 'data','MagUp', 'mu', '24c2',302429 ,303010),
( '' , 'dst_to_dee', '' , '' , '', '', '', '', '', '', 'run3/2024.Q1.2-v00.00', 'data','MagUp', 'mu', '24c2',303092 ,304604),
( '' , 'dst_to_dee', '' , '' , '', '', '', '', '', '', 'run3/2024.Q1.2-v00.00', 'data','MagUp', 'mu', '24c2',304648 ,306631),
( '' , 'dst_to_dee', '' , '' , '', '', '', '', '', '', 'run3/2024.Q1.2-v00.00', 'data','MagUp', 'mu', '24c3','',''),
]%}
{%- for evttype, id, nutext, nu, dir1, expc, dir2, simc, dddb, conddb, geometry, mc_or_data, polarity, magpol, sprucen,runin,runfin in evttype_subsample_nutext_nu_dir1_dir2_dddb_geometry %}
{% if mc_or_data == 'mc' %}
{%- for utcond in UT_conditions %}
{{evttype}}_2024_{{ polarity }}_{{simc}}_Nu{{nutext}}_HLT1{{utcond}}:
application: "Moore/v55r12@x86_64_v2-el9-clang16+detdesc-opt"
input:
bk_query: "/MC/{{dir1}}/Beam6800GeV{{expc}}-2024{{dir2}}-{{polarity}}-Nu{{nu}}-25ns-Pythia8/Sim{{simc}}/{{evttype}}/DIGI"
n_test_lfns: 1
dq_flags:
- OK
output: HLT1.DST
options:
entrypoint: dst_to_dee.hlt1:alg_config
extra_options:
input_raw_format: 0.5
conddb_tag: {{conddb}}-{{magpol}}100
dddb_tag: '{{dddb}}'
input_type: ROOT
output_type: ROOT
simulation: True
data_type: "Upgrade"
scheduler_legacy_mode: False
geometry_version: "{{geometry}}"
compression:
algorithm: ZSTD
level: 1
max_buffer_size: 1048576
{{evttype}}_2024_{{ polarity }}_{{simc}}_Nu{{nutext}}_HLT2{{utcond}}:
application: "Moore/v55r12@x86_64_v2-el9-clang16+detdesc-opt"
input:
job_name: {{evttype}}_2024_{{ polarity }}_{{simc}}_Nu{{nutext}}_HLT1{{utcond}}
output: HLT2_{{id}}.DST
options:
entrypoint: dst_to_dee.hlt2{{utcond}}:alg_config
extra_options:
conddb_tag: {{conddb}}-{{magpol}}100
dddb_tag: '{{dddb}}'
input_raw_format: 0.5
input_type: "ROOT"
output_type: "ROOT"
simulation: True
data_type: "Upgrade"
output_manifest_file: "HLT2.tck.json"
scheduler_legacy_mode: False
geometry_version: "{{geometry}}"
compression:
algorithm: ZSTD
level: 1
max_buffer_size: 1048576
MC_{{evttype}}_2024_{{ polarity }}_{{simc}}_Nu{{nutext}}{{utcond}}:
application: "DaVinci/v64r9@x86_64_v2-el9-clang16+detdesc-opt"
input:
job_name: {{evttype}}_2024_{{ polarity }}_{{simc}}_Nu{{nutext}}_HLT2{{utcond}}
output: DVTUPLE.ROOT
options:
entrypoint: dst_to_dee.DV:main
extra_options:
conddb_tag: {{conddb}}-{{magpol}}100
dddb_tag: '{{dddb}}'
input_raw_format: 0.5
input_type: ROOT
simulation: True
input_manifest_file: "HLT2.tck.json"
data_type: "Upgrade"
event_store: HiveWhiteBoard
geometry_version: "{{geometry}}"
conditions_version: master
input_process: "Hlt2"
{%- endfor %}
{% else %}
{% if sprucen == '24c2' %}
DATA_2024_{{ polarity }}_{{sprucen}}_{{runin}}_{{runfin}}:
application: "DaVinci/v64r9@x86_64_v2-el9-clang16-opt"
input:
bk_query: "/LHCb/Collision24/Beam6800GeV-VeloClosed-{{polarity}}/Real Data/Sprucing{{sprucen}}/94000000/CHARM.DST"
dq_flags:
- UNCHECKED
- OK
runs:
- {{runin}}:{{runfin}}
input_plugin: by-run
output: DVTUPLE.ROOT
options:
entrypoint: dst_to_dee.DV:main
extra_options:
input_raw_format: 0.5
input_type: ROOT
simulation: False
data_type: "Upgrade"
event_store: HiveWhiteBoard
geometry_version: "{{geometry}}"
conditions_version: master
input_process: "TurboPass"
input_stream: "charm"
{% else %}
DATA_2024_{{ polarity }}_{{sprucen}}:
application: "DaVinci/v64r9@x86_64_v2-el9-clang16-opt"
input:
bk_query: "/LHCb/Collision24/Beam6800GeV-VeloClosed-{{polarity}}/Real Data/Sprucing{{sprucen}}/94000000/CHARM.DST"
dq_flags:
- UNCHECKED
- OK
keep_running: True
output: DVTUPLE.ROOT
options:
entrypoint: dst_to_dee.DV:main
extra_options:
input_raw_format: 0.5
input_type: ROOT
simulation: False
data_type: "Upgrade"
event_store: HiveWhiteBoard
geometry_version: "{{geometry}}"
conditions_version: master
input_process: "TurboPass"
input_stream: "charm"
{% endif %}
{% endif %}
{%- endfor %}
This diff is collapsed.
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