diff --git a/.github/workflows/key4hep.yml b/.github/workflows/key4hep.yml
new file mode 100644
index 00000000..573fe6e6
--- /dev/null
+++ b/.github/workflows/key4hep.yml
@@ -0,0 +1,121 @@
+name: smoke-tests
+
+on:
+ push:
+ branches:
+ - master
+ pull_request:
+ workflow_dispatch:
+ schedule:
+ - cron: "19 6 * * *"
+
+concurrency:
+ group: ${{ github.workflow }}-${{ github.ref }}
+ cancel-in-progress: true
+
+jobs:
+ marlin-std-reco:
+ runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ matrix:
+ detector_model: [ILD_l5_o1_v02]
+ key4hep_build: [sw.hsf.org, 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.slcio \
+ --compactFile $lcgeo_DIR/ILD/compact/${{ matrix.detector_model }}/${{ matrix.detector_model }}.xml \
+ --steeringFile ddsim_steer.py
+ echo "::endgroup::"
+ echo "::group::Run Reconstruction"
+ Marlin MarlinStdReco.xml \
+ --constant.lcgeo_DIR=$lcgeo_DIR \
+ --constant.DetectorModel=${{ matrix.detector_model }} \
+ --constant.OutputBaseName=bbudsc_3evt \
+ --global.LCIOInputFiles=bbudsc_3evt_SIM.slcio
+ echo "::endgroup::"
+ echo "::group::Run LCTuple"
+ Marlin MarlinStdRecoLCTuple.xml \
+ --global.LCIOInputFiles=bbudsc_3evt_DST.slcio \
+ --MyAIDAProcessor.FileName=bbudsc_3evt_LCTuple
+ echo "::endgroup::"
+ echo "::group::Run MiniDST production"
+ Marlin MarlinStdRecoMiniDST.xml \
+ --global.LCIOInputFiles=bbudsc_3evt_DST.slcio \
+ --constant.OutputFile=bbudsc_3evt_miniDST.slcio \
+ --constant.lcgeo_DIR=$lcgeo_DIR
+ echo "::endgroup::"
+
+ # Reconstruction using EDM4hep inputs and outputs
+ gaudi-std-reco:
+ runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ matrix:
+ detector_model: [ILD_l5_o1_v02]
+ key4hep_build: [sw.hsf.org, 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 }}
+
+ # 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/.gitignore b/.gitignore
new file mode 100644
index 00000000..a61f2ae0
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,20 @@
+**/__pycache__/
+
+# Common outputs of the standard workflow
+*.out
+*_SIM.slcio
+*_REC.slcio
+*_DST.slcio
+*_miniDST.slcio
+*_PfoAnalysis.root
+*_AIDA.root
+*_LCTuple.root
+
+*_REC.edm4hep.root
+*_SIM.edm4hep.root
+
+# Side product of running Marlin
+MarlinStdRecoParsed.xml
+
+# Output for ranlux
+Ranlux.coonf
diff --git a/.travis-ci.d/test.sh b/.travis-ci.d/test.sh
deleted file mode 100755
index 7bfdf4fe..00000000
--- a/.travis-ci.d/test.sh
+++ /dev/null
@@ -1,78 +0,0 @@
-#!/bin/bash
-
-ILCSOFT=/cvmfs/clicdp.cern.ch/iLCSoft/builds/current/CI_gcc
-source $ILCSOFT/init_ilcsoft.sh
-
-cd /Package/StandardConfig/production
-
-##
-## Test DDSim
-##
-echo "-- Running DDSim ${SIM_MODEL} ..."
-ddsim \
- --inputFiles Examples/bbudsc_3evt/bbudsc_3evt.stdhep \
- --outputFile bbudsc_3evt_SIM_test_${SIM_MODEL}.slcio \
- --compactFile $lcgeo_DIR/ILD/compact/${SIM_MODEL}/${SIM_MODEL}.xml \
- --steeringFile ddsim_steer.py > travis-ci.log 2>&1
-
-ddsimStatus=$?
-
-if [[ $ddsimStatus != 0 ]]
-then
- cat travis-ci.log
- echo "-- ERROR - DDSim ${SIM_MODEL}: 3 events test failed"
- exit $ddsimStatus
-else
- echo "-- DDSim ${SIM_MODEL}: test passing !"
-fi
-
-# test presence of output file
-if [ ! -f "bbudsc_3evt_SIM_test_${SIM_MODEL}.slcio" ]
-then
- ls -lthr
- echo "-- ERROR - DDSim ${SIM_MODEL}: No output file found (bbudsc_3evt_SIM_test_${SIM_MODEL}.slcio)"
- exit 1
-fi
-
-
-##
-## Test Marlin reconstruction
-##
-outputBaseName="bbudsc_3evt_RECNoBG_Test_${REC_MODEL}"
-
-echo "-- Running Marlin ${REC_MODEL} no bg ..."
-Marlin MarlinStdReco.xml \
- --constant.lcgeo_DIR=$lcgeo_DIR \
- --constant.DetectorModel=${REC_MODEL} \
- --constant.OutputBaseName=${outputBaseName} \
- --constant.RunBeamCalReco=false \
- --global.LCIOInputFiles=bbudsc_3evt_SIM_test_${SIM_MODEL}.slcio > travis-ci.log 2>&1
-
-marlinStatus=$?
-
-if [[ $marlinStatus != 0 ]]
-then
- cat travis-ci.log
- echo "-- ERROR - Marlin ${REC_MODEL} no bg: 3 events test failed"
- exit $marlinStatus
-else
- echo "-- Marlin ${REC_MODEL} no bg: test passing !"
-fi
-
-# test presence of different output files
-checkFileList="${outputBaseName}_REC.slcio \
- ${outputBaseName}_DST.slcio \
- ${outputBaseName}_PfoAnalysis.root \
- ${outputBaseName}_AIDA.root"
-for checkFile in ${checkFileList}
-do
- if [ ! -f ${checkFile} ]
- then
- ls -lthr
- echo "-- ERROR - Marlin ${REC_MODEL} no bg: Missing output file ${checkFile}"
- exit 1
- else
- echo "-- Marlin ${REC_MODEL} no bg: ${checkFile} present ..."
- fi
-done
-
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index 21952e7f..00000000
--- a/.travis.yml
+++ /dev/null
@@ -1,55 +0,0 @@
-sudo: required
-dist: trusty
-
-env:
- matrix:
- - SIM_MODEL=ILD_l5_v02 REC_MODEL=ILD_l5_o1_v02
- - SIM_MODEL=ILD_s5_v02 REC_MODEL=ILD_s5_o1_v02
- - SIM_MODEL=ILD_l5_v02 REC_MODEL=ILD_l5_o2_v02
- - SIM_MODEL=ILD_s5_v02 REC_MODEL=ILD_s5_o2_v02
- - SIM_MODEL=ILD_l5_v02 REC_MODEL=ILD_l5_o3_v02
-
-services:
- - docker
-
-language: cpp
-
-before_install:
- - wget https://ecsft.cern.ch/dist/cvmfs/cvmfs-release/cvmfs-release-latest_all.deb
- - sudo dpkg -i cvmfs-release-latest_all.deb
- - sudo apt-get update
- - sudo apt-get install cvmfs cvmfs-config-default
- - rm -f cvmfs-release-latest_all.deb
- - wget https://lcd-data.web.cern.ch/lcd-data/CernVM/default.local
- - sudo mkdir -p /etc/cvmfs
- - sudo mv default.local /etc/cvmfs/default.local
- - sudo /etc/init.d/autofs stop
- - sudo cvmfs_config setup
- - sudo mkdir -p /cvmfs/clicdp.cern.ch
- - sudo mkdir -p /cvmfs/geant4.cern.ch
- - sudo mkdir -p /cvmfs/sft.cern.ch
- - sudo mount -t cvmfs clicdp.cern.ch /cvmfs/clicdp.cern.ch
- - sudo mount -t cvmfs geant4.cern.ch /cvmfs/geant4.cern.ch
- - sudo mount -t cvmfs sft.cern.ch /cvmfs/sft.cern.ch
- - ls /cvmfs/clicdp.cern.ch
- - ls /cvmfs/geant4.cern.ch
- - ls /cvmfs/sft.cern.ch/lcg
-
-# command to install dependencies
-install:
- - shopt -s extglob dotglob
- - mkdir Package
- - mv !(Package) Package
- - shopt -u dotglob
- - export PKGDIR=${PWD}/Package
-
-# command to run tests
-script:
- - docker run -it --name CI_container -e SIM_MODEL=$SIM_MODEL -e REC_MODEL=$REC_MODEL -v $PKGDIR:/Package -v /cvmfs:/cvmfs -d clicdp/cc7-lcg /bin/bash
- - docker exec -it CI_container /bin/bash -c "./Package/.travis-ci.d/test.sh";
-
-# Don't send e-mail notifications
-notifications:
- email:
- on_success: never
- on_failure: always
diff --git a/StandardConfig/production/BgOverlay/BgOverlay.py b/StandardConfig/production/BgOverlay/BgOverlay.py
new file mode 100644
index 00000000..5d366279
--- /dev/null
+++ b/StandardConfig/production/BgOverlay/BgOverlay.py
@@ -0,0 +1,57 @@
+#!/usr/bin/env python3
+
+from Gaudi.Configuration import INFO
+from Configurables import MarlinProcessorWrapper
+
+BgOverlayWW = MarlinProcessorWrapper("BgOverlayWW")
+BgOverlayWW.OutputLevel = INFO
+BgOverlayWW.ProcessorType = "Overlay"
+BgOverlayWW.Parameters = {
+ "InputFileNames": ["undefined.slcio"],
+ "NumberOverlayEvents": ["0"],
+ "expBG": [cms_energy_config["ExpectedBgWW"]],
+}
+
+BgOverlayWB = MarlinProcessorWrapper("BgOverlayWB")
+BgOverlayWB.OutputLevel = INFO
+BgOverlayWB.ProcessorType = "Overlay"
+BgOverlayWB.Parameters = {
+ "InputFileNames": ["undefined.slcio"],
+ "NumberOverlayEvents": ["0"],
+ "expBG": [cms_energy_config["ExpectedBgWB"]],
+}
+
+BgOverlayBW = MarlinProcessorWrapper("BgOverlayBW")
+BgOverlayBW.OutputLevel = INFO
+BgOverlayBW.ProcessorType = "Overlay"
+BgOverlayBW.Parameters = {
+ "InputFileNames": ["undefined.slcio"],
+ "NumberOverlayEvents": ["0"],
+ "expBG": [cms_energy_config["ExpectedBgBW"]],
+}
+
+BgOverlayBB = MarlinProcessorWrapper("BgOverlayBB")
+BgOverlayBB.OutputLevel = INFO
+BgOverlayBB.ProcessorType = "Overlay"
+BgOverlayBB.Parameters = {
+ "InputFileNames": ["undefined.slcio"],
+ "NumberOverlayEvents": ["0"],
+ "expBG": [cms_energy_config["ExpectedBgBB"]],
+}
+
+PairBgOverlay = MarlinProcessorWrapper("PairBgOverlay")
+PairBgOverlay.OutputLevel = INFO
+PairBgOverlay.ProcessorType = "Overlay"
+PairBgOverlay.Parameters = {
+ "ExcludeCollections": ["BeamCalCollection"],
+ "InputFileNames": ["undefined.slcio"],
+ "NumberOverlayEvents": ["0"],
+}
+
+BgOverlaySequence = [
+ BgOverlayWW,
+ BgOverlayWB,
+ BgOverlayBW,
+ BgOverlayBB,
+ PairBgOverlay,
+]
diff --git a/StandardConfig/production/Calibration/Calibration_ILD_l2_v02.cfg b/StandardConfig/production/Calibration/Calibration_ILD_l2_v02.cfg
new file mode 120000
index 00000000..d9e87409
--- /dev/null
+++ b/StandardConfig/production/Calibration/Calibration_ILD_l2_v02.cfg
@@ -0,0 +1 @@
+Calibration_ILD_l5_o2_v02.cfg
\ No newline at end of file
diff --git a/StandardConfig/production/Calibration/Calibration_ILD_l4_o1_v02.cfg b/StandardConfig/production/Calibration/Calibration_ILD_l4_o1_v02.cfg
new file mode 100644
index 00000000..11c03a10
--- /dev/null
+++ b/StandardConfig/production/Calibration/Calibration_ILD_l4_o1_v02.cfg
@@ -0,0 +1,86 @@
+# Converted from Calibration_ILD_l4_o1_v02.xml
+CONSTANTS = {
+ "EcalBarrelMip": "0.0001575",
+ "EcalEndcapMip": "0.0001575",
+ "EcalRingMip": "0.0001575",
+ "HcalBarrelMip": "0.0004975",
+ "HcalEndcapMip": "0.0004825",
+ "HcalRingMip": "0.0004875",
+ "EcalBarrelEnergyFactors": ["0.00641222630095", "0.0130248379264"],
+ "EcalEndcapEnergyFactors": ["0.0066862777075", "0.0135815049851"],
+ "EcalRingEnergyFactors": ["0.0066862777075", "0.0135815049851"],
+ "HcalBarrelEnergyFactors": "0.0219713624915",
+ "HcalEndcapEnergyFactors": "0.0231348530678",
+ "HcalRingEnergyFactors": "0.0289008640628",
+ "MuonCalibration": "56.7",
+ "PandoraEcalToMip": "153.846",
+ "PandoraHcalToMip": "48.7805",
+ "PandoraMuonToMip": "10.3093",
+ "PandoraEcalToEMScale": "1.0",
+ "PandoraHcalToEMScale": "1.0",
+ "PandoraEcalToHadBarrelScale": "1.07045526314",
+ "PandoraEcalToHadEndcapScale": "1.07045526314",
+ "PandoraHcalToHadScale": "1.02821419758",
+ "PandoraSoftwareCompensationWeights": [
+ "1.78321",
+ "-0.0515853",
+ "0.000555338",
+ "-0.0858048",
+ "0.00546042",
+ "-0.000151165",
+ "0.0601101",
+ "0.069058",
+ "-0.113743",
+ ],
+ "ApplyPhotonPFOCorrections": "false",
+ "EcalTechnology": "SiWEcal",
+ "HcalTechnology": "AHcal",
+ "PandoraSettingsFile": "PandoraSettings/PandoraSettingsDefault.xml",
+ "DropCollectionsHCal": [
+ "HCalBarrelRPCHits",
+ "HCalEndcapRPCHits",
+ "HCalECRingRPCHits",
+ ],
+ "AdditionalDropCollectionsREC": "%(DropCollectionsHCal)s",
+ "dEdXErrorFactor": "7.55",
+ "dEdXSmearingFactor": "0.035",
+ "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": "EcalBarrelCollection",
+ "ECalEndcapSimHitCollections": "EcalEndcapsCollection",
+ "ECalRingSimHitCollections": "EcalEndcapRingCollection",
+ "HCalBarrelSimHitCollections": "HcalBarrelRegCollection",
+ "HCalEndcapSimHitCollections": "HcalEndcapsCollection",
+ "HCalRingSimHitCollections": "HcalEndcapRingCollection",
+ "ECalSimHitCollections": [
+ "%(ECalBarrelSimHitCollections)s",
+ "%(ECalEndcapSimHitCollections)s",
+ "%(ECalRingSimHitCollections)s",
+ ],
+ "HCalSimHitCollections": [
+ "%(HCalBarrelSimHitCollections)s",
+ "%(HCalEndcapSimHitCollections)s",
+ "%(HCalRingSimHitCollections)s",
+ ],
+ "BeamCalBackgroundFile": "undefined.slcio",
+}
diff --git a/StandardConfig/production/Calibration/Calibration_ILD_l4_o2_v02.cfg b/StandardConfig/production/Calibration/Calibration_ILD_l4_o2_v02.cfg
new file mode 100644
index 00000000..42577a1d
--- /dev/null
+++ b/StandardConfig/production/Calibration/Calibration_ILD_l4_o2_v02.cfg
@@ -0,0 +1,81 @@
+# Converted from Calibration_ILD_l4_o2_v02.xml
+CONSTANTS = {
+ "EcalBarrelMip": "0.0001575",
+ "EcalEndcapMip": "0.0001575",
+ "EcalRingMip": "0.0001575",
+ "SDHcalEnergyFactors": ["0.0367023", "0.0745279", "0.363042"],
+ "EcalBarrelEnergyFactors": ["0.00641222630095", "0.0130248379264"],
+ "EcalEndcapEnergyFactors": ["0.0066862777075", "0.0135815049851"],
+ "EcalRingEnergyFactors": ["0.0066862777075", "0.0135815049851"],
+ "MuonCalibration": "56.7",
+ "PandoraEcalToMip": "153.846",
+ "PandoraHcalToMip": "48.7805",
+ "PandoraMuonToMip": "10.3093",
+ "PandoraEcalToEMScale": "1.0",
+ "PandoraHcalToEMScale": "1.0",
+ "PandoraEcalToHadBarrelScale": "1.20499007655",
+ "PandoraEcalToHadEndcapScale": "1.20499007655",
+ "PandoraHcalToHadScale": "0.992344768925",
+ "PandoraSoftwareCompensationWeights": [
+ "1.78321",
+ "-0.0515853",
+ "0.000555338",
+ "-0.0858048",
+ "0.00546042",
+ "-0.000151165",
+ "0.0601101",
+ "0.069058",
+ "-0.113743",
+ ],
+ "ApplyPhotonPFOCorrections": "false",
+ "EcalTechnology": "SiWEcal",
+ "HcalTechnology": "SDHcal",
+ "PandoraSettingsFile": "PandoraSettings/PandoraSettingsDefault_sdhcal.xml",
+ "DropCollectionsHCal": [
+ "HcalBarrelRegCollection",
+ "HcalEndcapRingCollection",
+ "HcalEndcapsCollection",
+ ],
+ "AdditionalDropCollectionsREC": "%(DropCollectionsHCal)s",
+ "dEdXErrorFactor": "7.55",
+ "dEdXSmearingFactor": "0.035",
+ "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": "EcalBarrelCollection",
+ "ECalEndcapSimHitCollections": "EcalEndcapsCollection",
+ "ECalRingSimHitCollections": "EcalEndcapRingCollection",
+ "HCalBarrelSimHitCollections": "HCalBarrelRPCHits",
+ "HCalEndcapSimHitCollections": "HCalEndcapRPCHits",
+ "HCalRingSimHitCollections": "HCalECRingRPCHits",
+ "ECalSimHitCollections": [
+ "%(ECalBarrelSimHitCollections)s",
+ "%(ECalEndcapSimHitCollections)s",
+ "%(ECalRingSimHitCollections)s",
+ ],
+ "HCalSimHitCollections": [
+ "%(HCalBarrelSimHitCollections)s",
+ "%(HCalEndcapSimHitCollections)s",
+ "%(HCalRingSimHitCollections)s",
+ ],
+ "BeamCalBackgroundFile": "undefined.slcio",
+}
diff --git a/StandardConfig/production/Calibration/Calibration_ILD_l5_o1_v02.cfg b/StandardConfig/production/Calibration/Calibration_ILD_l5_o1_v02.cfg
new file mode 100644
index 00000000..722b6c35
--- /dev/null
+++ b/StandardConfig/production/Calibration/Calibration_ILD_l5_o1_v02.cfg
@@ -0,0 +1,95 @@
+# Converted from Calibration_ILD_l5_o1_v02.xml
+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_o1_v03.cfg b/StandardConfig/production/Calibration/Calibration_ILD_l5_o1_v03.cfg
new file mode 120000
index 00000000..0cfa5ae6
--- /dev/null
+++ b/StandardConfig/production/Calibration/Calibration_ILD_l5_o1_v03.cfg
@@ -0,0 +1 @@
+Calibration_ILD_l5_o1_v02.cfg
\ No newline at end of file
diff --git a/StandardConfig/production/Calibration/Calibration_ILD_l5_o1_v04.cfg b/StandardConfig/production/Calibration/Calibration_ILD_l5_o1_v04.cfg
new file mode 120000
index 00000000..0cfa5ae6
--- /dev/null
+++ b/StandardConfig/production/Calibration/Calibration_ILD_l5_o1_v04.cfg
@@ -0,0 +1 @@
+Calibration_ILD_l5_o1_v02.cfg
\ No newline at end of file
diff --git a/StandardConfig/production/Calibration/Calibration_ILD_l5_o1_v05.cfg b/StandardConfig/production/Calibration/Calibration_ILD_l5_o1_v05.cfg
new file mode 120000
index 00000000..0cfa5ae6
--- /dev/null
+++ b/StandardConfig/production/Calibration/Calibration_ILD_l5_o1_v05.cfg
@@ -0,0 +1 @@
+Calibration_ILD_l5_o1_v02.cfg
\ No newline at end of file
diff --git a/StandardConfig/production/Calibration/Calibration_ILD_l5_o1_v06.cfg b/StandardConfig/production/Calibration/Calibration_ILD_l5_o1_v06.cfg
new file mode 120000
index 00000000..0cfa5ae6
--- /dev/null
+++ b/StandardConfig/production/Calibration/Calibration_ILD_l5_o1_v06.cfg
@@ -0,0 +1 @@
+Calibration_ILD_l5_o1_v02.cfg
\ No newline at end of file
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_o2_v02.cfg b/StandardConfig/production/Calibration/Calibration_ILD_l5_o2_v02.cfg
new file mode 100644
index 00000000..30995816
--- /dev/null
+++ b/StandardConfig/production/Calibration/Calibration_ILD_l5_o2_v02.cfg
@@ -0,0 +1,90 @@
+# Converted from Calibration_ILD_l5_o2_v02.xml
+CONSTANTS = {
+ "EcalBarrelMip": "0.0001525",
+ "EcalEndcapMip": "0.0001525",
+ "EcalRingMip": "0.0001525",
+ "SDHcalEnergyFactors": ["0.0367023", "0.0745279", "0.363042"],
+ "EcalBarrelEnergyFactors": ["0.0063520964756", "0.012902699188"],
+ "EcalEndcapEnergyFactors": ["0.0067218419842", "0.013653744940"],
+ "EcalRingEnergyFactors": ["0.0066536339", "0.0135151972"],
+ "MuonCalibration": "56.7",
+ "PandoraEcalToMip": "153.846",
+ "PandoraHcalToMip": "43.29",
+ "PandoraMuonToMip": "10.3093",
+ "PandoraEcalToEMScale": "1.0",
+ "PandoraHcalToEMScale": "1.0",
+ "PandoraEcalToHadBarrelScale": "1.20499007655",
+ "PandoraEcalToHadEndcapScale": "1.20499007655",
+ "PandoraHcalToHadScale": "0.992344768925",
+ "PandoraSoftwareCompensationWeights": [
+ "1.66803",
+ "-0.031982",
+ "0.000192898",
+ "-0.0612971",
+ "0.00256256",
+ "-4.35641e-05",
+ "0.0558589",
+ "0.0601767",
+ "-0.0758029",
+ ],
+ "ApplyPhotonPFOCorrections": "true",
+ "EcalTechnology": "SiWEcal",
+ "HcalTechnology": "SDHcal",
+ "PandoraSettingsFile": "PandoraSettings/PandoraSettingsDefault_sdhcal.xml",
+ "DropCollectionsECal": [
+ "ECalBarrelScHitsEven",
+ "ECalBarrelScHitsOdd",
+ "ECalEndcapScHitsEven",
+ "ECalEndcapScHitsOdd",
+ ],
+ "DropCollectionsHCal": [
+ "HcalBarrelRegCollection",
+ "HcalEndcapRingCollection",
+ "HcalEndcapsCollection",
+ ],
+ "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": "HCalBarrelRPCHits",
+ "HCalEndcapSimHitCollections": "HCalEndcapRPCHits",
+ "HCalRingSimHitCollections": "HCalECRingRPCHits",
+ "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_o3_v02.cfg b/StandardConfig/production/Calibration/Calibration_ILD_l5_o3_v02.cfg
new file mode 100644
index 00000000..7a881416
--- /dev/null
+++ b/StandardConfig/production/Calibration/Calibration_ILD_l5_o3_v02.cfg
@@ -0,0 +1,95 @@
+# Converted from Calibration_ILD_l5_o3_v02.xml
+CONSTANTS = {
+ "EcalBarrelMip": "0.0002629",
+ "EcalEndcapMip": "0.0002655",
+ "EcalRingMip": "0.0001575",
+ "HcalBarrelMip": "0.0004925",
+ "HcalEndcapMip": "0.0004725",
+ "HcalRingMip": "0.0004875",
+ "EcalBarrelEnergyFactors": ["0.00758", "0.01515"],
+ "EcalEndcapEnergyFactors": ["0.00810", "0.01619"],
+ "EcalRingEnergyFactors": ["0.00668706922431", "0.013583112754"],
+ "HcalBarrelEnergyFactors": "0.0287783798145",
+ "HcalEndcapEnergyFactors": "0.0285819096797",
+ "HcalRingEnergyFactors": "0.0349940637704",
+ "MuonCalibration": "56.7",
+ "PandoraEcalToMip": "153.846",
+ "PandoraHcalToMip": "37.1747",
+ "PandoraMuonToMip": "10.5263",
+ "PandoraEcalToEMScale": "1.031",
+ "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": "false",
+ "EcalTechnology": "ScEcal",
+ "HcalTechnology": "AHcal",
+ "PandoraSettingsFile": "PandoraSettings/PandoraSettingsDefault.xml",
+ "DropCollectionsECal": [
+ "ECalBarrelSiHitsEven",
+ "ECalBarrelSiHitsOdd",
+ "ECalEndcapSiHitsEven",
+ "ECalEndcapSiHitsOdd",
+ ],
+ "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": ["ECalBarrelScHitsEven", "ECalBarrelScHitsOdd"],
+ "ECalEndcapSimHitCollections": ["ECalEndcapScHitsEven", "ECalEndcapScHitsOdd"],
+ "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_o4_v02.cfg b/StandardConfig/production/Calibration/Calibration_ILD_l5_o4_v02.cfg
new file mode 100644
index 00000000..212c65f6
--- /dev/null
+++ b/StandardConfig/production/Calibration/Calibration_ILD_l5_o4_v02.cfg
@@ -0,0 +1,90 @@
+# Converted from Calibration_ILD_l5_o4_v02.xml
+CONSTANTS = {
+ "EcalBarrelMip": "0.0001525",
+ "EcalEndcapMip": "0.0001525",
+ "EcalRingMip": "0.0001525",
+ "SDHcalEnergyFactors": ["0.0367023", "0.0745279", "0.363042"],
+ "EcalBarrelEnergyFactors": ["0.00616736103247", "0.0125274552256"],
+ "EcalEndcapEnergyFactors": ["0.0064868449976", "0.0131764071919"],
+ "EcalRingEnergyFactors": ["0.0064868449976", "0.0131764071919"],
+ "MuonCalibration": "56.7",
+ "PandoraEcalToMip": "153.846",
+ "PandoraHcalToMip": "43.29",
+ "PandoraMuonToMip": "10.3093",
+ "PandoraEcalToEMScale": "1.0",
+ "PandoraHcalToEMScale": "1.0",
+ "PandoraEcalToHadBarrelScale": "1.20499007655",
+ "PandoraEcalToHadEndcapScale": "1.20499007655",
+ "PandoraHcalToHadScale": "0.992344768925",
+ "PandoraSoftwareCompensationWeights": [
+ "1.66803",
+ "-0.031982",
+ "0.000192898",
+ "-0.0612971",
+ "0.00256256",
+ "-4.35641e-05",
+ "0.0558589",
+ "0.0601767",
+ "-0.0758029",
+ ],
+ "ApplyPhotonPFOCorrections": "false",
+ "EcalTechnology": "ScEcal",
+ "HcalTechnology": "SDHcal",
+ "PandoraSettingsFile": "PandoraSettings/PandoraSettingsDefault_sdhcal.xml",
+ "DropCollectionsECal": [
+ "ECalBarrelSiHitsEven",
+ "ECalBarrelSiHitsOdd",
+ "ECalEndcapSiHitsEven",
+ "ECalEndcapSiHitsOdd",
+ ],
+ "DropCollectionsHCal": [
+ "HcalBarrelRegCollection",
+ "HcalEndcapRingCollection",
+ "HcalEndcapsCollection",
+ ],
+ "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": ["ECalBarrelScHitsEven", "ECalBarrelScHitsOdd"],
+ "ECalEndcapSimHitCollections": ["ECalEndcapScHitsEven", "ECalEndcapScHitsOdd"],
+ "ECalRingSimHitCollections": "EcalEndcapRingCollection",
+ "HCalBarrelSimHitCollections": "HCalBarrelRPCHits",
+ "HCalEndcapSimHitCollections": "HCalEndcapRPCHits",
+ "HCalRingSimHitCollections": "HCalECRingRPCHits",
+ "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/Calibration/Calibration_ILD_s2_v02.cfg b/StandardConfig/production/Calibration/Calibration_ILD_s2_v02.cfg
new file mode 120000
index 00000000..eae40830
--- /dev/null
+++ b/StandardConfig/production/Calibration/Calibration_ILD_s2_v02.cfg
@@ -0,0 +1 @@
+Calibration_ILD_s5_o2_v02.cfg
\ No newline at end of file
diff --git a/StandardConfig/production/Calibration/Calibration_ILD_s4_o1_v02.cfg b/StandardConfig/production/Calibration/Calibration_ILD_s4_o1_v02.cfg
new file mode 100644
index 00000000..55fe2b38
--- /dev/null
+++ b/StandardConfig/production/Calibration/Calibration_ILD_s4_o1_v02.cfg
@@ -0,0 +1,86 @@
+# Converted from Calibration_ILD_s4_o1_v02.xml
+CONSTANTS = {
+ "EcalBarrelMip": "0.0001575",
+ "EcalEndcapMip": "0.0001575",
+ "EcalRingMip": "0.0001575",
+ "HcalBarrelMip": "0.0005025",
+ "HcalEndcapMip": "0.0004775",
+ "HcalRingMip": "0.0004875",
+ "EcalBarrelEnergyFactors": ["0.00639206743282", "0.0129838902153"],
+ "EcalEndcapEnergyFactors": ["0.00677453657324", "0.0137607808509"],
+ "EcalRingEnergyFactors": ["0.00677453657324", "0.0137607808509"],
+ "HcalBarrelEnergyFactors": "0.0224062724556",
+ "HcalEndcapEnergyFactors": "0.022836107584",
+ "HcalRingEnergyFactors": "0.0268922571442",
+ "MuonCalibration": "56.7",
+ "PandoraEcalToMip": "153.846",
+ "PandoraHcalToMip": "41.841",
+ "PandoraMuonToMip": "10.5263",
+ "PandoraEcalToEMScale": "1.0",
+ "PandoraHcalToEMScale": "1.0",
+ "PandoraEcalToHadBarrelScale": "1.06504826673",
+ "PandoraEcalToHadEndcapScale": "1.20700253651",
+ "PandoraHcalToHadScale": "1.04116630643",
+ "PandoraSoftwareCompensationWeights": [
+ "1.67738",
+ "-0.0324571",
+ "0.000211756",
+ "-0.0652524",
+ "0.00258787",
+ "-4.47897e-05",
+ "0.057609",
+ "0.0659326",
+ "-0.0757052",
+ ],
+ "ApplyPhotonPFOCorrections": "false",
+ "EcalTechnology": "SiWEcal",
+ "HcalTechnology": "AHcal",
+ "PandoraSettingsFile": "PandoraSettings/PandoraSettingsDefault.xml",
+ "DropCollectionsHCal": [
+ "HCalBarrelRPCHits",
+ "HCalEndcapRPCHits",
+ "HCalECRingRPCHits",
+ ],
+ "AdditionalDropCollectionsREC": "%(DropCollectionsHCal)s",
+ "dEdXErrorFactor": "8.53",
+ "dEdXSmearingFactor": "0.044",
+ "PidPDFFile": "HighLevelReco/PIDFiles/LikelihoodPID_Standard_s5_v01.root",
+ "PidWeightFiles": [
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_02GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_03GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_04GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_05GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_06GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_07GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_08GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_09GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_10GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_11GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_12GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_13GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_14GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_15GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_16GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_17GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_18GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_19GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_20GeVP_clusterinfo.weights.xml",
+ ],
+ "ECalBarrelSimHitCollections": "EcalBarrelCollection",
+ "ECalEndcapSimHitCollections": "EcalEndcapsCollection",
+ "ECalRingSimHitCollections": "EcalEndcapRingCollection",
+ "HCalBarrelSimHitCollections": "HcalBarrelRegCollection",
+ "HCalEndcapSimHitCollections": "HcalEndcapsCollection",
+ "HCalRingSimHitCollections": "HcalEndcapRingCollection",
+ "ECalSimHitCollections": [
+ "%(ECalBarrelSimHitCollections)s",
+ "%(ECalEndcapSimHitCollections)s",
+ "%(ECalRingSimHitCollections)s",
+ ],
+ "HCalSimHitCollections": [
+ "%(HCalBarrelSimHitCollections)s",
+ "%(HCalEndcapSimHitCollections)s",
+ "%(HCalRingSimHitCollections)s",
+ ],
+ "BeamCalBackgroundFile": "undefined.slcio",
+}
diff --git a/StandardConfig/production/Calibration/Calibration_ILD_s4_o2_v02.cfg b/StandardConfig/production/Calibration/Calibration_ILD_s4_o2_v02.cfg
new file mode 100644
index 00000000..db23faf1
--- /dev/null
+++ b/StandardConfig/production/Calibration/Calibration_ILD_s4_o2_v02.cfg
@@ -0,0 +1,81 @@
+# Converted from Calibration_ILD_s4_o2_v02.xml
+CONSTANTS = {
+ "EcalBarrelMip": "0.0001575",
+ "EcalEndcapMip": "0.0001575",
+ "EcalRingMip": "0.0001575",
+ "SDHcalEnergyFactors": ["0.0367023", "0.0745279", "0.363042"],
+ "EcalBarrelEnergyFactors": ["0.00639206743282", "0.0129838902153"],
+ "EcalEndcapEnergyFactors": ["0.00677453657324", "0.0137607808509"],
+ "EcalRingEnergyFactors": ["0.00677453657324", "0.0137607808509"],
+ "MuonCalibration": "56.7",
+ "PandoraEcalToMip": "153.846",
+ "PandoraHcalToMip": "41.841",
+ "PandoraMuonToMip": "10.5263",
+ "PandoraEcalToEMScale": "1.0",
+ "PandoraHcalToEMScale": "1.0",
+ "PandoraEcalToHadBarrelScale": "1.31",
+ "PandoraEcalToHadEndcapScale": "1.31",
+ "PandoraHcalToHadScale": "0.98",
+ "PandoraSoftwareCompensationWeights": [
+ "1.67738",
+ "-0.0324571",
+ "0.000211756",
+ "-0.0652524",
+ "0.00258787",
+ "-4.47897e-05",
+ "0.057609",
+ "0.0659326",
+ "-0.0757052",
+ ],
+ "ApplyPhotonPFOCorrections": "false",
+ "EcalTechnology": "SiWEcal",
+ "HcalTechnology": "SDHcal",
+ "PandoraSettingsFile": "PandoraSettings/PandoraSettingsDefault_sdhcal.xml",
+ "DropCollectionsHCal": [
+ "HcalBarrelRegCollection",
+ "HcalEndcapRingCollection",
+ "HcalEndcapsCollection",
+ ],
+ "AdditionalDropCollectionsREC": "%(DropCollectionsHCal)s",
+ "dEdXErrorFactor": "8.53",
+ "dEdXSmearingFactor": "0.044",
+ "PidPDFFile": "HighLevelReco/PIDFiles/LikelihoodPID_Standard_s5_v01.root",
+ "PidWeightFiles": [
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_02GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_03GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_04GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_05GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_06GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_07GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_08GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_09GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_10GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_11GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_12GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_13GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_14GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_15GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_16GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_17GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_18GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_19GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_20GeVP_clusterinfo.weights.xml",
+ ],
+ "ECalBarrelSimHitCollections": "EcalBarrelCollection",
+ "ECalEndcapSimHitCollections": "EcalEndcapsCollection",
+ "ECalRingSimHitCollections": "EcalEndcapRingCollection",
+ "HCalBarrelSimHitCollections": "HCalBarrelRPCHits",
+ "HCalEndcapSimHitCollections": "HCalEndcapRPCHits",
+ "HCalRingSimHitCollections": "HCalECRingRPCHits",
+ "ECalSimHitCollections": [
+ "%(ECalBarrelSimHitCollections)s",
+ "%(ECalEndcapSimHitCollections)s",
+ "%(ECalRingSimHitCollections)s",
+ ],
+ "HCalSimHitCollections": [
+ "%(HCalBarrelSimHitCollections)s",
+ "%(HCalEndcapSimHitCollections)s",
+ "%(HCalRingSimHitCollections)s",
+ ],
+ "BeamCalBackgroundFile": "undefined.slcio",
+}
diff --git a/StandardConfig/production/Calibration/Calibration_ILD_s5_o1_v02.cfg b/StandardConfig/production/Calibration/Calibration_ILD_s5_o1_v02.cfg
new file mode 100644
index 00000000..d9a5a431
--- /dev/null
+++ b/StandardConfig/production/Calibration/Calibration_ILD_s5_o1_v02.cfg
@@ -0,0 +1,95 @@
+# Converted from Calibration_ILD_s5_o1_v02.xml
+CONSTANTS = {
+ "EcalBarrelMip": "0.0001575",
+ "EcalEndcapMip": "0.0001575",
+ "EcalRingMip": "0.0001575",
+ "HcalBarrelMip": "0.0004875",
+ "HcalEndcapMip": "0.0004725",
+ "HcalRingMip": "0.0004875",
+ "EcalBarrelEnergyFactors": ["0.00634087675557", "0.0128799091262"],
+ "EcalEndcapEnergyFactors": ["0.00673284555339", "0.0136760959457"],
+ "EcalRingEnergyFactors": ["0.00673284555339", "0.0136760959457"],
+ "HcalBarrelEnergyFactors": "0.0286349466631",
+ "HcalEndcapEnergyFactors": "0.0286749099338",
+ "HcalRingEnergyFactors": "0.0332139689468",
+ "MuonCalibration": "56.7",
+ "PandoraEcalToMip": "153.846",
+ "PandoraHcalToMip": "30.7692",
+ "PandoraMuonToMip": "10.5263",
+ "PandoraEcalToEMScale": "1.0",
+ "PandoraHcalToEMScale": "1.0",
+ "PandoraEcalToHadBarrelScale": "1.16859530376",
+ "PandoraEcalToHadEndcapScale": "1.16859530376",
+ "PandoraHcalToHadScale": "1.0518169704",
+ "PandoraSoftwareCompensationWeights": [
+ "1.66382",
+ "-0.0455803",
+ "0.00091388",
+ "-0.00132359",
+ "-0.00341433",
+ "-5.36844e-05",
+ "0.052905",
+ "0.0732245",
+ "-0.179232",
+ ],
+ "ApplyPhotonPFOCorrections": "false",
+ "EcalTechnology": "SiWEcal",
+ "HcalTechnology": "AHcal",
+ "PandoraSettingsFile": "PandoraSettings/PandoraSettingsDefault.xml",
+ "DropCollectionsECal": [
+ "ECalBarrelScHitsEven",
+ "ECalBarrelScHitsOdd",
+ "ECalEndcapScHitsEven",
+ "ECalEndcapScHitsOdd",
+ ],
+ "DropCollectionsHCal": [
+ "HCalBarrelRPCHits",
+ "HCalEndcapRPCHits",
+ "HCalECRingRPCHits",
+ ],
+ "AdditionalDropCollectionsREC": [
+ "%(DropCollectionsECal)s",
+ "%(DropCollectionsHCal)s",
+ ],
+ "dEdXErrorFactor": "8.53",
+ "dEdXSmearingFactor": "0.036",
+ "PidPDFFile": "HighLevelReco/PIDFiles/LikelihoodPID_Standard_s5_v01.root",
+ "PidWeightFiles": [
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_02GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_03GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_04GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_05GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_06GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_07GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_08GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_09GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_10GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_11GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_12GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_13GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_14GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_15GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_16GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_17GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_18GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_19GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_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-B4.0-RealisticNominalAntiDid.root",
+}
diff --git a/StandardConfig/production/Calibration/Calibration_ILD_s5_o1_v03.cfg b/StandardConfig/production/Calibration/Calibration_ILD_s5_o1_v03.cfg
new file mode 120000
index 00000000..7d0df35e
--- /dev/null
+++ b/StandardConfig/production/Calibration/Calibration_ILD_s5_o1_v03.cfg
@@ -0,0 +1 @@
+Calibration_ILD_s5_o1_v02.cfg
\ No newline at end of file
diff --git a/StandardConfig/production/Calibration/Calibration_ILD_s5_o1_v04.cfg b/StandardConfig/production/Calibration/Calibration_ILD_s5_o1_v04.cfg
new file mode 120000
index 00000000..7d0df35e
--- /dev/null
+++ b/StandardConfig/production/Calibration/Calibration_ILD_s5_o1_v04.cfg
@@ -0,0 +1 @@
+Calibration_ILD_s5_o1_v02.cfg
\ No newline at end of file
diff --git a/StandardConfig/production/Calibration/Calibration_ILD_s5_o1_v05.cfg b/StandardConfig/production/Calibration/Calibration_ILD_s5_o1_v05.cfg
new file mode 120000
index 00000000..7d0df35e
--- /dev/null
+++ b/StandardConfig/production/Calibration/Calibration_ILD_s5_o1_v05.cfg
@@ -0,0 +1 @@
+Calibration_ILD_s5_o1_v02.cfg
\ No newline at end of file
diff --git a/StandardConfig/production/Calibration/Calibration_ILD_s5_o1_v06.cfg b/StandardConfig/production/Calibration/Calibration_ILD_s5_o1_v06.cfg
new file mode 120000
index 00000000..7d0df35e
--- /dev/null
+++ b/StandardConfig/production/Calibration/Calibration_ILD_s5_o1_v06.cfg
@@ -0,0 +1 @@
+Calibration_ILD_s5_o1_v02.cfg
\ No newline at end of file
diff --git a/StandardConfig/production/Calibration/Calibration_ILD_s5_o2_v02.cfg b/StandardConfig/production/Calibration/Calibration_ILD_s5_o2_v02.cfg
new file mode 100644
index 00000000..a2c68050
--- /dev/null
+++ b/StandardConfig/production/Calibration/Calibration_ILD_s5_o2_v02.cfg
@@ -0,0 +1,90 @@
+# Converted from Calibration_ILD_s5_o2_v02.xml
+CONSTANTS = {
+ "EcalBarrelMip": "0.0001525",
+ "EcalEndcapMip": "0.0001525",
+ "EcalRingMip": "0.0001525",
+ "EcalBarrelEnergyFactors": ["0.0061295924012", "0.0124507376742"],
+ "EcalEndcapEnergyFactors": ["0.00649356022242", "0.0131900474958"],
+ "EcalRingEnergyFactors": ["0.00649356022242", "0.0131900474958"],
+ "SDHcalEnergyFactors": ["0.0367023", "0.0745279", "0.363042"],
+ "MuonCalibration": "56.7",
+ "PandoraEcalToMip": "153.846",
+ "PandoraHcalToMip": "42.1941",
+ "PandoraMuonToMip": "10.3093",
+ "PandoraEcalToEMScale": "1.0",
+ "PandoraHcalToEMScale": "1.0",
+ "PandoraEcalToHadBarrelScale": "1.31",
+ "PandoraEcalToHadEndcapScale": "1.31",
+ "PandoraHcalToHadScale": "0.98",
+ "PandoraSoftwareCompensationWeights": [
+ "1.45525",
+ "-0.0243366",
+ "0.000133654",
+ "-0.0529633",
+ "0.00148587",
+ "-2.11343e-05",
+ "0.136194",
+ "0.151678",
+ "-0.0514051",
+ ],
+ "ApplyPhotonPFOCorrections": "false",
+ "EcalTechnology": "SiWEcal",
+ "HcalTechnology": "SDHcal",
+ "PandoraSettingsFile": "PandoraSettings/PandoraSettingsDefault_sdhcal.xml",
+ "DropCollectionsECal": [
+ "ECalBarrelScHitsEven",
+ "ECalBarrelScHitsOdd",
+ "ECalEndcapScHitsEven",
+ "ECalEndcapScHitsOdd",
+ ],
+ "DropCollectionsHCal": [
+ "HcalBarrelRegCollection",
+ "HcalEndcapRingCollection",
+ "HcalEndcapsCollection",
+ ],
+ "AdditionalDropCollectionsREC": [
+ "%(DropCollectionsECal)s",
+ "%(DropCollectionsHCal)s",
+ ],
+ "dEdXErrorFactor": "8.53",
+ "dEdXSmearingFactor": "0.036",
+ "PidPDFFile": "HighLevelReco/PIDFiles/LikelihoodPID_Standard_s5_v01.root",
+ "PidWeightFiles": [
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_02GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_03GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_04GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_05GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_06GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_07GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_08GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_09GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_10GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_11GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_12GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_13GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_14GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_15GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_16GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_17GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_18GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_19GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_20GeVP_clusterinfo.weights.xml",
+ ],
+ "ECalBarrelSimHitCollections": ["ECalBarrelSiHitsEven", "ECalBarrelSiHitsOdd"],
+ "ECalEndcapSimHitCollections": ["ECalEndcapSiHitsEven", "ECalEndcapSiHitsOdd"],
+ "ECalRingSimHitCollections": "EcalEndcapRingCollection",
+ "HCalBarrelSimHitCollections": "HCalBarrelRPCHits",
+ "HCalEndcapSimHitCollections": "HCalEndcapRPCHits",
+ "HCalRingSimHitCollections": "HCalECRingRPCHits",
+ "ECalSimHitCollections": [
+ "%(ECalBarrelSimHitCollections)s",
+ "%(ECalEndcapSimHitCollections)s",
+ "%(ECalRingSimHitCollections)s",
+ ],
+ "HCalSimHitCollections": [
+ "%(HCalBarrelSimHitCollections)s",
+ "%(HCalEndcapSimHitCollections)s",
+ "%(HCalRingSimHitCollections)s",
+ ],
+ "BeamCalBackgroundFile": "HighLevelReco/BeamCalBackground/BeamCalBackground-E%(CMSEnergy)s-B4.0-RealisticNominalAntiDid.root",
+}
diff --git a/StandardConfig/production/Calibration/Calibration_ILD_s5_o3_v02.cfg b/StandardConfig/production/Calibration/Calibration_ILD_s5_o3_v02.cfg
new file mode 100644
index 00000000..544419b8
--- /dev/null
+++ b/StandardConfig/production/Calibration/Calibration_ILD_s5_o3_v02.cfg
@@ -0,0 +1,95 @@
+# Converted from Calibration_ILD_s5_o3_v02.xml
+CONSTANTS = {
+ "EcalBarrelMip": "0.0002629",
+ "EcalEndcapMip": "0.0002655",
+ "EcalRingMip": "0.0001575",
+ "HcalBarrelMip": "0.0004875",
+ "HcalEndcapMip": "0.0004725",
+ "HcalRingMip": "0.0004875",
+ "EcalBarrelEnergyFactors": ["0.00758", "0.01515"],
+ "EcalEndcapEnergyFactors": ["0.00810", "0.01619"],
+ "EcalRingEnergyFactors": ["0.00673284555339", "0.0136760959457"],
+ "HcalBarrelEnergyFactors": "0.0286349466631",
+ "HcalEndcapEnergyFactors": "0.0286749099338",
+ "HcalRingEnergyFactors": "0.0332139689468",
+ "MuonCalibration": "56.7",
+ "PandoraEcalToMip": "153.846",
+ "PandoraHcalToMip": "30.7692",
+ "PandoraMuonToMip": "10.5263",
+ "PandoraEcalToEMScale": "1.031",
+ "PandoraHcalToEMScale": "1.0",
+ "PandoraEcalToHadBarrelScale": "1.16859530376",
+ "PandoraEcalToHadEndcapScale": "1.16859530376",
+ "PandoraHcalToHadScale": "1.0518169704",
+ "PandoraSoftwareCompensationWeights": [
+ "1.66382",
+ "-0.0455803",
+ "0.00091388",
+ "-0.00132359",
+ "-0.00341433",
+ "-5.36844e-05",
+ "0.052905",
+ "0.0732245",
+ "-0.179232",
+ ],
+ "ApplyPhotonPFOCorrections": "false",
+ "EcalTechnology": "ScEcal",
+ "HcalTechnology": "AHcal",
+ "PandoraSettingsFile": "PandoraSettings/PandoraSettingsDefault.xml",
+ "DropCollectionsECal": [
+ "ECalBarrelSiHitsEven",
+ "ECalBarrelSiHitsOdd",
+ "ECalEndcapSiHitsEven",
+ "ECalEndcapSiHitsOdd",
+ ],
+ "DropCollectionsHCal": [
+ "HCalBarrelRPCHits",
+ "HCalEndcapRPCHits",
+ "HCalECRingRPCHits",
+ ],
+ "AdditionalDropCollectionsREC": [
+ "%(DropCollectionsECal)s",
+ "%(DropCollectionsHCal)s",
+ ],
+ "dEdXErrorFactor": "8.53",
+ "dEdXSmearingFactor": "0.036",
+ "PidPDFFile": "HighLevelReco/PIDFiles/LikelihoodPID_Standard_s5_v01.root",
+ "PidWeightFiles": [
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_02GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_03GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_04GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_05GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_06GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_07GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_08GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_09GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_10GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_11GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_12GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_13GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_14GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_15GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_16GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_17GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_18GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_19GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_20GeVP_clusterinfo.weights.xml",
+ ],
+ "ECalBarrelSimHitCollections": ["ECalBarrelScHitsEven", "ECalBarrelScHitsOdd"],
+ "ECalEndcapSimHitCollections": ["ECalEndcapScHitsEven", "ECalEndcapScHitsOdd"],
+ "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-B4.0-RealisticNominalAntiDid.root",
+}
diff --git a/StandardConfig/production/Calibration/Calibration_ILD_s5_o4_v02.cfg b/StandardConfig/production/Calibration/Calibration_ILD_s5_o4_v02.cfg
new file mode 100644
index 00000000..e0c79964
--- /dev/null
+++ b/StandardConfig/production/Calibration/Calibration_ILD_s5_o4_v02.cfg
@@ -0,0 +1,90 @@
+# Converted from Calibration_ILD_s5_o4_v02.xml
+CONSTANTS = {
+ "EcalBarrelMip": "0.0001525",
+ "EcalEndcapMip": "0.0001525",
+ "EcalRingMip": "0.0001525",
+ "EcalBarrelEnergyFactors": ["0.0061295924012", "0.0124507376742"],
+ "EcalEndcapEnergyFactors": ["0.00649356022242", "0.0131900474958"],
+ "EcalRingEnergyFactors": ["0.00649356022242", "0.0131900474958"],
+ "SDHcalEnergyFactors": ["0.0367023", "0.0745279", "0.363042"],
+ "MuonCalibration": "56.7",
+ "PandoraEcalToMip": "153.846",
+ "PandoraHcalToMip": "42.1941",
+ "PandoraMuonToMip": "10.3093",
+ "PandoraEcalToEMScale": "1.0",
+ "PandoraHcalToEMScale": "1.0",
+ "PandoraEcalToHadBarrelScale": "1.31",
+ "PandoraEcalToHadEndcapScale": "1.31",
+ "PandoraHcalToHadScale": "0.98",
+ "PandoraSoftwareCompensationWeights": [
+ "1.45525",
+ "-0.0243366",
+ "0.000133654",
+ "-0.0529633",
+ "0.00148587",
+ "-2.11343e-05",
+ "0.136194",
+ "0.151678",
+ "-0.0514051",
+ ],
+ "ApplyPhotonPFOCorrections": "false",
+ "EcalTechnology": "ScEcal",
+ "HcalTechnology": "SDHcal",
+ "PandoraSettingsFile": "PandoraSettings/PandoraSettingsDefault_sdhcal.xml",
+ "DropCollectionsECal": [
+ "ECalBarrelSiHitsEven",
+ "ECalBarrelSiHitsOdd",
+ "ECalEndcapSiHitsEven",
+ "ECalEndcapSiHitsOdd",
+ ],
+ "DropCollectionsHCal": [
+ "HcalBarrelRegCollection",
+ "HcalEndcapRingCollection",
+ "HcalEndcapsCollection",
+ ],
+ "AdditionalDropCollectionsREC": [
+ "%(DropCollectionsECal)s",
+ "%(DropCollectionsHCal)s",
+ ],
+ "dEdXErrorFactor": "8.53",
+ "dEdXSmearingFactor": "0.036",
+ "PidPDFFile": "HighLevelReco/PIDFiles/LikelihoodPID_Standard_s5_v01.root",
+ "PidWeightFiles": [
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_02GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_03GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_04GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_05GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_06GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_07GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_08GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_09GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_10GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_11GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_12GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_13GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_14GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_15GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_16GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_17GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_18GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_19GeVP_clusterinfo.weights.xml",
+ "HighLevelReco/PIDFiles/LowMomMuPiSeparation/TMVAClassification_BDTG_s5_20GeVP_clusterinfo.weights.xml",
+ ],
+ "ECalBarrelSimHitCollections": ["ECalBarrelScHitsEven", "ECalBarrelScHitsOdd"],
+ "ECalEndcapSimHitCollections": ["ECalEndcapScHitsEven", "ECalEndcapScHitsOdd"],
+ "ECalRingSimHitCollections": "EcalEndcapRingCollection",
+ "HCalBarrelSimHitCollections": "HCalBarrelRPCHits",
+ "HCalEndcapSimHitCollections": "HCalEndcapRPCHits",
+ "HCalRingSimHitCollections": "HCalECRingRPCHits",
+ "ECalSimHitCollections": [
+ "%(ECalBarrelSimHitCollections)s",
+ "%(ECalEndcapSimHitCollections)s",
+ "%(ECalRingSimHitCollections)s",
+ ],
+ "HCalSimHitCollections": [
+ "%(HCalBarrelSimHitCollections)s",
+ "%(HCalEndcapSimHitCollections)s",
+ "%(HCalRingSimHitCollections)s",
+ ],
+ "BeamCalBackgroundFile": "HighLevelReco/BeamCalBackground/BeamCalBackground-E%(CMSEnergy)s-B4.0-RealisticNominalAntiDid.root",
+}
diff --git a/StandardConfig/production/CaloDigi/AHcalDigi.py b/StandardConfig/production/CaloDigi/AHcalDigi.py
new file mode 100644
index 00000000..a318dc82
--- /dev/null
+++ b/StandardConfig/production/CaloDigi/AHcalDigi.py
@@ -0,0 +1,112 @@
+#!/usr/bin/env python3
+
+from Gaudi.Configuration import INFO
+from Configurables import MarlinProcessorWrapper
+
+MyHcalBarrelDigi = MarlinProcessorWrapper("MyHcalBarrelDigi")
+MyHcalBarrelDigi.OutputLevel = INFO
+MyHcalBarrelDigi.ProcessorType = "RealisticCaloDigiScinPpd"
+MyHcalBarrelDigi.Parameters = {
+ "CellIDLayerString": ["layer"],
+ "calibration_mip": [CONSTANTS["HcalBarrelMip"]],
+ "inputHitCollections": ["HcalBarrelRegCollection"],
+ "outputHitCollections": ["HcalBarrelCollectionDigi"],
+ "outputRelationCollections": ["HcalBarrelRelationsSimDigi"],
+ "ppd_mipPe": ["15"],
+ "ppd_npix": ["2000"],
+ "ppd_npix_uncert": ["0"],
+ "ppd_pix_spread": ["0"],
+ "threshold": ["0.5"],
+ "thresholdUnit": ["MIP"],
+ "timingCut": ["1"],
+}
+
+MyHcalBarrelReco = MarlinProcessorWrapper("MyHcalBarrelReco")
+MyHcalBarrelReco.OutputLevel = INFO
+MyHcalBarrelReco.ProcessorType = "RealisticCaloRecoScinPpd"
+MyHcalBarrelReco.Parameters = {
+ "CellIDLayerString": ["layer"],
+ "calibration_factorsMipGev": [CONSTANTS["HcalBarrelEnergyFactors"]],
+ "calibration_layergroups": ["100"],
+ "inputHitCollections": ["HcalBarrelCollectionDigi"],
+ "inputRelationCollections": ["HcalBarrelRelationsSimDigi"],
+ "outputHitCollections": ["HcalBarrelCollectionRec"],
+ "outputRelationCollections": ["HcalBarrelRelationsSimRec"],
+ "ppd_mipPe": ["15"],
+ "ppd_npix": ["2000"],
+}
+
+MyHcalEndcapDigi = MarlinProcessorWrapper("MyHcalEndcapDigi")
+MyHcalEndcapDigi.OutputLevel = INFO
+MyHcalEndcapDigi.ProcessorType = "RealisticCaloDigiScinPpd"
+MyHcalEndcapDigi.Parameters = {
+ "CellIDLayerString": ["layer"],
+ "calibration_mip": [CONSTANTS["HcalEndcapMip"]],
+ "inputHitCollections": ["HcalEndcapsCollection"],
+ "outputHitCollections": ["HcalEndcapsCollectionDigi"],
+ "outputRelationCollections": ["HcalEndcapsRelationsSimDigi"],
+ "ppd_mipPe": ["15"],
+ "ppd_npix": ["2000"],
+ "ppd_npix_uncert": ["0"],
+ "ppd_pix_spread": ["0"],
+ "threshold": ["0.5"],
+ "thresholdUnit": ["MIP"],
+ "timingCut": ["1"],
+}
+
+MyHcalEndcapReco = MarlinProcessorWrapper("MyHcalEndcapReco")
+MyHcalEndcapReco.OutputLevel = INFO
+MyHcalEndcapReco.ProcessorType = "RealisticCaloRecoScinPpd"
+MyHcalEndcapReco.Parameters = {
+ "CellIDLayerString": ["layer"],
+ "calibration_factorsMipGev": [CONSTANTS["HcalEndcapEnergyFactors"]],
+ "calibration_layergroups": ["100"],
+ "inputHitCollections": ["HcalEndcapsCollectionDigi"],
+ "inputRelationCollections": ["HcalEndcapsRelationsSimDigi"],
+ "outputHitCollections": ["HcalEndcapsCollectionRec"],
+ "outputRelationCollections": ["HcalEndcapsRelationsSimRec"],
+ "ppd_mipPe": ["15"],
+ "ppd_npix": ["2000"],
+}
+
+MyHcalRingDigi = MarlinProcessorWrapper("MyHcalRingDigi")
+MyHcalRingDigi.OutputLevel = INFO
+MyHcalRingDigi.ProcessorType = "RealisticCaloDigiScinPpd"
+MyHcalRingDigi.Parameters = {
+ "CellIDLayerString": ["layer"],
+ "calibration_mip": [CONSTANTS["HcalRingMip"]],
+ "inputHitCollections": ["HcalEndcapRingCollection"],
+ "outputHitCollections": ["HcalEndcapRingCollectionDigi"],
+ "outputRelationCollections": ["HcalEndcapRingRelationsSimDigi"],
+ "ppd_mipPe": ["15"],
+ "ppd_npix": ["2000"],
+ "ppd_npix_uncert": ["0"],
+ "ppd_pix_spread": ["0"],
+ "threshold": ["0.5"],
+ "thresholdUnit": ["MIP"],
+ "timingCut": ["1"],
+}
+
+MyHcalRingReco = MarlinProcessorWrapper("MyHcalRingReco")
+MyHcalRingReco.OutputLevel = INFO
+MyHcalRingReco.ProcessorType = "RealisticCaloRecoScinPpd"
+MyHcalRingReco.Parameters = {
+ "CellIDLayerString": ["layer"],
+ "calibration_factorsMipGev": [CONSTANTS["HcalRingEnergyFactors"]],
+ "calibration_layergroups": ["100"],
+ "inputHitCollections": ["HcalEndcapRingCollectionDigi"],
+ "inputRelationCollections": ["HcalEndcapRingRelationsSimDigi"],
+ "outputHitCollections": ["HcalEndcapRingCollectionRec"],
+ "outputRelationCollections": ["HcalEndcapRingRelationsSimRec"],
+ "ppd_mipPe": ["15"],
+ "ppd_npix": ["2000"],
+}
+
+AHcalDigiSequence = [
+ MyHcalBarrelDigi,
+ MyHcalBarrelReco,
+ MyHcalEndcapDigi,
+ MyHcalEndcapReco,
+ MyHcalRingDigi,
+ MyHcalRingReco,
+]
diff --git a/StandardConfig/production/CaloDigi/FcalDigi.py b/StandardConfig/production/CaloDigi/FcalDigi.py
new file mode 100644
index 00000000..eca32241
--- /dev/null
+++ b/StandardConfig/production/CaloDigi/FcalDigi.py
@@ -0,0 +1,50 @@
+#!/usr/bin/env python3
+
+from Gaudi.Configuration import INFO
+from Configurables import MarlinProcessorWrapper
+
+
+MySimpleBCalDigi = MarlinProcessorWrapper("MySimpleBCalDigi")
+MySimpleBCalDigi.OutputLevel = INFO
+MySimpleBCalDigi.ProcessorType = "SimpleFCalDigi"
+MySimpleBCalDigi.Parameters = {
+ "CalibrFCAL": [CONSTANTS["BeamCalCalibrationFactor"]],
+ "CaloID": ["bcal"],
+ "CellIDLayerString": ["layer"],
+ "FCALCollections": ["BeamCalCollection"],
+ "FCALOutputCollection": ["BCAL"],
+ "FcalThreshold": ["5e-05"],
+ "RelationOutputCollection": ["RelationBCalHit"],
+}
+
+MySimpleLCalDigi = MarlinProcessorWrapper("MySimpleLCalDigi")
+MySimpleLCalDigi.OutputLevel = INFO
+MySimpleLCalDigi.ProcessorType = "SimpleFCalDigi"
+MySimpleLCalDigi.Parameters = {
+ "CalibrFCAL": ["89.0"],
+ "CaloID": ["lcal"],
+ "CellIDLayerString": ["layer"],
+ "FCALCollections": ["LumiCalCollection"],
+ "FCALOutputCollection": ["LCAL"],
+ "FcalThreshold": ["0.4e-04"],
+ "RelationOutputCollection": ["RelationLcalHit"],
+}
+
+MySimpleLHCalDigi = MarlinProcessorWrapper("MySimpleLHCalDigi")
+MySimpleLHCalDigi.OutputLevel = INFO
+MySimpleLHCalDigi.ProcessorType = "SimpleFCalDigi"
+MySimpleLHCalDigi.Parameters = {
+ "CalibrFCAL": ["150"],
+ "CaloID": ["lhcal"],
+ "CellIDLayerString": ["layer"],
+ "FCALCollections": ["LHCalCollection"],
+ "FCALOutputCollection": ["LHCAL"],
+ "FcalThreshold": ["1.7e-04"],
+ "RelationOutputCollection": ["RelationLHcalHit"],
+}
+
+FcalDigiSequence = [
+ MySimpleBCalDigi,
+ MySimpleLCalDigi,
+ MySimpleLHCalDigi,
+]
diff --git a/StandardConfig/production/CaloDigi/MuonDigi.py b/StandardConfig/production/CaloDigi/MuonDigi.py
new file mode 100644
index 00000000..7b2de6a6
--- /dev/null
+++ b/StandardConfig/production/CaloDigi/MuonDigi.py
@@ -0,0 +1,22 @@
+#!/usr/bin/env python3
+
+from Gaudi.Configuration import INFO
+from Configurables import MarlinProcessorWrapper
+
+MyDDSimpleMuonDigi = MarlinProcessorWrapper("MyDDSimpleMuonDigi")
+MyDDSimpleMuonDigi.OutputLevel = INFO
+MyDDSimpleMuonDigi.ProcessorType = "DDSimpleMuonDigi"
+MyDDSimpleMuonDigi.Parameters = {
+ "CalibrMUON": [CONSTANTS["MuonCalibration"]],
+ "CellIDLayerString": ["layer"],
+ "DetectorNameBarrel": ["YokeBarrel"],
+ "DetectorNameEndcap": ["YokeEndcap"],
+ "MUONCollections": ["YokeBarrelCollection", "YokeEndcapsCollection"],
+ "MUONOutputCollection": ["MUON"],
+ "MaxHitEnergyMUON": ["2.0"],
+ "MuonThreshold": ["0.025"],
+ "MuonTimeThreshold": ["0.025"],
+ "RelationOutputCollection": ["RelationMuonHit"],
+}
+
+MuonDigiSequence = [MyDDSimpleMuonDigi]
diff --git a/StandardConfig/production/CaloDigi/SDHcalDigi.py b/StandardConfig/production/CaloDigi/SDHcalDigi.py
new file mode 100644
index 00000000..318e33d6
--- /dev/null
+++ b/StandardConfig/production/CaloDigi/SDHcalDigi.py
@@ -0,0 +1,74 @@
+#!/usr/bin/env python3
+
+from Gaudi.Configuration import INFO
+from Configurables import MarlinProcessorWrapper
+
+MySimDigital = MarlinProcessorWrapper("MySimDigital")
+MySimDigital.OutputLevel = INFO
+MySimDigital.ProcessorType = "SimDigital"
+MySimDigital.Parameters = {
+ "AngleCorrectionPower": ["0.65"],
+ "CellIDEncodingStringType": ["LCGEO"],
+ "ChargeSplitterOption": ["Exact"],
+ "ChargeSplitterd": ["0.221368"],
+ "EffMapConstantValue": ["0.95"],
+ "HCALCellSize": ["10"],
+ "HCALThreshold": ["0.114", "6.12", "16.83"],
+ "KeepAtLeastOneStep": ["true"],
+ "LinkSteps": ["true"],
+ "PolyaAverageCharge": ["5.55942"],
+ "PolyaWidthParameter": ["2.42211"],
+ "RPC_PadSeparation": ["0.408"],
+ "StepCellCenterMaxDistanceLayerDirection": ["0.0005"],
+ "StepLengthCut": ["0.001"],
+ "StepsMinDistanceRPCplaneDirection": ["0.5"],
+ "doThresholds": ["true"],
+ "functionRange": ["61"],
+ "inputHitCollections": [
+ "HCalBarrelRPCHits",
+ "HCalEndcapRPCHits",
+ "HCalECRingRPCHits",
+ ],
+ "outputHitCollections": [
+ "HcalBarrelCollectionDigi",
+ "HcalEndcapsCollectionDigi",
+ "HcalEndcapRingCollectionDigi",
+ ],
+ "outputRelationCollections": [
+ "HcalBarrelRelationsSimDigi",
+ "HcalEndcapsRelationsSimDigi",
+ "HcalEndcapRingRelationsSimDigi",
+ ],
+}
+
+MySimDigitalToEnergy = MarlinProcessorWrapper("MySimDigitalToEnergy")
+MySimDigitalToEnergy.OutputLevel = INFO
+MySimDigitalToEnergy.ProcessorType = "SimDigitalToEnergy"
+MySimDigitalToEnergy.Parameters = {
+ "EnergyCalibration": [CONSTANTS["SDHcalEnergyFactors"]],
+ "inputHitCollections": [
+ "HcalBarrelCollectionDigi",
+ "HcalEndcapsCollectionDigi",
+ "HcalEndcapRingCollectionDigi",
+ ],
+ "inputRelationCollections": [
+ "HcalBarrelRelationsSimDigi",
+ "HcalEndcapsRelationsSimDigi",
+ "HcalEndcapRingRelationsSimDigi",
+ ],
+ "outputHitCollections": [
+ "HcalBarrelCollectionRec",
+ "HcalEndcapsCollectionRec",
+ "HcalEndcapRingCollectionRec",
+ ],
+ "outputRelationCollections": [
+ "HcalBarrelRelationsSimRec",
+ "HcalEndcapsRelationsSimRec",
+ "HcalEndcapRingRelationsSimRec",
+ ],
+}
+
+SDHcalDigiSequence = [
+ MySimDigital,
+ MySimDigitalToEnergy,
+]
diff --git a/StandardConfig/production/CaloDigi/ScEcalDigi.py b/StandardConfig/production/CaloDigi/ScEcalDigi.py
new file mode 100644
index 00000000..03d2e125
--- /dev/null
+++ b/StandardConfig/production/CaloDigi/ScEcalDigi.py
@@ -0,0 +1,277 @@
+#!/usr/bin/env python3
+
+from Gaudi.Configuration import INFO
+from Configurables import MarlinProcessorWrapper
+
+MyEcalBarrelDigiEven = MarlinProcessorWrapper("MyEcalBarrelDigiEven")
+MyEcalBarrelDigiEven.OutputLevel = INFO
+MyEcalBarrelDigiEven.ProcessorType = "RealisticCaloDigiScinPpd"
+MyEcalBarrelDigiEven.Parameters = {
+ "CellIDLayerString": ["layer"],
+ "calibration_mip": [CONSTANTS["EcalBarrelMip"]],
+ "inputHitCollections": ["ECalBarrelScHitsEven"],
+ "outputHitCollections": ["ECalBarrelScHitsEvenDigi"],
+ "outputRelationCollections": ["ECalBarrelScHitsEvenDigiRelations"],
+ "ppd_mipPe": ["10"],
+ "ppd_npix": ["10000"],
+ "ppd_npix_uncert": ["0"],
+ "ppd_pix_spread": ["0"],
+ "threshold": ["0.5"],
+ "thresholdUnit": ["MIP"],
+ "timingCut": ["1"],
+}
+
+MyEcalBarrelDigiOdd = MarlinProcessorWrapper("MyEcalBarrelDigiOdd")
+MyEcalBarrelDigiOdd.OutputLevel = INFO
+MyEcalBarrelDigiOdd.ProcessorType = "RealisticCaloDigiScinPpd"
+MyEcalBarrelDigiOdd.Parameters = {
+ "CellIDLayerString": ["layer"],
+ "calibration_mip": [CONSTANTS["EcalBarrelMip"]],
+ "inputHitCollections": ["ECalBarrelScHitsOdd"],
+ "outputHitCollections": ["ECalBarrelScHitsOddDigi"],
+ "outputRelationCollections": ["ECalBarrelScHitsOddDigiRelations"],
+ "ppd_mipPe": ["10"],
+ "ppd_npix": ["10000"],
+ "ppd_npix_uncert": ["0"],
+ "ppd_pix_spread": ["0"],
+ "threshold": ["0.5"],
+ "thresholdUnit": ["MIP"],
+ "timingCut": ["1"],
+}
+
+MyEcalBarrelRecoEven = MarlinProcessorWrapper("MyEcalBarrelRecoEven")
+MyEcalBarrelRecoEven.OutputLevel = INFO
+MyEcalBarrelRecoEven.ProcessorType = "RealisticCaloRecoScinPpd"
+MyEcalBarrelRecoEven.Parameters = {
+ "CellIDLayerString": ["layer"],
+ "calibration_factorsMipGev": [CONSTANTS["EcalBarrelEnergyFactors"]],
+ "calibration_layergroups": ["20", "11"],
+ "inputHitCollections": ["ECalBarrelScHitsEvenDigi"],
+ "inputRelationCollections": ["ECalBarrelScHitsEvenDigiRelations"],
+ "outputHitCollections": ["ECalBarrelScHitsEvenRec"],
+ "outputRelationCollections": ["ECalBarrelScHitsEvenRecRelations"],
+ "ppd_mipPe": ["10"],
+ "ppd_npix": ["10000"],
+}
+
+MyEcalBarrelRecoOdd = MarlinProcessorWrapper("MyEcalBarrelRecoOdd")
+MyEcalBarrelRecoOdd.OutputLevel = INFO
+MyEcalBarrelRecoOdd.ProcessorType = "RealisticCaloRecoScinPpd"
+MyEcalBarrelRecoOdd.Parameters = {
+ "CellIDLayerString": ["layer"],
+ "calibration_factorsMipGev": [CONSTANTS["EcalBarrelEnergyFactors"]],
+ "calibration_layergroups": ["20", "11"],
+ "inputHitCollections": ["ECalBarrelScHitsOddDigi"],
+ "inputRelationCollections": ["ECalBarrelScHitsOddDigiRelations"],
+ "outputHitCollections": ["ECalBarrelScHitsOddRec"],
+ "outputRelationCollections": ["ECalBarrelScHitsOddRecRelations"],
+ "ppd_mipPe": ["10"],
+ "ppd_npix": ["10000"],
+}
+
+MyEcalEndcapDigiEven = MarlinProcessorWrapper("MyEcalEndcapDigiEven")
+MyEcalEndcapDigiEven.OutputLevel = INFO
+MyEcalEndcapDigiEven.ProcessorType = "RealisticCaloDigiScinPpd"
+MyEcalEndcapDigiEven.Parameters = {
+ "CellIDLayerString": ["layer"],
+ "calibration_mip": [CONSTANTS["EcalEndcapMip"]],
+ "inputHitCollections": ["ECalEndcapScHitsEven"],
+ "outputHitCollections": ["ECalEndcapScHitsEvenDigi"],
+ "outputRelationCollections": ["ECalEndcapScHitsEvenDigiRelations"],
+ "ppd_mipPe": ["10"],
+ "ppd_npix": ["10000"],
+ "ppd_npix_uncert": ["0"],
+ "ppd_pix_spread": ["0"],
+ "threshold": ["0.5"],
+ "thresholdUnit": ["MIP"],
+ "timingCut": ["1"],
+}
+
+MyEcalEndcapDigiOdd = MarlinProcessorWrapper("MyEcalEndcapDigiOdd")
+MyEcalEndcapDigiOdd.OutputLevel = INFO
+MyEcalEndcapDigiOdd.ProcessorType = "RealisticCaloDigiScinPpd"
+MyEcalEndcapDigiOdd.Parameters = {
+ "CellIDLayerString": ["layer"],
+ "calibration_mip": [CONSTANTS["EcalEndcapMip"]],
+ "inputHitCollections": ["ECalEndcapScHitsOdd"],
+ "outputHitCollections": ["ECalEndcapScHitsOddDigi"],
+ "outputRelationCollections": ["ECalEndcapScHitsOddDigiRelations"],
+ "ppd_mipPe": ["10"],
+ "ppd_npix": ["10000"],
+ "ppd_npix_uncert": ["0"],
+ "ppd_pix_spread": ["0"],
+ "threshold": ["0.5"],
+ "thresholdUnit": ["MIP"],
+ "timingCut": ["1"],
+}
+
+MyEcalEndcapRecoEven = MarlinProcessorWrapper("MyEcalEndcapRecoEven")
+MyEcalEndcapRecoEven.OutputLevel = INFO
+MyEcalEndcapRecoEven.ProcessorType = "RealisticCaloRecoScinPpd"
+MyEcalEndcapRecoEven.Parameters = {
+ "CellIDLayerString": ["layer"],
+ "calibration_factorsMipGev": [CONSTANTS["EcalEndcapEnergyFactors"]],
+ "calibration_layergroups": ["20", "11"],
+ "inputHitCollections": ["ECalEndcapScHitsEvenDigi"],
+ "inputRelationCollections": ["ECalEndcapScHitsEvenDigiRelations"],
+ "outputHitCollections": ["ECalEndcapScHitsEvenRec"],
+ "outputRelationCollections": ["ECalEndcapScHitsEvenRecRelations"],
+ "ppd_mipPe": ["10"],
+ "ppd_npix": ["10000"],
+}
+
+MyEcalEndcapRecoOdd = MarlinProcessorWrapper("MyEcalEndcapRecoOdd")
+MyEcalEndcapRecoOdd.OutputLevel = INFO
+MyEcalEndcapRecoOdd.ProcessorType = "RealisticCaloRecoScinPpd"
+MyEcalEndcapRecoOdd.Parameters = {
+ "CellIDLayerString": ["layer"],
+ "calibration_factorsMipGev": [CONSTANTS["EcalEndcapEnergyFactors"]],
+ "calibration_layergroups": ["20", "11"],
+ "inputHitCollections": ["ECalEndcapScHitsOddDigi"],
+ "inputRelationCollections": ["ECalEndcapScHitsOddDigiRelations"],
+ "outputHitCollections": ["ECalEndcapScHitsOddRec"],
+ "outputRelationCollections": ["ECalEndcapScHitsOddRecRelations"],
+ "ppd_mipPe": ["10"],
+ "ppd_npix": ["10000"],
+}
+
+MyEcalRingDigi = MarlinProcessorWrapper("MyEcalRingDigi")
+MyEcalRingDigi.OutputLevel = INFO
+MyEcalRingDigi.ProcessorType = "RealisticCaloDigiSilicon"
+MyEcalRingDigi.Parameters = {
+ "CellIDLayerString": ["layer"],
+ "calibration_mip": [CONSTANTS["EcalRingMip"]],
+ "inputHitCollections": ["EcalEndcapRingCollection"],
+ "outputHitCollections": ["EcalEndcapRingCollectionDigi"],
+ "outputRelationCollections": ["EcalEndcapRingRelationsSimDigi"],
+ "threshold": ["0.5"],
+ "timingCut": ["1"],
+}
+
+MyEcalRingReco = MarlinProcessorWrapper("MyEcalRingReco")
+MyEcalRingReco.OutputLevel = INFO
+MyEcalRingReco.ProcessorType = "RealisticCaloRecoSilicon"
+MyEcalRingReco.Parameters = {
+ "CellIDLayerString": ["layer"],
+ "calibration_factorsMipGev": [CONSTANTS["EcalRingEnergyFactors"]],
+ "calibration_layergroups": ["20", "11"],
+ "inputHitCollections": ["EcalEndcapRingCollectionDigi"],
+ "inputRelationCollections": ["EcalEndcapRingRelationsSimDigi"],
+ "outputHitCollections": ["EcalEndcapRingCollectionRec"],
+ "outputRelationCollections": ["EcalEndcapRingRelationsSimRec"],
+}
+
+MyDDStripSplitterBarrel = MarlinProcessorWrapper("MyDDStripSplitterBarrel")
+MyDDStripSplitterBarrel.OutputLevel = INFO
+MyDDStripSplitterBarrel.ProcessorType = "DDStripSplitter"
+MyDDStripSplitterBarrel.Parameters = {
+ "ECALcollection_evenLayers": ["ECalBarrelScHitsEvenRec"],
+ "ECALcollection_oddLayers": ["ECalBarrelScHitsOddRec"],
+ "LCRelations_evenLayers": ["ECalBarrelScHitsEvenRecRelations"],
+ "LCRelations_oddLayers": ["ECalBarrelScHitsOddRecRelations"],
+ "isBarrelHits": ["true"],
+ "splitEcalCollection": ["ECalBarrelScHitsSplit"],
+ "splitEcalRelCol": ["EcalBarrelRelationsSimRec"],
+ "unsplitEcalCollection": ["ECalBarrelScHitsUnSplit"],
+}
+
+MyDDStripSplitterEndcap = MarlinProcessorWrapper("MyDDStripSplitterEndcap")
+MyDDStripSplitterEndcap.OutputLevel = INFO
+MyDDStripSplitterEndcap.ProcessorType = "DDStripSplitter"
+MyDDStripSplitterEndcap.Parameters = {
+ "ECALcollection_evenLayers": ["ECalEndcapScHitsEvenRec"],
+ "ECALcollection_oddLayers": ["ECalEndcapScHitsOddRec"],
+ "LCRelations_evenLayers": ["ECalEndcapScHitsEvenRecRelations"],
+ "LCRelations_oddLayers": ["ECalEndcapScHitsOddRecRelations"],
+ "isBarrelHits": ["false"],
+ "splitEcalCollection": ["ECalEndcapScHitsSplit"],
+ "splitEcalRelCol": ["EcalEndcapsRelationsSimRec"],
+ "unsplitEcalCollection": ["ECalEndcapScHitsUnSplit"],
+}
+
+MergeEcalBarrelHits = MarlinProcessorWrapper("MergeEcalBarrelHits")
+MergeEcalBarrelHits.OutputLevel = INFO
+MergeEcalBarrelHits.ProcessorType = "MergeCollections"
+MergeEcalBarrelHits.Parameters = {
+ "InputCollections": ["ECalBarrelScHitsEven", "ECalBarrelScHitsOdd"],
+ "OutputCollection": ["EcalBarrelCollection"],
+}
+
+MergeEcalEndcapHits = MarlinProcessorWrapper("MergeEcalEndcapHits")
+MergeEcalEndcapHits.OutputLevel = INFO
+MergeEcalEndcapHits.ProcessorType = "MergeCollections"
+MergeEcalEndcapHits.Parameters = {
+ "InputCollections": ["ECalEndcapScHitsEven", "ECalEndcapScHitsOdd"],
+ "OutputCollection": ["EcalEndcapsCollection"],
+}
+
+MergeEcalBarrelDigiHits = MarlinProcessorWrapper("MergeEcalBarrelDigiHits")
+MergeEcalBarrelDigiHits.OutputLevel = INFO
+MergeEcalBarrelDigiHits.ProcessorType = "MergeCollections"
+MergeEcalBarrelDigiHits.Parameters = {
+ "InputCollections": ["ECalBarrelScHitsEvenDigi", "ECalBarrelScHitsOddDigi"],
+ "OutputCollection": ["EcalBarrelCollectionDigi"],
+}
+
+MergeEcalEndcapDigiHits = MarlinProcessorWrapper("MergeEcalEndcapDigiHits")
+MergeEcalEndcapDigiHits.OutputLevel = INFO
+MergeEcalEndcapDigiHits.ProcessorType = "MergeCollections"
+MergeEcalEndcapDigiHits.Parameters = {
+ "InputCollections": ["ECalEndcapScHitsEvenDigi", "ECalEndcapScHitsOddDigi"],
+ "OutputCollection": ["EcalEndcapsCollectionDigi"],
+}
+
+MergeEcalBarrelRecStripHits = MarlinProcessorWrapper("MergeEcalBarrelRecStripHits")
+MergeEcalBarrelRecStripHits.OutputLevel = INFO
+MergeEcalBarrelRecStripHits.ProcessorType = "MergeCollections"
+MergeEcalBarrelRecStripHits.Parameters = {
+ "InputCollections": ["ECalBarrelScHitsEvenRec", "ECalBarrelScHitsOddRec"],
+ "OutputCollection": ["EcalBarrelStripCollectionRec"],
+}
+
+MergeEcalEndcapRecStripHits = MarlinProcessorWrapper("MergeEcalEndcapRecStripHits")
+MergeEcalEndcapRecStripHits.OutputLevel = INFO
+MergeEcalEndcapRecStripHits.ProcessorType = "MergeCollections"
+MergeEcalEndcapRecStripHits.Parameters = {
+ "InputCollections": ["ECalEndcapScHitsEvenRec", "ECalEndcapScHitsOddRec"],
+ "OutputCollection": ["EcalEndcapStripCollectionRec"],
+}
+
+MergeEcalBarrelRecHits = MarlinProcessorWrapper("MergeEcalBarrelRecHits")
+MergeEcalBarrelRecHits.OutputLevel = INFO
+MergeEcalBarrelRecHits.ProcessorType = "MergeCollections"
+MergeEcalBarrelRecHits.Parameters = {
+ "InputCollections": ["ECalBarrelScHitsSplit", "ECalBarrelScHitsUnSplit"],
+ "OutputCollection": ["EcalBarrelCollectionRec"],
+}
+
+MergeEcalEndcapRecHits = MarlinProcessorWrapper("MergeEcalEndcapRecHits")
+MergeEcalEndcapRecHits.OutputLevel = INFO
+MergeEcalEndcapRecHits.ProcessorType = "MergeCollections"
+MergeEcalEndcapRecHits.Parameters = {
+ "InputCollections": ["ECalEndcapScHitsSplit", "ECalEndcapScHitsUnSplit"],
+ "OutputCollection": ["EcalEndcapsCollectionRec"],
+}
+
+ScEcalSequence = [
+ MyEcalBarrelDigiEven,
+ MyEcalBarrelDigiOdd,
+ MyEcalBarrelRecoEven,
+ MyEcalBarrelRecoOdd,
+ MyEcalEndcapDigiEven,
+ MyEcalEndcapDigiOdd,
+ MyEcalEndcapRecoEven,
+ MyEcalEndcapRecoOdd,
+ MyEcalRingDigi,
+ MyEcalRingReco,
+ MyDDStripSplitterBarrel,
+ MyDDStripSplitterEndcap,
+ MergeEcalBarrelHits,
+ MergeEcalEndcapHits,
+ MergeEcalBarrelDigiHits,
+ MergeEcalEndcapDigiHits,
+ MergeEcalBarrelRecStripHits,
+ MergeEcalEndcapRecStripHits,
+ MergeEcalBarrelRecHits,
+ MergeEcalEndcapRecHits,
+]
diff --git a/StandardConfig/production/CaloDigi/SiWEcalDigi.py b/StandardConfig/production/CaloDigi/SiWEcalDigi.py
new file mode 100644
index 00000000..c511e501
--- /dev/null
+++ b/StandardConfig/production/CaloDigi/SiWEcalDigi.py
@@ -0,0 +1,142 @@
+#!/usr/bin/env python3
+
+from Gaudi.Configuration import INFO
+from Configurables import MarlinProcessorWrapper
+
+MergeCollectionsEcalBarrelHits = MarlinProcessorWrapper(
+ "MergeCollectionsEcalBarrelHits"
+)
+MergeCollectionsEcalBarrelHits.OutputLevel = INFO
+MergeCollectionsEcalBarrelHits.ProcessorType = "MergeCollections"
+MergeCollectionsEcalBarrelHits.Parameters = {
+ "InputCollections": ["ECalBarrelSiHitsEven", "ECalBarrelSiHitsOdd"],
+ "OutputCollection": ["EcalBarrelCollection"],
+}
+
+MergeCollectionsEcalEndcapHits = MarlinProcessorWrapper(
+ "MergeCollectionsEcalEndcapHits"
+)
+MergeCollectionsEcalEndcapHits.OutputLevel = INFO
+MergeCollectionsEcalEndcapHits.ProcessorType = "MergeCollections"
+MergeCollectionsEcalEndcapHits.Parameters = {
+ "InputCollections": ["ECalEndcapSiHitsEven", "ECalEndcapSiHitsOdd"],
+ "OutputCollection": ["EcalEndcapsCollection"],
+}
+
+MyEcalBarrelDigi = MarlinProcessorWrapper("MyEcalBarrelDigi")
+MyEcalBarrelDigi.OutputLevel = INFO
+MyEcalBarrelDigi.ProcessorType = "RealisticCaloDigiSilicon"
+MyEcalBarrelDigi.Parameters = {
+ "CellIDLayerString": ["layer"],
+ "calibration_mip": [CONSTANTS["EcalBarrelMip"]],
+ "inputHitCollections": ["EcalBarrelCollection"],
+ "outputHitCollections": ["EcalBarrelCollectionDigi"],
+ "outputRelationCollections": ["EcalBarrelRelationsSimDigi"],
+ "threshold": ["0.5"],
+ "timingCut": ["1"],
+}
+
+MyEcalBarrelReco = MarlinProcessorWrapper("MyEcalBarrelReco")
+MyEcalBarrelReco.OutputLevel = INFO
+MyEcalBarrelReco.ProcessorType = "RealisticCaloRecoSilicon"
+MyEcalBarrelReco.Parameters = {
+ "CellIDLayerString": ["layer"],
+ "calibration_factorsMipGev": [CONSTANTS["EcalBarrelEnergyFactors"]],
+ "calibration_layergroups": ["20", "11"],
+ "inputHitCollections": ["EcalBarrelCollectionDigi"],
+ "inputRelationCollections": ["EcalBarrelRelationsSimDigi"],
+ "outputHitCollections": ["EcalBarrelCollectionRec"],
+ "outputRelationCollections": ["EcalBarrelRelationsSimRec"],
+}
+
+MyEcalBarrelGapFiller = MarlinProcessorWrapper("MyEcalBarrelGapFiller")
+MyEcalBarrelGapFiller.OutputLevel = INFO
+MyEcalBarrelGapFiller.ProcessorType = "BruteForceEcalGapFiller"
+MyEcalBarrelGapFiller.Parameters = {
+ "CellIDLayerString": ["layer"],
+ "CellIDModuleString": ["module"],
+ "CellIDStaveString": ["stave"],
+ "applyInterModuleCorrection": ["false"],
+ "expectedInterModuleDistance": ["7.0"],
+ "inputHitCollection": ["EcalBarrelCollectionRec"],
+ "outputHitCollection": ["EcalBarrelCollectionGapHits"],
+}
+
+MyEcalEndcapDigi = MarlinProcessorWrapper("MyEcalEndcapDigi")
+MyEcalEndcapDigi.OutputLevel = INFO
+MyEcalEndcapDigi.ProcessorType = "RealisticCaloDigiSilicon"
+MyEcalEndcapDigi.Parameters = {
+ "CellIDLayerString": ["layer"],
+ "calibration_mip": [CONSTANTS["EcalEndcapMip"]],
+ "inputHitCollections": ["EcalEndcapsCollection"],
+ "outputHitCollections": ["EcalEndcapsCollectionDigi"],
+ "outputRelationCollections": ["EcalEndcapsRelationsSimDigi"],
+ "threshold": ["0.5"],
+ "timingCut": ["1"],
+}
+
+MyEcalEndcapReco = MarlinProcessorWrapper("MyEcalEndcapReco")
+MyEcalEndcapReco.OutputLevel = INFO
+MyEcalEndcapReco.ProcessorType = "RealisticCaloRecoSilicon"
+MyEcalEndcapReco.Parameters = {
+ "CellIDLayerString": ["layer"],
+ "calibration_factorsMipGev": [CONSTANTS["EcalEndcapEnergyFactors"]],
+ "calibration_layergroups": ["20", "11"],
+ "inputHitCollections": ["EcalEndcapsCollectionDigi"],
+ "inputRelationCollections": ["EcalEndcapsRelationsSimDigi"],
+ "outputHitCollections": ["EcalEndcapsCollectionRec"],
+ "outputRelationCollections": ["EcalEndcapsRelationsSimRec"],
+}
+
+MyEcalEndcapGapFiller = MarlinProcessorWrapper("MyEcalEndcapGapFiller")
+MyEcalEndcapGapFiller.OutputLevel = INFO
+MyEcalEndcapGapFiller.ProcessorType = "BruteForceEcalGapFiller"
+MyEcalEndcapGapFiller.Parameters = {
+ "CellIDLayerString": ["layer"],
+ "CellIDModuleString": ["module"],
+ "CellIDStaveString": ["stave"],
+ "applyInterModuleCorrection": ["false"],
+ "expectedInterModuleDistance": ["7.0"],
+ "inputHitCollection": ["EcalEndcapsCollectionRec"],
+ "outputHitCollection": ["EcalEndcapsCollectionGapHits"],
+}
+
+MyEcalRingDigi = MarlinProcessorWrapper("MyEcalRingDigi")
+MyEcalRingDigi.OutputLevel = INFO
+MyEcalRingDigi.ProcessorType = "RealisticCaloDigiSilicon"
+MyEcalRingDigi.Parameters = {
+ "CellIDLayerString": ["layer"],
+ "calibration_mip": [CONSTANTS["EcalRingMip"]],
+ "inputHitCollections": ["EcalEndcapRingCollection"],
+ "outputHitCollections": ["EcalEndcapRingCollectionDigi"],
+ "outputRelationCollections": ["EcalEndcapRingRelationsSimDigi"],
+ "threshold": ["0.5"],
+ "timingCut": ["1"],
+}
+
+MyEcalRingReco = MarlinProcessorWrapper("MyEcalRingReco")
+MyEcalRingReco.OutputLevel = INFO
+MyEcalRingReco.ProcessorType = "RealisticCaloRecoSilicon"
+MyEcalRingReco.Parameters = {
+ "CellIDLayerString": ["layer"],
+ "calibration_factorsMipGev": [CONSTANTS["EcalRingEnergyFactors"]],
+ "calibration_layergroups": ["20", "11"],
+ "inputHitCollections": ["EcalEndcapRingCollectionDigi"],
+ "inputRelationCollections": ["EcalEndcapRingRelationsSimDigi"],
+ "outputHitCollections": ["EcalEndcapRingCollectionRec"],
+ "outputRelationCollections": ["EcalEndcapRingRelationsSimRec"],
+}
+
+
+SiWEcalDigiSequence = [
+ MergeCollectionsEcalBarrelHits,
+ MergeCollectionsEcalEndcapHits,
+ MyEcalBarrelDigi,
+ MyEcalBarrelReco,
+ MyEcalBarrelGapFiller,
+ MyEcalEndcapDigi,
+ MyEcalEndcapReco,
+ MyEcalEndcapGapFiller,
+ MyEcalRingDigi,
+ MyEcalRingReco,
+]
diff --git a/StandardConfig/production/Config/Parameters1000GeV.cfg b/StandardConfig/production/Config/Parameters1000GeV.cfg
new file mode 100644
index 00000000..07f3aaa3
--- /dev/null
+++ b/StandardConfig/production/Config/Parameters1000GeV.cfg
@@ -0,0 +1,12 @@
+PARAMETERS = {
+ # Overlay background settings
+ "ExpectedBgWW": "0.526",
+ "ExpectedBgWB": "0.634",
+ "ExpectedBgBW": "0.634",
+ "ExpectedBgBB": "0.744",
+ # Beam size (unit mm). Values from ILC TDR, Vol1 p11: 1 TeV B
+ "LCFIPlusBeamspotConstraint": "true",
+ "BeamSizeX": "335.e-6",
+ "BeamSizeY": "2.7e-6",
+ "BeamSizeZ": "146.8e-3",
+}
diff --git a/StandardConfig/production/Config/Parameters250GeV.cfg b/StandardConfig/production/Config/Parameters250GeV.cfg
new file mode 100644
index 00000000..64dd0d14
--- /dev/null
+++ b/StandardConfig/production/Config/Parameters250GeV.cfg
@@ -0,0 +1,12 @@
+PARAMETERS = {
+ # Overlay background settings
+ "ExpectedBgWW": "0.1256495436",
+ "ExpectedBgWB": "0.297459204",
+ "ExpectedBgBW": "0.29722665",
+ "ExpectedBgBB": "0.829787658",
+ # Beam size (unit mm). Values from ILC TDR, Vol1 p11: 250 GeV baseline
+ "LCFIPlusBeamspotConstraint": "true",
+ "BeamSizeX": "313.e-6",
+ "BeamSizeY": "3.14e-6",
+ "BeamSizeZ": "202.e-3",
+}
diff --git a/StandardConfig/production/Config/Parameters350GeV.cfg b/StandardConfig/production/Config/Parameters350GeV.cfg
new file mode 100644
index 00000000..e50043b9
--- /dev/null
+++ b/StandardConfig/production/Config/Parameters350GeV.cfg
@@ -0,0 +1,12 @@
+PARAMETERS = {
+ # Overlay background settings
+ "ExpectedBgWW": "Parameter not yet provided. Please update me !",
+ "ExpectedBgWB": "Parameter not yet provided. Please update me !",
+ "ExpectedBgBW": "Parameter not yet provided. Please update me !",
+ "ExpectedBgBB": "Parameter not yet provided. Please update me !",
+ # Beam size (unit mm)
+ "LCFIPlusBeamspotConstraint": "true",
+ "BeamSizeX": "683.5e-6",
+ "BeamSizeY": "5.9e-6",
+ "BeamSizeZ": "Parameter not yet provided. Please update me !",
+}
diff --git a/StandardConfig/production/Config/Parameters500GeV.cfg b/StandardConfig/production/Config/Parameters500GeV.cfg
new file mode 100644
index 00000000..9494180d
--- /dev/null
+++ b/StandardConfig/production/Config/Parameters500GeV.cfg
@@ -0,0 +1,12 @@
+PARAMETERS = {
+ # Overlay background settings
+ "ExpectedBgWW": "0.211",
+ "ExpectedBgWB": "0.24605",
+ "ExpectedBgBW": "0.243873",
+ "ExpectedBgBB": "0.35063",
+ # Beam size (unit mm). Values from ILC TDR, Vol1 p11: 500 GeV with L upgrade
+ "LCFIPlusBeamspotConstraint": "true",
+ "BeamSizeX": "474.e-6",
+ "BeamSizeY": "5.9e-6",
+ "BeamSizeZ": "196.e-3",
+}
diff --git a/StandardConfig/production/HighLevelReco/BeamCalReco.py b/StandardConfig/production/HighLevelReco/BeamCalReco.py
new file mode 100644
index 00000000..e1d57d12
--- /dev/null
+++ b/StandardConfig/production/HighLevelReco/BeamCalReco.py
@@ -0,0 +1,39 @@
+#!/usr/bin/env python3
+
+from Gaudi.Configuration import INFO
+from Configurables import MarlinProcessorWrapper
+
+MyBeamCalClusterReco = MarlinProcessorWrapper("MyBeamCalClusterReco")
+MyBeamCalClusterReco.OutputLevel = INFO
+MyBeamCalClusterReco.ProcessorType = "BeamCalClusterReco"
+MyBeamCalClusterReco.Parameters = {
+ "BackgroundMethod": ["Gaussian"],
+ "BeamCalCollectionName": ["BCAL"],
+ "CreateEfficiencyFile": ["false"],
+ "DetectorName": ["BeamCal"],
+ "DetectorStartingLayerID": ["1"],
+ "ETCluster": ["0.06"],
+ "ETPad": ["5e-5"],
+ "EfficiencyFilename": ["TaggingEfficiency.root"],
+ "InputFileBackgrounds": [CONSTANTS["BeamCalBackgroundFile"]],
+ "LinearCalibrationFactor": [CONSTANTS["BeamCalCalibrationFactor"]],
+ "LogWeightingConstant": ["-1."],
+ "MCParticleCollectionName": ["MCParticle"],
+ "MaxPadDistance": ["1e10"],
+ "MinimumTowerSize": ["6"],
+ "NShowerCountingLayers": ["3"],
+ "NumberOfBX": ["1"],
+ "PrintThisEvent": ["1"],
+ "ReadoutName": ["BeamCalCollection"],
+ "RecoClusterCollectionname": ["BCalClusters"],
+ "RecoParticleCollectionname": ["BCalRecoParticle"],
+ "SigmaCut": ["2"],
+ "StartLookingInLayer": ["2"],
+ "StartingRing": ["0"],
+ "SubClusterEnergyID": ["5"],
+ "TowerChi2ndfLimit": ["2."],
+ "UseChi2Selection": ["false"],
+ "UseConstPadCuts": ["false"],
+}
+
+BeamCalRecoSequence = [MyBeamCalClusterReco]
diff --git a/StandardConfig/production/HighLevelReco/HighLevelReco.py b/StandardConfig/production/HighLevelReco/HighLevelReco.py
new file mode 100644
index 00000000..d0f0665d
--- /dev/null
+++ b/StandardConfig/production/HighLevelReco/HighLevelReco.py
@@ -0,0 +1,386 @@
+#!/usr/bin/env python3
+
+from Configurables import MarlinProcessorWrapper
+from Gaudi.Configuration import INFO
+
+MyAdd4MomCovMatrixCharged = MarlinProcessorWrapper("MyAdd4MomCovMatrixCharged")
+MyAdd4MomCovMatrixCharged.OutputLevel = INFO
+MyAdd4MomCovMatrixCharged.ProcessorType = "Add4MomCovMatrixCharged"
+MyAdd4MomCovMatrixCharged.Parameters = {"InputPandoraPFOsCollection": ["PandoraPFOs"]}
+
+MyAddClusterProperties = MarlinProcessorWrapper("MyAddClusterProperties")
+MyAddClusterProperties.OutputLevel = INFO
+MyAddClusterProperties.ProcessorType = "AddClusterProperties"
+MyAddClusterProperties.Parameters = {
+ "ClusterCollection": ["PandoraClusters"],
+ "PFOCollectionName": ["PandoraPFOs"],
+}
+
+MyComputeShowerShapesProcessor = MarlinProcessorWrapper(
+ "MyComputeShowerShapesProcessor"
+)
+MyComputeShowerShapesProcessor.OutputLevel = INFO
+MyComputeShowerShapesProcessor.ProcessorType = "ComputeShowerShapesProcessor"
+MyComputeShowerShapesProcessor.Parameters = {
+ "ClusterCollectionName": ["PandoraClusters"],
+ "Debug": ["0"],
+ "MoliereRadius_Ecal": ["9.00"],
+ "MoliereRadius_Hcal": ["17.19"],
+ "PFOCollection": ["PandoraPFOs"],
+ "RadiationLength_Ecal": ["3.50"],
+ "RadiationLength_Hcal": ["17.57"],
+}
+
+MyphotonCorrectionProcessor = MarlinProcessorWrapper("MyphotonCorrectionProcessor")
+MyphotonCorrectionProcessor.OutputLevel = INFO
+MyphotonCorrectionProcessor.ProcessorType = "photonCorrectionProcessor"
+MyphotonCorrectionProcessor.Parameters = {
+ "energyCor_Linearise": ["0.987", "0.01426"],
+ "energyCorr_barrelPhi": [
+ "0.412249",
+ "0.0142289",
+ "-0.0933687",
+ "0.01345",
+ "0.0408156",
+ ],
+ "energyCorr_costh": [
+ "-0.09",
+ "0.",
+ "0.235",
+ "0.007256",
+ "-0.0369648",
+ "0.",
+ "0.588",
+ "0.0121604",
+ "-0.0422968",
+ "0.774",
+ "0.009",
+ "1.002",
+ ],
+ "energyCorr_endcap": ["-0.025", "855.", "23.", "-0.07", "1489.", "18."],
+ "inputCollection": ["PandoraPFOs"],
+ "modifyPFOdirection": [CONSTANTS["ApplyPhotonPFOCorrections"]],
+ "modifyPFOenergies": [CONSTANTS["ApplyPhotonPFOCorrections"]],
+ "nominalEnergy": ["200"],
+ "phiCorr_barrel": [
+ "2.36517e-05",
+ "1.32090e-04",
+ "-3.86883e+00",
+ "-1.67809e-01",
+ "2.28614e-05",
+ "6.03495e-05",
+ "0.419",
+ "0.00728",
+ "0.025",
+ "0.00",
+ "2.86667e-05",
+ "2.49371e-05",
+ "-7.71684e-06",
+ "-1.48118e-05",
+ "-5.63786e-06",
+ "-9.38376e-06",
+ "-4.96296e-06",
+ "2.91262e-06",
+ ],
+ "thetaCorr_barrel": ["-0.000166568", "-7.119e-05", "0.000223618", "-3.95915e-05"],
+ "thetaCorr_endcap": [
+ "0.000129478",
+ "-3.73863e-05",
+ "-0.000847783",
+ "0.000153646",
+ "0.000806605",
+ "-0.000132608",
+ ],
+ "validationPlots": ["false"],
+}
+
+MyPi0Finder = MarlinProcessorWrapper("MyPi0Finder")
+MyPi0Finder.OutputLevel = INFO
+MyPi0Finder.ProcessorType = "GammaGammaCandidateFinder"
+MyPi0Finder.Parameters = {
+ "GammaGammaResonanceMass": ["0.1349766"],
+ "GammaGammaResonanceName": ["Pi0"],
+ "GammaMomentumCut": ["0.5"],
+ "InputParticleCollectionName": ["PandoraPFOs"],
+ "MaxDeltaMgg": ["0.04"],
+ "OutputParticleCollectionName": ["GammaGammaCandidatePi0s"],
+ "Printing": ["0"],
+}
+
+MyEtaFinder = MarlinProcessorWrapper("MyEtaFinder")
+MyEtaFinder.OutputLevel = INFO
+MyEtaFinder.ProcessorType = "GammaGammaCandidateFinder"
+MyEtaFinder.Parameters = {
+ "GammaGammaResonanceMass": ["0.547862"],
+ "GammaGammaResonanceName": ["Eta"],
+ "GammaMomentumCut": ["1.0"],
+ "InputParticleCollectionName": ["PandoraPFOs"],
+ "MaxDeltaMgg": ["0.14"],
+ "OutputParticleCollectionName": ["GammaGammaCandidateEtas"],
+ "Printing": ["0"],
+}
+
+MyEtaPrimeFinder = MarlinProcessorWrapper("MyEtaPrimeFinder")
+MyEtaPrimeFinder.OutputLevel = INFO
+MyEtaPrimeFinder.ProcessorType = "GammaGammaCandidateFinder"
+MyEtaPrimeFinder.Parameters = {
+ "GammaGammaResonanceMass": ["0.95778"],
+ "GammaGammaResonanceName": ["EtaPrime"],
+ "GammaMomentumCut": ["2.0"],
+ "InputParticleCollectionName": ["PandoraPFOs"],
+ "MaxDeltaMgg": ["0.19"],
+ "OutputParticleCollectionName": ["GammaGammaCandidateEtaPrimes"],
+ "Printing": ["0"],
+}
+
+MyGammaGammaSolutionFinder = MarlinProcessorWrapper("MyGammaGammaSolutionFinder")
+MyGammaGammaSolutionFinder.OutputLevel = INFO
+MyGammaGammaSolutionFinder.ProcessorType = "GammaGammaSolutionFinder"
+MyGammaGammaSolutionFinder.Parameters = {
+ "InputParticleCollectionName1": ["GammaGammaCandidatePi0s"],
+ "InputParticleCollectionName2": ["GammaGammaCandidateEtas"],
+ "InputParticleCollectionName3": ["GammaGammaCandidateEtaPrimes"],
+ "OutputParticleCollectionName": ["GammaGammaParticles"],
+ "Printing": ["0"],
+}
+
+MyDistilledPFOCreator = MarlinProcessorWrapper("MyDistilledPFOCreator")
+MyDistilledPFOCreator.OutputLevel = INFO
+MyDistilledPFOCreator.ProcessorType = "DistilledPFOCreator"
+MyDistilledPFOCreator.Parameters = {
+ "InputParticleCollectionName1": ["PandoraPFOs"],
+ "InputParticleCollectionName2": ["GammaGammaParticles"],
+ "OutputParticleCollectionName": ["DistilledPFOs"],
+ "Printing": ["0"],
+}
+
+MyLikelihoodPID = MarlinProcessorWrapper("MyLikelihoodPID")
+MyLikelihoodPID.OutputLevel = INFO
+MyLikelihoodPID.ProcessorType = "LikelihoodPIDProcessor"
+MyLikelihoodPID.Parameters = {
+ # fmt: off
+ "CostMatrix": [
+ "1.0e-50", "1.0", "1.5", "1.0", "1.5",
+ "1.0", "1.0e-50", "3.0", "1.0", "1.0",
+ "1.0", "1.0", "1.0e-50", "1.0", "3.0",
+ "1.0", "1.0", "4.0", "1.0e-50", "2.0",
+ "1.0", "1.0", "5.0", "1.0", "1.0e-50",
+ ],
+ # fmt: on
+ "Debug": ["0"],
+ "EnergyBoundaries": ["0", "1.0e+07"],
+ "FilePDFName": [CONSTANTS["PidPDFFile"]],
+ "FileWeightFormupiSeparationName": [CONSTANTS["PidWeightFiles"]],
+ "RecoParticleCollection": ["PandoraPFOs"],
+ "UseBayesian": ["2"],
+ "UseLowMomentumMuPiSeparation": ["true"],
+ "dEdxErrorFactor": [CONSTANTS["dEdXErrorFactor"]],
+ "dEdxNormalization": ["1.350e-7"],
+ "dEdxParameter_electron": [
+ "-1.28883368e-02",
+ "2.72959919e+01",
+ "1.10560871e+01",
+ "-1.74534200e+00",
+ "-9.84887586e-07",
+ ],
+ "dEdxParameter_kaon": [
+ "7.52235689e-02",
+ "1.59710415e+04",
+ "1.79625604e+06",
+ "3.15315795e-01",
+ "2.30414997e-04",
+ ],
+ "dEdxParameter_muon": [
+ "6.49143971e-02",
+ "1.55775592e+03",
+ "9.31848047e+08",
+ "2.32201725e-01",
+ "2.50492066e-04",
+ ],
+ "dEdxParameter_pion": [
+ "6.54955215e-02",
+ "8.26239081e+06",
+ "1.92933904e+05",
+ "2.52743206e-01",
+ "2.26657525e-04",
+ ],
+ "dEdxParameter_proton": [
+ "7.92251260e-02",
+ "6.38129720e+04",
+ "3.82995071e+04",
+ "2.80793601e-01",
+ "7.14371743e-04",
+ ],
+}
+
+MyRecoMCTruthLinker = MarlinProcessorWrapper("MyRecoMCTruthLinker")
+MyRecoMCTruthLinker.OutputLevel = INFO
+MyRecoMCTruthLinker.ProcessorType = "RecoMCTruthLinker"
+MyRecoMCTruthLinker.Parameters = {
+ "ClusterCollection": ["PandoraClusters"],
+ "ClusterMCTruthLinkName": ["ClusterMCTruthLink"],
+ "FullRecoRelation": ["true"],
+ "KeepDaughtersPDG": ["22", "111", "310", "13", "211", "321"],
+ "MCParticleCollection": ["MCParticle"],
+ "MCParticlesSkimmedName": ["MCParticlesSkimmed"],
+ "MCTruthClusterLinkName": ["MCTruthClusterLink"],
+ "MCTruthRecoLinkName": ["MCTruthRecoLink"],
+ "MCTruthTrackLinkName": ["MCTruthMarlinTrkTracksLink"],
+ "RecoMCTruthLinkName": ["RecoMCTruthLink"],
+ "RecoParticleCollection": ["PandoraPFOs"],
+ "SimCaloHitCollections": [
+ "BeamCalCollection",
+ "LHCalCollection",
+ "LumiCalCollection",
+ CONSTANTS["ECalSimHitCollections"],
+ CONSTANTS["HCalSimHitCollections"],
+ "YokeBarrelCollection",
+ "YokeEndcapsCollection",
+ ],
+ "SimCalorimeterHitRelationNames": [
+ "EcalBarrelRelationsSimRec",
+ "EcalEndcapRingRelationsSimRec",
+ "EcalEndcapsRelationsSimRec",
+ "HcalBarrelRelationsSimRec",
+ "HcalEndcapRingRelationsSimRec",
+ "HcalEndcapsRelationsSimRec",
+ "RelationLHcalHit",
+ "RelationMuonHit",
+ "RelationLcalHit",
+ "RelationBCalHit",
+ ],
+ "SimTrackerHitCollections": [
+ "VXDCollection",
+ "SITCollection",
+ "FTD_PIXELCollection",
+ "FTD_STRIPCollection",
+ "TPCCollection",
+ "SETCollection",
+ ],
+ "TrackCollection": ["MarlinTrkTracks"],
+ "TrackMCTruthLinkName": ["MarlinTrkTracksMCTruthLink"],
+ "TrackerHitsRelInputCollections": [
+ "VXDTrackerHitRelations",
+ "SITTrackerHitRelations",
+ "FTDPixelTrackerHitRelations",
+ "FTDSpacePointRelations",
+ "TPCTrackerHitRelations",
+ "SETSpacePointRelations",
+ ],
+ "UseTrackerHitRelations": ["true"],
+ "UsingParticleGun": ["false"],
+}
+
+VertexFinder = MarlinProcessorWrapper("VertexFinder")
+VertexFinder.OutputLevel = INFO
+VertexFinder.ProcessorType = "LcfiplusProcessor"
+VertexFinder.Parameters = {
+ "Algorithms": ["PrimaryVertexFinder", "BuildUpVertex"],
+ "BeamSizeX": [cms_energy_config["BeamSizeX"]],
+ "BeamSizeY": [cms_energy_config["BeamSizeY"]],
+ "BeamSizeZ": [cms_energy_config["BeamSizeZ"]],
+ "BuildUpVertex.AssocIPTracks": ["1"],
+ "BuildUpVertex.AssocIPTracksChi2RatioSecToPri": ["2.0"],
+ "BuildUpVertex.AssocIPTracksMinDist": ["0."],
+ "BuildUpVertex.MassThreshold": ["10."],
+ "BuildUpVertex.MaxChi2ForDistOrder": ["1.0"],
+ "BuildUpVertex.MinDistFromIP": ["0.3"],
+ "BuildUpVertex.PrimaryChi2Threshold": ["25."],
+ "BuildUpVertex.SecondaryChi2Threshold": ["9."],
+ "BuildUpVertex.TrackMaxD0": ["10."],
+ "BuildUpVertex.TrackMaxD0Err": ["0.1"],
+ "BuildUpVertex.TrackMaxZ0": ["20."],
+ "BuildUpVertex.TrackMaxZ0Err": ["0.1"],
+ "BuildUpVertex.TrackMinFtdHits": ["10000"],
+ "BuildUpVertex.TrackMinPt": ["0.1"],
+ "BuildUpVertex.TrackMinTpcHits": ["10000"],
+ "BuildUpVertex.TrackMinVxdFtdHits": ["0"],
+ "BuildUpVertex.TrackMinVxdHits": ["10000"],
+ "BuildUpVertex.UseAVF": ["0"],
+ "BuildUpVertex.UseV0Selection": ["1"],
+ "BuildUpVertex.V0VertexCollectionName": ["BuildUpVertex_V0"],
+ "BuildUpVertexCollectionName": ["BuildUpVertex"],
+ "PFOCollection": ["PandoraPFOs"],
+ "PrimaryVertexCollectionName": ["PrimaryVertex"],
+ "PrimaryVertexFinder.BeamspotConstraint": [
+ cms_energy_config["LCFIPlusBeamspotConstraint"]
+ ],
+ "PrimaryVertexFinder.BeamspotSmearing": ["0"],
+ "PrimaryVertexFinder.Chi2Threshold": ["25."],
+ "PrimaryVertexFinder.TrackMaxD0": ["20."],
+ "PrimaryVertexFinder.TrackMaxZ0": ["20."],
+ "PrimaryVertexFinder.TrackMinVtxFtdHits": ["1"],
+ "PrintEventNumber": ["0"],
+ "ReadSubdetectorEnergies": ["1"],
+ "TrackHitOrdering": ["1"],
+ "UpdateVertexRPDaughters": ["1"],
+}
+
+TrackLengthProcessor = MarlinProcessorWrapper("TrackLengthProcessor")
+TrackLengthProcessor.OutputLevel = INFO
+TrackLengthProcessor.ProcessorType = "TrackLengthProcessor"
+TrackLengthProcessor.Parameters = {"ReconstructedParticleCollection": ["PandoraPFOs"]}
+
+TOFEstimators0ps = MarlinProcessorWrapper("TOFEstimators0ps")
+TOFEstimators0ps.OutputLevel = INFO
+TOFEstimators0ps.ProcessorType = "TOFEstimators"
+TOFEstimators0ps.Parameters = {
+ "ExtrapolateToEcal": ["true"],
+ "MaxEcalLayer": ["10"],
+ "ReconstructedParticleCollection": ["PandoraPFOs"],
+ "TimeResolution": ["0"],
+ "TofMethod": ["closest"],
+}
+
+TOFEstimators10ps = MarlinProcessorWrapper("TOFEstimators10ps")
+TOFEstimators10ps.OutputLevel = INFO
+TOFEstimators10ps.ProcessorType = "TOFEstimators"
+TOFEstimators10ps.Parameters = {
+ "ExtrapolateToEcal": ["true"],
+ "MaxEcalLayer": ["10"],
+ "ReconstructedParticleCollection": ["PandoraPFOs"],
+ "TimeResolution": ["10."],
+ "TofMethod": ["closest"],
+}
+
+TOFEstimators50ps = MarlinProcessorWrapper("TOFEstimators50ps")
+TOFEstimators50ps.OutputLevel = INFO
+TOFEstimators50ps.ProcessorType = "TOFEstimators"
+TOFEstimators50ps.Parameters = {
+ "ExtrapolateToEcal": ["true"],
+ "MaxEcalLayer": ["10"],
+ "ReconstructedParticleCollection": ["PandoraPFOs"],
+ "TimeResolution": ["50"],
+ "TofMethod": ["closest"],
+}
+
+TOFEstimators100ps = MarlinProcessorWrapper("TOFEstimators100ps")
+TOFEstimators100ps.OutputLevel = INFO
+TOFEstimators100ps.ProcessorType = "TOFEstimators"
+TOFEstimators100ps.Parameters = {
+ "ExtrapolateToEcal": ["true"],
+ "MaxEcalLayer": ["10"],
+ "ReconstructedParticleCollection": ["PandoraPFOs"],
+ "TimeResolution": ["100"],
+ "TofMethod": ["closest"],
+}
+
+HighLevelRecoSequence = [
+ MyAdd4MomCovMatrixCharged,
+ MyAddClusterProperties,
+ MyComputeShowerShapesProcessor,
+ MyphotonCorrectionProcessor,
+ MyPi0Finder,
+ MyEtaFinder,
+ MyEtaPrimeFinder,
+ MyGammaGammaSolutionFinder,
+ MyDistilledPFOCreator,
+ MyLikelihoodPID,
+ MyRecoMCTruthLinker,
+ VertexFinder,
+ TrackLengthProcessor,
+ TOFEstimators0ps,
+ TOFEstimators10ps,
+ TOFEstimators50ps,
+ TOFEstimators100ps,
+]
diff --git a/StandardConfig/production/ILDReconstruction.py b/StandardConfig/production/ILDReconstruction.py
new file mode 100644
index 00000000..131764ea
--- /dev/null
+++ b/StandardConfig/production/ILDReconstruction.py
@@ -0,0 +1,374 @@
+import os
+import sys
+from pathlib import Path
+
+from Configurables import (
+ ApplicationMgr,
+ EDM4hep2LcioTool,
+ GeoSvc,
+ Lcio2EDM4hepTool,
+ LcioEvent,
+ MarlinProcessorWrapper,
+ PodioInput,
+ PodioOutput,
+ k4DataSvc,
+)
+from Gaudi.Configuration import INFO
+
+try:
+ 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",
+ "ILD_l4_o2_v02",
+ "ILD_l5_o1_v02",
+ "ILD_l5_o1_v03",
+ "ILD_l5_o1_v04",
+ "ILD_l5_o1_v05",
+ "ILD_l5_o1_v06",
+ "ILD_l5_o2_v02",
+ "ILD_l5_o3_v02",
+ "ILD_l5_o4_v02",
+ "ILD_s2_v02",
+ "ILD_s4_o1_v02",
+ "ILD_s4_o2_v02",
+ "ILD_s5_o1_v02",
+ "ILD_s5_o1_v03",
+ "ILD_s5_o1_v04",
+ "ILD_s5_o1_v05",
+ "ILD_s5_o1_v06",
+ "ILD_s5_o2_v02",
+ "ILD_s5_o3_v02",
+ "ILD_s5_o4_v02",
+)
+# only FCCMDI
+FCCeeMDI_DETECTOR_MODELS = (
+ "ILD_l5_o1_v09",
+ "ILD_l5_v11",
+)
+
+parser.add_argument(
+ "--inputFiles",
+ action="extend",
+ nargs="+",
+ metavar=["file1", "file2"],
+ help="One or multiple input files",
+)
+parser.add_argument(
+ "--compactFile", help="Compact detector file to use", type=str, default=""
+)
+parser.add_argument(
+ "--outputFileBase",
+ help="Base name of all the produced output files",
+ default="StandardReco",
+)
+parser.add_argument(
+ "--lcioOutput",
+ help="Choose whether to still create LCIO output (off by default)",
+ choices=["off", "on", "only"],
+ default="off",
+ type=str,
+)
+parser.add_argument(
+ "--cmsEnergy",
+ help="The center-of-mass energy to assume for reconstruction in GeV",
+ choices=(250, 350, 500, 1000),
+ type=int,
+ default=250,
+)
+parser.add_argument(
+ "--detectorModel",
+ help="Which detector model to run reconstruction for",
+ choices=DETECTOR_MODELS + FCCeeMDI_DETECTOR_MODELS,
+ type=str,
+ default="ILD_l5_o1_v02",
+)
+parser.add_argument(
+ "--perfectPFA",
+ help="Run perfect PandoraPFA",
+ action="store_true",
+)
+parser.add_argument(
+ "--runOverlay",
+ 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",
+)
+
+parser.add_argument(
+ "--runBeamCalReco",
+ help="Run the BeamCal reco",
+ action="store_true",
+ dest="runBeamCalReco",
+)
+parser.add_argument(
+ "--noBeamCalReco",
+ help="Don't run the BeamCal reco",
+ action="store_false",
+ dest="runBeamCalReco",
+)
+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]
+
+algList = []
+svcList = []
+
+evtsvc = k4DataSvc("EventDataSvc")
+svcList.append(evtsvc)
+
+det_model = reco_args.detectorModel
+if reco_args.compactFile:
+ compact_file = reco_args.compactFile
+else:
+ compact_file = f"{os.environ['K4GEO']}/ILD/compact/{det_model}/{det_model}.xml"
+
+geoSvc = GeoSvc("GeoSvc")
+geoSvc.detectors = [compact_file]
+geoSvc.OutputLevel = INFO
+geoSvc.EnableGeant4Geo = False
+svcList.append(geoSvc)
+
+
+CONSTANTS = {
+ "CMSEnergy": str(reco_args.cmsEnergy),
+ "BeamCalCalibrationFactor": str(reco_args.beamCalCalibFactor),
+}
+
+det_calib_constants = import_from(f"Calibration/Calibration_{det_model}.cfg").CONSTANTS
+CONSTANTS.update(det_calib_constants)
+
+parseConstants(CONSTANTS)
+
+
+cms_energy_config = import_from(
+ f"Config/Parameters{reco_args.cmsEnergy}GeV.cfg"
+).PARAMETERS
+
+sequenceLoader = SequenceLoader(
+ algList,
+ global_vars={"CONSTANTS": CONSTANTS, "cms_energy_config": cms_energy_config},
+)
+
+
+def create_reader(input_files):
+ """Create the appropriate reader for the input files"""
+ if input_files[0].endswith(".slcio"):
+ if any(not f.endswith(".slcio") for f in input_files):
+ print("All input files need to have the same format (LCIO)")
+ sys.exit(1)
+
+ read = LcioEvent()
+ read.Files = input_files
+ else:
+ if any(not f.endswith(".root") for f in input_files):
+ print("All input files need to have the same format (EDM4hep)")
+ sys.exit(1)
+ read = PodioInput("PodioInput")
+ global evtsvc
+ evtsvc.inputs = input_files
+
+ return read
+
+
+if reco_args.inputFiles:
+ read = create_reader(reco_args.inputFiles)
+ read.OutputLevel = INFO
+ algList.append(read)
+else:
+ read = None
+
+
+MyAIDAProcessor = MarlinProcessorWrapper("MyAIDAProcessor")
+MyAIDAProcessor.OutputLevel = INFO
+MyAIDAProcessor.ProcessorType = "AIDAProcessor"
+MyAIDAProcessor.Parameters = {
+ "Compress": ["1"],
+ "FileName": [f"{reco_args.outputFileBase}_AIDA"],
+ "FileType": ["root"],
+}
+algList.append(MyAIDAProcessor)
+
+# We need to convert the inputs in case we have EDM4hep input
+if isinstance(read, PodioInput):
+ EDM4hep2LcioInput = EDM4hep2LcioTool("InputConversion")
+ EDM4hep2LcioInput.convertAll = True
+ # Adjust for the different naming conventions
+ EDM4hep2LcioInput.collNameMapping = {"MCParticles": "MCParticle"}
+ MyAIDAProcessor.EDM4hep2LcioTool = EDM4hep2LcioInput
+
+
+MyStatusmonitor = MarlinProcessorWrapper("MyStatusmonitor")
+MyStatusmonitor.OutputLevel = INFO
+MyStatusmonitor.ProcessorType = "Statusmonitor"
+MyStatusmonitor.Parameters = {"HowOften": ["1"]}
+algList.append(MyStatusmonitor)
+
+
+# TODO: input file specification for this from command line?
+if reco_args.runOverlay:
+ sequenceLoader.load("BgOverlay/BgOverlay")
+
+
+ecal_technology = CONSTANTS["EcalTechnology"]
+hcal_technology = CONSTANTS["HcalTechnology"]
+
+# identify specified detector model
+if reco_args.compactFile:
+ det_model = Path(reco_args.compactFile).stem
+else:
+ 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")
+
+ sequenceLoader.load("HighLevelReco/HighLevelReco")
+
+
+MyPfoAnalysis = MarlinProcessorWrapper("MyPfoAnalysis")
+MyPfoAnalysis.OutputLevel = INFO
+MyPfoAnalysis.ProcessorType = "PfoAnalysis"
+MyPfoAnalysis.Parameters = {
+ "BCalCollections": ["BCAL"],
+ "BCalCollectionsSimCaloHit": ["BeamCalCollection"],
+ "CollectCalibrationDetails": ["0"],
+ "ECalBarrelCollectionsSimCaloHit": [CONSTANTS["ECalBarrelSimHitCollections"]],
+ "ECalCollections": [
+ "EcalBarrelCollectionRec",
+ "EcalBarrelCollectionGapHits",
+ "EcalEndcapsCollectionRec",
+ "EcalEndcapsCollectionGapHits",
+ "EcalEndcapRingCollectionRec",
+ ],
+ "ECalCollectionsSimCaloHit": [CONSTANTS["ECalSimHitCollections"]],
+ "ECalEndCapCollectionsSimCaloHit": [CONSTANTS["ECalEndcapSimHitCollections"]],
+ "ECalOtherCollectionsSimCaloHit": [CONSTANTS["ECalRingSimHitCollections"]],
+ "HCalBarrelCollectionsSimCaloHit": [CONSTANTS["HCalBarrelSimHitCollections"]],
+ "HCalCollections": [
+ "HcalBarrelCollectionRec",
+ "HcalEndcapsCollectionRec",
+ "HcalEndcapRingCollectionRec",
+ ],
+ "HCalEndCapCollectionsSimCaloHit": [CONSTANTS["HCalEndcapSimHitCollections"]],
+ "HCalOtherCollectionsSimCaloHit": [CONSTANTS["HCalRingSimHitCollections"]],
+ "LCalCollections": ["LCAL"],
+ "LCalCollectionsSimCaloHit": ["LumiCalCollection"],
+ "LHCalCollections": ["LHCAL"],
+ "LHCalCollectionsSimCaloHit": ["LHCalCollection"],
+ "LookForQuarksWithMotherZ": ["2"],
+ "MCParticleCollection": ["MCParticle"],
+ "MCPfoSelectionLowEnergyNPCutOff": ["1.2"],
+ "MCPfoSelectionMomentum": ["0.01"],
+ "MCPfoSelectionRadius": ["500."],
+ "MuonCollections": ["MUON"],
+ "MuonCollectionsSimCaloHit": ["YokeBarrelCollection", "YokeEndcapsCollection"],
+ "PfoCollection": ["PandoraPFOs"],
+ "Printing": ["0"],
+ "RootFile": [f"{reco_args.outputFileBase}_PfoAnalysis.root"],
+}
+
+algList.append(MyPfoAnalysis)
+
+if reco_args.lcioOutput != "only":
+ lcioToEDM4hepOutput = Lcio2EDM4hepTool("OutputConversion")
+ # Take care of the different naming conventions
+ lcioToEDM4hepOutput.collNameMapping = {"MCParticle": "MCParticles"}
+ lcioToEDM4hepOutput.OutputLevel = INFO
+ # Attach the conversion to the last non-output processor that is always run
+ MyPfoAnalysis.Lcio2EDM4hepTool = lcioToEDM4hepOutput
+
+ edm4hepOutput = PodioOutput("EDM4hepOutput")
+ edm4hepOutput.filename = f"{reco_args.outputFileBase}_REC.edm4hep.root"
+ edm4hepOutput.outputCommands = ["keep *"]
+ for name in CONSTANTS["AdditionalDropCollectionsREC"].split(" "):
+ edm4hepOutput.outputCommands.append(f"drop {name}")
+
+ algList.append(edm4hepOutput)
+
+
+if reco_args.lcioOutput in ("on", "only"):
+ MyLCIOOutputProcessor = MarlinProcessorWrapper("MyLCIOOutputProcessor")
+ MyLCIOOutputProcessor.OutputLevel = INFO
+ MyLCIOOutputProcessor.ProcessorType = "LCIOOutputProcessor"
+ MyLCIOOutputProcessor.Parameters = {
+ "CompressionLevel": ["6"],
+ "DropCollectionNames": [CONSTANTS["AdditionalDropCollectionsREC"]],
+ "LCIOOutputFile": [f"{reco_args.outputFileBase}_REC.slcio"],
+ "LCIOWriteMode": ["WRITE_NEW"],
+ }
+
+ DSTOutput = MarlinProcessorWrapper("DSTOutput")
+ DSTOutput.OutputLevel = INFO
+ DSTOutput.ProcessorType = "LCIOOutputProcessor"
+ DSTOutput.Parameters = {
+ "CompressionLevel": ["6"],
+ "DropCollectionNames": ["PandoraPFANewStartVertices"],
+ "DropCollectionTypes": [
+ "MCParticle",
+ "SimTrackerHit",
+ "SimCalorimeterHit",
+ "TrackerHit",
+ "TrackerHitPlane",
+ "CalorimeterHit",
+ "LCRelation",
+ "Track",
+ "LCFloatVec",
+ ],
+ "FullSubsetCollections": ["MCParticlesSkimmed"],
+ "KeepCollectionNames": [
+ "MCParticlesSkimmed",
+ "MarlinTrkTracks",
+ "MarlinTrkTracksProton",
+ "MarlinTrkTracksKaon",
+ "MCTruthMarlinTrkTracksLink",
+ "MarlinTrkTracksMCTruthLink",
+ "RecoMCTruthLink",
+ "MCTruthRecoLink",
+ "MCTruthClusterLink",
+ "ClusterMCTruthLink",
+ ],
+ "LCIOOutputFile": [f"{reco_args.outputFileBase}_DST.slcio"],
+ "LCIOWriteMode": ["WRITE_NEW"],
+ }
+
+ algList.append(MyLCIOOutputProcessor)
+ algList.append(DSTOutput)
+
+ApplicationMgr(
+ TopAlg=algList, EvtSel="NONE", EvtMax=3, ExtSvc=svcList, OutputLevel=INFO
+)
diff --git a/StandardConfig/production/MarlinStdReco.xml b/StandardConfig/production/MarlinStdReco.xml
index 7141f82e..19bc85b2 100644
--- a/StandardConfig/production/MarlinStdReco.xml
+++ b/StandardConfig/production/MarlinStdReco.xml
@@ -47,7 +47,7 @@
79.6
-
+
diff --git a/StandardConfig/production/ParticleFlow/PandoraPFA.py b/StandardConfig/production/ParticleFlow/PandoraPFA.py
new file mode 100644
index 00000000..5cc37e00
--- /dev/null
+++ b/StandardConfig/production/ParticleFlow/PandoraPFA.py
@@ -0,0 +1,100 @@
+#!/usr/bin/env python3
+
+from Gaudi.Configuration import INFO
+from Configurables import MarlinProcessorWrapper
+
+MyDDMarlinPandora = MarlinProcessorWrapper("MyDDMarlinPandora")
+MyDDMarlinPandora.OutputLevel = INFO
+MyDDMarlinPandora.ProcessorType = "DDPandoraPFANewProcessor"
+MyDDMarlinPandora.Parameters = {
+ "ClusterCollectionName": ["PandoraClusters"],
+ "CoilName": ["Coil"],
+ "CreateGaps": ["false"],
+ "DigitalMuonHits": ["0"],
+ "ECalBarrelDetectorName": ["EcalBarrel"],
+ "ECalCaloHitCollections": [
+ "EcalBarrelCollectionRec",
+ "EcalBarrelCollectionGapHits",
+ "EcalEndcapsCollectionRec",
+ "EcalEndcapsCollectionGapHits",
+ "EcalEndcapRingCollectionRec",
+ ],
+ "ECalEndcapDetectorName": ["EcalEndcap"],
+ "ECalMipThreshold": ["0.5"],
+ "ECalOtherDetectorNames": ["EcalPlug", "Lcal", "BeamCal"],
+ "ECalToEMGeVCalibration": [CONSTANTS["PandoraEcalToEMScale"]],
+ "ECalToHadGeVCalibrationBarrel": [CONSTANTS["PandoraEcalToHadBarrelScale"]],
+ "ECalToHadGeVCalibrationEndCap": [CONSTANTS["PandoraEcalToHadEndcapScale"]],
+ "ECalToMipCalibration": [CONSTANTS["PandoraEcalToMip"]],
+ "FinalEnergyDensityBin": ["30"],
+ "HCalBarrelDetectorName": ["HcalBarrel"],
+ "HCalCaloHitCollections": [
+ "HcalBarrelCollectionRec",
+ "HcalEndcapsCollectionRec",
+ "HcalEndcapRingCollectionRec",
+ ],
+ "HCalEndcapDetectorName": ["HcalEndcap"],
+ "HCalMipThreshold": ["0.3"],
+ "HCalOtherDetectorNames": ["HcalRing", "LHcal"],
+ "HCalToEMGeVCalibration": [CONSTANTS["PandoraHcalToEMScale"]],
+ "HCalToHadGeVCalibration": [CONSTANTS["PandoraHcalToHadScale"]],
+ "HCalToMipCalibration": [CONSTANTS["PandoraHcalToMip"]],
+ "KinkVertexCollections": ["KinkVertices"],
+ "LCalCaloHitCollections": ["LCAL"],
+ "LHCalCaloHitCollections": ["LHCAL"],
+ "MCParticleCollections": ["MCParticle"],
+ "MaxBarrelTrackerInnerRDistance": ["105.0"],
+ "MaxClusterEnergyToApplySoftComp": ["1000"],
+ "MaxHCalHitHadronicEnergy": ["1000000."],
+ "MinCleanCorrectedHitEnergy": ["0.1"],
+ "MinCleanHitEnergy": ["0.5"],
+ "MinCleanHitEnergyFraction": ["0.01"],
+ "MuonBarrelDetectorName": ["YokeBarrel"],
+ "MuonCaloHitCollections": ["MUON"],
+ "MuonEndcapDetectorName": ["YokeEndcap"],
+ "MuonOtherDetectorNames": [],
+ "MuonToMipCalibration": [CONSTANTS["PandoraMuonToMip"]],
+ "NEventsToSkip": ["0"],
+ "PFOCollectionName": ["PandoraPFOs"],
+ "PandoraSettingsXmlFile": [CONSTANTS["PandoraSettingsFile"]],
+ "ProngVertexCollections": ["ProngVertices"],
+ "RelCaloHitCollections": [
+ "EcalBarrelRelationsSimRec",
+ "EcalEndcapsRelationsSimRec",
+ "EcalEndcapRingRelationsSimRec",
+ "HcalBarrelRelationsSimRec",
+ "HcalEndcapsRelationsSimRec",
+ "HcalEndcapRingRelationsSimRec",
+ "RelationMuonHit",
+ "RelationLHcalHit",
+ "RelationLcalHit",
+ ],
+ "RelTrackCollections": ["MarlinTrkTracksMCTruthLink"],
+ "SoftwareCompensationEnergyDensityBins": [
+ "0",
+ "2",
+ "5",
+ "7.5",
+ "9.5",
+ "13",
+ "16",
+ "20",
+ "23.5",
+ "28",
+ ],
+ "SoftwareCompensationWeights": [CONSTANTS["PandoraSoftwareCompensationWeights"]],
+ "SplitVertexCollections": ["SplitVertices"],
+ "StartVertexAlgorithmName": ["PandoraPFANew"],
+ "StartVertexCollectionName": ["PandoraPFANewStartVertices"],
+ "TrackCollections": ["MarlinTrkTracks"],
+ "TrackCreatorName": ["DDTrackCreatorILD"],
+ "TrackerBarrelDetectorNames": ["TPC"],
+ "TrackerEndcapDetectorNames": ["FTD"],
+ "UseDD4hepField": ["false"],
+ "UseOldTrackStateCalculation": ["0", "1"],
+ "V0VertexCollections": ["V0Vertices"],
+ "VertexBarrelDetectorName": ["VXD"],
+ "YokeBarrelNormalVector": ["0", "1", "0"],
+}
+
+PandoraPFASequence = [MyDDMarlinPandora]
diff --git a/StandardConfig/production/ParticleFlow/PandoraPFAPerfect.py b/StandardConfig/production/ParticleFlow/PandoraPFAPerfect.py
new file mode 100644
index 00000000..1e79d052
--- /dev/null
+++ b/StandardConfig/production/ParticleFlow/PandoraPFAPerfect.py
@@ -0,0 +1,142 @@
+#!/usr/bin/env python3
+
+from Gaudi.Configuration import INFO
+from Configurables import MarlinProcessorWrapper
+
+MyRecoMCTruthLinkerPass1 = MarlinProcessorWrapper("MyRecoMCTruthLinkerPass1")
+MyRecoMCTruthLinkerPass1.OutputLevel = INFO
+MyRecoMCTruthLinkerPass1.ProcessorType = "RecoMCTruthLinker"
+MyRecoMCTruthLinkerPass1.Parameters = {
+ "ClusterCollection": [],
+ "ClusterMCTruthLinkName": [],
+ "FullRecoRelation": ["true"],
+ "KeepDaughtersPDG": ["22", "111", "310", "13", "211", "321"],
+ "MCParticleCollection": ["MCParticle"],
+ "MCParticlesSkimmedName": ["MCParticlesSkimmedPass1"],
+ "MCTruthClusterLinkName": [],
+ "MCTruthRecoLinkName": [],
+ "MCTruthTrackLinkName": ["MCTruthMarlinTrkTracksLinkPass1"],
+ "RecoMCTruthLinkName": [],
+ "RecoParticleCollection": [],
+ "SimCaloHitCollections": [],
+ "SimCalorimeterHitRelationNames": [],
+ "SimTrackerHitCollections": [
+ "VXDCollection",
+ "SITCollection",
+ "FTD_PIXELCollection",
+ "FTD_STRIPCollection",
+ "TPCCollection",
+ "SETCollection",
+ ],
+ "TrackCollection": ["MarlinTrkTracks"],
+ "TrackMCTruthLinkName": ["MarlinTrkTracksMCTruthLinkPass1"],
+ "TrackerHitsRelInputCollections": [
+ "VXDTrackerHitRelations",
+ "SITTrackerHitRelations",
+ "FTDPixelTrackerHitRelations",
+ "FTDSpacePointRelations",
+ "TPCTrackerHitRelations",
+ "SETSpacePointRelations",
+ ],
+ "UseTrackerHitRelations": ["true"],
+ "UsingParticleGun": ["false"],
+}
+
+MyDDMarlinPandora = MarlinProcessorWrapper("MyDDMarlinPandora")
+MyDDMarlinPandora.OutputLevel = INFO
+MyDDMarlinPandora.ProcessorType = "DDPandoraPFANewProcessor"
+MyDDMarlinPandora.Parameters = {
+ "ClusterCollectionName": ["PandoraClusters"],
+ "CoilName": ["Coil"],
+ "CreateGaps": ["false"],
+ "DigitalMuonHits": ["0"],
+ "ECalBarrelDetectorName": ["EcalBarrel"],
+ "ECalCaloHitCollections": [
+ "EcalBarrelCollectionRec",
+ "EcalBarrelCollectionGapHits",
+ "EcalEndcapsCollectionRec",
+ "EcalEndcapsCollectionGapHits",
+ "EcalEndcapRingCollectionRec",
+ ],
+ "ECalEndcapDetectorName": ["EcalEndcap"],
+ "ECalMipThreshold": ["0.5"],
+ "ECalOtherDetectorNames": ["EcalPlug", "Lcal", "BeamCal"],
+ "ECalToEMGeVCalibration": [CONSTANTS["PandoraEcalToEMScale"]],
+ "ECalToHadGeVCalibrationBarrel": [CONSTANTS["PandoraEcalToHadBarrelScale"]],
+ "ECalToHadGeVCalibrationEndCap": [CONSTANTS["PandoraEcalToHadEndcapScale"]],
+ "ECalToMipCalibration": [CONSTANTS["PandoraEcalToMip"]],
+ "FinalEnergyDensityBin": ["30"],
+ "HCalBarrelDetectorName": ["HcalBarrel"],
+ "HCalCaloHitCollections": [
+ "HcalBarrelCollectionRec",
+ "HcalEndcapsCollectionRec",
+ "HcalEndcapRingCollectionRec",
+ ],
+ "HCalEndcapDetectorName": ["HcalEndcap"],
+ "HCalMipThreshold": ["0.3"],
+ "HCalOtherDetectorNames": ["HcalRing", "LHcal"],
+ "HCalToEMGeVCalibration": [CONSTANTS["PandoraHcalToEMScale"]],
+ "HCalToHadGeVCalibration": [CONSTANTS["PandoraHcalToHadScale"]],
+ "HCalToMipCalibration": [CONSTANTS["PandoraHcalToMip"]],
+ "KinkVertexCollections": ["KinkVertices"],
+ "LCalCaloHitCollections": ["LCAL"],
+ "LHCalCaloHitCollections": ["LHCAL"],
+ "MCParticleCollections": ["MCParticle"],
+ "MaxBarrelTrackerInnerRDistance": ["105.0"],
+ "MaxClusterEnergyToApplySoftComp": ["1000"],
+ "MaxHCalHitHadronicEnergy": ["1000000."],
+ "MinCleanCorrectedHitEnergy": ["0.1"],
+ "MinCleanHitEnergy": ["0.5"],
+ "MinCleanHitEnergyFraction": ["0.01"],
+ "MuonBarrelDetectorName": ["YokeBarrel"],
+ "MuonCaloHitCollections": ["MUON"],
+ "MuonEndcapDetectorName": ["YokeEndcap"],
+ "MuonOtherDetectorNames": [],
+ "MuonToMipCalibration": [CONSTANTS["PandoraMuonToMip"]],
+ "NEventsToSkip": ["0"],
+ "PFOCollectionName": ["PandoraPFOs"],
+ "PandoraSettingsXmlFile": ["PandoraSettings/PandoraSettingsPerfectPFA.xml"],
+ "ProngVertexCollections": ["ProngVertices"],
+ "RelCaloHitCollections": [
+ "EcalBarrelRelationsSimRec",
+ "EcalEndcapsRelationsSimRec",
+ "EcalEndcapRingRelationsSimRec",
+ "HcalBarrelRelationsSimRec",
+ "HcalEndcapsRelationsSimRec",
+ "HcalEndcapRingRelationsSimRec",
+ "RelationMuonHit",
+ "RelationLHcalHit",
+ "RelationLcalHit",
+ ],
+ "RelTrackCollections": ["MarlinTrkTracksMCTruthLinkPass1"],
+ "SoftwareCompensationEnergyDensityBins": [
+ "0",
+ "2",
+ "5",
+ "7.5",
+ "9.5",
+ "13",
+ "16",
+ "20",
+ "23.5",
+ "28",
+ ],
+ "SoftwareCompensationWeights": [CONSTANTS["PandoraSoftwareCompensationWeights"]],
+ "SplitVertexCollections": ["SplitVertices"],
+ "StartVertexAlgorithmName": ["PandoraPFANew"],
+ "StartVertexCollectionName": ["PandoraPFANewStartVertices"],
+ "TrackCollections": ["MarlinTrkTracks"],
+ "TrackCreatorName": ["DDTrackCreatorILD"],
+ "TrackerBarrelDetectorNames": ["TPC"],
+ "TrackerEndcapDetectorNames": ["FTD"],
+ "UseDD4hepField": ["false"],
+ "UseOldTrackStateCalculation": ["0", "1"],
+ "V0VertexCollections": ["V0Vertices"],
+ "VertexBarrelDetectorName": ["VXD"],
+ "YokeBarrelNormalVector": ["0", "1", "0"],
+}
+
+PandoraPFAPerfectSequence = [
+ MyRecoMCTruthLinkerPass1,
+ MyDDMarlinPandora,
+]
diff --git a/StandardConfig/production/ParticleFlow/PandoraPFAStandard.xml b/StandardConfig/production/ParticleFlow/PandoraPFAStandard.xml
new file mode 120000
index 00000000..d035ee61
--- /dev/null
+++ b/StandardConfig/production/ParticleFlow/PandoraPFAStandard.xml
@@ -0,0 +1 @@
+PandoraPFA.xml
\ No newline at end of file
diff --git a/StandardConfig/production/README.md b/StandardConfig/production/README.md
index f2f57576..8514e6ad 100644
--- a/StandardConfig/production/README.md
+++ b/StandardConfig/production/README.md
@@ -47,9 +47,35 @@ Most of these directories are used by the top-level Marlin steering file *Marlin
### 1. Initialize the current ilcsoft release
```shell
-source /cvmfs/ilc.desy.de/sw/x86_64_gcc82_centos7/v02-02-02/init_ilcsoft.sh
+source /cvmfs/ilc.desy.de/sw/x86_64_gcc82_centos7/v02-03-03/init_ilcsoft.sh
```
+### 1.1 (Semi-optionally) Check-out a version of ILDConfig that is consistent with the release
+
+Each release of iLCSoft has a corresponding tag for ILDConfig. Usually, multiple
+versions of ILDConfig work with a given release, but if you want to make sure to
+get consistent results you can also check out a specific tag for ILDConfig.
+
+If you start from scratch (i.e. before cloning this repository) you can directly
+clone the corresponding tag via
+
+``` shell
+git clone -b v02-03-03 https://github.com/iLCSoft/ILDConfig
+```
+
+
+If you already have cloned this repository than you can simply go to the
+corresponding tag via
+
+``` shell
+git checkout v02-03-03
+```
+
+In both cases you will get a message about being in `detached HEAD` state from
+git. This is simply gits way of telling you that you are not currently on a
+branch. For simply running things this is no problem. If you want to make
+changes it's easiest to simply create a new branch before doing so.
+
### 2. Run the lcgeo/ddsim simulation: the 3 ttbar example
```shell
@@ -95,6 +121,43 @@ Marlin MarlinStdReco.xml \
--global.LCIOInputFiles=bbudsc_3evt_SIM.slcio
```
+### 3a. Run the reconstruction using Gaudi in Key4hep
+
+If you are in a Key4hep environment you can also run the reconstruction using
+the [k4MarlinWrapper](https://github.com/key4hep/k4MarlinWrapper) and the Gaudi
+based framework via
+
+```shell
+k4run ILDReconstruction.py --inputFiles=bbudsc_3evt_SIM.slcio
+```
+
+This will by default produce an [EDM4hep](https://github.com/key4hep/EDM4hep)
+output file with similar contents as the *REC* file described above.
+
+`ILDReconstruction.py` has a few command line options / flags
+- `--inputFiles` takes a list of input files to run over. It will automatically
+ detect whether these are LCIO or EDM4hep input files and instantiate the
+ appropriate reader (and a potentially necessary conversion). **It is not
+ possible to mix EDM4hep and LCIO input file**
+- `--detectorModel` is necessary to specify the detector model to run the
+ reconstruction for. Default is `ILD_l5_o1_v02`
+- `--compactFile` can be used to specify a compact detector file. By default
+ this will be constructed to use the compact file from `$K4GEO` that
+ corresponds to the specified detectorModel.
+- `--outputFileBase` is the basename for all the output files that will be
+ created. Defaults to `StandardReco`
+- `--lcioOutput` can be set to either `on`, `off`, or `only` and steers whether
+ there is additional (or exclusive) LCIO output produced as well. Defaults to
+ `off`.
+- `--cmsEnergy` can be used to set the desired center-of-mass energy. Possible
+ values are 250, 250, 500 and 1000 GeV. The default is 250 GeV.
+- `--[run|no]BeamCalReco` toggle whether to run BeamCal reconstruction or not.
+ Defaults to true. Use the `--beamCalCalibFactor` to set the calibration
+ constant (defaults to `79.6`)
+- `--runOverlay` turns on overlay of background events. Defaults to false.
+ **NOTE that you have to configure the necessary overlay files first in
+ `BgOverlay/BgOverlay.py`!**
+
### 4. View the result in the event display
Here two solutions :
@@ -179,4 +242,4 @@ In order to run the standard full reconstruction with the ILD_l5_v09 model, in t
- include `Tracking/TrackingDigi_SiILD.xml`, `Tracking/ConformalTracking_SiILD.xml`, `HighLevelReco/HighLevelReco_SiILD.xml`, `ParticleFlow/PandoraPFA_SiILD.xml` files instead of the respective default ones
- Make sure to pass the right compact file with the ILD_l5_v09 model definition.
-Then run the reconstruction as described above, providing the proper detector model.
\ No newline at end of file
+Then run the reconstruction as described above, providing the proper detector model.
diff --git a/StandardConfig/production/Tracking/TrackingDigi.py b/StandardConfig/production/Tracking/TrackingDigi.py
new file mode 100644
index 00000000..ffaed153
--- /dev/null
+++ b/StandardConfig/production/Tracking/TrackingDigi.py
@@ -0,0 +1,163 @@
+#!/usr/bin/env python3
+
+from Configurables import MarlinProcessorWrapper
+from Gaudi.Configuration import INFO
+
+MySplitCollectionByLayer = MarlinProcessorWrapper("MySplitCollectionByLayer")
+MySplitCollectionByLayer.OutputLevel = INFO
+MySplitCollectionByLayer.ProcessorType = "SplitCollectionByLayer"
+MySplitCollectionByLayer.Parameters = {
+ "InputCollection": ["FTDCollection"],
+ "OutputCollections": [
+ "FTD_PIXELCollection",
+ "0",
+ "1",
+ "FTD_STRIPCollection",
+ "2",
+ "6",
+ ],
+}
+
+VXDPlanarDigiProcessor_CMOSVXD5 = MarlinProcessorWrapper(
+ "VXDPlanarDigiProcessor_CMOSVXD5"
+)
+VXDPlanarDigiProcessor_CMOSVXD5.OutputLevel = INFO
+VXDPlanarDigiProcessor_CMOSVXD5.ProcessorType = "DDPlanarDigiProcessor"
+VXDPlanarDigiProcessor_CMOSVXD5.Parameters = {
+ "ForceHitsOntoSurface": ["true"],
+ "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": ["VXDCollection"],
+ "SimTrkHitRelCollection": ["VXDTrackerHitRelations"],
+ "SubDetectorName": ["VXD"],
+ "TrackerHitCollectionName": ["VXDTrackerHits"],
+}
+
+SITPlanarDigiProcessor = MarlinProcessorWrapper("SITPlanarDigiProcessor")
+SITPlanarDigiProcessor.OutputLevel = INFO
+SITPlanarDigiProcessor.ProcessorType = "DDPlanarDigiProcessor"
+SITPlanarDigiProcessor.Parameters = {
+ "ForceHitsOntoSurface": ["true"],
+ "IsStrip": ["false"],
+ "ResolutionU": ["0.005"],
+ "ResolutionV": ["0.005"],
+ "SimTrackHitCollectionName": ["SITCollection"],
+ "SimTrkHitRelCollection": ["SITTrackerHitRelations"],
+ "SubDetectorName": ["SIT"],
+ "TrackerHitCollectionName": ["SITTrackerHits"],
+}
+
+FTDPixelPlanarDigiProcessor = MarlinProcessorWrapper("FTDPixelPlanarDigiProcessor")
+FTDPixelPlanarDigiProcessor.OutputLevel = INFO
+FTDPixelPlanarDigiProcessor.ProcessorType = "DDPlanarDigiProcessor"
+FTDPixelPlanarDigiProcessor.Parameters = {
+ "ForceHitsOntoSurface": ["true"],
+ "IsStrip": ["false"],
+ "ResolutionU": ["0.003"],
+ "ResolutionV": ["0.003"],
+ "SimTrackHitCollectionName": ["FTD_PIXELCollection"],
+ "SimTrkHitRelCollection": ["FTDPixelTrackerHitRelations"],
+ "SubDetectorName": ["FTD"],
+ "TrackerHitCollectionName": ["FTDPixelTrackerHits"],
+}
+
+FTDStripPlanarDigiProcessor = MarlinProcessorWrapper("FTDStripPlanarDigiProcessor")
+FTDStripPlanarDigiProcessor.OutputLevel = INFO
+FTDStripPlanarDigiProcessor.ProcessorType = "DDPlanarDigiProcessor"
+FTDStripPlanarDigiProcessor.Parameters = {
+ "ForceHitsOntoSurface": ["true"],
+ "IsStrip": ["true"],
+ "ResolutionU": ["0.007"],
+ "ResolutionV": ["0.0"],
+ "SimTrackHitCollectionName": ["FTD_STRIPCollection"],
+ "SimTrkHitRelCollection": ["FTDStripTrackerHitRelations"],
+ "SubDetectorName": ["FTD"],
+ "TrackerHitCollectionName": ["FTDStripTrackerHits"],
+}
+
+FTDDDSpacePointBuilder = MarlinProcessorWrapper("FTDDDSpacePointBuilder")
+FTDDDSpacePointBuilder.OutputLevel = INFO
+FTDDDSpacePointBuilder.ProcessorType = "DDSpacePointBuilder"
+FTDDDSpacePointBuilder.Parameters = {
+ "SimHitSpacePointRelCollection": ["FTDSpacePointRelations"],
+ "SpacePointsCollection": ["FTDSpacePoints"],
+ "StripLength": ["2.500000000e+02"],
+ "SubDetectorName": ["FTD"],
+ "TrackerHitCollection": ["FTDStripTrackerHits"],
+ "TrackerHitSimHitRelCollection": ["FTDStripTrackerHitRelations"],
+}
+
+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"],
+}
+
+TrackingDigiSequence = [
+ MySplitCollectionByLayer,
+ VXDPlanarDigiProcessor_CMOSVXD5,
+ SITPlanarDigiProcessor,
+ FTDPixelPlanarDigiProcessor,
+ FTDStripPlanarDigiProcessor,
+ FTDDDSpacePointBuilder,
+ SETPlanarDigiProcessor,
+ SETDDSpacePointBuilder,
+ MyTPCDigiProcessor,
+]
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.py b/StandardConfig/production/Tracking/TrackingReco.py
new file mode 100644
index 00000000..da446814
--- /dev/null
+++ b/StandardConfig/production/Tracking/TrackingReco.py
@@ -0,0 +1,334 @@
+#!/usr/bin/env python3
+
+from Gaudi.Configuration import INFO
+from Configurables import MarlinProcessorWrapper
+
+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"],
+}
+
+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"],
+}
+
+TrackingRecoSequence = [
+ MyClupatraProcessor,
+ MySiliconTracking_MarlinTrk,
+ MyForwardTracking,
+ MyTrackSubsetProcessor,
+ MyFullLDCTracking_MarlinTrk,
+ MyCompute_dEdxProcessor,
+ MyV0Finder,
+ MyKinkFinder,
+ MyRefitProcessorKaon,
+ MyRefitProcessorProton,
+]
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,
+]
diff --git a/StandardConfig/production/Tracking/__init__.py b/StandardConfig/production/Tracking/__init__.py
new file mode 100644
index 00000000..e5a0d9b4
--- /dev/null
+++ b/StandardConfig/production/Tracking/__init__.py
@@ -0,0 +1 @@
+#!/usr/bin/env python3
diff --git a/StandardConfig/production/py_utils.py b/StandardConfig/production/py_utils.py
new file mode 100644
index 00000000..a3bd846d
--- /dev/null
+++ b/StandardConfig/production/py_utils.py
@@ -0,0 +1,142 @@
+import os
+from io import TextIOWrapper
+from typing import Union, Optional, Dict, Any
+import importlib.util
+import importlib.abc
+from importlib.machinery import SourceFileLoader
+
+
+def import_from(
+ filename: Union[str, os.PathLike],
+ module_name: Optional[str] = None,
+ global_vars: Optional[Dict[str, Any]] = None,
+) -> Any:
+ """Dynamically imports a module from the specified file path.
+
+ This function imports a module from a given filename, with the option to
+ specify the module's name and inject global variables into the module before
+ it is returned. If `module_name` is not provided, the filename is used as
+ the module name after replacing '.' with '_'. Global variables can be passed
+ as a dictionary to `global_vars`, which will be injected into the module's
+ namespace.
+
+ Args:
+ filename (str): The path to the file from which to import the module.
+ module_name (Optional[str]): The name to assign to the module. Defaults
+ to None, in which case the filename is used as the module name.
+ global_vars (Optional[Dict[str, Any]]): A dictionary of global variables
+ to inject into the module's namespace. Defaults to None.
+
+ Returns:
+ Any: The imported module with the specified modifications.
+
+ Raises:
+ FileNotFoundError: If the specified file does not exist.
+ ImportError: If there is an error during the import process.
+
+ """
+ filename = os.path.abspath(filename)
+ if not os.path.exists(filename):
+ raise FileNotFoundError(f"No such file: '{filename}'")
+
+ module_name = module_name or os.path.basename(filename).replace(".", "_")
+ loader = SourceFileLoader(module_name, filename)
+ spec = importlib.util.spec_from_loader(loader.name, loader)
+ module = importlib.util.module_from_spec(spec)
+ if global_vars:
+ module.__dict__.update(global_vars)
+ loader.exec_module(module)
+ return module
+
+
+def load_file(opt_file: Union[TextIOWrapper, str, os.PathLike]) -> None:
+ """Loads and executes the content of a given file in the current interpreter session.
+
+ This function takes a file object or a path to a file, reads its content,
+ and then executes it as Python code within the global scope of the current
+ interpreter session. If `opt_file` is a file handle it will not be closed.
+
+ Args:
+ opt_file (Union[TextIOWrapper, str, os.PathLike]): A file object or a
+ path to the file that
+ contains Python code
+ to be executed.
+
+ Raises:
+ FileNotFoundError: If `opt_file` is a path and no file exists at that path.
+ IOError: If there's an error opening or reading the file.
+ SyntaxError: If there's a syntax error in the code being executed.
+ Exception: Any exception raised by the executed code will be propagated.
+
+ """
+ if isinstance(opt_file, (str, os.PathLike)):
+ with open(opt_file, "r") as file:
+ code = compile(file.read(), file.name, "exec")
+ else:
+ code = compile(opt_file.read(), opt_file.name, "exec")
+
+ exec(code, globals())
+
+
+class SequenceLoader:
+ """A class for loading algorithm sequences onto a list of algorithms
+
+ It dynamically loads algorithms from Python files based on the given
+ sequence names. In the import process it will look for a Sequence of
+ algorithms which might have configuration constants that depend on some
+ global calibration configuration. These constants are provided during the
+ import of a sequence, such that the imported python files do not need to
+ define all of them.
+ """
+
+ def __init__(
+ self, alg_list: list, global_vars: Optional[Dict[str, Any]] = None
+ ) -> None:
+ """Initialize the SequenceLoader
+
+ This initializes a SequenceLoader with the list of algorithms to which
+ dynamically loaded algorithms should be appended to. It optionally takes
+ some global calibration constants that should be injected during import
+ of the sequence files
+
+ Args:
+ alg_list (List): A list to store loaded sequence algorithms.
+ global_vars (Optional[Dict[str, Any]]): A dictionary of global
+ variables for the sequences. Defaults to None. The keys in this
+ dictionary will be the available variables in the imported
+ module and the values will be the values of these variables.
+ """
+ self.alg_list = alg_list
+ self.global_vars = global_vars
+
+ def load(self, sequence: str) -> None:
+ """Loads a sequence algorithm from a specified Python file and appends
+ it to the algorithm list
+
+ The method constructs the filename from the sequence parameter name and
+ imports the sequence from the imported module.
+
+ Args:
+ sequence (str): The name of the sequence to load. The sequence name
+ should correspond to a Python file and class name following the
+ pattern `{sequence}.py` and `{sequence}Sequence`, respectively.
+
+ Examples:
+ >>> alg_list = []
+ >>> seq_loader = SequenceLoader(alg_list)
+ >>> seq_loader.load("Tracking/TrackingDigi")
+
+ This will import the file `Tracking/TrackingDigi.py` and add the
+ sequence of algorithms that is defined in `TrackingDigiSequence` in
+ that file to the alg_list
+ """
+ filename = f"{sequence}.py"
+ seq_name = f"{sequence.split('/')[-1]}Sequence"
+
+ seq_module = import_from(
+ filename,
+ global_vars=self.global_vars,
+ )
+
+ seq = getattr(seq_module, seq_name)
+ self.alg_list.extend(seq)
diff --git a/StandardConfig/production/run_standard_workflow.sh b/StandardConfig/production/run_standard_workflow.sh
index 98b7afba..ca57f277 100644
--- a/StandardConfig/production/run_standard_workflow.sh
+++ b/StandardConfig/production/run_standard_workflow.sh
@@ -71,6 +71,10 @@ MARLIN_CMD="Marlin MarlinStdReco.xml \
--constant.OutputBaseName=bbudsc_3evt \
--global.LCIOInputFiles=bbudsc_3evt_SIM.slcio"
+GAUDI_RECO="k4run ILDReconstruction.py \
+ --inputFiles=bbudsc_3evt_SIM.slcio \
+ --outputFileBase=bbudsc_3evt_GaudiRec"
+
LCTUPLE_CMD="Marlin MarlinStdRecoLCTuple.xml \
--global.LCIOInputFiles=bbudsc_3evt_DST.slcio \
--MyAIDAProcessor.FileName=bbudsc_3evt_LCTuple"
@@ -83,5 +87,6 @@ MINIDST_CMD="Marlin MarlinStdRecoMiniDST.xml \
clear_outputs
run_cmd ddsim.out ${DDSIM_CMD}
run_cmd marlin.out ${MARLIN_CMD}
+run_cmd k4run_rec.out ${GAUDI_RECO}
run_cmd lctuple.out ${LCTUPLE_CMD}
run_cmd minidst.out ${MINIDST_CMD}
diff --git a/doc/ReleaseNotes.md b/doc/ReleaseNotes.md
index 3a4941a0..dbccc5c3 100644
--- a/doc/ReleaseNotes.md
+++ b/doc/ReleaseNotes.md
@@ -1,3 +1,32 @@
+# v02-03-03
+
+* 2024-03-11 tmadlener ([PR#140](https://github.com/iLCSoft/ILDConfig/pull/140))
+ - Update the README to point to the `v02-03-03` release
+ - Add brief description of how to get an ILDConfig that is consistent with the release
+
+* 2024-03-11 tmadlener ([PR#137](https://github.com/iLCSoft/ILDConfig/pull/137))
+ - Add a Gaudi options file to run the standard reconstruction with some command line arguments to configure what to run
+ - Created via automatic conversion of the Marlin steering file plus the necessary adaptions to make it run
+ - Run from LCIO or EDM4hep inputs (mutually exlusive), use `--inputFiles`
+ - Produce EDM4hep output only by default, but allow to add LCIO output as well or switch to that using `--lcioOutput`.
+ - Read the README section to see all available command line arguments
+ - The overall reconstruction chain is modularized effectively in the same way as it was previously done for Marlin.
+ - Different parts of the chain live in different files, where each file defines part of the whole chain as a sequence.
+ - These sequences are dynamically loaded and configured depending on calibration constants, which depend on the CMS energy as well as the detector model.
+ - Calibration for the different detector models is also split into different `.cfg` files which essentially all just define a single dictionary with all calibration constants. The same approach is followed by the CMS energy dependent config parameters.
+
+* 2024-03-08 tmadlener ([PR#139](https://github.com/iLCSoft/ILDConfig/pull/139))
+ - Make sure standard workflow still runs with default PFA by ensuring the `PFAtype` constant is non empty.
+ - Rename the default PFA configuration to `PandoraPFAStd.xml`
+
+* 2024-02-23 Ulrich Einhaus ([PR#138](https://github.com/iLCSoft/ILDConfig/pull/138))
+ Add CPID calibration for ILD MC production of 2020, one based on training with single particles and one based on 2-fermion-Z-hadronic events.
+
+ This includes the weight files and the reference files which point to the weight files. In addition, the CPID steering is added to the MarlinRecoMiniDST.xml. Paths are relative and only work if executed from the StandardConfig/production folder!
+
+* 2024-01-10 Gerald Grenier ([PR#135](https://github.com/iLCSoft/ILDConfig/pull/135))
+ Add option to run different PFA type in Standard Reco and add an xml file to run perfect PandoraPFA based on MC truth.
+
# v02-03-02
* 2023-02-24 Jan Klamka ([PR#134](https://github.com/iLCSoft/iLDConfig/pull/134))