Add a steering file for using the native EDM4hep algorithms#70
Add a steering file for using the native EDM4hep algorithms#70jmcarcell wants to merge 79 commits into
Conversation
|
Planning on merging this soon @Zehvogel when CI passes and a few minor things are fixed |
Zehvogel
left a comment
There was a problem hiding this comment.
Hi, thanks for this effort!
I am mostly very happy with the results. However, in some cases, like the conformal tracking, I think there is a bit too much chaos in the file. I have left some comments inline.
|
|
||
|
|
||
| vxd_barrel_digitiser_args_marlin = toMarlinDict(vxd_barrel_digitiser_args) | ||
| vxd_barrel_digitiser_args_marlin["SubDetectorName"] = [vxd_barrel_digitiser_args["SubDetectorName"]] |
There was a problem hiding this comment.
Is there a less ugly way to solve this?
| ConformalTrackingSequence = [ | ||
| MyConformalTracking, | ||
| ClonesAndSplitTracksFinder, | ||
| clones_and_split_tracks_finder, |
There was a problem hiding this comment.
any reason to rename this one in particular?
| args = parser.parse_known_args() | ||
|
|
||
| # The keys are simply a name and are not passed to ConformalTracking | ||
| parameters = { |
There was a problem hiding this comment.
Maybe this should be named steps instead to clarify what it contains?
| from Configurables import MarlinProcessorWrapper | ||
| from k4FWCore.parseArgs import parser | ||
|
|
||
| from conformal_tracking_utils import configure_conformal_tracking_steps |
| for name, param_dict in parameters.items(): | ||
| marlin_collections = [] | ||
| for i in range(len(param_dict["collections"])): | ||
| marlin_collections.append(param_dict["collections"][i]) | ||
| if i < len(param_dict["collections"]) - 1: | ||
| marlin_collections[-1] += "," | ||
| marlin_parameters = [] | ||
| for i, (k, v) in enumerate(param_dict["params"].items()): | ||
| marlin_parameters.extend([k, ":", f"{v};"]) | ||
|
|
||
| marlin_flags = [] | ||
| for i in range(len(param_dict["flags"])): | ||
| marlin_flags.append(param_dict["flags"][i]) | ||
| if i < len(param_dict["flags"]) - 1: | ||
| marlin_flags[-1] += "," | ||
| marlin_functions = [] | ||
| for i in range(len(param_dict["functions"])): | ||
| marlin_functions.append(param_dict["functions"][i]) | ||
| if i < len(param_dict["functions"]) - 1: | ||
| marlin_functions[-1] += "," | ||
| current_step = [ | ||
| f"[{name}]", | ||
| "@Collections", ":", *marlin_collections, | ||
| "@Parameters", ":", *marlin_parameters, | ||
| "@Flags", ":", *marlin_flags, | ||
| "@Functions", ":", *marlin_functions, | ||
| ] | ||
| steps_marlin.extend(current_step) |
There was a problem hiding this comment.
Can you put this into a utility function in e.g. py_utils?
There was a problem hiding this comment.
I know it is annoying, but is there any way we can make this file more readable again? :(
There was a problem hiding this comment.
Any particular reason why some test names are in quotes and others are not?
BEGINRELEASENOTES
CLDReconstruction_iosvc.py, a steering file that uses IOSvc and the native algorithms when possibleENDRELEASENOTES
Tested that the original marlin reconstruction gives the same results before and after since nothing should have changed for it, both with
--truthTrackingand without (up to some ID changes because I think there is non-deterministic ordering in Refit, but the tracks are the same).