Pseudochannels in FT using DD4HEP on a DetDesc MC are inconsistent
Running the following options (from Blake)
from Moore import options, run_reconstruction
from Moore.config import Reconstruction
from PRConfig.TestFileDB import test_file_db
from os.path import basename, join
from ast import literal_eval
from XRootD import client
#test_file_db['minbias-Beam6800GeV-expected-2024-MagDown-Nu5.7-hlt1-filtered'].run(configurable= app, withDB=True, clear=True) #pass and options to LHCbApp
files=[
"mdf:root://eoslhcb.cern.ch//eos/lhcb/wg/rta/WP3/bandwidth_division/Beam6800GeV-expected-2024-MagUp-Nu5.7/hlt1_filtered/v1/30000000/input_{0}.mdf"
.format(i) for i in range(20)
]
options.input_type = "MDF"
options.input_files = files
options.n_threads = 4
options.event_store = 'EvtStoreSvc'
options.input_raw_format = 0.5
options.first_evt = 0
options.print_freq = 1000
options.geometry_version = "run3/trunk"
options.dddb_tag = "dddb-20231017"
options.conddb_tag = "sim-20231017-vc-mu100"
options.data_type = "Upgrade"
options.simulation = True
options.conditions_version = "master"
#options.output_level = 0
options.evt_max = 10000
options.histo_file = join("/home/lohenry/Debug_FTLiteClusterMonitor/", basename(files[0]).replace(".mdf", "_sim.root"))
from PyConf.application import (
configure_input,
configure,
default_raw_banks,
make_odin,
)
from PyConf.Algorithms import (
FTRawBankDecoder,
FTLiteClusterMonitor,
#FTLiteClusterTAEMonitor,
)
from MooreOnlineConf.utils import (
#common_monitors_node,
#passes_rb,
#RoutingBit,
# is_tae,
# decode_tae,
if_then,
run_all,
)
def main():
odin = make_odin()
def make_ft_clusters(name=""):
raw_banks = default_raw_banks("FTCluster")
ZS_decoder = FTRawBankDecoder(
name=f"FTRawBankDecoder{name}", Odin=odin, RawBanks=raw_banks, IgnoreLarge=True)
#ZS_decoder.IgnoreLarge=True
return ZS_decoder.OutputLocation
# the standard monitor
zs_monitor = FTLiteClusterMonitor(
name="FTLiteClusterMonitor",
InputODIN=odin,
ClusterLocation=make_ft_clusters())
# assemble the control flow
top_node = run_all(
"top",
[
#common_monitors_node(), # common monitoring to all tasks
#if_then("IfPHYSICS", passes_rb(RoutingBit.PHYSICS), zs_monitor),
zs_monitor,
#if_then("IfTAE", is_tae,
# run_all("TAE", [tae_decoding, tae_monitor])),
])
return top_node
configure_input(options)
configure(options, main())
we get very different results in DetDesc (top) and DD4HEP (bottom).
This looks like reversed mats in DD4HEP not matching the DetDesc convention.