diff --git a/Trigger/TrigAlgorithms/TrigFastTrackFinder/python/TrigFastTrackFinderConfig.py b/Trigger/TrigAlgorithms/TrigFastTrackFinder/python/TrigFastTrackFinderConfig.py index 8fadfdff44581be6307928ee5b40a60470c55670..45109b30e7470be31291bbe0f2d5a36cd77ea239 100755 --- a/Trigger/TrigAlgorithms/TrigFastTrackFinder/python/TrigFastTrackFinderConfig.py +++ b/Trigger/TrigAlgorithms/TrigFastTrackFinder/python/TrigFastTrackFinderConfig.py @@ -365,6 +365,7 @@ def TrigFastTrackFinderCfg(flags: AthConfigFlags, name: str, RoIs: str, inputTra MonTool = TrigFastTrackFinderMonitoring(flags), Extrapolator = acc.popToolsAndMerge(AtlasExtrapolatorCfg(flags)), RoIs = RoIs, + FixSeedPhi = flags.Trigger.InDetTracking.fixSeedPhi ) ftf.LRT_D0Min = flags.Tracking.ActiveConfig.LRT_D0Min diff --git a/Trigger/TrigAlgorithms/TrigFastTrackFinder/src/TrigFastTrackFinder.cxx b/Trigger/TrigAlgorithms/TrigFastTrackFinder/src/TrigFastTrackFinder.cxx index 81232d7335eff751c6d4c187add60c7c1058691d..7f8081f2fdae14b87c35bac9f34ddeabc0283b97 100644 --- a/Trigger/TrigAlgorithms/TrigFastTrackFinder/src/TrigFastTrackFinder.cxx +++ b/Trigger/TrigAlgorithms/TrigFastTrackFinder/src/TrigFastTrackFinder.cxx @@ -125,6 +125,9 @@ TrigFastTrackFinder::TrigFastTrackFinder(const std::string& name, ISvcLocator* p declareProperty("Triplet_MinPtFrac", m_tripletMinPtFrac = 0.3,"Triplet pT threshold is pTmin*Triplet_MinPtFrac"); declareProperty("doSeedRedundancyCheck", m_checkSeedRedundancy = false,"skip Triplets already used in a track"); + //TODO: remove once decision made + declareProperty("FixSeedPhi", m_tcs.m_fix_seed_phi = false,"apply the fix for the seed phi"); + /** settings for the ML-enhanced track seeding */ declareProperty("UseTrigSeedML", m_tcs.m_useTrigSeedML = 0,"set ML-based seed selection mode (0 disables)" ); declareProperty("TrigSeedML_LUT", m_trigseedML_LUT = "trigseed_ml_pixel_barrel_kde.lut","LUT used by ML-based seed selection"); diff --git a/Trigger/TrigTools/TrigInDetConfig/python/TrigTrackingPassFlags.py b/Trigger/TrigTools/TrigInDetConfig/python/TrigTrackingPassFlags.py index 9968db311aa731cadaadc3cf3f7c1c5ca06c04a5..55ceca8f95aca5638e616572373241abaadbfe61 100644 --- a/Trigger/TrigTools/TrigInDetConfig/python/TrigTrackingPassFlags.py +++ b/Trigger/TrigTools/TrigInDetConfig/python/TrigTrackingPassFlags.py @@ -164,6 +164,8 @@ def createTrigTrackingPassFlags(mode="InDet"): flags.addFlag(f'{category}.RoiZedWidthDefault', 180.0 * Units.mm) flags.addFlag(f'{category}.doGPU', False) + #TODO: remove when decision made + flags.addFlag(f'{category}.fixSeedPhi', False) return flags diff --git a/Trigger/TrigTools/TrigInDetPattRecoTools/TrigInDetPattRecoTools/TrigCombinatorialSettings.h b/Trigger/TrigTools/TrigInDetPattRecoTools/TrigInDetPattRecoTools/TrigCombinatorialSettings.h index 439ffa2e60d888e2321212a9fea74e22fc53ee2d..832a4297372bbed53f0c404d30ab89223e5ea3cc 100644 --- a/Trigger/TrigTools/TrigInDetPattRecoTools/TrigInDetPattRecoTools/TrigCombinatorialSettings.h +++ b/Trigger/TrigTools/TrigInDetPattRecoTools/TrigInDetPattRecoTools/TrigCombinatorialSettings.h @@ -46,6 +46,9 @@ public: m_useEtaBinning = false; m_maxEC_len = 1.5; m_vLUT.clear(); + + //TODO: remove once decision made + m_fix_seed_phi = false; } int m_maxBarrelPix, m_minEndcapPix, m_maxEndcapPix, m_maxSiliconLayer; @@ -81,6 +84,9 @@ public: std::vector<TrigSeedML_LUT> m_vLUT; float m_maxEC_len; + //TODO: remove once decision made + bool m_fix_seed_phi; + } TRIG_COMBINATORIAL_SETTINGS; diff --git a/Trigger/TrigTools/TrigInDetPattRecoTools/src/TrigTrackSeedGenerator.cxx b/Trigger/TrigTools/TrigInDetPattRecoTools/src/TrigTrackSeedGenerator.cxx index afcb36cc307f387fd1421acee40c127a8e92f023..301d7c100afdb737e82675e4781e635d70c9bdbe 100644 --- a/Trigger/TrigTools/TrigInDetPattRecoTools/src/TrigTrackSeedGenerator.cxx +++ b/Trigger/TrigTools/TrigInDetPattRecoTools/src/TrigTrackSeedGenerator.cxx @@ -964,9 +964,8 @@ void TrigTrackSeedGenerator::createTripletsNew(const TrigSiSpacePointBase* pS, i if(dt2 > covdt+frac*dCov) continue; //4. d0 cut - - const double d0_partial = B*pS_r - A;//Pre-calculate for use in phi check - const double fabs_d0 = std::fabs(pS_r*(d0_partial)); + const double B_pS_r = B*pS_r;//Pre-calculate for use in phi check + const double fabs_d0 = std::fabs(pS_r*(B_pS_r - A)); if(fabs_d0 > m_settings.m_tripletD0Max) continue; @@ -980,9 +979,16 @@ void TrigTrackSeedGenerator::createTripletsNew(const TrigSiSpacePointBase* pS, i //5. phi0 cut if ( !fullPhi ) { - /// TODO: Check if uc calculation is correct; - /// inconsistent with other versions of createSeeds - const double uc = 2*d0_partial; + double uc; + + //TODO: remove once decision made + //for now put this change behind a flag + if(m_settings.m_fix_seed_phi){ + uc = 2*B_pS_r - A; + }else{ + uc = 2*(B*pS_r - A); + } + const double phi0 = atan2(sinA - uc*cosA, cosA + uc*sinA); if ( !RoiUtil::containsPhi( *roiDescriptor, phi0 ) ) {