Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
22e4652
Use VTXDigitizer from k4RecTracker instead of Marlin digitizer for ve…
jessy-daniel Dec 18, 2024
8d8f4a9
Adapt CLDConfiguration to use VTXDigiDetailed instead of VTXDigi for …
jessy-daniel Jan 15, 2025
89f4279
Add LocalNormalVectorDir parameterization and precise DetectorName wi…
jessy-daniel Jan 28, 2025
6ef1f32
Merge remote-tracking branch 'upstream/main' into detailled_digitizer
jessy-daniel Jan 28, 2025
28b1184
Update TrackingDigi to use new VtxDigiDetailed digitizer within k4Rec…
jessy-daniel Feb 10, 2025
c6d19b6
Merge remote-tracking branch 'upstream/main' into detailled_digitizer
jessy-daniel Feb 10, 2025
0084979
Add Debug Histograms in digitizer output
jessy-daniel Feb 10, 2025
027418f
Update name of the LCIO version of TrackerHitPlaneCollection
jessy-daniel Feb 12, 2025
7ad55ff
Set time resolution to 0 for now
jessy-daniel Feb 12, 2025
cdeebcf
Change the Collections and relations names for consistency with recon…
jessy-daniel Feb 13, 2025
a126d26
Change the names of the collections to discriminate between EDM4Hep C…
jessy-daniel Feb 13, 2025
3028748
Set correct names for collections and collection converter
jessy-daniel Feb 17, 2025
0d7e8c4
Debug
jessy-daniel Mar 25, 2025
c25cc0d
Merge remote-tracking branch 'upstream/main' into detailled_digitizer
jessy-daniel Mar 25, 2025
f889140
Merge remote-tracking branch 'upstream/main' into detailled_digitizer
jessy-daniel Apr 15, 2025
2d83c68
True Works vs False Issue CollNameMapping
asabard Apr 17, 2025
1292fed
thresh config
Apr 28, 2025
09ecff8
Merge remote-tracking branch 'upstream/main' into detailled_digitizer
jessy-daniel Jun 18, 2025
a83a88e
Use DEBUG for Tracking Digi
jessy-daniel Jun 25, 2025
47d3156
Set threshold to 0 and remove debug plots and debug logs
jessy-daniel Jul 16, 2025
f623817
Remove forceHitOntoSurface and use Debug plots
jessy-daniel Jul 24, 2025
8f9dc12
Remove readoutName option that is now automatically taken from inputS…
jessy-daniel Sep 4, 2025
5918864
Update with gaudi::Functional detailed digitizer
jessy-daniel Sep 30, 2025
b157b5c
Merge remote-tracking branch 'upstream/main' into detailled_digitizer
jessy-daniel Nov 20, 2025
caf9104
Update Digitizer config with parametrized pixels and KeyValue instead…
jessy-daniel Nov 25, 2025
8676489
Merge remote-tracking branch 'upstream/main' into detailled_digitizer
jessy-daniel Feb 18, 2026
97b418c
Use Detailed Tracker Digitizer as option
jessy-daniel Feb 18, 2026
afc193c
Restore steps names in Conformaltracking
jessy-daniel Feb 18, 2026
ec19882
Run precommit to correct format
jessy-daniel Feb 18, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion CLDConfig/CLDReconstruction.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@
parser_group.add_argument("--enableLCFIJet", action="store_true", help="Enable LCFIPlus jet clustering parts", default=False)
parser_group.add_argument("--cms", action="store", help="Choose a Centre-of-Mass energy", default=240, choices=(91, 160, 240, 365), type=int)
parser_group.add_argument("--compactFile", help="Compact detector file to use", type=str, default=os.environ["K4GEO"] + "/FCCee/CLD/compact/CLD_o2_v07/CLD_o2_v07.xml")
parser_group.add_argument("--detailedDigitization", action="store_true", default=False, help="Use detailed digitization for the tracker (k4Rectracker/VTXdigiDetailed), instead of parametric digitization")
tracking_group = parser_group.add_mutually_exclusive_group()
tracking_group.add_argument("--conformalTracking", action="store_true", default=True, help="Use conformal tracking pattern recognition")
tracking_group.add_argument("--truthTracking", action="store_true", default=False, help="Cheat tracking pattern recognition")
Expand Down Expand Up @@ -115,7 +116,10 @@
algList.append(MyAIDAProcessor)
sequenceLoader.load("Overlay/Overlay")
# tracker hit digitisation
sequenceLoader.load("Tracking/TrackingDigi")
if reco_args.detailedDigitization:
sequenceLoader.load("Tracking/TrackingDigiDetailed")
else:
sequenceLoader.load("Tracking/TrackingDigi")

# tracking
if reco_args.truthTracking:
Expand Down
9 changes: 8 additions & 1 deletion CLDConfig/Tracking/ConformalTracking.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,9 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
from Gaudi.Configuration import WARNING
from Gaudi.Configuration import INFO, WARNING, DEBUG
from Configurables import MarlinProcessorWrapper
from Configurables import ToolSvc, Lcio2EDM4hepTool, EDM4hep2LcioTool


# geoservice comes from the `global_vars` of the SequenceLoader
Expand Down Expand Up @@ -80,6 +81,12 @@
"TrackerHitCollectionNames": ["VXDTrackerHits", "VXDEndcapTrackerHits", "ITrackerHits", "OTrackerHits", "ITrackerEndcapHits", "OTrackerEndcapHits"],
"trackPurity": ["0.7"]
}
# EDM4hep to LCIO converter (only needed for the Detailed Digitization which produces EDM4hep output)
if reco_args.detailedDigitization:
edmConvTool = EDM4hep2LcioTool("EDM4hep2Lcio")
edmConvTool.convertAll = True
edmConvTool.OutputLevel = WARNING
MyConformalTracking.EDM4hep2LcioTool = edmConvTool

