From d3ebdba42e9838ca65268bf72db70b8def16e2ab Mon Sep 17 00:00:00 2001 From: Tomasz Bold <tomasz.bold@gmail.com> Date: Sat, 28 Aug 2021 07:57:08 +0200 Subject: [PATCH] Added option to force phi bin size below the hardcoded limit --- .../IDScanZFinder/python/ZFinderAlgConfig.py | 32 +++++++++---------- .../IDScanZFinder/src/IDScanZFinder.cxx | 2 +- .../IDScanZFinder/src/IDScanZFinderInternal.h | 6 ++-- .../IDScanZFinder/src/TrigZFinder.cxx | 3 +- .../IDScanZFinder/src/TrigZFinderInternal.cxx | 2 +- .../IDScanZFinder/src/TrigZFinderInternal.h | 1 + 6 files changed, 25 insertions(+), 21 deletions(-) diff --git a/Trigger/TrigTools/IDScanZFinder/python/ZFinderAlgConfig.py b/Trigger/TrigTools/IDScanZFinder/python/ZFinderAlgConfig.py index 95e98ad5549a..7c6ac2943092 100644 --- a/Trigger/TrigTools/IDScanZFinder/python/ZFinderAlgConfig.py +++ b/Trigger/TrigTools/IDScanZFinder/python/ZFinderAlgConfig.py @@ -6,22 +6,22 @@ from IDScanZFinder.IDScanZFinderConf import TrigZFinder MinBiasZFinderAlg = TrigZFinderAlg("TrigZFinderAlg", vertexKey=recordable("HLT_vtx_z")) MinBiasZFinderAlg.ZFinderTools += [TrigZFinder("default")] -MinBiasZFinderAlg.ZFinderTools += [TrigZFinder("BeamSpotLike", TripletMode=1, TripletDZ=1, PhiBinSize=0.1, UseOnlyPixels=True, MaxLayer=3)] -MinBiasZFinderAlg.ZFinderTools += [TrigZFinder("BeamSpotLike1", TripletMode=1, TripletDZ=1, PhiBinSize=0.05, UseOnlyPixels=True, MaxLayer=3)] -MinBiasZFinderAlg.ZFinderTools += [TrigZFinder("BeamSpotLike2", TripletMode=1, TripletDZ=1, PhiBinSize=0.02, UseOnlyPixels=True, MaxLayer=3)] -MinBiasZFinderAlg.ZFinderTools += [TrigZFinder("BeamSpotLike3", TripletMode=1, TripletDZ=1, PhiBinSize=0.01, UseOnlyPixels=True, MaxLayer=3)] -MinBiasZFinderAlg.ZFinderTools += [TrigZFinder("BeamSpotLike4", TripletMode=1, TripletDZ=0.5, PhiBinSize=0.1, UseOnlyPixels=True, MaxLayer=3)] -MinBiasZFinderAlg.ZFinderTools += [TrigZFinder("BeamSpotLike5", TripletMode=1, TripletDZ=0.5, PhiBinSize=0.05, UseOnlyPixels=True, MaxLayer=3)] -MinBiasZFinderAlg.ZFinderTools += [TrigZFinder("BeamSpotLike6", TripletMode=1, TripletDZ=0.5, PhiBinSize=0.02, UseOnlyPixels=True, MaxLayer=3)] -MinBiasZFinderAlg.ZFinderTools += [TrigZFinder("BeamSpotLike7", TripletMode=1, TripletDZ=0.5, PhiBinSize=0.01, UseOnlyPixels=True, MaxLayer=3)] -MinBiasZFinderAlg.ZFinderTools += [TrigZFinder("BeamSpotLike8", TripletMode=1, TripletDZ=1.5, PhiBinSize=0.1, UseOnlyPixels=True, MaxLayer=3)] -MinBiasZFinderAlg.ZFinderTools += [TrigZFinder("BeamSpotLike9", TripletMode=1, TripletDZ=1.5, PhiBinSize=0.05, UseOnlyPixels=True, MaxLayer=3)] -MinBiasZFinderAlg.ZFinderTools += [TrigZFinder("BeamSpotLike10", TripletMode=1, TripletDZ=1.5, PhiBinSize=0.02, UseOnlyPixels=True, MaxLayer=3)] -MinBiasZFinderAlg.ZFinderTools += [TrigZFinder("BeamSpotLike11", TripletMode=1, TripletDZ=1.5, PhiBinSize=0.01, UseOnlyPixels=True, MaxLayer=3)] -MinBiasZFinderAlg.ZFinderTools += [TrigZFinder("BeamSpotLike12", TripletMode=1, TripletDZ=2, PhiBinSize=0.1, UseOnlyPixels=True, MaxLayer=3)] -MinBiasZFinderAlg.ZFinderTools += [TrigZFinder("BeamSpotLike13", TripletMode=1, TripletDZ=2, PhiBinSize=0.05, UseOnlyPixels=True, MaxLayer=3)] -MinBiasZFinderAlg.ZFinderTools += [TrigZFinder("BeamSpotLike14", TripletMode=1, TripletDZ=2, PhiBinSize=0.02, UseOnlyPixels=True, MaxLayer=3)] -MinBiasZFinderAlg.ZFinderTools += [TrigZFinder("BeamSpotLike15", TripletMode=1, TripletDZ=2, PhiBinSize=0.01, UseOnlyPixels=True, MaxLayer=3)] +MinBiasZFinderAlg.ZFinderTools += [TrigZFinder("BeamSpotLike", TripletMode=1, TripletDZ=1, ForcePhiBinSize =True, PhiBinSize=0.1, UseOnlyPixels=True, MaxLayer=3)] +MinBiasZFinderAlg.ZFinderTools += [TrigZFinder("BeamSpotLike1", TripletMode=1, TripletDZ=1, ForcePhiBinSize =True, PhiBinSize=0.05, UseOnlyPixels=True, MaxLayer=3)] +MinBiasZFinderAlg.ZFinderTools += [TrigZFinder("BeamSpotLike2", TripletMode=1, TripletDZ=1, ForcePhiBinSize =True, PhiBinSize=0.02, UseOnlyPixels=True, MaxLayer=3)] +MinBiasZFinderAlg.ZFinderTools += [TrigZFinder("BeamSpotLike3", TripletMode=1, TripletDZ=1, ForcePhiBinSize =True, PhiBinSize=0.01, UseOnlyPixels=True, MaxLayer=3)] +MinBiasZFinderAlg.ZFinderTools += [TrigZFinder("BeamSpotLike4", TripletMode=1, TripletDZ=0.5, ForcePhiBinSize =True, PhiBinSize=0.1, UseOnlyPixels=True, MaxLayer=3)] +MinBiasZFinderAlg.ZFinderTools += [TrigZFinder("BeamSpotLike5", TripletMode=1, TripletDZ=0.5, ForcePhiBinSize =True, PhiBinSize=0.05, UseOnlyPixels=True, MaxLayer=3)] +MinBiasZFinderAlg.ZFinderTools += [TrigZFinder("BeamSpotLike6", TripletMode=1, TripletDZ=0.5, ForcePhiBinSize =True, PhiBinSize=0.02, UseOnlyPixels=True, MaxLayer=3)] +MinBiasZFinderAlg.ZFinderTools += [TrigZFinder("BeamSpotLike7", TripletMode=1, TripletDZ=0.5, ForcePhiBinSize =True, PhiBinSize=0.01, UseOnlyPixels=True, MaxLayer=3)] +MinBiasZFinderAlg.ZFinderTools += [TrigZFinder("BeamSpotLike8", TripletMode=1, TripletDZ=1.5, ForcePhiBinSize =True, PhiBinSize=0.1, UseOnlyPixels=True, MaxLayer=3)] +MinBiasZFinderAlg.ZFinderTools += [TrigZFinder("BeamSpotLike9", TripletMode=1, TripletDZ=1.5, ForcePhiBinSize =True, PhiBinSize=0.05, UseOnlyPixels=True, MaxLayer=3)] +MinBiasZFinderAlg.ZFinderTools += [TrigZFinder("BeamSpotLike10", TripletMode=1, TripletDZ=1.5, ForcePhiBinSize =True, PhiBinSize=0.02, UseOnlyPixels=True, MaxLayer=3)] +MinBiasZFinderAlg.ZFinderTools += [TrigZFinder("BeamSpotLike11", TripletMode=1, TripletDZ=1.5, ForcePhiBinSize =True, PhiBinSize=0.01, UseOnlyPixels=True, MaxLayer=3)] +MinBiasZFinderAlg.ZFinderTools += [TrigZFinder("BeamSpotLike12", TripletMode=1, TripletDZ=2, ForcePhiBinSize =True, PhiBinSize=0.1, UseOnlyPixels=True, MaxLayer=3)] +MinBiasZFinderAlg.ZFinderTools += [TrigZFinder("BeamSpotLike13", TripletMode=1, TripletDZ=2, ForcePhiBinSize =True, PhiBinSize=0.05, UseOnlyPixels=True, MaxLayer=3)] +MinBiasZFinderAlg.ZFinderTools += [TrigZFinder("BeamSpotLike14", TripletMode=1, TripletDZ=2, ForcePhiBinSize =True, PhiBinSize=0.02, UseOnlyPixels=True, MaxLayer=3)] +MinBiasZFinderAlg.ZFinderTools += [TrigZFinder("BeamSpotLike15", TripletMode=1, TripletDZ=2, ForcePhiBinSize =True, PhiBinSize=0.01, UseOnlyPixels=True, MaxLayer=3)] from AthenaMonitoringKernel.GenericMonitoringTool import GenericMonitoringTool diff --git a/Trigger/TrigTools/IDScanZFinder/src/IDScanZFinder.cxx b/Trigger/TrigTools/IDScanZFinder/src/IDScanZFinder.cxx index 3b3a27f101ca..1ff46d87c99e 100755 --- a/Trigger/TrigTools/IDScanZFinder/src/IDScanZFinder.cxx +++ b/Trigger/TrigTools/IDScanZFinder/src/IDScanZFinder.cxx @@ -68,7 +68,7 @@ StatusCode IDScanZFinder::initialize() /// NB: These only have to go here, because they need to write to the msgsvc, and because /// is rubbish, we can't pass in a pointer to a (non-athena) sub algorithm. - if ( m_phiBinSize < ZFinder_MinPhiSliceSize ){ + if ( m_phiBinSize < ZFinder_MinPhiSliceSize and ! m_forcePhiBinSize ){ ATH_MSG_WARNING("Requested PhiBinSize of " << m_phiBinSize << " degrees is smaller than the minimum allowed (" << ZFinder_MinPhiSliceSize << " degrees). Set to the minimum value."); diff --git a/Trigger/TrigTools/IDScanZFinder/src/IDScanZFinderInternal.h b/Trigger/TrigTools/IDScanZFinder/src/IDScanZFinderInternal.h index 9d608fe54b19..ae1f2949c858 100644 --- a/Trigger/TrigTools/IDScanZFinder/src/IDScanZFinderInternal.h +++ b/Trigger/TrigTools/IDScanZFinder/src/IDScanZFinderInternal.h @@ -100,7 +100,8 @@ protected: // data members double m_invPhiSliceSize; // the inverse size of the phi slices long m_NumPhiSlices; // the number of phi slices, given the width of the RoI - double m_phiBinSize; // the size of the phi slices + double m_phiBinSize; // the size of the phi slices + bool m_forcePhiBinSize; // forces the phi bin size to be be used as configured even if below reasonable limit double m_usedphiBinSize; // the size of the phi slices double m_ROIphiWidth; // the phi width of the ROI double m_usedROIphiWidth; // the phi width of the ROI @@ -174,6 +175,7 @@ IDScanZFinderInternal<SpacePoint>::IDScanZFinderInternal( const std::string& typ m_Name = name; m_phiBinSize = 0.2 ; + m_forcePhiBinSize = false ; m_usedphiBinSize = m_phiBinSize ; m_pixOnly = false ; m_ROIphiWidth = 0.2 ; @@ -234,7 +236,7 @@ void IDScanZFinderInternal<SpacePoint>::initializeInternal(long maxLayers, long // from IDScanZFinder::initialize m_usedphiBinSize = m_phiBinSize; - if ( m_usedphiBinSize < ZFinder_MinPhiSliceSize ) m_usedphiBinSize = ZFinder_MinPhiSliceSize; + if ( m_usedphiBinSize < ZFinder_MinPhiSliceSize and ! m_forcePhiBinSize) m_usedphiBinSize = ZFinder_MinPhiSliceSize; if ( m_dphideta > 0 ) m_dphideta *= -m_dphideta; m_invPhiSliceSize = 180./(M_PI*m_usedphiBinSize); diff --git a/Trigger/TrigTools/IDScanZFinder/src/TrigZFinder.cxx b/Trigger/TrigTools/IDScanZFinder/src/TrigZFinder.cxx index 216fa629c16f..1e807574d4ea 100755 --- a/Trigger/TrigTools/IDScanZFinder/src/TrigZFinder.cxx +++ b/Trigger/TrigTools/IDScanZFinder/src/TrigZFinder.cxx @@ -33,6 +33,7 @@ TrigZFinder::TrigZFinder( const std::string& type, const std::string& name, cons // std::cout << "ZFinder::ZFinder() version " << name << " " << type << "\tTrigZFinder-00-00-62"<< std::endl; declareProperty( "PhiBinSize", m_phiBinSize = 0.2 ); + declareProperty( "ForcePhiBinSize", m_forcePhiBinSize = false ); declareProperty( "UseOnlyPixels", m_pixOnly = false ); declareProperty( "MinZBinSize", m_minZBinSize = 0.2 ); declareProperty( "nFirstLayers", m_nFirstLayers = 3 ); @@ -76,7 +77,7 @@ StatusCode TrigZFinder::initialize() /// NB: These only have to go here, because they need to write to the msgsvc, and because /// is rubbish, we can't pass in a pointer to a (non-athena) sub algorithm. - if ( m_phiBinSize < ZFinder_MinPhiSliceSize ){ + if ( m_phiBinSize < ZFinder_MinPhiSliceSize and ! m_forcePhiBinSize ){ ATH_MSG_WARNING("Requested PhiBinSize of " << m_phiBinSize << " degrees is smaller than the minimum allowed (" << ZFinder_MinPhiSliceSize << " degrees). Set to the minimum value."); diff --git a/Trigger/TrigTools/IDScanZFinder/src/TrigZFinderInternal.cxx b/Trigger/TrigTools/IDScanZFinder/src/TrigZFinderInternal.cxx index c5d948b4edb8..ac74bb46e346 100644 --- a/Trigger/TrigTools/IDScanZFinder/src/TrigZFinderInternal.cxx +++ b/Trigger/TrigTools/IDScanZFinder/src/TrigZFinderInternal.cxx @@ -96,7 +96,7 @@ void TrigZFinderInternal::initializeInternal(long maxLayers, long lastBarrel ) // from TrigZFinder::initialize m_usedphiBinSize = m_phiBinSize; - if ( m_usedphiBinSize < ZFinder_MinPhiSliceSize ) m_usedphiBinSize = ZFinder_MinPhiSliceSize; + if ( m_usedphiBinSize < ZFinder_MinPhiSliceSize and ! m_forcePhiBinSize) m_usedphiBinSize = ZFinder_MinPhiSliceSize; if ( m_dphideta > 0 ) m_dphideta *= -m_dphideta; m_invPhiSliceSize = 180./(M_PI*m_usedphiBinSize); diff --git a/Trigger/TrigTools/IDScanZFinder/src/TrigZFinderInternal.h b/Trigger/TrigTools/IDScanZFinder/src/TrigZFinderInternal.h index 8c3f70481277..346d37ff4b11 100644 --- a/Trigger/TrigTools/IDScanZFinder/src/TrigZFinderInternal.h +++ b/Trigger/TrigTools/IDScanZFinder/src/TrigZFinderInternal.h @@ -91,6 +91,7 @@ protected: // data members long m_NumPhiSlices = 0L; // the number of phi slices, given the width of the RoI double m_phiBinSize; // the size of the phi slices + bool m_forcePhiBinSize; // respect the config of phi bin even if below reasonable threshold double m_usedphiBinSize; // the size of the phi slices double m_ROIphiWidth; // the phi width of the ROI double m_usedROIphiWidth; // the phi width of the ROI -- GitLab