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))