diff --git a/Common/Core/TrackSelection.h b/Common/Core/TrackSelection.h index b27ee30e8fd..618124f638f 100644 --- a/Common/Core/TrackSelection.h +++ b/Common/Core/TrackSelection.h @@ -53,7 +53,8 @@ class TrackSelection Run3ITSibAny, Run3ITSallAny, Run3ITSall7Layers, - Run3ITSibTwo + Run3ITSibTwo, + Run3ITSibFirst }; // Flags for the selection of the DCAxy diff --git a/Common/Core/TrackSelectionDefaults.cxx b/Common/Core/TrackSelectionDefaults.cxx index a5470e34745..1974b7df38f 100644 --- a/Common/Core/TrackSelectionDefaults.cxx +++ b/Common/Core/TrackSelectionDefaults.cxx @@ -58,6 +58,9 @@ TrackSelection getGlobalTrackSelectionRun3ITSMatch(int matching, int passFlag) case TrackSelection::GlobalTrackRun3ITSMatching::Run3ITSall7Layers: selectedTracks.SetRequireHitsInITSLayers(7, {0, 1, 2, 3, 4, 5, 6}); break; + case TrackSelection::GlobalTrackRun3ITSMatching::Run3ITSibFirst: + selectedTracks.SetRequireHitsInITSLayers(1, {0}); + break; default: LOG(fatal) << "getGlobalTrackSelectionRun3ITSMatch with undefined ITS matching"; break; diff --git a/Common/TableProducer/trackselection.cxx b/Common/TableProducer/trackselection.cxx index 7ae8930de17..6bedd2fb39d 100644 --- a/Common/TableProducer/trackselection.cxx +++ b/Common/TableProducer/trackselection.cxx @@ -41,7 +41,7 @@ struct TrackSelectionTask { Configurable produceTable{"produceTable", -1, "option to produce the standard table table with the track selection. -1 autosetup, 0 dislabled, 1 enabled"}; Configurable produceFBextendedTable{"produceFBextendedTable", -1, "option to produce table with FB selection information. -1 autosetup, 0 dislabled, 1 enabled"}; Configurable compatibilityIU{"compatibilityIU", false, "compatibility option to allow the processing of tracks before the introduction of IU tracks"}; - Configurable itsMatching{"itsMatching", 0, "condition for ITS matching (0: Run2 SPD kAny, 1: Run3ITSibAny, 2: Run3ITSallAny, 3: Run3ITSall7Layers)"}; + Configurable itsMatching{"itsMatching", 0, "condition for ITS matching (0: Run2 SPD kAny, 1: Run3ITSibAny, 2: Run3ITSallAny, 3: Run3ITSall7Layers, 4: Run3ITSibFirst)"}; Configurable dcaSetup{"dcaSetup", 0, "dca setup: (0: default, 1: ppPass3)"}; Configurable ptMin{"ptMin", 0.1f, "Lower cut on pt for the track selected"}; Configurable ptMax{"ptMax", 1e10f, "Upper cut on pt for the track selected"}; @@ -95,6 +95,13 @@ struct TrackSelectionTask { globalTracks = getGlobalTrackSelectionRun3ITSMatch(TrackSelection::GlobalTrackRun3ITSMatching::Run3ITSall7Layers, dcaSetup.value); break; } + case 4: + // Run 3 kFirst, i.e. 1 hit in first layer of ITS + if (isRun3) { + LOG(info) << "setting up getGlobalTrackSelectionRun3ITSMatch(TrackSelection::GlobalTrackRun3ITSMatching::Run3ITSibFirst, " << dcaSetup.value << ");"; + globalTracks = getGlobalTrackSelectionRun3ITSMatch(TrackSelection::GlobalTrackRun3ITSMatching::Run3ITSibFirst, dcaSetup.value); + break; + } default: LOG(fatal) << "TrackSelectionTask with undefined cuts. Fix it!"; break;