diff --git a/.github/workflows/key4hep.yml b/.github/workflows/key4hep.yml index 516b126e..573fe6e6 100644 --- a/.github/workflows/key4hep.yml +++ b/.github/workflows/key4hep.yml @@ -56,7 +56,6 @@ jobs: --constant.lcgeo_DIR=$lcgeo_DIR echo "::endgroup::" - # Reconstruction using EDM4hep inputs and outputs gaudi-std-reco: runs-on: ubuntu-latest @@ -87,3 +86,36 @@ jobs: --inputFiles=bbudsc_3evt_SIM.edm4hep.root \ --outputFileBase=bbudsc_3evt_GaudiRec \ --detectorModel=${{ matrix.detector_model }} + + # Reconstruction with the v11 model (FCCee) using EDM4hep inputs and outputs + gaudi-v11-reco: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + detector_model: [ILD_l5_v11] + key4hep_build: [sw-nightlies.hsf.org] + os: [ubuntu2204, el9] + + steps: + - uses: actions/checkout@v4 + - uses: cvmfs-contrib/github-action-cvmfs@v4 + - uses: aidasoft/run-lcg-view@v4 + with: + container: ${{ matrix.os }} + view-path: /cvmfs/${{ matrix.key4hep_build }}/key4hep + run: | + echo "::group::Run simulation" + cd StandardConfig/production + ddsim --inputFiles Examples/bbudsc_3evt/bbudsc_3evt.stdhep \ + --outputFile bbudsc_3evt_SIM.edm4hep.root \ + --compactFile $lcgeo_DIR/ILD/compact/${{ matrix.detector_model }}/${{ matrix.detector_model }}.xml \ + --steeringFile ddsim_steer.py + echo "::endgroup::" + echo "::group::Run reconstruction" + k4run ILDReconstruction.py \ + --inputFiles=bbudsc_3evt_SIM.edm4hep.root \ + --outputFileBase=bbudsc_3evt_GaudiRec \ + --detectorModel=${{ matrix.detector_model }} \ + --noBeamCalRec \ + --trackingOnly diff --git a/StandardConfig/production/Calibration/Calibration_ILD_l5_o1_v09.cfg b/StandardConfig/production/Calibration/Calibration_ILD_l5_o1_v09.cfg new file mode 100644 index 00000000..4a410dd6 --- /dev/null +++ b/StandardConfig/production/Calibration/Calibration_ILD_l5_o1_v09.cfg @@ -0,0 +1,95 @@ +# Copied from Calibration_ILD_l5_o1_v02.cfg +CONSTANTS = { + "EcalBarrelMip": "0.0001575", + "EcalEndcapMip": "0.0001575", + "EcalRingMip": "0.0001575", + "HcalBarrelMip": "0.0004925", + "HcalEndcapMip": "0.0004725", + "HcalRingMip": "0.0004875", + "EcalBarrelEnergyFactors": ["0.0063520964756", "0.012902699188"], + "EcalEndcapEnergyFactors": ["0.0067218419842", "0.013653744940"], + "EcalRingEnergyFactors": ["0.0066536339", "0.0135151972"], + "HcalBarrelEnergyFactors": "0.0287783798145", + "HcalEndcapEnergyFactors": "0.0285819096797", + "HcalRingEnergyFactors": "0.0349940637704", + "MuonCalibration": "56.7", + "PandoraEcalToMip": "153.846", + "PandoraHcalToMip": "37.1747", + "PandoraMuonToMip": "10.5263", + "PandoraEcalToEMScale": "1.0", + "PandoraHcalToEMScale": "1.0", + "PandoraEcalToHadBarrelScale": "1.17344504717", + "PandoraEcalToHadEndcapScale": "1.17344504717", + "PandoraHcalToHadScale": "1.02821419758", + "PandoraSoftwareCompensationWeights": [ + "1.59121", + "-0.0281982", + "0.000250616", + "-0.0424222", + "0.000335128", + "-2.06112e-05", + "0.148549", + "0.199618", + "-0.0697277", + ], + "ApplyPhotonPFOCorrections": "true", + "EcalTechnology": "SiWEcal", + "HcalTechnology": "AHcal", + "PandoraSettingsFile": "PandoraSettings/PandoraSettingsDefault.xml", + "DropCollectionsECal": [ + "ECalBarrelScHitsEven", + "ECalBarrelScHitsOdd", + "ECalEndcapScHitsEven", + "ECalEndcapScHitsOdd", + ], + "DropCollectionsHCal": [ + "HCalBarrelRPCHits", + "HCalEndcapRPCHits", + "HCalECRingRPCHits", + ], + "AdditionalDropCollectionsREC": [ + "%(DropCollectionsECal)s", + "%(DropCollectionsHCal)s", + ], + "dEdXErrorFactor": "7.55", + "dEdXSmearingFactor": "0.029", + "PidPDFFile": "HighLevelReco/PIDFiles/LikelihoodPID_Standard_l5_v01.root", + "PidWeightFiles": [ + "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_l5_02GeVP_clusterinfo.weights.xml", + "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_l5_03GeVP_clusterinfo.weights.xml", + "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_l5_04GeVP_clusterinfo.weights.xml", + "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_l5_05GeVP_clusterinfo.weights.xml", + "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_l5_06GeVP_clusterinfo.weights.xml", + "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_l5_07GeVP_clusterinfo.weights.xml", + "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_l5_08GeVP_clusterinfo.weights.xml", + "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_l5_09GeVP_clusterinfo.weights.xml", + "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_l5_10GeVP_clusterinfo.weights.xml", + "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_l5_11GeVP_clusterinfo.weights.xml", + "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_l5_12GeVP_clusterinfo.weights.xml", + "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_l5_13GeVP_clusterinfo.weights.xml", + "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_l5_14GeVP_clusterinfo.weights.xml", + "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_l5_15GeVP_clusterinfo.weights.xml", + "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_l5_16GeVP_clusterinfo.weights.xml", + "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_l5_17GeVP_clusterinfo.weights.xml", + "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_l5_18GeVP_clusterinfo.weights.xml", + "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_l5_19GeVP_clusterinfo.weights.xml", + "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_l5_20GeVP_clusterinfo.weights.xml", + ], + "ECalBarrelSimHitCollections": ["ECalBarrelSiHitsEven", "ECalBarrelSiHitsOdd"], + "ECalEndcapSimHitCollections": ["ECalEndcapSiHitsEven", "ECalEndcapSiHitsOdd"], + "ECalRingSimHitCollections": "EcalEndcapRingCollection", + "HCalBarrelSimHitCollections": "HcalBarrelRegCollection", + "HCalEndcapSimHitCollections": "HcalEndcapsCollection", + "HCalRingSimHitCollections": "HcalEndcapRingCollection", + "ECalSimHitCollections": [ + "%(ECalBarrelSimHitCollections)s", + "%(ECalEndcapSimHitCollections)s", + "%(ECalRingSimHitCollections)s", + ], + "HCalSimHitCollections": [ + "%(HCalBarrelSimHitCollections)s", + "%(HCalEndcapSimHitCollections)s", + "%(HCalRingSimHitCollections)s", + ], + "BeamCalBackgroundFile": "HighLevelReco/BeamCalBackground/BeamCalBackground-E%(CMSEnergy)s-B3.5-RealisticNominalAntiDid.root", +} diff --git a/StandardConfig/production/Calibration/Calibration_ILD_l5_v11.cfg b/StandardConfig/production/Calibration/Calibration_ILD_l5_v11.cfg new file mode 100644 index 00000000..4a410dd6 --- /dev/null +++ b/StandardConfig/production/Calibration/Calibration_ILD_l5_v11.cfg @@ -0,0 +1,95 @@ +# Copied from Calibration_ILD_l5_o1_v02.cfg +CONSTANTS = { + "EcalBarrelMip": "0.0001575", + "EcalEndcapMip": "0.0001575", + "EcalRingMip": "0.0001575", + "HcalBarrelMip": "0.0004925", + "HcalEndcapMip": "0.0004725", + "HcalRingMip": "0.0004875", + "EcalBarrelEnergyFactors": ["0.0063520964756", "0.012902699188"], + "EcalEndcapEnergyFactors": ["0.0067218419842", "0.013653744940"], + "EcalRingEnergyFactors": ["0.0066536339", "0.0135151972"], + "HcalBarrelEnergyFactors": "0.0287783798145", + "HcalEndcapEnergyFactors": "0.0285819096797", + "HcalRingEnergyFactors": "0.0349940637704", + "MuonCalibration": "56.7", + "PandoraEcalToMip": "153.846", + "PandoraHcalToMip": "37.1747", + "PandoraMuonToMip": "10.5263", + "PandoraEcalToEMScale": "1.0", + "PandoraHcalToEMScale": "1.0", + "PandoraEcalToHadBarrelScale": "1.17344504717", + "PandoraEcalToHadEndcapScale": "1.17344504717", + "PandoraHcalToHadScale": "1.02821419758", + "PandoraSoftwareCompensationWeights": [ + "1.59121", + "-0.0281982", + "0.000250616", + "-0.0424222", + "0.000335128", + "-2.06112e-05", + "0.148549", + "0.199618", + "-0.0697277", + ], + "ApplyPhotonPFOCorrections": "true", + "EcalTechnology": "SiWEcal", + "HcalTechnology": "AHcal", + "PandoraSettingsFile": "PandoraSettings/PandoraSettingsDefault.xml", + "DropCollectionsECal": [ + "ECalBarrelScHitsEven", + "ECalBarrelScHitsOdd", + "ECalEndcapScHitsEven", + "ECalEndcapScHitsOdd", + ], + "DropCollectionsHCal": [ + "HCalBarrelRPCHits", + "HCalEndcapRPCHits", + "HCalECRingRPCHits", + ], + "AdditionalDropCollectionsREC": [ + "%(DropCollectionsECal)s", + "%(DropCollectionsHCal)s", + ], + "dEdXErrorFactor": "7.55", + "dEdXSmearingFactor": "0.029", + "PidPDFFile": "HighLevelReco/PIDFiles/LikelihoodPID_Standard_l5_v01.root", + "PidWeightFiles": [ + "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_l5_02GeVP_clusterinfo.weights.xml", + "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_l5_03GeVP_clusterinfo.weights.xml", + "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_l5_04GeVP_clusterinfo.weights.xml", + "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_l5_05GeVP_clusterinfo.weights.xml", + "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_l5_06GeVP_clusterinfo.weights.xml", + "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_l5_07GeVP_clusterinfo.weights.xml", + "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_l5_08GeVP_clusterinfo.weights.xml", + "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_l5_09GeVP_clusterinfo.weights.xml", + "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_l5_10GeVP_clusterinfo.weights.xml", + "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_l5_11GeVP_clusterinfo.weights.xml", + "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_l5_12GeVP_clusterinfo.weights.xml", + "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_l5_13GeVP_clusterinfo.weights.xml", + "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_l5_14GeVP_clusterinfo.weights.xml", + "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_l5_15GeVP_clusterinfo.weights.xml", + "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_l5_16GeVP_clusterinfo.weights.xml", + "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_l5_17GeVP_clusterinfo.weights.xml", + "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_l5_18GeVP_clusterinfo.weights.xml", + "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_l5_19GeVP_clusterinfo.weights.xml", + "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_l5_20GeVP_clusterinfo.weights.xml", + ], + "ECalBarrelSimHitCollections": ["ECalBarrelSiHitsEven", "ECalBarrelSiHitsOdd"], + "ECalEndcapSimHitCollections": ["ECalEndcapSiHitsEven", "ECalEndcapSiHitsOdd"], + "ECalRingSimHitCollections": "EcalEndcapRingCollection", + "HCalBarrelSimHitCollections": "HcalBarrelRegCollection", + "HCalEndcapSimHitCollections": "HcalEndcapsCollection", + "HCalRingSimHitCollections": "HcalEndcapRingCollection", + "ECalSimHitCollections": [ + "%(ECalBarrelSimHitCollections)s", + "%(ECalEndcapSimHitCollections)s", + "%(ECalRingSimHitCollections)s", + ], + "HCalSimHitCollections": [ + "%(HCalBarrelSimHitCollections)s", + "%(HCalEndcapSimHitCollections)s", + "%(HCalRingSimHitCollections)s", + ], + "BeamCalBackgroundFile": "HighLevelReco/BeamCalBackground/BeamCalBackground-E%(CMSEnergy)s-B3.5-RealisticNominalAntiDid.root", +} diff --git a/StandardConfig/production/HighLevelReco/HighLevelReco.py b/StandardConfig/production/HighLevelReco/HighLevelReco.py index 8fa8e776..d0f0665d 100644 --- a/StandardConfig/production/HighLevelReco/HighLevelReco.py +++ b/StandardConfig/production/HighLevelReco/HighLevelReco.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 -from Gaudi.Configuration import INFO from Configurables import MarlinProcessorWrapper +from Gaudi.Configuration import INFO MyAdd4MomCovMatrixCharged = MarlinProcessorWrapper("MyAdd4MomCovMatrixCharged") MyAdd4MomCovMatrixCharged.OutputLevel = INFO diff --git a/StandardConfig/production/ILDReconstruction.py b/StandardConfig/production/ILDReconstruction.py index 11415cb5..131764ea 100644 --- a/StandardConfig/production/ILDReconstruction.py +++ b/StandardConfig/production/ILDReconstruction.py @@ -1,28 +1,29 @@ import os import sys - -from Gaudi.Configuration import INFO +from pathlib import Path from Configurables import ( + ApplicationMgr, + EDM4hep2LcioTool, + GeoSvc, + Lcio2EDM4hepTool, LcioEvent, MarlinProcessorWrapper, - k4DataSvc, PodioInput, PodioOutput, - EDM4hep2LcioTool, - Lcio2EDM4hepTool, - GeoSvc, - ApplicationMgr, + k4DataSvc, ) +from Gaudi.Configuration import INFO try: - from k4FWCore.utils import import_from, SequenceLoader + from k4FWCore.utils import SequenceLoader, import_from except ImportError: from py_utils import import_from, SequenceLoader from k4FWCore.parseArgs import parser from k4MarlinWrapper.parseConstants import parseConstants +# only non-FCCMDI models DETECTOR_MODELS = ( "ILD_l2_v02", "ILD_l4_o1_v02", @@ -47,6 +48,11 @@ "ILD_s5_o3_v02", "ILD_s5_o4_v02", ) +# only FCCMDI +FCCeeMDI_DETECTOR_MODELS = ( + "ILD_l5_o1_v09", + "ILD_l5_v11", +) parser.add_argument( "--inputFiles", @@ -80,21 +86,22 @@ parser.add_argument( "--detectorModel", help="Which detector model to run reconstruction for", - choices=DETECTOR_MODELS, + choices=DETECTOR_MODELS + FCCeeMDI_DETECTOR_MODELS, type=str, default="ILD_l5_o1_v02", ) parser.add_argument( - "--perfectPFA", help="Run perfect PandoraPFA", action="store_true", default=False + "--perfectPFA", + help="Run perfect PandoraPFA", + action="store_true", ) parser.add_argument( "--runOverlay", - help="Run background overaly. NOTE: You have to make sure that the Overlay algorithms in " + help="Run background overlay. NOTE: You have to make sure that the Overlay algorithms in " " BgOverlay/BgOverlay.py are provided with the necessary overlay files", action="store_true", - default=False, ) -# BeamCal reco configuration + parser.add_argument( "--runBeamCalReco", help="Run the BeamCal reco", @@ -107,13 +114,17 @@ action="store_false", dest="runBeamCalReco", ) -parser.set_defaults(runBeamCalReco=True) parser.add_argument( "--beamCalCalibFactor", help="The BeamCal calibration constant from sim hit energy to calibrated calo hit energy", type=float, default=79.6, ) +parser.add_argument( + "--trackingOnly", + help="Only Tracking is performed; built for reco testing purposes", + action="store_true", +) reco_args = parser.parse_known_args()[0] @@ -219,22 +230,34 @@ def create_reader(input_files): ecal_technology = CONSTANTS["EcalTechnology"] hcal_technology = CONSTANTS["HcalTechnology"] -sequenceLoader.load("Tracking/TrackingDigi") -sequenceLoader.load("Tracking/TrackingReco") -sequenceLoader.load(f"CaloDigi/{ecal_technology}Digi") -sequenceLoader.load(f"CaloDigi/{hcal_technology}Digi") -sequenceLoader.load("CaloDigi/FcalDigi") -sequenceLoader.load("CaloDigi/MuonDigi") - -if reco_args.perfectPFA: - sequenceLoader.load("ParticleFlow/PandoraPFAPerfect") +# identify specified detector model +if reco_args.compactFile: + det_model = Path(reco_args.compactFile).stem else: - sequenceLoader.load("ParticleFlow/PandoraPFA") + det_model = reco_args.detectorModel +# load relevant tracking +if det_model in FCCeeMDI_DETECTOR_MODELS: + sequenceLoader.load("Tracking/TrackingDigi_FCCeeMDI") + sequenceLoader.load("Tracking/TrackingReco_FCCeeMDI") +elif det_model in DETECTOR_MODELS: + sequenceLoader.load("Tracking/TrackingDigi") + sequenceLoader.load("Tracking/TrackingReco") + +if not reco_args.trackingOnly: + sequenceLoader.load(f"CaloDigi/{ecal_technology}Digi") + sequenceLoader.load(f"CaloDigi/{hcal_technology}Digi") + sequenceLoader.load("CaloDigi/FcalDigi") + sequenceLoader.load("CaloDigi/MuonDigi") + + if reco_args.perfectPFA: + sequenceLoader.load("ParticleFlow/PandoraPFAPerfect") + else: + sequenceLoader.load("ParticleFlow/PandoraPFA") -if reco_args.runBeamCalReco: - sequenceLoader.load("HighLevelReco/BeamCalReco") + if reco_args.runBeamCalReco: + sequenceLoader.load("HighLevelReco/BeamCalReco") -sequenceLoader.load("HighLevelReco/HighLevelReco") + sequenceLoader.load("HighLevelReco/HighLevelReco") MyPfoAnalysis = MarlinProcessorWrapper("MyPfoAnalysis") diff --git a/StandardConfig/production/Tracking/TrackingDigi.py b/StandardConfig/production/Tracking/TrackingDigi.py index a4cf938c..ffaed153 100644 --- a/StandardConfig/production/Tracking/TrackingDigi.py +++ b/StandardConfig/production/Tracking/TrackingDigi.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 -from Gaudi.Configuration import INFO from Configurables import MarlinProcessorWrapper +from Gaudi.Configuration import INFO MySplitCollectionByLayer = MarlinProcessorWrapper("MySplitCollectionByLayer") MySplitCollectionByLayer.OutputLevel = INFO diff --git a/StandardConfig/production/Tracking/TrackingDigi_FCCeeMDI.py b/StandardConfig/production/Tracking/TrackingDigi_FCCeeMDI.py new file mode 100644 index 00000000..f55fac46 --- /dev/null +++ b/StandardConfig/production/Tracking/TrackingDigi_FCCeeMDI.py @@ -0,0 +1,134 @@ +#!/usr/bin/env python3 + +# TODO: default names for Collection based on one variable, not individually for REL, HitColl, ... + +# non-name parameters of Vertex and Inner D as for CLD (https://github.com/key4hep/CLDConfig/blob/main/CLDConfig/CLDReconstruction.py @ bbb0842) + +from Configurables import MarlinProcessorWrapper +from Gaudi.Configuration import INFO + +VertexBarrelDigitiser = MarlinProcessorWrapper("VertexBarrelDigitiser") +VertexBarrelDigitiser.OutputLevel = INFO +VertexBarrelDigitiser.ProcessorType = "DDPlanarDigiProcessor" +VertexBarrelDigitiser.Parameters = { + "IsStrip": ["false"], + "ResolutionU": ["0.003", "0.003", "0.003", "0.003", "0.003", "0.003"], + "ResolutionV": ["0.003", "0.003", "0.003", "0.003", "0.003", "0.003"], + "SimTrackHitCollectionName": ["VertexBarrelCollection"], + "SimTrkHitRelCollection": ["VertexBarrelTrackerHitRelations"], + "SubDetectorName": ["VertexBarrel"], + "TrackerHitCollectionName": ["VertexBarrelTrackerHits"], +} + +VertexEndcapDigitiser = MarlinProcessorWrapper("VertexEndcapDigitiser") +VertexEndcapDigitiser.OutputLevel = INFO +VertexEndcapDigitiser.ProcessorType = "DDPlanarDigiProcessor" +VertexEndcapDigitiser.Parameters = { + "IsStrip": ["false"], + "ResolutionU": ["0.003", "0.003", "0.003", "0.003", "0.003", "0.003"], + "ResolutionV": ["0.003", "0.003", "0.003", "0.003", "0.003", "0.003"], + "SimTrackHitCollectionName": ["VertexEndcapCollection"], + "SimTrkHitRelCollection": ["VertexEndcapTrackerHitRelations"], + "SubDetectorName": ["VertexEndcap"], + "TrackerHitCollectionName": ["VertexEndcapTrackerHits"], +} + +InnerPlanarDigiProcessor = MarlinProcessorWrapper("InnerPlanarDigiProcessor") +InnerPlanarDigiProcessor.OutputLevel = INFO +InnerPlanarDigiProcessor.ProcessorType = "DDPlanarDigiProcessor" +InnerPlanarDigiProcessor.Parameters = { + "IsStrip": ["false"], + "ResolutionU": ["0.007"], + "ResolutionV": ["0.09"], + "SimTrackHitCollectionName": ["InnerTrackerBarrelCollection"], + "SimTrkHitRelCollection": ["InnerTrackerBarrelHitRelations"], + "SubDetectorName": ["InnerTrackerBarrel"], + "TrackerHitCollectionName": ["InnerTrackerBarrelHits"], +} + +InnerEndcapPlanarDigiProcessor = MarlinProcessorWrapper( + "InnerEndcapPlanarDigiProcessor" +) +InnerEndcapPlanarDigiProcessor.OutputLevel = INFO +InnerEndcapPlanarDigiProcessor.ProcessorType = "DDPlanarDigiProcessor" +InnerEndcapPlanarDigiProcessor.Parameters = { + "IsStrip": ["false"], + "ResolutionU": ["0.005", "0.007", "0.007", "0.007", "0.007", "0.007", "0.007"], + "ResolutionV": ["0.005", "0.09", "0.09", "0.09", "0.09", "0.09", "0.09"], + "SimTrackHitCollectionName": ["InnerTrackerEndcapCollection"], + "SimTrkHitRelCollection": ["InnerTrackerEndcapHitRelations"], + "SubDetectorName": ["InnerTrackerEndcap"], + "TrackerHitCollectionName": ["InnerTrackerEndcapHits"], +} + +SETPlanarDigiProcessor = MarlinProcessorWrapper("SETPlanarDigiProcessor") +SETPlanarDigiProcessor.OutputLevel = INFO +SETPlanarDigiProcessor.ProcessorType = "DDPlanarDigiProcessor" +SETPlanarDigiProcessor.Parameters = { + "ForceHitsOntoSurface": ["true"], + "IsStrip": ["true"], + "ResolutionU": ["0.007"], + "ResolutionV": ["0"], + "SimTrackHitCollectionName": ["SETCollection"], + "SimTrkHitRelCollection": ["SETTrackerHitRelations"], + "SubDetectorName": ["SET"], + "TrackerHitCollectionName": ["SETTrackerHits"], +} + +SETDDSpacePointBuilder = MarlinProcessorWrapper("SETDDSpacePointBuilder") +SETDDSpacePointBuilder.OutputLevel = INFO +SETDDSpacePointBuilder.ProcessorType = "DDSpacePointBuilder" +SETDDSpacePointBuilder.Parameters = { + "SimHitSpacePointRelCollection": ["SETSpacePointRelations"], + "SpacePointsCollection": ["SETSpacePoints"], + "StripLength": ["9.200000000e+01"], + "SubDetectorName": ["SET"], + "TrackerHitCollection": ["SETTrackerHits"], + "TrackerHitSimHitRelCollection": ["SETTrackerHitRelations"], +} + +MyTPCDigiProcessor = MarlinProcessorWrapper("MyTPCDigiProcessor") +MyTPCDigiProcessor.OutputLevel = INFO +MyTPCDigiProcessor.ProcessorType = "DDTPCDigiProcessor" +MyTPCDigiProcessor.Parameters = { + "DiffusionCoeffRPhi": ["0.025"], + "DiffusionCoeffZ": ["0.08"], + "DoubleHitResolutionRPhi": ["2"], + "DoubleHitResolutionZ": ["5"], + "HitSortingBinningRPhi": ["2"], + "HitSortingBinningZ": ["5"], + "MaxClusterSizeForMerge": ["3"], + "N_eff": ["22"], + "PointResolutionPadPhi": ["0.9"], + "PointResolutionRPhi": ["0.05"], + "PointResolutionZ": ["0.4"], + "RejectCellID0": ["1"], + "SimTrkHitRelCollection": ["TPCTrackerHitRelations"], + "TPCEndPlateModuleGapPhi": ["1."], + "TPCEndPlateModuleGapR": ["1."], + "TPCEndPlateModuleNumbers": ["14", "18", "23", "28", "32", "37", "42", "46"], + "TPCEndPlateModulePhi0s": [ + "0", + "0.17453292519943298", + "0.030350516853376176", + "0.2108457469509264", + "0.11998920441304516", + "0.1600004647682326", + "0.02051011203843622", + "0.062176216344090166", + ], + "TPCLowPtCollectionName": ["TPCLowPtCollection"], + "TPCPadRowHitCollectionName": ["TPCCollection"], + "TPCSpacePointCollectionName": ["TPCSpacePointCollection"], + "TPCTrackerHitsCol": ["TPCTrackerHits"], +} + +TrackingDigi_FCCeeMDISequence = [ + VertexEndcapDigitiser, + VertexBarrelDigitiser, + InnerPlanarDigiProcessor, + InnerEndcapPlanarDigiProcessor, + SETPlanarDigiProcessor, + SETDDSpacePointBuilder, + MyTPCDigiProcessor, +] diff --git a/StandardConfig/production/Tracking/TrackingReco_FCCeeMDI.py b/StandardConfig/production/Tracking/TrackingReco_FCCeeMDI.py new file mode 100644 index 00000000..78332f5e --- /dev/null +++ b/StandardConfig/production/Tracking/TrackingReco_FCCeeMDI.py @@ -0,0 +1,392 @@ +#!/usr/bin/env python3 + +from Configurables import MarlinProcessorWrapper +from Gaudi.Configuration import INFO + +CT_MAX_DIST = "0.03;" # semi-colon is important! RANDOM VALUE COPYIED FROM CLDRECO +MCPartColName = ["MCParticle"] # MCParticleCollectionName +VertexBarrelHitCollectionNames = ["VertexBarrelTrackerHits"] +VertexEndcapHitCollectionNames = ["VertexEndcapTrackerHits"] + + +MyClupatraProcessor = MarlinProcessorWrapper("MyClupatraProcessor") +MyClupatraProcessor.OutputLevel = INFO +MyClupatraProcessor.ProcessorType = "ClupatraProcessor" +MyClupatraProcessor.Parameters = { + "Chi2Cut": ["100"], + "CreateDebugCollections": ["false", "true"], + "DistanceCut": ["40"], + "DuplicatePadRowFraction": ["0.1"], + "EnergyLossOn": ["true"], + "MaxDeltaChi2": ["35"], + "MaxStepWithoutHit": ["6"], + "MinLayerFractionWithMultiplicity": ["0.5"], + "MinLayerNumberWithMultiplicity": ["3"], + "MinimumClusterSize": ["6"], + "MultipleScatteringOn": ["false", "true"], + "NumberOfZBins": ["150"], + "OutputCollection": ["ClupatraTracks"], + "PadRowRange": ["15"], + "SITHitCollection": ["SITTrackerHits"], + "SegmentCollectionName": ["ClupatraTrackSegments"], + "SmoothOn": ["false"], + "TPCHitCollection": ["TPCTrackerHits"], + "TrackEndsOuterCentralDist": ["25"], + "TrackEndsOuterForwardDist": ["40"], + "TrackIsCurlerOmega": ["0.001"], + "TrackStartsInnerDist": ["25"], + "TrackSystemName": ["DDKalTest"], + "VXDHitCollection": ["VXDTrackerHits"], + "pickUpSiHits": ["false"], +} + +MyConformalTracking = MarlinProcessorWrapper("MyConformalTracking") +MyConformalTracking.OutputLevel = INFO +MyConformalTracking.ProcessorType = "ConformalTrackingV2" +MyConformalTracking.Parameters = { + "DebugHits": ["DebugHits"], + "DebugPlots": ["false"], + "DebugTiming": ["false"], + "MCParticleCollectionName": MCPartColName, + "MaxHitInvertedFit": ["0"], + "MinClustersOnTrackAfterFit": ["3"], + "RelationsNames": [ + "VertexBarrelTrackerHitRelations", + "VertexEndcapTrackerHitRelations", + "InnerTrackerBarrelHitRelations", + "InnerTrackerEndcapHitRelations", + ], + "RetryTooManyTracks": ["false"], + "SiTrackCollectionName": ["SiTracksCT"], + "SortTreeResults": ["true"], + # fmt: off + "Steps": [ + "[VertexBarrel]", + "@Collections", ":", "VertexBarrelTrackerHits", + "@Parameters", ":", "MaxCellAngle", ":", "0.01;", "MaxCellAngleRZ", ":", "0.01;", "Chi2Cut", ":", "100;", "MinClustersOnTrack", ":", "4;", "MaxDistance", ":", CT_MAX_DIST, "SlopeZRange:", "10.0;", "HighPTCut:", "10.0;", + "@Flags", ":", "HighPTFit,", "VertexToTracker", + "@Functions", ":", "CombineCollections,", "BuildNewTracks", + "[VertexEncap]", + "@Collections", ":", "VertexEndcapTrackerHits", + "@Parameters", ":", "MaxCellAngle", ":", "0.01;", "MaxCellAngleRZ", ":", "0.01;", "Chi2Cut", ":", "100;", "MinClustersOnTrack", ":", "4;", "MaxDistance", ":", CT_MAX_DIST, "SlopeZRange:", "10.0;", "HighPTCut:", "10.0;", + "@Flags", ":", "HighPTFit,", "VertexToTracker", + "@Functions", ":", "CombineCollections,", "ExtendTracks", + "[Tracker]", + "@Collections", ":", "InnerTrackerBarrelHits,", "InnerTrackerEndcapHits", + "@Parameters", ":", "MaxCellAngle", ":", "0.1;", "MaxCellAngleRZ", ":", "0.1;", "Chi2Cut", ":", "2000;", "MinClustersOnTrack", ":", "4;", "MaxDistance", ":", CT_MAX_DIST, "SlopeZRange:", "10.0;", "HighPTCut:", "1.0;", + "@Flags", ":", "HighPTFit,", "VertexToTracker,", "RadialSearch", + "@Functions", ":", "CombineCollections,", "ExtendTracks", + ], + # fmt: on + "ThetaRange": ["0.05"], + "TooManyTracks": ["100000"], + "TrackerHitCollectionNames": [ + "InnerTrackerBarrelHits", + "InnerTrackerEndcapHits", + ] + + VertexBarrelHitCollectionNames + + VertexEndcapHitCollectionNames, + "trackPurity": ["0.7"], + "VertexBarrelHitCollectionNames": VertexBarrelHitCollectionNames, + "VertexEndcapHitCollectionNames": VertexEndcapHitCollectionNames, +} + +MySiliconTracking_MarlinTrk = MarlinProcessorWrapper("MySiliconTracking_MarlinTrk") +MySiliconTracking_MarlinTrk.OutputLevel = INFO +MySiliconTracking_MarlinTrk.ProcessorType = "SiliconTracking_MarlinTrk" +MySiliconTracking_MarlinTrk.Parameters = { + "AngleCutForMerging": ["0.1"], + "AplySimpleUpdatedCoreBin": ["true"], + "CheckForDelta": ["1"], + "Chi2FitCut": ["120"], + "Chi2PrefitCut": ["1e+10"], + "Chi2WRphiQuartet": ["1"], + "Chi2WRphiSeptet": ["1"], + "Chi2WRphiTriplet": ["1"], + "Chi2WZQuartet": ["0.5"], + "Chi2WZSeptet": ["0.5"], + "Chi2WZTriplet": ["0.5"], + "CutOnD0": ["100"], + "CutOnPt": ["0.05"], + "CutOnZ0": ["100"], + "EnergyLossOn": ["true"], + "FTDPixelHitCollectionName": ["FTDPixelTrackerHits"], + "FTDSpacePointCollection": ["FTDSpacePoints"], + "FastAttachment": ["0"], + "InitialTrackErrorD0": ["1e+06"], + "InitialTrackErrorOmega": ["0.0001"], + "InitialTrackErrorPhi0": ["100"], + "InitialTrackErrorTanL": ["100"], + "InitialTrackErrorZ0": ["1e+06"], + # fmt: off + "LayerCombinations": [ + "8","6","5", "8","6","4", "8","6","3", "8","6","2", + "8","5","3", "8","5","2", "8","4","3", "8","4","2", + "6","5","3", "6","5","2", "6","4","3", "6","4","2", + "6","3","1", "6","3","0", "6","2","1", "6","2","0", + "5","3","1", "5","3","0", "5","2","1", "5","2","0", + "4","3","1", "4","3","0", "4","2","1", "4","2","0", + "3","2","1", "3","2","0", "2","1","0", + ], + "LayerCombinationsFTD": [ + "13","11","9", "13","11","8", "13","10","9", "13","10","8", + "12","11","9", "12","11","8", "12","10","9", "12","10","8", + "11","9","7", "11","9","6", "11","8","7", "11","8","6", + "10","9","7", "10","9","6", "10","8","7", "10","8","6", + "9","7","5", "9","7","4", "9","6","5", "9","6","4", + "8","7","5", "8","7","4", "8","6","5", "8","6","4", + "7","5","3", "7","5","2", "7","4","3", "7","4","2", + "6","5","3", "6","5","2", "6","4","3", "6","4","2", + "5","3","1", "5","3","0", "5","2","1", "5","2","0", + "4","3","1", "4","3","0", "4","2","1", "4","2","0", + ], + # fmt: on + "MaxChi2PerHit": ["100"], + "MaxHitsPerSector": ["100"], + "MinDistCutAttach": ["2.5"], + "MinDistToDelta": ["0.25"], + "MinLayerToAttach": ["-1"], + "MinimalHits": ["3"], + "MultipleScatteringOn": ["true"], + "NDivisionsInPhi": ["80"], + "NDivisionsInPhiFTD": ["30"], + "NDivisionsInTheta": ["80"], + "NHitsChi2": ["5"], + "RunMarlinTrkDiagnostics": ["false"], + "SITHitCollectionName": ["SITTrackerHits"], + "SiTrackCollectionName": ["SiTracks"], + "SmoothOn": ["false"], + "TrackSystemName": ["DDKalTest"], + "UseEventDisplay": ["false"], + "UseSIT": ["1"], + "UseSimpleAttachHitToTrack": ["true"], + "VTXHitCollectionName": ["VXDTrackerHits"], +} + +MyForwardTracking = MarlinProcessorWrapper("MyForwardTracking") +MyForwardTracking.OutputLevel = INFO +MyForwardTracking.ProcessorType = "ForwardTracking" +MyForwardTracking.Parameters = { + "BestSubsetFinder": ["SubsetSimple"], + "Chi2ProbCut": ["0.0"], + "Crit2_DeltaPhi_max": ["30", "0.8"], + "Crit2_DeltaPhi_min": ["0", "0"], + "Crit2_DeltaRho_max": ["150"], + "Crit2_DeltaRho_min": ["20"], + "Crit2_RZRatio_max": ["1.08"], + "Crit2_RZRatio_min": ["1.002"], + "Crit2_StraightTrackRatio_max": ["1.02", "1.01"], + "Crit2_StraightTrackRatio_min": ["0.9", "0.99"], + "Crit3_3DAngle_max": ["10", "0.35"], + "Crit3_3DAngle_min": ["0", "0"], + "Crit3_ChangeRZRatio_max": ["1.015", "1.001"], + "Crit3_ChangeRZRatio_min": ["0.995", "0.999"], + "Crit3_IPCircleDist_max": ["20", "1.5"], + "Crit3_IPCircleDist_min": ["0", "0"], + "Crit3_PT_max": ["99999999"], + "Crit3_PT_min": ["0.1"], + "Crit4_3DAngleChange_max": ["1.3", "1.01"], + "Crit4_3DAngleChange_min": ["0.8", "0.99"], + "Crit4_DistToExtrapolation_max": ["1.0", "0.05"], + "Crit4_DistToExtrapolation_min": ["0", "0"], + "Criteria": [ + "Crit2_DeltaPhi", + "Crit2_DeltaRho", + "Crit2_RZRatio", + "Crit2_StraightTrackRatio", + "Crit3_3DAngle", + "Crit3_ChangeRZRatio", + "Crit3_IPCircleDist", + "Crit3_PT", + "Crit4_DistToExtrapolation", + "Crit4_3DAngleChange", + ], + "EnergyLossOn": ["true"], + "FTDHitCollections": ["FTDPixelTrackerHits", "FTDSpacePoints"], + "ForwardTrackCollection": ["ForwardTracks"], + "HelixFitMax": ["500"], + "HitsPerTrackMin": ["3"], + "MaxConnectionsAutomaton": ["100000"], + "MaxHitsPerSector": ["1000"], + "MultipleScatteringOn": ["true"], + "OverlappingHitsDistMax": ["3.5"], + "SmoothOn": ["false"], + "TakeBestVersionOfTrack": ["true"], + "TrackSystemName": ["DDKalTest"], +} + +MyTrackSubsetProcessor = MarlinProcessorWrapper("MyTrackSubsetProcessor") +MyTrackSubsetProcessor.OutputLevel = INFO +MyTrackSubsetProcessor.ProcessorType = "TrackSubsetProcessor" +MyTrackSubsetProcessor.Parameters = { + "EnergyLossOn": ["true"], + "MultipleScatteringOn": ["true"], + "Omega": ["0.75"], + "RemoveShortTracks": ["true"], + "SmoothOn": ["false"], + "TrackInputCollections": ["ForwardTracks", "SiTracks"], + "TrackOutputCollection": ["SubsetTracks"], + "TrackSystemName": ["DDKalTest"], +} + +MyFullLDCTracking_MarlinTrk = MarlinProcessorWrapper("MyFullLDCTracking_MarlinTrk") +MyFullLDCTracking_MarlinTrk.OutputLevel = INFO +MyFullLDCTracking_MarlinTrk.ProcessorType = "FullLDCTracking_MarlinTrk" +MyFullLDCTracking_MarlinTrk.Parameters = { + "AngleCutForForcedMerging": ["0.05"], + "AngleCutForMerging": ["0.1"], + "AssignETDHits": ["0"], + "AssignFTDHits": ["1"], + "AssignSETHits": ["1"], + "AssignSITHits": ["1"], + "AssignTPCHits": ["0"], + "AssignVTXHits": ["1"], + "Chi2FitCut": ["100"], + "CutOnSiHits": ["4"], + "CutOnTPCHits": ["10"], + "CutOnTrackD0": ["500"], + "CutOnTrackZ0": ["500"], + "D0CutForForcedMerging": ["50"], + "D0CutForMerging": ["500"], + "D0CutToMergeTPCSegments": ["100"], + "Debug": ["0"], + "DeltaPCutToMergeTPCSegments": ["0.1"], + "EnergyLossOn": ["true"], + "FTDHitToTrackDistance": ["2"], + "FTDPixelHitCollectionName": ["FTDPixelTrackerHits"], + "FTDSpacePointCollection": ["FTDSpacePoints"], + "ForbidOverlapInZComb": ["0"], + "ForbidOverlapInZTPC": ["0"], + "ForceSiTPCMerging": ["1"], + "ForceTPCSegmentsMerging": ["0"], + "InitialTrackErrorD0": ["1e+06"], + "InitialTrackErrorOmega": ["0.00001"], + "InitialTrackErrorPhi0": ["100"], + "InitialTrackErrorTanL": ["100"], + "InitialTrackErrorZ0": ["1e+06"], + "LDCTrackCollection": ["MarlinTrkTracks"], + "MaxChi2PerHit": ["200"], + "MinChi2ProbForSiliconTracks": ["0.00001"], + "MultipleScatteringOn": ["true"], + "NHitsExtrapolation": ["35"], + "OmegaCutForForcedMerging": ["0.15"], + "OmegaCutForMerging": ["0.25"], + "PtCutToMergeTPCSegments": ["1.2"], + "RunMarlinTrkDiagnostics": ["false"], + "SETHitCollection": ["SETSpacePoints"], + "SETHitToTrackDistance": ["50"], + "SITHitCollection": ["SITTrackerHits"], + "SITHitToTrackDistance": ["2"], + "SiTracks": ["SubsetTracks"], + "SiTracksMCPRelColl": ["SubsetTracksMCTruthLink"], + "SmoothOn": ["true"], + "TPCHitCollection": ["TPCTrackerHits"], + "TPCHitToTrackDistance": ["15"], + "TPCTracks": ["ClupatraTracks"], + "TPCTracksMCPRelColl": ["TPCTracksMCTruthLink"], + "TrackSystemName": ["DDKalTest"], + "VTXHitCollection": ["VXDTrackerHits"], + "VTXHitToTrackDistance": ["1.5"], + "Z0CutForForcedMerging": ["200"], + "Z0CutForMerging": ["1000"], + "Z0CutToMergeTPCSegments": ["5000"], + "cosThetaCutHighPtMerge": ["0.99"], + "cosThetaCutSoftHighPtMerge": ["0.998"], + "hitDistanceCutHighPtMerge": ["25"], + "maxFractionOfOutliersCutHighPtMerge": ["0.95"], + "maxHitDistanceCutHighPtMerge": ["50"], + "momDiffCutHighPtMerge": ["0.01"], + "momDiffCutSoftHighPtMerge": ["0.25"], +} + +MyCompute_dEdxProcessor = MarlinProcessorWrapper("MyCompute_dEdxProcessor") +MyCompute_dEdxProcessor.OutputLevel = INFO +MyCompute_dEdxProcessor.ProcessorType = "Compute_dEdxProcessor" +MyCompute_dEdxProcessor.Parameters = { + "AngularCorrectionParameters": ["0.635762", "-0.0573237"], + "EnergyLossErrorTPC": ["0.054"], + "LDCTrackCollection": ["MarlinTrkTracks"], + "LowerTruncationFraction": ["0.08"], + "NumberofHitsCorrectionParameters": ["1.468"], + "StrategyCompHist": ["false"], + "StrategyCompHistFiles": ["dEdx_Histo_Strategy"], + "StrategyCompHistWeight": ["false"], + "UpperTruncationFraction": ["0.3"], + "Write_dEdx": ["true"], + "dEdxErrorScalingExponents": ["-0.34", "-0.45"], + "dxStrategy": ["1"], + "isSmearing": ["true"], + "smearingFactor": [CONSTANTS["dEdXSmearingFactor"]], +} + +MyV0Finder = MarlinProcessorWrapper("MyV0Finder") +MyV0Finder.OutputLevel = INFO +MyV0Finder.ProcessorType = "V0Finder" +MyV0Finder.Parameters = { + "MassRangeGamma": ["0.01"], + "MassRangeK0S": ["0.02"], + "MassRangeL0": ["0.02"], + "TrackCollection": ["MarlinTrkTracks"], +} + +MyKinkFinder = MarlinProcessorWrapper("MyKinkFinder") +MyKinkFinder.OutputLevel = INFO +MyKinkFinder.ProcessorType = "KinkFinder" +MyKinkFinder.Parameters = { + "DebugPrinting": ["0"], + "TrackCollection": ["MarlinTrkTracks"], +} + +MyRefitProcessorKaon = MarlinProcessorWrapper("MyRefitProcessorKaon") +MyRefitProcessorKaon.OutputLevel = INFO +MyRefitProcessorKaon.ProcessorType = "RefitProcessor" +MyRefitProcessorKaon.Parameters = { + "EnergyLossOn": ["true"], + "FitDirection": ["-1"], + "InitialTrackErrorD0": ["1e+06"], + "InitialTrackErrorOmega": ["0.00001"], + "InitialTrackErrorPhi0": ["100"], + "InitialTrackErrorTanL": ["100"], + "InitialTrackErrorZ0": ["1e+06"], + "InitialTrackState": ["3"], + "InputTrackCollectionName": ["MarlinTrkTracks"], + "InputTrackRelCollection": [], + "OutputTrackCollectionName": ["MarlinTrkTracksKaon"], + "OutputTrackRelCollection": ["MarlinTrkTracksKaonMCP"], + "ParticleMass": ["0.493677"], + "TrackSystemName": ["DDKalTest"], +} + +MyRefitProcessorProton = MarlinProcessorWrapper("MyRefitProcessorProton") +MyRefitProcessorProton.OutputLevel = INFO +MyRefitProcessorProton.ProcessorType = "RefitProcessor" +MyRefitProcessorProton.Parameters = { + "EnergyLossOn": ["true"], + "FitDirection": ["-1"], + "InitialTrackErrorD0": ["1e+06"], + "InitialTrackErrorOmega": ["0.00001"], + "InitialTrackErrorPhi0": ["100"], + "InitialTrackErrorTanL": ["100"], + "InitialTrackErrorZ0": ["1e+06"], + "InitialTrackState": ["3"], + "InputTrackCollectionName": ["MarlinTrkTracks"], + "InputTrackRelCollection": [], + "OutputTrackCollectionName": ["MarlinTrkTracksProton"], + "OutputTrackRelCollection": ["MarlinTrkTracksProtonMCP"], + "ParticleMass": ["0.93828"], + "TrackSystemName": ["DDKalTest"], +} + +TrackingReco_FCCeeMDISequence = [ + MyClupatraProcessor, + MyConformalTracking, + MyFullLDCTracking_MarlinTrk, + # MySiliconTracking_MarlinTrk, + # MyForwardTracking, + # MyTrackSubsetProcessor, + # MyCompute_dEdxProcessor, + # MyV0Finder, + # MyKinkFinder, + # MyRefitProcessorKaon, + # MyRefitProcessorProton, +]