ClonesAndSplitTracksFinder = MarlinProcessorWrapper("ClonesAndSplitTracksFinder")
ClonesAndSplitTracksFinder.OutputLevel = WARNING
Expand Down
119 changes: 119 additions & 0 deletions CLDConfig/Tracking/TrackingDigiDetailed.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
#
# Copyright (c) 2014-2024 Key4hep-Project.
#
# This file is part of Key4hep.
# See https://key4hep.github.io/key4hep-doc/ for further info.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
from Gaudi.Configuration import WARNING, DEBUG, INFO
from Configurables import VTXdigitizerDetailed

VTXBarrelDigitizer = VTXdigitizerDetailed("VTXBarrelDigitizer",
inputSimHits = "VertexBarrelCollection",
outputDigiHits = "VXDTrackerHits",
outputSimDigiAssociation = "VXDTrackerHitRelations",
detectorName = "VertexBarrel",
PixSizePhi = [0.020, 0.020, 0.020, 0.020, 0.020, 0.020], # in mm
PixSizeTheta = [0.020, 0.020, 0.020, 0.020, 0.020, 0.020], # in mm
tResolution = [0.,0.,0.,0.,0.,0.],
Threshold = 100.0,
ThresholdSmearing = 20.0,
OutputLevel = WARNING,
DebugHistos = False,
DebugFileName = "Debug_VTXBarrelDigitizer.root"
)

VTXEndcapDigitizer = VTXdigitizerDetailed("VTXEndcapDigitizer",
inputSimHits = "VertexEndcapCollection",
outputDigiHits = "VXDEndcapTrackerHits",
outputSimDigiAssociation = "VXDEndcapTrackerHitRelations",
detectorName = "VertexEndcap",
PixSizePhi = [0.020, 0.020, 0.020, 0.020, 0.020, 0.020], # in mm
PixSizeTheta = [0.020, 0.020, 0.020, 0.020, 0.020, 0.020], # in mm
tResolution = [0.,0.,0.,0.,0.,0.],
Threshold = 100.0,
ThresholdSmearing = 20.0,
OutputLevel = WARNING,
DebugHistos = False,
DebugFileName = "Debug_VTXEndcapDigitizer.root"
)

InnerTrackerBarrelDigitizer = VTXdigitizerDetailed("InnerTrackerBarrelDigitizer",
inputSimHits = "InnerTrackerBarrelCollection",
outputDigiHits = "ITrackerHits",
outputSimDigiAssociation = "InnerTrackerBarrelHitsRelations",
detectorName = "InnerTrackerBarrel",
PixSizePhi = [0.050, 0.050, 0.050], # in mm
PixSizeTheta = [0.300, 0.300, 0.300], # in mm
tResolution = [0.,0.,0.],
Threshold = 100.0,
ThresholdSmearing = 20.0,
OutputLevel = WARNING,
DebugHistos = False,
DebugFileName = "Debug_InnerTrackerBarrelDigitizer.root"
)

InnerTrackerEndcapDigitizer = VTXdigitizerDetailed("InnerTrackerEndcapDigitizer",
inputSimHits = "InnerTrackerEndcapCollection",
outputDigiHits = "ITrackerEndcapHits",
outputSimDigiAssociation = "InnerTrackerEndcapHitsRelations",
detectorName = "InnerTrackerEndcap",
PixSizePhi = [0.020, 0.050, 0.050, 0.050, 0.050, 0.050,0.050], # in mm
PixSizeTheta = [0.020, 0.300, 0.300, 0.300, 0.300, 0.300, 0.300], # in mm
tResolution = [0.,0.,0.,0.,0.,0.,0.],
Threshold = 100.0,
ThresholdSmearing = 20.0,
OutputLevel = WARNING,
DebugHistos = False,
DebugFileName = "Debug_InnerTrackerEndcapDigitizer.root"
)

OuterTrackerBarrelDigitizer = VTXdigitizerDetailed("OuterTrackerBarrelDigitizer",
inputSimHits = "OuterTrackerBarrelCollection",
outputDigiHits = "OTrackerHits",
outputSimDigiAssociation = "OuterTrackerBarrelHitsRelations",
detectorName = "OuterTrackerBarrel",
PixSizePhi = [0.050, 0.050, 0.050], # in mm
PixSizeTheta = [0.300, 0.300, 0.300], # in mm
tResolution = [0.,0.,0.],
Threshold = 100.0,
ThresholdSmearing = 20.0,
OutputLevel = WARNING,
DebugHistos = False,
DebugFileName = "Debug_OuterTrackerBarrelDigitizer.root"
)

OuterTrackerEndcapDigitizer = VTXdigitizerDetailed("OuterTrackerEndcapDigitizer",
inputSimHits = "OuterTrackerEndcapCollection",
outputDigiHits = "OTrackerEndcapHits",
outputSimDigiAssociation = "OuterTrackerEndcapHitsRelations",
detectorName = "OuterTrackerEndcap",
PixSizePhi = [0.050, 0.050, 0.050, 0.050], # in mm
PixSizeTheta = [0.300, 0.300, 0.300, 0.300], # in mm
tResolution = [0.,0.,0.,0.],
Threshold = 100.0,
ThresholdSmearing = 20.0,
OutputLevel = WARNING,
DebugHistos = False,
DebugFileName = "Debug_OuterTrackerEndcapDigitizer.root"
)

TrackingDigiDetailedSequence = [
VTXBarrelDigitizer,
VTXEndcapDigitizer,
InnerTrackerBarrelDigitizer,
InnerTrackerEndcapDigitizer,
OuterTrackerBarrelDigitizer,
OuterTrackerEndcapDigitizer
]