From c046e972b98ac96be3a8b1323790ac6a31b37345 Mon Sep 17 00:00:00 2001 From: Rafal Bielski <rafal.bielski@cern.ch> Date: Wed, 20 May 2020 18:21:43 +0200 Subject: [PATCH] Remove the package TrigDetCalib --- .../TrigDetCalib/CMakeLists.txt | 42 -- .../TrigDetCalib/ATLAS_CHECK_THREAD_SAFETY | 1 - .../TrigDetCalib/ITrigROBSelector.h | 50 -- .../TrigDetCalib/python/TrigDetCalibConfig.py | 593 --------------- .../python/TrigDetCalibMonitoring.py | 99 --- .../TrigDetCalib/src/ScoutingStreamWriter.cxx | 121 --- .../TrigDetCalib/src/ScoutingStreamWriter.h | 51 -- .../TrigDetCalib/src/TrigCheckForMuons.cxx | 312 -------- .../TrigDetCalib/src/TrigCheckForMuons.h | 102 --- .../TrigDetCalib/src/TrigCheckForTracks.cxx | 302 -------- .../TrigDetCalib/src/TrigCheckForTracks.h | 99 --- .../TrigDetCalib/src/TrigEtaHypo.cxx | 106 --- .../TrigDetCalib/src/TrigEtaHypo.h | 54 -- .../TrigDetCalib/src/TrigL1CaloOverflow.cxx | 80 -- .../TrigDetCalib/src/TrigL1CaloOverflow.h | 39 - .../TrigDetCalib/src/TrigROBListWriter.cxx | 154 ---- .../TrigDetCalib/src/TrigROBListWriter.h | 95 --- .../TrigDetCalib/src/TrigROBSelector.cxx | 281 ------- .../TrigDetCalib/src/TrigROBSelector.h | 87 --- .../TrigDetCalib/src/TrigSubDetListWriter.cxx | 707 ------------------ .../TrigDetCalib/src/TrigSubDetListWriter.h | 131 ---- .../src/components/TrigDetCalib_entries.cxx | 17 - .../python/menu/Physics_pp_v7_primaries.py | 2 +- 23 files changed, 1 insertion(+), 3524 deletions(-) delete mode 100644 Trigger/TrigAlgorithms/TrigDetCalib/CMakeLists.txt delete mode 100644 Trigger/TrigAlgorithms/TrigDetCalib/TrigDetCalib/ATLAS_CHECK_THREAD_SAFETY delete mode 100644 Trigger/TrigAlgorithms/TrigDetCalib/TrigDetCalib/ITrigROBSelector.h delete mode 100755 Trigger/TrigAlgorithms/TrigDetCalib/python/TrigDetCalibConfig.py delete mode 100644 Trigger/TrigAlgorithms/TrigDetCalib/python/TrigDetCalibMonitoring.py delete mode 100755 Trigger/TrigAlgorithms/TrigDetCalib/src/ScoutingStreamWriter.cxx delete mode 100755 Trigger/TrigAlgorithms/TrigDetCalib/src/ScoutingStreamWriter.h delete mode 100644 Trigger/TrigAlgorithms/TrigDetCalib/src/TrigCheckForMuons.cxx delete mode 100644 Trigger/TrigAlgorithms/TrigDetCalib/src/TrigCheckForMuons.h delete mode 100755 Trigger/TrigAlgorithms/TrigDetCalib/src/TrigCheckForTracks.cxx delete mode 100644 Trigger/TrigAlgorithms/TrigDetCalib/src/TrigCheckForTracks.h delete mode 100644 Trigger/TrigAlgorithms/TrigDetCalib/src/TrigEtaHypo.cxx delete mode 100644 Trigger/TrigAlgorithms/TrigDetCalib/src/TrigEtaHypo.h delete mode 100644 Trigger/TrigAlgorithms/TrigDetCalib/src/TrigL1CaloOverflow.cxx delete mode 100644 Trigger/TrigAlgorithms/TrigDetCalib/src/TrigL1CaloOverflow.h delete mode 100755 Trigger/TrigAlgorithms/TrigDetCalib/src/TrigROBListWriter.cxx delete mode 100755 Trigger/TrigAlgorithms/TrigDetCalib/src/TrigROBListWriter.h delete mode 100644 Trigger/TrigAlgorithms/TrigDetCalib/src/TrigROBSelector.cxx delete mode 100644 Trigger/TrigAlgorithms/TrigDetCalib/src/TrigROBSelector.h delete mode 100755 Trigger/TrigAlgorithms/TrigDetCalib/src/TrigSubDetListWriter.cxx delete mode 100755 Trigger/TrigAlgorithms/TrigDetCalib/src/TrigSubDetListWriter.h delete mode 100644 Trigger/TrigAlgorithms/TrigDetCalib/src/components/TrigDetCalib_entries.cxx diff --git a/Trigger/TrigAlgorithms/TrigDetCalib/CMakeLists.txt b/Trigger/TrigAlgorithms/TrigDetCalib/CMakeLists.txt deleted file mode 100644 index 16b27f0abb5..00000000000 --- a/Trigger/TrigAlgorithms/TrigDetCalib/CMakeLists.txt +++ /dev/null @@ -1,42 +0,0 @@ -################################################################################ -# Package: TrigDetCalib -################################################################################ - -# Declare the package name: -atlas_subdir( TrigDetCalib ) - -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - DetectorDescription/IRegionSelector - GaudiKernel - Trigger/TrigEvent/TrigInDetEvent - Trigger/TrigEvent/TrigSteeringEvent - PRIVATE - Control/AthenaBaseComps - Control/AthenaKernel - Control/CxxUtils - Event/EventInfo - Event/xAOD/xAODEventInfo - Event/xAOD/xAODMuon - Tracking/TrkEvent/TrkTrack - Trigger/TrigSteer/TrigInterfaces - Trigger/TrigSteer/TrigSteering - Trigger/TrigT1/TrigT1Result - Trigger/TrigTools/TrigTimeAlgs - Trigger/TrigEvent/TrigMuonEvent ) - -# External dependencies: -find_package( ROOT COMPONENTS Core Tree MathCore Hist RIO pthread MathMore Minuit Minuit2 Matrix Physics HistPainter Rint ) -find_package( tdaq-common ) - -# Component(s) in the package: -atlas_add_component( TrigDetCalib - src/*.cxx - src/components/*.cxx - INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${TDAQ-COMMON_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} ${TDAQ-COMMON_LIBRARIES} IRegionSelector GaudiKernel TrigInDetEvent TrigSteeringEvent AthenaBaseComps AthenaKernel EventInfo TrkTrack TrigInterfacesLib TrigSteeringLib TrigT1Result TrigTimeAlgsLib TrigMuonEvent) - -# Install files from the package: -atlas_install_headers( TrigDetCalib ) -atlas_install_python_modules( python/*.py ) - diff --git a/Trigger/TrigAlgorithms/TrigDetCalib/TrigDetCalib/ATLAS_CHECK_THREAD_SAFETY b/Trigger/TrigAlgorithms/TrigDetCalib/TrigDetCalib/ATLAS_CHECK_THREAD_SAFETY deleted file mode 100644 index eaa981fd24f..00000000000 --- a/Trigger/TrigAlgorithms/TrigDetCalib/TrigDetCalib/ATLAS_CHECK_THREAD_SAFETY +++ /dev/null @@ -1 +0,0 @@ -Trigger/TrigAlgorithms/TrigDetCalib diff --git a/Trigger/TrigAlgorithms/TrigDetCalib/TrigDetCalib/ITrigROBSelector.h b/Trigger/TrigAlgorithms/TrigDetCalib/TrigDetCalib/ITrigROBSelector.h deleted file mode 100644 index 6a024ba00fe..00000000000 --- a/Trigger/TrigAlgorithms/TrigDetCalib/TrigDetCalib/ITrigROBSelector.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -/********************************************************************************** - * @Project: LAr Calibration - * @Package: TrigDetCalib - * @class : ITrigROBSelector - * - * @brief : interface for TrigROBSelector - * - * @author Nicolas Berger <Nicolas.Berger@cern.ch> - CERN - * - * File and Version Information: - * $Id: ITrigROBSelector.h,v 1.1 2008-10-14 12:03:47 nberger Exp $ - **********************************************************************************/ - -#ifndef TrigEgammaHypo_ITrigROBSelector_H -#define TrigEgammaHypo_ITrigROBSelector_H - -#include "GaudiKernel/IAlgTool.h" -#include "TrigSteeringEvent/Enums.h" -#include "IRegionSelector/RegSelEnums.h" - -class PartialEventBuildingInfo; -class IRoiDescriptor; - -/** - @class ITrigROBSelector - interface for TrigROBSelector - @author Nicolas Berger <Nicolas.Berger@cern.ch> -*/ - -static const InterfaceID IID_ITrigROBSelector ( "ITrigROBSelector", 1, 0 ); - - -class ITrigROBSelector : virtual public IAlgTool -{ - public: - - static const InterfaceID& interfaceID() { return IID_ITrigROBSelector; } - - virtual HLT::ErrorCode fillPEBInfo(PartialEventBuildingInfo& pebInfo, - const IRoiDescriptor& roi, - std::vector<DETID>* dets = 0, std::vector<int>* nRobs = 0) = 0; - virtual HLT::ErrorCode setupMonitoring() = 0; - virtual bool reset() = 0; -}; - -#endif diff --git a/Trigger/TrigAlgorithms/TrigDetCalib/python/TrigDetCalibConfig.py b/Trigger/TrigAlgorithms/TrigDetCalib/python/TrigDetCalibConfig.py deleted file mode 100755 index d102358dba3..00000000000 --- a/Trigger/TrigAlgorithms/TrigDetCalib/python/TrigDetCalibConfig.py +++ /dev/null @@ -1,593 +0,0 @@ -# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration - -# -*- coding: utf-8 -*- -from TrigDetCalib.TrigDetCalibConf import TrigROBListWriter, TrigSubDetListWriter -from TrigDetCalib.TrigDetCalibConf import TrigROBSelector -from TrigDetCalib.TrigDetCalibConf import ScoutingStreamWriter -from TrigDetCalib.TrigDetCalibConf import TrigEtaHypo -from TrigDetCalib.TrigDetCalibConf import TrigCheckForTracks -from TrigDetCalib.TrigDetCalibConf import TrigCheckForMuons -from TrigDetCalib.TrigDetCalibMonitoring import setCalibMonTools - -from AthenaCommon.Logging import logging - - -class LArROBSelector(TrigROBSelector) : - __slots__ = [] - def __init__(self, name = 'LArROBSelector'): - super( LArROBSelector, self ).__init__( name ) - self.Subdetectors = 'LAr,ID' - - -class TrkROBSelector(TrigROBSelector) : - __slots__ = [] - def __init__(self, name = 'TrkROBSelector'): - super( TrkROBSelector, self ).__init__( name ) - self.Subdetectors = 'ID' - - -class TileROBSelector(TrigROBSelector) : - __slots__ = [] - def __init__(self, name = 'TileROBSelector'): - super( TileROBSelector, self ).__init__( name ) - self.Subdetectors = 'TILE' - -class GenericROBSelector(TrigROBSelector) : - __slots__ = [] - def __init__(self, name = 'GenericROBSelector', subDets = ''): - super( GenericROBSelector, self ).__init__( name ) - self.Subdetectors = subDets - - -class L2ROBListWriter(TrigROBListWriter): - __slots__ = [] - def __init__(self, name = 'L2ROBListWriter', addCTPResult = False, addL2Result = False, - etaWidth = 0.1, phiWidth = 0.1): - super( L2ROBListWriter, self ).__init__( name ) - self.AddCTPResult = addCTPResult - self.AddL2Result = addL2Result - self.etaWidth = etaWidth - self.phiWidth = phiWidth - from TrigDetCalib.TrigDetCalibMonitoring import TrigROBListWriterValidationMonitoring - from TrigDetCalib.TrigDetCalibMonitoring import TrigROBListWriterOnlineMonitoring - from TrigDetCalib.TrigDetCalibMonitoring import TrigROBListWriterCosmicMonitoring - validation = TrigROBListWriterValidationMonitoring() - online = TrigROBListWriterOnlineMonitoring() - cosmic = TrigROBListWriterCosmicMonitoring() - from TrigTimeMonitor.TrigTimeHistToolConfig import TrigTimeHistToolConfig - time = TrigTimeHistToolConfig(name + '_Time') - self.AthenaMonTools = [ validation, online, time, cosmic ] - - -class GenericL2ROBListWriter(L2ROBListWriter): - __slots__ = [] - def __init__(self, name = 'GenericL2ROBListWriter', subDets = '', roILabels = [ 'initialRoI' ], addCTPResult = True, addL2Result = True, - etaWidth = 0.1, phiWidth = 0.1): - super( GenericL2ROBListWriter, self ).__init__( name, addCTPResult, addL2Result, etaWidth, phiWidth) - self.MaxRoIsPerEvent = 5 - self.RoIDescriptorLabels = roILabels - - def setDefaults(self, handle): - if not hasattr( handle, 'ROBSelector' ) : - handle.ROBSelector = GenericROBSelector(self.name + '_ROBSelector_L2', subDets) - - -class LArL2ROBListWriter(L2ROBListWriter): - __slots__ = [] - def __init__(self, name = 'LArL2ROBListWriter', addCTPResult = True, addL2Result = True, - etaWidth = 0.1, phiWidth = 0.1): - super( LArL2ROBListWriter, self ).__init__( name, addCTPResult, addL2Result, etaWidth, phiWidth) - self.MaxRoIsPerEvent = 5 - self.RoIDescriptorLabels = [ 'TrigT2CaloEgamma', 'initialRoI' ] - - def setDefaults(self, handle): - if not hasattr( handle, 'ROBSelector' ) : - handle.ROBSelector = LArROBSelector('LArROBSelector_L2') - -class TrkROBListWriter(L2ROBListWriter): - __slots__ = [] - def __init__(self, name = 'TrkROBListWriter', etaWidth = 0.1, phiWidth = 0.1): - super( TrkROBListWriter, self ).__init__( name, addCTPResult = True, addL2Result = True) - self.MaxRoIsPerEvent = -1 - self.RoIDescriptorLabels = [ 'TrigT2CaloEgamma', 'initialRoI' ] - - def setDefaults(self, handle): - if not hasattr( handle, 'ROBSelector' ) : - handle.ROBSelector = TrkROBSelector() - - -class EFROBListWriter(TrigROBListWriter): - __slots__ = [] - def __init__(self, name = 'EFROBListWriter', addCTPResult = False, addL2Result = False, addEFResult = False, - etaWidth = 0.1, phiWidth = 0.1): - super( EFROBListWriter, self ).__init__(name) - self.AddCTPResult = addCTPResult - self.AddL2Result = addL2Result - self.AddEFResult = addEFResult - self.etaWidth = etaWidth - self.phiWidth = phiWidth - from TrigDetCalib.TrigDetCalibMonitoring import TrigROBListWriterValidationMonitoring - from TrigDetCalib.TrigDetCalibMonitoring import TrigROBListWriterOnlineMonitoring - from TrigDetCalib.TrigDetCalibMonitoring import TrigROBListWriterCosmicMonitoring - validation = TrigROBListWriterValidationMonitoring() - online = TrigROBListWriterOnlineMonitoring() - cosmic = TrigROBListWriterCosmicMonitoring() - from TrigTimeMonitor.TrigTimeHistToolConfig import TrigTimeHistToolConfig - time = TrigTimeHistToolConfig( name + '_Time' ) - self.AthenaMonTools = [ validation, online, time, cosmic ] - - -class GenericEFROBListWriter(EFROBListWriter): - __slots__ = [] - def __init__(self, name = 'GenericEFROBListWriter', subDets = '', roILabels = [ 'initialRoI' ], - addCTPResult = True, addL2Result = True, addEFResult = True, - etaWidth = 0.1, phiWidth = 0.1): - super( LArEFROBListWriter, self ).__init__( name, addCTPResult, addL2Result, addEFResult, etaWidth, phiWidth) - self.MaxRoIsPerEvent = 5 - self.RoIDescriptorLabels = roILabels - - def setDefaults(self, handle): - if not hasattr( handle, 'ROBSelector' ) : - handle.ROBSelector = GenericROBSelector(self.name + '_ROBSelector_EF', subDets) - - -class LArEFROBListWriter (EFROBListWriter): - __slots__ = [] - def __init__(self, name = 'LArEFROBListWriter', addCTPResult = True, addL2Result = True, addEFResult = True, - etaWidth = 0.1, phiWidth = 0.1): - super( LArEFROBListWriter, self ).__init__( name, addCTPResult, addL2Result, addEFResult, etaWidth, phiWidth) - self.MaxRoIsPerEvent = 5 - self.RoIDescriptorLabels = [ 'TrigT2CaloEgamma', 'initialRoI' ] - - def setDefaults(self, handle): - if not hasattr( handle, 'ROBSelector' ) : - handle.ROBSelector = LArROBSelector('LArROBSelector_EF') - - -class TileSubDetListWriter(TrigSubDetListWriter): - __slots__ = [] - def __init__(self, name = 'TileSubDetListWriter'): - super( TileSubDetListWriter, self ).__init__( name ) - from TrigTimeMonitor.TrigTimeHistToolConfig import TrigTimeHistToolConfig - time = TrigTimeHistToolConfig('TileSubDetListWriter_Time') - self.SubdetId= ['Tile','TDAQ_CTP'] - self.MaxRoIsPerEvent = 1 - self.extraROBs = [ 5373984 ] # 0x520020 - self.AthenaMonTools = [ time ] - - #self.MonitoringHistoPath = '/EXPERT/TileSubDetListWriter/' - - -class CSCSubDetListWriter(TrigSubDetListWriter): - __slots__ = [] - def __init__(self, name = 'CSCSubDetListWriter'): - super( CSCSubDetListWriter, self ).__init__( name ) - from TrigTimeMonitor.TrigTimeHistToolConfig import TrigTimeHistToolConfig - time = TrigTimeHistToolConfig('CSCSubDetListWriter_Time') - self.SubdetId= [ 'CSC' ] # should match the code in TrigSubDetListWriter.cxx - self.MaxRoIsPerEvent = 1 - self.AthenaMonTools = [ time ] - -class IBLSubDetListWriter(TrigSubDetListWriter): - __slots__ = [] - def __init__(self, name = 'IBLSubDetListWriter'): - super( IBLSubDetListWriter, self ).__init__( name ) - from TrigTimeMonitor.TrigTimeHistToolConfig import TrigTimeHistToolConfig - time = TrigTimeHistToolConfig('IBLSubDetListWriter_Time') - self.SubdetId= ['IBL','DBM','TDAQ_CTP'] - self.MaxRoIsPerEvent = 1 - self.AthenaMonTools = [ time ] - -class PixelSubDetListWriter(TrigSubDetListWriter): - __slots__ = [] - def __init__(self, name = 'PixelSubDetListWriter'): - super( PixelSubDetListWriter, self ).__init__( name ) - from TrigTimeMonitor.TrigTimeHistToolConfig import TrigTimeHistToolConfig - time = TrigTimeHistToolConfig('PixelSubDetListWriter_Time') - self.SubdetId= ['Pixel','TDAQ_CTP'] - self.MaxRoIsPerEvent = 1 - self.AthenaMonTools = [ time ] - #self.MonitoringHistoPath = '/EXPERT/PixelSubDetListWriter/' - -class L1CaloSubDetListWriter(TrigSubDetListWriter): - __slots__ = [] - def __init__(self, name = 'L1CaloSubDetListWriter'): - super( L1CaloSubDetListWriter, self ).__init__( name ) - from TrigTimeMonitor.TrigTimeHistToolConfig import TrigTimeHistToolConfig - time = TrigTimeHistToolConfig('L1CaloSubDetListWriter_Time') - self.SubdetId= ['TDAQ_L1CALO'] - self.MaxRoIsPerEvent = 1 - self.AthenaMonTools = [ time ] - #self.MonitoringHistoPath = '/EXPERT/L1CaloSubDetListWriter/' - -class GenericSubDetListWriter(TrigSubDetListWriter) : - __slots__ = [] - def __init__(self, name = 'GenericSubDetListWriter', subDetIds = [], maxRoIsPerEvent = 1): - super( GenericSubDetListWriter, self ).__init__( name ) - from TrigTimeMonitor.TrigTimeHistToolConfig import TrigTimeHistToolConfig - time = TrigTimeHistToolConfig('GenericSubDetListWriter_Time') - self.SubdetId = subDetIds - self.MaxRoIsPerEvent = maxRoIsPerEvent - self.AthenaMonTools = [ time ] - - -## Hypothesis algos to select only a particular eta range - -class EtaHypo_HEC(TrigEtaHypo) : - __slots__ = [] - def __init__(self, name = 'EtaHypo_HEC'): - super( EtaHypo_HEC, self ).__init__( name ) - self.EtaMinCut = 1.4 - self.EtaMaxCut = 3.3 - -class EtaHypo_FCAL(TrigEtaHypo) : - __slots__ = [] - def __init__(self, name = 'EtaHypo_FCAL'): - super( EtaHypo_FCAL, self ).__init__( name ) - self.EtaMinCut = 2.9 - self.EtaMaxCut = 5.1 - - -#### TrkIDAlign from StoreGate --> - -class CheckForTracks(TrigCheckForTracks) : - __slots__ = [] - def __init__(self, name = 'CheckForTracks'): - super(CheckForTracks, self ).__init__( name ) - - def setDefaults(self, handle): - if not hasattr( handle, 'ROBSelector' ) : - handle.ROBSelector = TrkROBSelector() - - -class CheckForTracks_Trk9_Central(CheckForTracks): - __slots__ = [] - def __init__(self, name = 'CheckForTracks_Trk9_Central'): - super(CheckForTracks_Trk9_Central, self ).__init__( name ) - self.pT_min = 9000. - self.etaLowEdge = 0.0 - self.etaEdge = 1.4 - self.tracksName = 'HLT_TrackCollection_TrigFastTrackFinder_TauIso' - #self.extraROBs = [ 7798784, 8060928, 8126464 ] - self.AddCTPResult = True - self.AddL2Result = False - self.AddEFResult = False - - setCalibMonTools(self) - -class CheckForTracks_Trk9_Fwd(CheckForTracks): - __slots__ = [] - def __init__(self, name = 'CheckForTracks_Trk9_Fwd'): - super(CheckForTracks_Trk9_Fwd, self ).__init__( name ) - self.pT_min = 9000. - self.etaLowEdge = 1.35 - self.etaEdge = 5.0 - self.tracksName = 'HLT_TrackCollection_TrigFastTrackFinder_TauIso' - #self.extraROBs = [ 7798784, 8060928, 8126464 ] - #self.extraROBs = [ 7798784, 8060928, 8126464 ] - self.AddCTPResult = True - self.AddL2Result = False - self.AddEFResult = False - - setCalibMonTools(self) - -class CheckForTracks_Trk9_Central_Beamspot(CheckForTracks): - __slots__ = [] - def __init__(self, name = 'CheckForTracks_Trk9_Central_Beamspot'): - super(CheckForTracks_Trk9_Central_Beamspot, self ).__init__( name ) - self.pT_min = 3000. - self.etaLowEdge = 0.0 - self.etaEdge = 1.4 - self.tracksName = 'HLT_TrackCollection_TrigFastTrackFinder_BeamSpot' - self.AddCTPResult = True - self.AddL2Result = False - self.AddEFResult = False - self.lookForAnyTracks = True - - setCalibMonTools(self) - -class CheckForTracks_Trk9_Fwd_Beamspot(CheckForTracks): - __slots__ = [] - def __init__(self, name = 'CheckForTracks_Trk9_Fwd_Beamspot'): - super(CheckForTracks_Trk9_Fwd_Beamspot, self ).__init__( name ) - self.pT_min = 3000. - self.etaLowEdge = 1.35 - self.etaEdge = 5.0 - self.tracksName = 'HLT_TrackCollection_TrigFastTrackFinder_BeamSpot' - self.AddCTPResult = True - self.AddL2Result = False - self.AddEFResult = False - self.lookForAnyTracks = True - - setCalibMonTools(self) - -class CheckForTracks_Trk9_Central_SiTrack(CheckForTracks): - __slots__ = [] - def __init__(self, name = 'CheckForTracks_Trk9_Central_SiTrack'): - super(CheckForTracks_Trk9_Central_SiTrack, self ).__init__( name ) - self.pT_min = 9000. - self.etaLowEdge = 0.0 - self.etaEdge = 1.4 - self.tracksName = 'HLT_TrackCollection_TrigFastTrackFinder_TauIso' - #self.extraROBs = [ 7798784, 8060928, 8126464 ] - #self.extraROBs = [ 7798784, 8060928, 8126464 ] - self.AddCTPResult = True - self.AddL2Result = False - self.AddEFResult = False - - setCalibMonTools(self) - -class CheckForTracks_Trk9_Fwd_SiTrack(CheckForTracks): - __slots__ = [] - def __init__(self, name = 'CheckForTracks_Trk9_Fwd_SiTrack'): - super(CheckForTracks_Trk9_Fwd_SiTrack, self ).__init__( name ) - self.pT_min = 9000. - self.etaLowEdge = 1.35 - self.etaEdge = 5.0 - self.tracksName = 'HLT_TrackCollection_TrigFastTrackFinder_TauIso' - #self.extraROBs = [ 7798784, 8060928, 8126464 ] - #self.extraROBs = [ 7798784, 8060928, 8126464 ] - self.AddCTPResult = True - self.AddL2Result = False - self.AddEFResult = False - - setCalibMonTools(self) - - - -class CheckForTracks_Trk16_Central(CheckForTracks): - __slots__ = [] - def __init__(self, name = 'CheckForTracks_Trk16_Central'): - super(CheckForTracks_Trk16_Central, self ).__init__( name ) - self.pT_min = 16000. - self.etaLowEdge = 0.0 - self.etaEdge = 1.4 - self.tracksName = 'HLT_TrackCollection_TrigFastTrackFinder_TauIso' - #self.extraROBs = [ 7798784, 8060928, 8126464 ] - #self.extraROBs = [ 7798784, 8060928, 8126464 ] - self.AddCTPResult = True - self.AddL2Result = False - self.AddEFResult = False - - setCalibMonTools(self) - -class CheckForTracks_Trk16_Fwd(CheckForTracks): - __slots__ = [] - def __init__(self, name = 'CheckForTracks_Trk16_Fwd'): - super(CheckForTracks_Trk16_Fwd, self ).__init__( name ) - self.pT_min = 16000. - self.etaLowEdge = 1.35 - self.etaEdge = 5.0 - self.tracksName = 'HLT_TrackCollection_TrigFastTrackFinder_TauIso' - #self.extraROBs = [ 7798784, 8060928, 8126464 ] - #self.extraROBs = [ 7798784, 8060928, 8126464 ] - self.AddCTPResult = True - self.AddL2Result = False - self.AddEFResult = False - - setCalibMonTools(self) - - -class CheckForTracks_Trk29_Central(CheckForTracks): - __slots__ = [] - def __init__(self, name = 'CheckForTracks_Trk29_Central'): - super(CheckForTracks_Trk29_Central, self ).__init__( name ) - self.pT_min = 29000. - self.etaLowEdge = 0.0 - self.etaEdge = 1.4 - self.tracksName = 'HLT_TrackCollection_TrigFastTrackFinder_TauIso' - #self.extraROBs = [ 7798784, 8060928, 8126464 ] - #self.extraROBs = [ 7798784, 8060928, 8126464 ] - self.AddCTPResult = True - self.AddL2Result = False - self.AddEFResult = False - - setCalibMonTools(self) - -class CheckForTracks_Trk29_Fwd(CheckForTracks): - __slots__ = [] - def __init__(self, name = 'CheckForTracks_Trk29_Fwd'): - super(CheckForTracks_Trk29_Fwd, self ).__init__( name ) - self.pT_min = 29000. - self.etaLowEdge = 1.35 - self.etaEdge = 5.0 - self.tracksName = 'HLT_TrackCollection_TrigFastTrackFinder_TauIso' - #self.extraROBs = [ 7798784, 8060928, 8126464 ] - #self.extraROBs = [ 7798784, 8060928, 8126464 ] - self.AddCTPResult = True - self.AddL2Result = False - self.AddEFResult = False - - setCalibMonTools(self) - - -class CheckForTracks_Trk_All(CheckForTracks): - __slots__ = [] - def __init__(self, name = 'CheckForTracks_Trk_All'): - super(CheckForTracks_Trk_All, self ).__init__( name ) - self.pT_min = 1000. - self.etaLowEdge = 0.0 - self.etaEdge = 5.0 - self.tracksName = 'HLT_TrackCollection_TrigFastTrackFinder_TauIso' - #self.extraROBs = [ 7798784, 8060928, 8126464 ] - #self.extraROBs = [ 7798784, 8060928, 8126464 ] - self.AddCTPResult = True - self.AddL2Result = False - self.AddEFResult = False - - setCalibMonTools(self) - - -class CheckForTracks_eGamma(CheckForTracks): - __slots__ = [] - def __init__(self, name = 'CheckForTracks_eGamma_SiTrk'): - super(CheckForTracks_eGamma_SiTrk, self ).__init__( name ) - self.pT_min = 2000. - self.etaLowEdge = 0.0 - self.etaEdge = 5.0 - self.tracksName = 'HLT_TrigFastTrackFinder_eGamma' - self.lookForAnyTracks = True - #self.extraROBs = [ 7798784, 8060928, 8126464 ] - self.AddCTPResult = True - self.AddL2Result = False - self.AddEFResult = False - setCalibMonTools(self) - - -class CheckForTracks_FullScan(CheckForTracks): - __slots__ = [] - def __init__(self, name = 'CheckForTracks_FullScan_SiTrk'): - super(CheckForTracks_FullScan_SiTrk, self ).__init__( name ) - self.pT_min = 2000. - self.etaLowEdge = 0.0 - self.etaEdge = 5.0 - self.lookForAnyTracks = True - self.tracksName = 'HLT_TrigFastTrackFinder_FullScan' - #self.extraROBs = [ 7798784, 8060928, 8126464 ] - self.AddCTPResult = True - self.AddL2Result = False - self.AddEFResult = False - setCalibMonTools(self) - - -#### TrkIDAlign from StoreGate <-- - - - -class TDAQ_L1SubDetListWriter(TrigSubDetListWriter): - __slots__ = [] - def __init__(self, name = 'TDAQ_L1SubDetListWriter'): - super( TDAQ_L1SubDetListWriter, self ).__init__( name ) - self.SubdetId= ['HLTResult','TDAQ_CTP'] - self.MaxRoIsPerEvent = 1 - self.addL1Calo = False - #self.extraROBs = [ 7798784 ] # ROB ID for eformat::TDAQ_CTP - - -class TDAQ_L2SubDetListWriter(TrigSubDetListWriter): - __slots__ = [] - def __init__(self, name = 'TDAQ_L2SubDetListWriter'): - super( TDAQ_L2SubDetListWriter, self ).__init__( name ) - self.SubdetId= ['TDAQ_LVL2','TDAQ_CTP'] - self.MaxRoIsPerEvent = 1 - self.addL1Calo = False - #self.extraROBs = [ 7798784 ] # ROB ID for eformat::TDAQ_CTP, need CTP (hardware) ROB for HLT result - - -class TDAQ_EFSubDetListWriter(TrigSubDetListWriter): - __slots__ = [] - def __init__(self, name = 'TDAQ_EFSubDetListWriter'): - super( TDAQ_EFSubDetListWriter, self ).__init__( name ) - self.SubdetId= ['L2EFResult'] - self.MaxRoIsPerEvent = 1 - self.addL1Calo = False - #self.extraROBs = [ 7798784 ] # ROB ID for eformat::TDAQ_CTP, need CTP (hardware) ROB for HLT result - -class TDAQ_HLTSubDetListWriter(TrigSubDetListWriter): - __slots__ = [] - def __init__(self, name = 'TDAQ_HLTSubDetListWriter'): - super( TDAQ_HLTSubDetListWriter, self ).__init__( name ) - self.SubdetId= ['HLTResult'] - self.MaxRoIsPerEvent = 1 - self.addL1Calo = False - #self.extraROBs = [ 7798784 ] # ROB ID for eformat::TDAQ_CTP, need CTP (hardware) ROB for HLT result - -class TDAQ_TrigResultSubDetListWriter(TrigSubDetListWriter): - __slots__ = [] - def __init__(self, name = 'TDAQ_EFSubDetListWriter'): - super( TDAQ_TrigResultSubDetListWriter, self ).__init__( name ) - self.SubdetId= ['HLTResult'] - self.MaxRoIsPerEvent = 1 - self.addL1Calo = False - #self.extraROBs = [ 7798784 ] # ROB ID for eformat::TDAQ_CTP, need CTP (hardware) ROB for HLT result - - -class TDAQ_ROB_SubDetListWriter(TrigSubDetListWriter): - __slots__ = [] - def __init__(self, name = 'TDAQ_ROB_SubDetListWriter', config = ''): - super( TDAQ_EFSubDetListWriter, self ).__init__( name ) - self.Subdetectors = '' - self.MaxRoIsPerEvent = 1 - self.addL1Calo = False - - log = logging.getLogger( 'TrigDetCalibConfig.py' ) - - if config == 'L1': - #self.extraROBs = [ 7798784 ] # ROB ID (code) for eformat::TDAQ_LVL1 - self.SubdetId= ['TDAQ_CTP'] - elif config == 'L2': - #self.extraROBs = [ 8060928 ] # ROB ID (code) for eformat::TDAQ_LVL2 - self.SubdetId= ['TDAQ_LVL2'] - elif config == 'EF': - #self.extraROBs = [ 8126464 ] # ROB ID (code) for eformat::TDAQ_EVENT_FILTER - self.SubdetId= ['TDAQ_EVENT_FILTER'] - elif config == 'SFI': - #self.extraROBs = [ 7929856 ] # ROB ID (code) for eformat::TDAQ_SFI - self.SubdetId= ['TDAQ_SFI'] - else: - log.warning('Unknown configuration string: '+config) - log.warning('Will reset to config=SFI') - #self.extraROBs = [ 7929856 ] # ROB ID (code) for eformat::TDAQ_SFI - -class ScoutTestAlg(ScoutingStreamWriter): - __slots__ = [] - def __init__(self, name = 'ScoutTestAlg', CollTypeName = []): - super( ScoutTestAlg, self ).__init__( name ) - self.CollectionTypeName = CollTypeName - - #For Example: - self.CollectionTypeName = ["TrigRoiDescriptor#secondaryRoI_EF", "TrigMuonEFContainer#MuonEF","TrigOperationalInfo#DataScouting"] - - - - - -class TrigCheckForMuons_pebM(TrigCheckForMuons): - __slots__ = [] - def __init__(self, name = 'TrigCheckForMuons_pebM', - etaWidth = 0.3, phiWidth = 0.3): - super( TrigCheckForMuons_pebM , self ).__init__( name ) - - self.AddCTPResult = True - self.AddHLTResult = True - self.etaWidth = etaWidth - self.phiWidth = phiWidth - self.MaxRoIsPerEvent = -1 - self.muonLabels = ["MuonEFInfo",""] - self.PEBInfoLabel = "pebM" - - from TrigDetCalib.TrigDetCalibMonitoring import TrigROBListWriterValidationMonitoring - from TrigDetCalib.TrigDetCalibMonitoring import TrigROBListWriterOnlineMonitoring - from TrigDetCalib.TrigDetCalibMonitoring import TrigROBListWriterCosmicMonitoring - validation = TrigROBListWriterValidationMonitoring(name+"ValidationMonitoring") - online = TrigROBListWriterOnlineMonitoring(name+"OnlineMonitoring") - cosmic = TrigROBListWriterCosmicMonitoring(name+"CosmicMonitoring") - from TrigTimeMonitor.TrigTimeHistToolConfig import TrigTimeHistToolConfig - time = TrigTimeHistToolConfig(name + '_Time') - self.AthenaMonTools = [ validation, online, time, cosmic ] - -class TrigCheckForMuons_peb075(TrigCheckForMuons): - __slots__ = [] - def __init__(self, name = 'TrigCheckForMuons_peb075', - etaWidth = 0.75, phiWidth = 0.75): - super( TrigCheckForMuons_peb075 , self ).__init__( name ) - - self.AddCTPResult = True - self.AddHLTResult = True - self.etaWidth = etaWidth - self.phiWidth = phiWidth - self.MaxRoIsPerEvent = -1 - self.muonLabels = ["MuonEFInfo",""] - self.PEBInfoLabel = "peb075" - - #self.ROBSelector.Subdetectors = "All" # this allows to modify list of subdetectors to include - - from TrigDetCalib.TrigDetCalibMonitoring import TrigROBListWriterValidationMonitoring - from TrigDetCalib.TrigDetCalibMonitoring import TrigROBListWriterOnlineMonitoring - from TrigDetCalib.TrigDetCalibMonitoring import TrigROBListWriterCosmicMonitoring - validation = TrigROBListWriterValidationMonitoring(name+"ValidationMonitoring") - online = TrigROBListWriterOnlineMonitoring(name+"OnlineMonitoring") - cosmic = TrigROBListWriterCosmicMonitoring(name+"CosmicMonitoring") - from TrigTimeMonitor.TrigTimeHistToolConfig import TrigTimeHistToolConfig - time = TrigTimeHistToolConfig(name + '_Time') - self.AthenaMonTools = [ validation, online, time, cosmic ] diff --git a/Trigger/TrigAlgorithms/TrigDetCalib/python/TrigDetCalibMonitoring.py b/Trigger/TrigAlgorithms/TrigDetCalib/python/TrigDetCalibMonitoring.py deleted file mode 100644 index 755476ae734..00000000000 --- a/Trigger/TrigAlgorithms/TrigDetCalib/python/TrigDetCalibMonitoring.py +++ /dev/null @@ -1,99 +0,0 @@ -# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration - -#Definitions of the monitoring classes - -from __future__ import print_function - -from TrigMonitorBase.TrigGenericMonitoringToolConfig import defineHistogram, TrigGenericMonitoringToolConfig - -detectors = [ -"PIXEL", "SCT","TRT","LAR","TTEM","TTHEC","TILE","MDT","RPC","TGC","CSC","FCALEM","FCALHAD" -] - -detlabels='' -for a in detectors: - detlabels += a+':' - -nROBs = defineHistogram('nROBs', type='TH1I', title="No. of ROBs;#ROBs", xbins=300, xmin=0, xmax=300) -detVsNRobs = defineHistogram('detectors, nROBs', type='TH2I', title="No. of ROBs vs detectors;;#ROBs", xbins=13, xmin=20, xmax=33, ybins=300, ymin=0, ymax=300, labels=detlabels) -etaPhi = defineHistogram('roIEta, roIPhi', type='TH2F', title="position of processed RoI;eta;phi", xbins=100, xmin=-5, xmax=5, ybins=100, ymin=-3.2, ymax=3.2) - -## For CheckForTracks: - -eta_nROBs = defineHistogram('eta_tracks_ISO, nROBs', type='TH2F', title="eta position of processed tracks vs nROBs;eta;nROBs", xbins=50, xmin=-5, xmax=5, ybins=300, ymin=0, ymax=300) - -PtTrk = defineHistogram('PtTrk', type='TH1F', title="Track Pt;pT", xbins=100, xmin=-100000., xmax=100000.) -PtTrk_ISO = defineHistogram('PtTrk_ISO', type='TH1F', title="Track Pt ISO;pT", xbins=100, xmin=-100000., xmax=100000.) -dR_Tracks = defineHistogram('dR_tracks', type='TH1F', title="dR Tracks;DR", xbins=60, xmin=0., xmax=6.) -eta_Tracks = defineHistogram('eta_tracks', type='TH1F', title="Eta Tracks;eta", xbins=50, xmin=-5., xmax=5.) -phi_Tracks = defineHistogram('phi_tracks', type='TH1F', title="Phi Tracks;phi", xbins=50, xmin=-5., xmax=5.) -eta_Tracks_ISO = defineHistogram('eta_tracks_ISO', type='TH1F', title="Eta Tracks Iso;eta", xbins=50, xmin=-5., xmax=5.) -phi_Tracks_ISO = defineHistogram('phi_tracks_ISO', type='TH1F', title="Phi Tracks Iso;phi", xbins=50, xmin=-5., xmax=5.) -IsoTracks = defineHistogram('iso_Tracks', type='TH1I', title="N Iso Tracks;# tracks", xbins=30, xmin=0, xmax=30) - -eta_pt_ISO = defineHistogram('eta_tracks_ISO, PtTrk_ISO', type='TH2F', title="Tracks Iso;eta;pT", xbins=20, xmin=-5., xmax=5., ybins=20, ymin=0., ymax=100000.) -phi_pt_ISO = defineHistogram('phi_tracks_ISO, PtTrk_ISO', type='TH2F', title="Tracks Iso;phi;pT", xbins=20, xmin=-5., xmax=5., ybins=20, ymin=0., ymax=100000.) -phi_eta_ISO = defineHistogram('phi_tracks_ISO, eta_tracks_ISO', type='TH2F', title="Tracks Iso;phi;eta", xbins=20, xmin=-5., xmax=5., ybins=20, ymin=-5., ymax=5.) -n_pt_ISO = defineHistogram('iso_Tracks, PtTrk_ISO', type='TH2F', title="Tracks Iso;# tracks;pT", xbins=20, xmin=0., xmax=20, ybins=20, ymin=0., ymax=100000.) -n_eta_ISO = defineHistogram('iso_Tracks, eta_tracks_ISO', type='TH2F', title="Tracks Iso;# tracks;eta", xbins=20, xmin=0., xmax=20, ybins=20, ymin=-5., ymax=5.) -n_phi_ISO = defineHistogram('iso_Tracks, phi_tracks_ISO', type='TH2F', title="Tracks Iso;# tracks;phi", xbins=20, xmin=0., xmax=20, ybins=20, ymin=-5., ymax=5.) - -class TrigROBListWriterValidationMonitoring(TrigGenericMonitoringToolConfig): - def __init__ (self, name="TrigROBListWriter_Validation"): - super(TrigROBListWriterValidationMonitoring, self).__init__(name) - self.defineTarget("Validation") - self.Histograms = [ nROBs, detVsNRobs, etaPhi ] - - -class TrigROBListWriterOnlineMonitoring(TrigGenericMonitoringToolConfig): - def __init__ (self, name="TrigROBListWriter_Online"): - super(TrigROBListWriterOnlineMonitoring, self).__init__(name) - self.defineTarget("Online") - self.Histograms = [ nROBs, detVsNRobs, etaPhi ] - -class TrigROBListWriterCosmicMonitoring(TrigGenericMonitoringToolConfig): - def __init__ (self, name="TrigROBListWriter_Cosmic"): - super(TrigROBListWriterCosmicMonitoring, self).__init__(name) - self.defineTarget("Cosmic") - self.Histograms = [ nROBs, detVsNRobs, etaPhi ] - -class TrigCheckForTracksValidationMonitoring(TrigGenericMonitoringToolConfig): - def __init__ (self, name): - super(TrigCheckForTracksValidationMonitoring, self).__init__(name) - self.defineTarget("Validation") - self.Histograms = [ nROBs, detVsNRobs, PtTrk, PtTrk_ISO, dR_Tracks, eta_Tracks, phi_Tracks, eta_Tracks_ISO, phi_Tracks_ISO, IsoTracks, eta_pt_ISO, phi_pt_ISO, phi_eta_ISO] - - -class TrigCheckForTracksOnlineMonitoring(TrigGenericMonitoringToolConfig): - def __init__ (self, name): - super(TrigCheckForTracksOnlineMonitoring, self).__init__(name) - self.defineTarget("Online") - self.Histograms = [ nROBs, detVsNRobs, PtTrk, PtTrk_ISO, dR_Tracks, eta_Tracks, phi_Tracks, eta_Tracks_ISO, phi_Tracks_ISO, IsoTracks, eta_pt_ISO, phi_pt_ISO, phi_eta_ISO] - - -class TrigCheckForTracksCosmicMonitoring(TrigGenericMonitoringToolConfig): - def __init__ (self, name): - super(TrigCheckForTracksCosmicMonitoring, self).__init__(name) - self.defineTarget("Cosmic") - self.Histograms = [ nROBs, detVsNRobs, PtTrk, PtTrk_ISO, dR_Tracks, eta_Tracks, phi_Tracks, eta_Tracks_ISO, phi_Tracks_ISO, IsoTracks, eta_pt_ISO, phi_pt_ISO, phi_eta_ISO] - - - -def setCalibMonTools( algoObject ): - algoName=algoObject.getName() - print ("Monitoring for "+algoName) - - from TrigTimeMonitor.TrigTimeHistToolConfig import TrigTimeHistToolConfig - time = TrigTimeHistToolConfig(algoName+"Time") - time.TimerHistLimits = [0,3] - - nameOnl = algoName+"_Onl" - onlTool = TrigCheckForTracksOnlineMonitoring(nameOnl ) - - nameVal = algoName+"_Val" - valTool = TrigCheckForTracksValidationMonitoring(nameVal) - - nameCos = algoName+"_Cos" - cosTool = TrigCheckForTracksCosmicMonitoring(nameCos) - - algoObject.AthenaMonTools = [ time, onlTool, valTool, cosTool ] diff --git a/Trigger/TrigAlgorithms/TrigDetCalib/src/ScoutingStreamWriter.cxx b/Trigger/TrigAlgorithms/TrigDetCalib/src/ScoutingStreamWriter.cxx deleted file mode 100755 index b212cd36fcb..00000000000 --- a/Trigger/TrigAlgorithms/TrigDetCalib/src/ScoutingStreamWriter.cxx +++ /dev/null @@ -1,121 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "AthenaKernel/IClassIDSvc.h" -#include "AthenaKernel/errorcheck.h" -#include "ScoutingStreamWriter.h" -#include "TrigSteeringEvent/ScoutingInfo.h" - - -ScoutingStreamWriter::ScoutingStreamWriter(const std::string& name, ISvcLocator* pSvcLocator): - //HLT::AllTEAlgo(name, pSvcLocator), - HLT::HypoAlgo(name, pSvcLocator), - m_clidSvc("ClassIDSvc", name){ - declareProperty("CollectionTypeName", m_collectionTypeName); -} - -ScoutingStreamWriter::~ScoutingStreamWriter(){ -} - -HLT::ErrorCode ScoutingStreamWriter::hltInitialize(){ - - if (!m_clidSvc.retrieve().isSuccess()) { - msg() << MSG::FATAL << "Cannot get ClassIDSvc " << m_clidSvc << endmsg; - return HLT::FATAL; - } - - std::vector< std::string> coll = m_collectionTypeName.value(); - - std::vector< std::string> types; - std::vector<std::string> names; - - types.clear(); - names.clear(); - - for (std::vector<std::string>::const_iterator it = coll.begin(), it_e = coll.end(); it != it_e; it++) { - std::size_t found = (*it).find_first_of('#'); - - if (found != std::string::npos) - { - types.push_back((*it).substr(0,found)); - names.push_back((*it).substr(found+1,(*it).size()-found+1)); - }else{ - - msg() << MSG::FATAL << "Collection type and collection name not configured correctly. " << endmsg; - return HLT::FATAL; - } - } - - if (types.size() != names.size()){ - msg() << MSG::FATAL << "Collection type and collection name vectors have different size. " << endmsg; - return HLT::FATAL; - } - - return HLT::OK; - -} - -HLT::ErrorCode ScoutingStreamWriter::hltExecute(const HLT::TriggerElement*, bool& pass){ - //std::vector<std::vector<HLT::TriggerElement*> >& input, - //unsigned int output){ - - - std::vector< std::string> coll = m_collectionTypeName.value(); - - std::vector< std::string> types; - std::vector<std::string> names; - - types.clear(); - names.clear(); - - for (std::vector<std::string>::const_iterator it = coll.begin(), it_e = coll.end(); it != it_e; it++) { - std::size_t found = (*it).find_first_of('#'); - if (found != std::string::npos) - { - types.push_back((*it).substr(0,found)); - names.push_back((*it).substr(found+1,(*it).size()-found+1)); - }else{ - - msg() << MSG::FATAL << "Collection type and collection name not configured correctly. " << endmsg; - return HLT::FATAL; - } - } - - if (types.size() != names.size()){ - msg() << MSG::FATAL << "Collection type and collection name vectors have different size. " << endmsg; - return HLT::FATAL; - } - - std::vector<CLID> clid; - clid.clear(); - - for (std::vector<std::string>::const_iterator it = types.begin(), it_e = types.end(); it != it_e; it++) { - CLID classid; - if (!m_clidSvc->getIDOfTypeName(*it, classid).isSuccess()){ - msg() << MSG::WARNING << "Cannot convert type. No CLID for " << (*it) << endmsg; - } else { - clid.push_back(classid); - } - } - - ScoutingInfo* ScoutInfo = config()->getScoutingInfo(); - if(!ScoutInfo){ - msg() << MSG::DEBUG << "*** Not Executing this ScoutingStreamWriter " << name() << endmsg; - return HLT::OK; - } else { - for(unsigned int i = 0; i < clid.size(); ++i) - ScoutInfo->add(clid.at(i), names.at(i)); - } - - pass = true; - - return HLT::OK; - -} - -HLT::ErrorCode ScoutingStreamWriter::hltFinalize(){ - - return HLT::OK; - -} diff --git a/Trigger/TrigAlgorithms/TrigDetCalib/src/ScoutingStreamWriter.h b/Trigger/TrigAlgorithms/TrigDetCalib/src/ScoutingStreamWriter.h deleted file mode 100755 index 4cb62dd7d44..00000000000 --- a/Trigger/TrigAlgorithms/TrigDetCalib/src/ScoutingStreamWriter.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -/********************************************************************************** - * @class : ScoutingStreamWriter - * - * - * @author Noemi Calace <noemi.calace@cern.ch> - CERN - * - **********************************************************************************/ - -#ifndef TrigEgammaHypo_ScoutingStreamWriter_H -#define TrigEgammaHypo_ScoutingStreamWriter_H - -//#include "TrigInterfaces/AllTEAlgo.h" -#include "TrigInterfaces/HypoAlgo.h" -#include "GaudiKernel/ServiceHandle.h" -#include <vector> -#include <string> - -class ScoutingInfo; - -/* - @class ScoutingStreamWriter -*/ - -class ScoutingStreamWriter : public HLT::HypoAlgo //public HLT::AllTEAlgo -{ - public: - - ScoutingStreamWriter(const std::string& name, ISvcLocator* pSvcLocator); //!< std Gaudi algorthm constructor - ~ScoutingStreamWriter(); - - HLT::ErrorCode hltInitialize(); - - HLT::ErrorCode hltExecute(const HLT::TriggerElement* outputTE, bool& pass); - //std::vector<std::vector<HLT::TriggerElement*> >& input, - //unsigned int output); - - HLT::ErrorCode hltFinalize(); - - private: - - ServiceHandle<IClassIDSvc> m_clidSvc; - StringArrayProperty m_collectionTypeName; - - -}; - -#endif diff --git a/Trigger/TrigAlgorithms/TrigDetCalib/src/TrigCheckForMuons.cxx b/Trigger/TrigAlgorithms/TrigDetCalib/src/TrigCheckForMuons.cxx deleted file mode 100644 index f9235caa6df..00000000000 --- a/Trigger/TrigAlgorithms/TrigDetCalib/src/TrigCheckForMuons.cxx +++ /dev/null @@ -1,312 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -#include "GaudiKernel/MsgStream.h" -#include "TrigSteeringEvent/TrigRoiDescriptor.h" -#include "TrigSteeringEvent/PartialEventBuildingInfo.h" -#include "IRegionSelector/IRegSelSvc.h" -#include "xAODMuon/MuonContainer.h" - - -#include "TrigCheckForMuons.h" - -using namespace std; - -TrigCheckForMuons::TrigCheckForMuons(const std::string& name, ISvcLocator* pSvcLocator) - : HLT::AllTEAlgo(name, pSvcLocator), - //m_clidSvc("ClassIDSvc", name), - //m_types(), m_names(), m_momType(), m_clid(), - m_robSelector("TrigROBSelector", this ), - m_addCTPResult(1), m_addHLTResult(1), - m_addOppositePhiRoI(false), m_addOppositeEtaPhiRoI(false), - m_nRoIs(0), - m_mindRSqr(0.01*0.01) -{ - declareProperty("muonLabels", m_muonLabels, "List of labels for xAOD::Muon collection"); - declareProperty("ROBSelector", m_robSelector, "The ROB Selector Tool"); - declareProperty("AddCTPResult", m_addCTPResult, "Add the CTP result to the list of ROBs"); - declareProperty("AddOppositePhiRoI", m_addOppositePhiRoI = false, "Add also RoIs opposite in phi but same eta"); - declareProperty("AddOppositeEtaPhiRoI", m_addOppositeEtaPhiRoI = false, "Add also RoIs opposite in phi and opposite in eta"); - declareProperty("AddHLTResult", m_addHLTResult, "Add the HLT result to the list of ROBs"); - declareProperty("etaEdge", m_etaEdge = 5.0, "Upper limit of |eta| range"); - declareProperty("etaWidth", m_etaWidth = 0.1, "Width of the RoI in eta"); - declareProperty("phiWidth", m_phiWidth = 0.1, "Width of the RoI in phi"); - declareProperty("PEBInfoLabel", m_pebLabel = "dunno", "The label under which the PartialEventBuildingInfo object is stored"); - declareProperty("MaxRoIsPerEvent", m_maxRoIsPerEvent = -1); - declareProperty("extraROBs", m_extraROBs); - declareProperty("rejectAll", m_rejectAll = false); - declareProperty("overlapdR" , m_mindRSqr = 0.01*0.01 ); - - - declareMonitoredStdContainer("nROBs", m_nROBs); - declareMonitoredStdContainer("detectors", m_dets); - declareMonitoredVariable("roIEta", m_roIEta); - declareMonitoredVariable("roIPhi", m_roIPhi); -} - - -HLT::ErrorCode TrigCheckForMuons::hltInitialize() -{ - msg() << MSG::INFO << "Initializing CPTResult "<<m_addCTPResult - << " HLTResult "<< m_addHLTResult<< endmsg; - if (m_addCTPResult){ - m_trigResults.push_back(eformat::TDAQ_CTP); - m_trigResults.push_back(eformat::TDAQ_MUON_CTP_INTERFACE); - msg() << MSG::INFO << " Will add TDAQ_CTP, TDAQ_MUON_CTP_INTERFACE to event record" << endmsg; - } - if (m_addHLTResult){ - m_trigResults.push_back(eformat::TDAQ_HLT); - msg() << MSG::INFO << " Will add TDAQ_HLT to event record " << endmsg; - } - return HLT::OK; -} - - -HLT::ErrorCode TrigCheckForMuons::hltBeginRun() -{ - msg() << MSG::INFO << "in hltBeginRun() " << endmsg; - return m_robSelector->setupMonitoring(); -} - - -HLT::ErrorCode TrigCheckForMuons::hltFinalize() -{ - /* OI-- Not using this so far - if (!m_clidSvc.retrieve().isSuccess()) { - msg() << MSG::FATAL << "Cannot get ClassIDSvc " << m_clidSvc << endmsg; - return HLT::FATAL; - } - - std::vector< std::string> coll = m_collectionTypeName.value(); - - m_types.clear(); - m_names.clear(); - - for (std::vector<std::string>::const_iterator it = coll.begin(), it_e = coll.end(); it != it_e; it++) { - std::size_t found = (*it).find_first_of('#'); - - if (found != std::string::npos) - { - m_types.push_back((*it).substr(0,found)); - m_names.push_back((*it).substr(found+1,(*it).size()-found+1)); - if (msgLvl()<=MSG::DEBUG) msg() << MSG::DEBUG << "Will look for Collection " << m_types.back() << " with " << m_names.back() << " for PEB stream"<< endmsg; - }else{ - - msg() << MSG::FATAL << "Collection type and collection name not configured correctly. " << endmsg; - return HLT::BAD_ALGO_CONFIG; - } - } - - if (m_types.size() != m_names.size()){ - msg() << MSG::FATAL << "Collection type and collection name vectors have different size. " << endmsg; - return HLT::BAD_ALGO_CONFIG; - } - - m_clid.clear(); - - for (std::vector<std::string>::const_iterator it = m_types.begin(), it_e = m_types.end(); it != it_e; it++) { - CLID classid; - if (!m_clidSvc->getIDOfTypeName(*it, classid).isSuccess()){ - msg() << MSG::WARNING << "Cannot convert type. No CLID for " << (*it) << endmsg; - return HLT::BAD_ALGO_CONFIG; - } else { - int momType = -1; - const SG::BaseInfoBase* baseInfo = SG::BaseInfoBase::find( classid ); - if( ! baseInfo ){ - msg() << MSG::FATAL << "Please fix me: Cannot convert type. No BaseInfo for " << (*it) << endmsg; - return HLT::BAD_ALGO_CONFIG; - } - - if( baseInfo->is_base( ClassID_traits< xAOD::IParticleContainer >::ID() ) ) { - momType = 0; - } else if( baseInfo->is_base( ClassID_traits< I4MomentumContainer >::ID() ) ) { - // this is an "old" container, handle it through I4MomentumContainer - momType = 1; - } else { - msg() << MSG::FATAL << "Please fix me: I do not know how to extract eta/phi for this class " << (*it) << endmsg; - return HLT::BAD_ALGO_CONFIG; - } - - m_clid.push_back(classid); - m_momType.push_back(momType); - if (msgLvl()<=MSG::DEBUG) msg() << MSG::DEBUG << "CLID "<< classid << " is OK, accept for PEB " << endmsg; - - } - } - */ - return HLT::OK; -} - -//------------------------------------------------------------------------------------- -HLT::ErrorCode TrigCheckForMuons::hltExecute(std::vector<std::vector<HLT::TriggerElement*> >& inputTE, unsigned int output) -{ - - bool debug = msg().level()<=MSG::DEBUG; - - m_nRoIs++; - if( debug ){ - msg() << MSG::DEBUG << "Executing this TrigCheckForMuons " ; - if (m_maxRoIsPerEvent > -1) msg() << " RoI " << m_nRoIs << "/" << m_maxRoIsPerEvent; - msg() << endmsg; - } - - if (m_maxRoIsPerEvent > -1 && m_nRoIs > m_maxRoIsPerEvent) { - if( debug ) - msg() << MSG::DEBUG << "RoI limit (" << m_maxRoIsPerEvent - << ") reached for this event : will not process this RoI" << endmsg; - return HLT::OK; - } - - // Get Objects - - //HLT::ErrorCode status = HLT::BAD_ALGO_CONFIG; - - - // create new partial EB directive - PartialEventBuildingInfo* pebInfo = config()->getPEBI(); - if(!pebInfo){ - if( debug ) - msg() << MSG::DEBUG << "*** Not Executing this TrigCheckForMuons " << name() << ", not a calib chain" << endmsg; - return HLT::OK; - } - - - //--------- Get list of eta/phi of interesting objects ---------- - - // FIXME : can trace number of recorded muons per event and only add new once - - ElementLinkVector<xAOD::MuonContainer> elvmuon; - std::vector<ElementLink<xAOD::MuonContainer> > muonVec; - - for( auto mLabel : m_muonLabels ){ - bool foundLabel = false; - size_t nMu0 = muonVec.size(); - size_t nMu1 = 0; - for( auto TEvec : inputTE) - for( auto oneTE : TEvec ){ - // use getFeatureLinks instead of "Link" to get them all recursively, otherwise Bphys topo will stop search - HLT::ErrorCode status = getFeaturesLinks<xAOD::MuonContainer,xAOD::MuonContainer>(oneTE, elvmuon); - if(status==HLT::OK ) { - foundLabel = true; - bool found = false; - nMu1 += elvmuon.size(); - for( const auto & efmu : elvmuon ){ - if( found ) break; - for(const auto& part : muonVec ){ - if( (*part)->charge() * (*efmu)->charge() < 0 ) continue; - double deta = (*part)->eta() - (*efmu)->eta(); - double dphi = (*part)->phi() - (*efmu)->phi(); - double deltaR2 = deta*deta +dphi*dphi; - if( deltaR2 <= m_mindRSqr){ - found = true; - if(debug) msg() << MSG::DEBUG << " SKIP (Already have) muon with pt="<<(*efmu)->pt() << " eta=" - << (*efmu)->eta() << " phi=" << (*efmu)->phi() << " charge="<< (*efmu)->charge() << endmsg; - break; - } - } // loop over muonVec - if( !found ){ - muonVec.push_back(efmu); - if(debug) msg() << MSG::DEBUG << " Found muon pt="<<(*efmu)->pt() << " eta=" - << (*efmu)->eta() << " phi=" << (*efmu)->phi() << " charge="<< (*efmu)->charge() << endmsg; - } - }// end loop over muons - if(debug){ - if( !foundLabel ) msg() << " No collection with label "<< mLabel << " is found " << endmsg; - else - msg() << MSG::DEBUG << " Found "<< nMu1 << " muons with label "<< mLabel - <<" recorded "<< muonVec.size() - nMu0 << endmsg; - } - - } - }// end loop over TEs - } // end loop over labels - - - for(const auto& muon : muonVec ){ - - m_roIEta = (*muon)->eta(); - m_roIPhi = (*muon)->phi(); - - if (debug) msg() << MSG::DEBUG << "Processing muon " << m_roIEta << " " << m_roIPhi << endmsg; - - double etaMin = std::max(-m_etaEdge,m_roIEta - m_etaWidth); - double etaMax = std::min( m_etaEdge,m_roIEta + m_etaWidth); - - double phiMin = m_roIPhi - m_phiWidth; - double phiMax = m_roIPhi + m_phiWidth; - while (phiMin < 0) phiMin += 2*M_PI; - while (phiMax > 2*M_PI) phiMax -= 2*M_PI; // AH HA!! This is wrong! Need in the range -pi .. pi - - TrigRoiDescriptor roi( m_roIEta, etaMin, etaMax, m_roIPhi, phiMin, phiMax ); - - // now add ROBs - HLT::ErrorCode ec = m_robSelector->fillPEBInfo(*pebInfo, roi, &m_dets, &m_nROBs); - if (ec != HLT::OK) { - if (debug) msg() << MSG::DEBUG << "Failed to record PEB " << endmsg; - return ec; - } - - if( m_addOppositePhiRoI || m_addOppositeEtaPhiRoI) { - m_roIPhi_2 = (*muon)->phi(); - while (m_roIPhi_2 < 0) m_roIPhi_2 += 2*M_PI; - while (m_roIPhi_2 > 2*M_PI) m_roIPhi_2 -= 2*M_PI; - - double phiMin_2 =( m_roIPhi_2 + M_PI) - m_phiWidth; //Making a few redefintions of phi to look at muons produced in the oppoisite direction. Keeping eta the same, but changing phi. - double phiMax_2 = (m_roIPhi_2 + M_PI) + m_phiWidth; - while (phiMin_2 < 0) phiMin_2 += 2*M_PI; - while (phiMax_2 > 2*M_PI) phiMax_2 -= 2*M_PI; - - if( m_addOppositePhiRoI ) { //To now look for muons in the opposite phi direction, create a second TrigRoiDescriptor - TrigRoiDescriptor roi2( m_roIEta, etaMin, etaMax, m_roIPhi_2 + M_PI, phiMin_2, phiMax_2 ); - - // now add ROBs - ec = m_robSelector->fillPEBInfo(*pebInfo, roi2, &m_dets, &m_nROBs); - if (ec != HLT::OK) { - if (debug) msg() << MSG::DEBUG << "Failed to record PEB for roi2" << endmsg; - return ec; - } - } - if( m_addOppositeEtaPhiRoI ) {//To now look for muons in the opposite eta and phi direction, - double etaMin_2 = std::max(-m_etaEdge,-m_roIEta - m_etaWidth); - double etaMax_2 = std::min( m_etaEdge,-m_roIEta + m_etaWidth); - TrigRoiDescriptor roi2( m_roIEta, etaMax_2, etaMin_2, m_roIPhi_2 + M_PI, phiMin_2, phiMax_2 ); - - // now add ROBs - ec = m_robSelector->fillPEBInfo(*pebInfo, roi2, &m_dets, &m_nROBs); - if (ec != HLT::OK) { - if (debug) msg() << MSG::DEBUG << "Failed to record PEB for roi2" << endmsg; - return ec; - } - } - } - - - if (debug) msg() << MSG::DEBUG << "Recorded " << m_nROBs.back() << " ROBs " << endmsg; - - - } // end loop over muons - - // Add extra ROBs - for (std::vector<uint32_t>::const_iterator rob = m_extraROBs.begin(); rob != m_extraROBs.end(); rob++) - pebInfo->add(*rob); - - // Add trig results as specified in properties - pebInfo->addSubDetector(m_trigResults); - - if(! m_rejectAll){ // Flag used for commissioning - HLT::TriggerElement* te = addRoI(output); - te->setActiveState(true); - } - return HLT::OK; -} - - -HLT::ErrorCode TrigCheckForMuons::hltEndEvent() -{ - m_robSelector->reset(); - m_dets.clear(); - m_nROBs.clear(); - m_nRoIs = 0; - return HLT::OK; -} diff --git a/Trigger/TrigAlgorithms/TrigDetCalib/src/TrigCheckForMuons.h b/Trigger/TrigAlgorithms/TrigDetCalib/src/TrigCheckForMuons.h deleted file mode 100644 index 21ecd56ecce..00000000000 --- a/Trigger/TrigAlgorithms/TrigDetCalib/src/TrigCheckForMuons.h +++ /dev/null @@ -1,102 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -/********************************************************************************** - * @Project: LAr Calibration - * @Package: TrigEgammaHypo - * @Class : TrigCheckForMuons - * - * @brief : Algorithm to write out a list of ROBs around muons - * - * @author Olya Igonkina, Amy Tee - * - * File and Version Information: - * $Id: TrigCheckForMuons.h 707504 2015-11-12 16:33:46Z fwinkl $ - **********************************************************************************/ - -#ifndef TrigDetCalib_TrigCheckForMuons_H -#define TrigDetCalib_TrigCheckForMuons_H - -#include "TrigInterfaces/AllTEAlgo.h" - -#include "GaudiKernel/ToolHandle.h" -#include "GaudiKernel/ServiceHandle.h" -#include <vector> -#include <string> - -#include "IRegionSelector/RegSelEnums.h" -#include "GaudiKernel/ITHistSvc.h" -#include "TrigDetCalib/ITrigROBSelector.h" - -#include "eformat/SourceIdentifier.h" -#include "TrigNavStructure/Types.h" - -class IRegSelSvc; -class MsgStream; -class PartialEventBuildingInfo; -class TH1I; - -namespace HLT { - class TriggerElement; -} - -/** - @class TrigCheckForMuons - Algorithm to write out a list of ROBs around all muons. - In principle, we could also run it only once per event. - However, if there is another chain that also wants all muons and is not yet finished, then we risk to miss some muons. - It is very quick, and every ROB will be written only once, so it should not be a problem to repeat it.. - - @author Olya Igonkina -*/ -class TrigCheckForMuons : public HLT::AllTEAlgo -{ - public: - - TrigCheckForMuons(const std::string& name, ISvcLocator* pSvcLocator); //!< std Gaudi algorthm constructor - - HLT::ErrorCode hltInitialize(); - HLT::ErrorCode hltFinalize(); - - /** @brief take one input TriggerElement and process it - It tries to retrieve any attached TrigRoIDescriptor features and prints them. - @param input TriggerElement to be processed - @param output TriggerElement coming out of the algorithm - */ - - HLT::ErrorCode hltExecute(std::vector<std::vector<HLT::TriggerElement*> >& inputTE, unsigned int output); - - HLT::ErrorCode hltBeginRun(); - - HLT::ErrorCode hltEndEvent(); - - - private: - - ToolHandle<ITrigROBSelector> m_robSelector; - bool m_addCTPResult, m_addHLTResult; - bool m_addOppositePhiRoI; - bool m_addOppositeEtaPhiRoI; - - double m_etaEdge, m_etaWidth, m_phiWidth; - - std::string m_pebLabel; - std::vector<std::string> m_muonLabels; - - int m_maxRoIsPerEvent, m_nRoIs; - - // Hardcoded extra ROBs that should be shipped in all cases - std::vector<uint32_t> m_extraROBs; - - // Monitored variables - std::vector<DETID> m_dets; - std::vector<eformat::SubDetector> m_trigResults; - std::vector<int> m_nROBs; - double m_roIEta, m_roIPhi, m_roIPhi_2; - float m_mindRSqr; - - bool m_rejectAll; -}; - -#endif diff --git a/Trigger/TrigAlgorithms/TrigDetCalib/src/TrigCheckForTracks.cxx b/Trigger/TrigAlgorithms/TrigDetCalib/src/TrigCheckForTracks.cxx deleted file mode 100755 index 411cc2678e7..00000000000 --- a/Trigger/TrigAlgorithms/TrigDetCalib/src/TrigCheckForTracks.cxx +++ /dev/null @@ -1,302 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -// ******************************************************************** -// -// NAME: TrigCheckForTracks.cxx -// PACKAGE: Trigger/TrigAlgorithms/TrigDetCalib -// -// ******************************************************************** - -#include "TrigCheckForTracks.h" -#include "GaudiKernel/IToolSvc.h" -#include "GaudiKernel/StatusCode.h" -#include "GaudiKernel/IJobOptionsSvc.h" - -#include "TrigSteeringEvent/TrigRoiDescriptor.h" -#include "TrkTrack/TrackCollection.h" - -#include "TrigSteeringEvent/PartialEventBuildingInfo.h" -#include "IRegionSelector/IRegSelSvc.h" - -#include <string> -#include <vector> - - - -class ISvcLocator; - - -TrigCheckForTracks::TrigCheckForTracks(const std::string& name, ISvcLocator* pSvcLocator): - HLT::AllTEAlgo(name, pSvcLocator), - m_executedEvent(false), - m_robSelector("TrigROBSelector", this ) -{ - - declareProperty("ROBSelector", m_robSelector, "The ROB Selector Tool"); - declareProperty("PEBInfoLabel", m_pebLabel = "dunno", "The label under which the PartialEventBuildingInfo object is stored"); - declareProperty("extraROBs", m_extraROBs); - - // declareProperty("doMonitoring", m_doMonitoring = true, "switch on/off monitoring" ); - declareProperty("AcceptAll", m_acceptAll = false); - declareProperty("dR0" , m_dR0 = 0.3); - declareProperty("dR0_overlap", m_dR0_overlap = 0.005); - declareProperty("pT_min", m_pT_min = 1000.); - declareProperty("pT_min_iso", m_pT_min_iso = 1000.); - declareProperty("phi_Width", m_phiWidth = 0.1); - declareProperty("eta_Width", m_etaWidth = 0.1); - declareProperty("etaEdge", m_etaEdge = 5.0, "Upper limit of |eta| range"); - declareProperty("etaLowEdge", m_etaLowEdge = 0.0, "Lower limit of |eta| range"); - declareProperty("tracksName", m_tracksName = "HLT_TrigFastTrackFinder_Tau"); - declareProperty("doNotPass", m_doNotPass = false); // pass through flag for initial beam items. - declareProperty("lookForAnyTracks", m_lookForAnyTracks = false); // any vs isolated. any is needed for initial beam items. - declareProperty("AddCTPResult", m_addCTPResult = false, "Add the CTP result to the list of ROBs"); - declareProperty("AddL2Result", m_addL2Result = false, "Add the L2 result to the list of ROBs"); - declareProperty("AddEFResult", m_addEFResult = false, "Add the EF result to the list of ROBs"); - declareProperty("AddHLTResult", m_addHLTResult = false, "Add the EF result to the list of ROBs"); - - declareMonitoredStdContainer("nROBs", m_nROBs); - declareMonitoredStdContainer("detectors", m_dets); - - declareMonitoredStdContainer("PtTrk", m_pT); - declareMonitoredStdContainer("PtTrk_ISO", m_pT_Iso); - declareMonitoredStdContainer("dR_tracks", m_dR); - declareMonitoredStdContainer("eta_tracks", m_eta); - declareMonitoredStdContainer("phi_tracks", m_phi); - declareMonitoredStdContainer("eta_tracks_ISO", m_ROB_eta); - declareMonitoredStdContainer("phi_tracks_ISO", m_ROB_phi); - declareMonitoredVariable("iso_Tracks", m_n_IsoTracks); - -} - - -TrigCheckForTracks::~TrigCheckForTracks() -{ } - - -// ---------------------------------------------------------------------- -HLT::ErrorCode TrigCheckForTracks::hltInitialize() -// ---------------------------------------------------------------------- -{ - // Initialize timing service - //------------------------------ - if( service( "TrigTimerSvc", m_timerSvc).isFailure() ) { - ATH_MSG_WARNING( name() - << ": Unable to locate TrigTimer Service" ); - } - if (m_timerSvc) - m_timers.push_back(m_timerSvc->addItem("TrigCheckForTracks.TrigCheckForTracksTot")); - - m_acceptedEvts = 0; - m_rejectedEvts = 0; - m_errorEvts = 0; - - if (m_addCTPResult) m_trigResults.push_back(eformat::TDAQ_CTP); - if (m_addL2Result) m_trigResults.push_back(eformat::TDAQ_LVL2); - if (m_addEFResult) m_trigResults.push_back(eformat::TDAQ_EVENT_FILTER); - if (m_addEFResult) m_trigResults.push_back(eformat::TDAQ_HLT); - - return HLT::OK; -} - - -HLT::ErrorCode TrigCheckForTracks::hltStart() -{ - return m_robSelector->setupMonitoring(); -} - - -// ---------------------------------------------------------------------- -HLT::ErrorCode TrigCheckForTracks::hltFinalize(){ -// ---------------------------------------------------------------------- - - ATH_MSG_INFO( "Events accepted/rejected/errors: "<< m_acceptedEvts <<" / "<< m_rejectedEvts << " / "<< m_errorEvts ); - return HLT::OK; -} - - -// ---------------------------------------------------------------------- -HLT::ErrorCode TrigCheckForTracks::hltExecute(std::vector<std::vector<HLT::TriggerElement*> >& /*tes_in*/, unsigned int output) { -// ---------------------------------------------------------------------- - - if (m_executedEvent) { - ATH_MSG_DEBUG( "*** Not Executing this TrigCheckForTracks " << name() << ", already executed" ); - return HLT::OK; - } - - ATH_MSG_DEBUG( "*** Executing this TrigCheckForTracks : " << name() ); - - - //--> PEB Related Stuff - - PartialEventBuildingInfo* pebInfo = config()->getPEBI(); - if(!pebInfo){ - ATH_MSG_DEBUG( "*** Not Executing this TrigCheckForTracks " << name() << ", not a calib chain" ); - return HLT::OK; - } - //--< PEB Related Stuff - - beforeExecMonitors().ignore(); - - - // The code retrieves tracks from the StoreGate. Please note that - // this is not compatible with the caching model implemented by - // Tomasz and Rustem for the fex and combo algorithms. - // AllTE algorithms are not included in the caching model. - // Retrieving objects from the StoreGate is not something that - // should be done for other algorithms than AllTE - // - so retrieving objects from the StoreGate is - // **not** allowed in fex or combo algorithms. - // More on caching: - // https://twiki.cern.ch/twiki/bin/view/Atlas/HltAlgorithmsCaching - - - // Retrieve Tracks from StoreGate: - - const TrackCollection* tracks = 0; - - if (evtStore()->transientContains<TrackCollection>(m_tracksName)) { - ATH_MSG_DEBUG( MSG::DEBUG << "*** TrackCollection with name "<< m_tracksName <<" found in StoreGate (transientContains)" ); - } - else { - ATH_MSG_DEBUG( "*** No TrackCollection with name" << m_tracksName << " found in StoreGate (transientContains)" ); - return HLT::OK; - } - - StatusCode sc = evtStore()->retrieve(tracks,m_tracksName); - - ATH_MSG_DEBUG( "***** Status code: "<< sc << " for key: " << m_tracksName ); - - if (sc.isFailure()) { - ATH_MSG_DEBUG( "No TrackCollection with name "<<m_tracksName<<" found in StoreGate" ); - m_errorEvts++; - m_rejectedEvts++; - } else { - ATH_MSG_DEBUG( "TrackCollection with name "<<m_tracksName<<" found in StoreGate" ); - ATH_MSG_DEBUG( "Retrieved "<< tracks->size() <<" reconstructed tracks from StoreGate" ); - - // Have found tracks... - // Now loop over the tracks to find the isolated ones. - - if (tracks->size()!=0) { - - - int count_IsoTracks = 0; - - for (TrackCollection::const_iterator it = tracks->begin(); it!=tracks->end(); ++it) - { - - const Trk::Perigee *ip = (*it)->perigeeParameters(); - if (!ip) continue; - - - m_pT.push_back(ip->pT()); - m_eta.push_back(ip->eta()); - m_phi.push_back(ip->parameters()[Trk::phi]); - - - ATH_MSG_DEBUG( "pT " << ip->pT() << " eta " << ip->eta()); - - if (fabs(ip->pT()) < m_pT_min || fabs(ip->eta())>m_etaEdge || fabs(ip->eta())<m_etaLowEdge ) continue; - - bool gotIsoTrack = true; - - if (!m_lookForAnyTracks) - { - - for (TrackCollection::const_iterator jt = tracks->begin(); jt!=tracks->end(); ++jt) - { - - - const Trk::Perigee *jp = (*jt)->perigeeParameters(); - - - double dphi = fabs(ip->parameters()[Trk::phi] - jp->parameters()[Trk::phi]); - if(dphi>M_PI) dphi = 2*M_PI-dphi; - - double dR = sqrt(pow((ip->eta() - jp->eta()),2) + pow(dphi,2)); - m_dR.push_back(dR); - - if ((fabs(jp->pT()) > m_pT_min_iso) && (dR > m_dR0_overlap) && (dR < m_dR0 ) ) { - gotIsoTrack = false; - continue; - } - } - } - - if (gotIsoTrack){ - - count_IsoTracks += 1; - - m_ROB_eta.push_back(ip->eta()); - m_ROB_phi.push_back(ip->parameters()[Trk::phi]); - m_pT_Iso.push_back(ip->pT()); - - - double etaMIN = ip->eta() - m_etaWidth; - double etaMAX = ip->eta() + m_etaWidth; - - double phiMIN = ip->parameters()[Trk::phi] - m_phiWidth; - double phiMAX = ip->parameters()[Trk::phi] + m_phiWidth; - while (phiMIN < 0) phiMIN += 2*M_PI; - while (phiMAX > 2*M_PI) phiMAX -= 2*M_PI; - - TrigRoiDescriptor roi( ip->eta(), etaMIN, etaMAX, ip->parameters()[Trk::phi], phiMIN, phiMAX ); - - // now add ROBs - HLT::ErrorCode ec = m_robSelector->fillPEBInfo(*pebInfo, roi, &m_dets, &m_nROBs); - if (ec != HLT::OK) return ec; - - - // Add extra ROBs - for (std::vector<uint32_t>::const_iterator rob = m_extraROBs.begin(); rob != m_extraROBs.end(); rob++) - pebInfo->add(*rob); - - if(m_trigResults.size()!=0) - pebInfo->addSubDetector(m_trigResults); - - if (!m_doNotPass){ - //generate output here - //addRoI(output); - HLT::TriggerElement* te = addRoI(output); - te->setActiveState(true); - }// else - // te->setActiveState(false); - - } - } - - m_acceptedEvts++; - m_n_IsoTracks = count_IsoTracks ; - ATH_MSG_DEBUG( "Found "<< m_n_IsoTracks <<" Isolated ("<< m_lookForAnyTracks <<") Tracks" ); - } - else { - m_rejectedEvts++; - } - } - - - m_executedEvent = true; - - - afterExecMonitors().ignore(); - - return HLT::OK; -} - -HLT::ErrorCode TrigCheckForTracks::hltEndEvent() { - m_executedEvent = false; - m_robSelector->reset(); - m_dets.clear(); - m_nROBs.clear(); - m_pT.clear(); - m_pT_Iso.clear(); - m_dR.clear(); - m_eta.clear(); - m_phi.clear(); - m_ROB_eta.clear(); - m_ROB_phi.clear(); - return HLT::OK; - } - diff --git a/Trigger/TrigAlgorithms/TrigDetCalib/src/TrigCheckForTracks.h b/Trigger/TrigAlgorithms/TrigDetCalib/src/TrigCheckForTracks.h deleted file mode 100644 index 4bdc864d6ea..00000000000 --- a/Trigger/TrigAlgorithms/TrigDetCalib/src/TrigCheckForTracks.h +++ /dev/null @@ -1,99 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef TrigCheckForTracks_H -#define TrigCheckForTracks_H - -///////////////////////////////////////////////////////////////////////////////////////////////////// -/// Name : TrigCheckForTracks.h -/// Package : Trigger/TrigAlgorithms/TrigDetCalib -/// Author : Nicolas Berger -/// Created : Sep. 2008 -/// -/// DESCRIPTION: simple hypo algorithms to limit eta range -/// -/////////////////////////////////////////////////////////////////////////////////////////////////////// -#include <vector> -#include <string> - -#include "TrigInterfaces/AllTEAlgo.h" -#include "TrigTimeAlgs/TrigTimerSvc.h" - -#include "TrigDetCalib/ITrigROBSelector.h" -#include "eformat/SourceIdentifier.h" - -class TriggerElement; -class PartialEventBuildingInfo; - -class TrigCheckForTracks : public HLT::AllTEAlgo { - - public: - - TrigCheckForTracks(const std::string& name, ISvcLocator* pSvcLocator); - ~TrigCheckForTracks(); - - HLT::ErrorCode hltInitialize(); - HLT::ErrorCode hltFinalize(); - HLT::ErrorCode hltExecute(std::vector<std::vector<HLT::TriggerElement*> >& input, unsigned int output); - - - HLT::ErrorCode hltStart(); - HLT::ErrorCode hltEndEvent(); - - private: - - bool m_executedEvent ; // This will ensure we don't execute the algorithm more than once in the event. - - -ToolHandle<ITrigROBSelector> m_robSelector; - - int m_acceptedEvts; - int m_rejectedEvts; - int m_errorEvts; - - // Switch to accept all the events. - bool m_acceptAll; - - // Save HLT results - bool m_addCTPResult, m_addL2Result, m_addEFResult, m_addHLTResult; - - // Switch on Monitoring: - - int m_n_IsoTracks ; - std::vector<double> m_pT ; - std::vector<double> m_pT_Iso ; - std::vector<double> m_dR ; - std::vector<double> m_eta ; - std::vector<double> m_phi ; - std::vector<DETID> m_dets; - std::vector<int> m_nROBs; - std::vector<double> m_ROB_eta; - std::vector<double> m_ROB_phi; - - - double m_dR0 ; - double m_dR0_overlap ; - double m_pT_min ; - double m_pT_min_iso ; - double m_etaEdge ; - double m_etaLowEdge ; - double m_etaWidth ; - double m_phiWidth ; - std::string m_tracksName ; - bool m_doNotPass ; - bool m_lookForAnyTracks ; - - - std::string m_pebLabel; - - // Hardcoded extra ROBs that should be shipped in all cases - std::vector<uint32_t> m_extraROBs; - - std::vector<eformat::SubDetector> m_trigResults; - - // Timing: - ITrigTimerSvc* m_timerSvc; - std::vector<TrigTimer*> m_timers; -}; -#endif diff --git a/Trigger/TrigAlgorithms/TrigDetCalib/src/TrigEtaHypo.cxx b/Trigger/TrigAlgorithms/TrigDetCalib/src/TrigEtaHypo.cxx deleted file mode 100644 index 13d2ec17e14..00000000000 --- a/Trigger/TrigAlgorithms/TrigDetCalib/src/TrigEtaHypo.cxx +++ /dev/null @@ -1,106 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -// ******************************************************************** -// -// NAME: TrigEtaHypo.cxx -// PACKAGE: Trigger/TrigAlgorithms/TrigDetCalib -// -// ******************************************************************** - -#include "TrigEtaHypo.h" - -#include "GaudiKernel/MsgStream.h" -#include "GaudiKernel/IToolSvc.h" -#include "GaudiKernel/StatusCode.h" - -#include "TrigSteeringEvent/TrigRoiDescriptor.h" -#include <cmath> - -//#include "CLHEP/Units/SystemOfUnits.h" - -class ISvcLocator; - - -TrigEtaHypo::TrigEtaHypo(const std::string& name, ISvcLocator* pSvcLocator): - HLT::HypoAlgo(name, pSvcLocator) -{ - declareProperty("EtaMinCut", m_etaMinCut = -1, "minimum eta value"); // Default: None - declareProperty("EtaMaxCut", m_etaMaxCut = -1, "maximum eta value"); // Default: None - declareProperty("RoILabel", m_roILabel = "initialRoI", "RoI feature label"); - declareProperty("doMonitoring", m_doMonitoring = false, "switch on/off monitoring" ); - declareProperty("AcceptAll", m_acceptAll = false); -} - - -TrigEtaHypo::~TrigEtaHypo() -{ } - - -// ---------------------------------------------------------------------- -HLT::ErrorCode TrigEtaHypo::hltInitialize() -// ---------------------------------------------------------------------- -{ - msg() << MSG::INFO << "in initialize()" << endmsg; - - // Initialize timing service - //------------------------------ - if( service( "TrigTimerSvc", m_timerSvc).isFailure() ) { - msg() << MSG::WARNING << name() - << ": Unable to locate TrigTimer Service" << endmsg; - } - if (m_timerSvc) - m_timers.push_back(m_timerSvc->addItem("TrigEtaHypo.TrigEtaHypoTot")); - - m_acceptedEvts = 0; - m_rejectedEvts = 0; - m_errorEvts = 0; - - return HLT::OK; -} - - -// ---------------------------------------------------------------------- -HLT::ErrorCode TrigEtaHypo::hltFinalize(){ -// ---------------------------------------------------------------------- - - msg() << MSG::INFO << "in finalize()" << endmsg; - msg() << MSG::INFO << "Events accepted/rejected/errors: "<< m_acceptedEvts <<" / "<< m_rejectedEvts << " / "<< m_errorEvts << endmsg; - return HLT::OK; -} - - -// ---------------------------------------------------------------------- -HLT::ErrorCode TrigEtaHypo::hltExecute(const HLT::TriggerElement* outputTE, bool& pass) { -// ---------------------------------------------------------------------- - - // Time total TrigL2JetHypo execution time. - if (m_timerSvc) m_timers[0]->start(); - - pass = false; - - // get the trigger element and extract the RoI information - - const TrigRoiDescriptor* roiDescriptor = 0; - if (getFeature(outputTE, roiDescriptor, m_roILabel) == HLT::OK && roiDescriptor) { - if (msgLvl() <= MSG::DEBUG) - msg() << MSG::DEBUG << "REGTEST: RoI id " << roiDescriptor->roiId() - << " located at phi = " << roiDescriptor->phi() << ", eta = " << roiDescriptor->eta() << endmsg; - else - msg() << MSG::DEBUG << "Failed to find RoiDescriptor " << endmsg; - - if ((m_etaMinCut < 0 || std::fabs(roiDescriptor->eta()) > m_etaMinCut) && - (m_etaMaxCut < 0 || std::fabs(roiDescriptor->eta()) < m_etaMaxCut)) { - pass = true; - m_acceptedEvts++; - } - else - m_rejectedEvts++; - } - else - m_errorEvts++; - - if (m_timerSvc) m_timers[0]->stop(); - return HLT::OK; -} diff --git a/Trigger/TrigAlgorithms/TrigDetCalib/src/TrigEtaHypo.h b/Trigger/TrigAlgorithms/TrigDetCalib/src/TrigEtaHypo.h deleted file mode 100644 index 68f9e60d6ee..00000000000 --- a/Trigger/TrigAlgorithms/TrigDetCalib/src/TrigEtaHypo.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef TrigEtaHypo_H -#define TrigEtaHypo_H - -///////////////////////////////////////////////////////////////////////////////////////////////////// -/// Name : TrigEtaHypo.h -/// Package : Trigger/TrigAlgorithms/TrigDetCalib -/// Author : Nicolas Berger -/// Created : Sep. 2008 -/// -/// DESCRIPTION: simple hypo algorithms to limit eta range -/// -/////////////////////////////////////////////////////////////////////////////////////////////////////// -#include <vector> -#include <string> - -#include "TrigInterfaces/HypoAlgo.h" -#include "TrigTimeAlgs/TrigTimerSvc.h" - -class TrigEtaHypo : public HLT::HypoAlgo { - - public: - - TrigEtaHypo(const std::string& name, ISvcLocator* pSvcLocator); - ~TrigEtaHypo(); - - HLT::ErrorCode hltInitialize(); - HLT::ErrorCode hltFinalize(); - HLT::ErrorCode hltExecute(const HLT::TriggerElement* outputTE, bool& pass); - - - private: - - double m_etaMinCut, m_etaMaxCut; - std::string m_roILabel; - - int m_acceptedEvts; - int m_rejectedEvts; - int m_errorEvts; - - // Switch to accept all the events. - bool m_acceptAll; - - // Switch on Monitoring: - bool m_doMonitoring; - - // Timing: - ITrigTimerSvc* m_timerSvc; - std::vector<TrigTimer*> m_timers; -}; -#endif diff --git a/Trigger/TrigAlgorithms/TrigDetCalib/src/TrigL1CaloOverflow.cxx b/Trigger/TrigAlgorithms/TrigDetCalib/src/TrigL1CaloOverflow.cxx deleted file mode 100644 index ca8f6da194b..00000000000 --- a/Trigger/TrigAlgorithms/TrigDetCalib/src/TrigL1CaloOverflow.cxx +++ /dev/null @@ -1,80 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -#include "TrigL1CaloOverflow.h" - -#include "TrigT1Result/RoIBResult.h" -#include "xAODEventInfo/EventInfo.h" - -#include <bitset> - -// BCIDs of the abort gap -const int ABORT_GAP_START = 3446; -const int ABORT_GAP_END = 3563; - -TrigL1CaloOverflow::TrigL1CaloOverflow(const std::string& name, ISvcLocator* pSvcLocator): - HLT::AllTEAlgo(name, pSvcLocator), - m_lvl1Tool("HLT::Lvl1ResultAccessTool/Lvl1ResultAccessTool",this) -{ - declareProperty("ignoreAbortGap", m_ignoreAbortGap = true, "Ignore overflows in abort gap"); - declareProperty("acceptCMXOverflows", m_acceptCMXOverflows = true, "Accept CMX overflows"); - declareProperty("acceptCaloRoIBOverflows", m_acceptCaloRoIBOverflows = true, "Accept Calo RoIB overflows"); - declareProperty("acceptLvl1ConsistencyProblems", m_acceptLvl1Consist = true, "Accept events with problems in the Lvl1 consistency checker"); -} - -HLT::ErrorCode TrigL1CaloOverflow::hltInitialize() -{ - if (m_lvl1Tool.retrieve().isFailure()) { - ATH_MSG_ERROR("Cannot retrieve " << m_lvl1Tool); - return HLT::BAD_JOB_SETUP; - } - return HLT::OK; -} - -HLT::ErrorCode TrigL1CaloOverflow::hltExecute(std::vector<std::vector<HLT::TriggerElement*> >& /*tes_in*/, unsigned int output) -{ - beforeExecMonitors().ignore(); - - // Do nothing for events in the abort gap (tile laser causes overflows) - if (m_ignoreAbortGap) { - const xAOD::EventInfo* evt(0); - if (evtStore()->retrieve(evt).isSuccess() && - evt->bcid() >= ABORT_GAP_START && evt->bcid() <= ABORT_GAP_END) { - return HLT::OK; - } - } - - const ROIB::RoIBResult* result; - if (evtStore()->retrieve(result).isFailure()) return HLT::OK; - - // Overflows in the TOB transmission to CMX - if (m_acceptCMXOverflows) { - std::bitset<3> overflow = m_lvl1Tool->lvl1EMTauJetOverflow(*result); - if (overflow.any()) { - addRoI(output)->setActiveState(true); - ATH_MSG_DEBUG("Event was force accepted by L1Calo due to TOB overflows in CMX transmission"); - } - } - - // Overflows on the RoI link to the RoIB - if (m_acceptCaloRoIBOverflows) { - if (result->CheckEMOverflow() || result->CheckJOverflow()) { - addRoI(output)->setActiveState(true); - ATH_MSG_DEBUG("Event has overflows in the EM or JET RoI transmission to the RoIB"); - } - } - - // Events with issues in the consistency checker (not strictly overflows, see ATR-14607) - if (m_acceptLvl1Consist) { - HLT::ErrorCode ec = config()->getLvlConverterStatus(); - if ( ec.reason()==HLT::Reason::MISSING_FEATURE && - ec.steeringInternalReason()==HLT::SteeringInternalReason::MISSING_CALO_ROI ) { // see Lvl1ConsistencyChecker.cxx - addRoI(output)->setActiveState(true); - ATH_MSG_DEBUG("Event has Lvl1 consistency checker problems"); - } - } - - afterExecMonitors().ignore(); - return HLT::OK; -} diff --git a/Trigger/TrigAlgorithms/TrigDetCalib/src/TrigL1CaloOverflow.h b/Trigger/TrigAlgorithms/TrigDetCalib/src/TrigL1CaloOverflow.h deleted file mode 100644 index 85c42e630d0..00000000000 --- a/Trigger/TrigAlgorithms/TrigDetCalib/src/TrigL1CaloOverflow.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef TRIGDETCALIB_TRIGL1CALOOVERFLOW_H -#define TRIGDETCALIB_TRIGL1CALOOVERFLOW_H - -#include <string> -#include "TrigInterfaces/AllTEAlgo.h" -#include "TrigSteering/Lvl1ResultAccessTool.h" - -namespace HLT { - class TriggerElement; -} - -/** - * Algorithm that accepts all events with L1Calo TOB overflows - **/ - -class TrigL1CaloOverflow : public HLT::AllTEAlgo { - -public: - TrigL1CaloOverflow(const std::string& name, ISvcLocator* pSvcLocator); - HLT::ErrorCode hltInitialize(); - HLT::ErrorCode hltFinalize() {return HLT::OK;} - - HLT::ErrorCode hltExecute(std::vector<std::vector<HLT::TriggerElement*> >& input, - unsigned int output); - -private: - ToolHandle<HLT::ILvl1ResultAccessTool> m_lvl1Tool; - bool m_ignoreAbortGap; - bool m_acceptCMXOverflows; - bool m_acceptCaloRoIBOverflows; - bool m_acceptLvl1Consist; -}; - - -#endif diff --git a/Trigger/TrigAlgorithms/TrigDetCalib/src/TrigROBListWriter.cxx b/Trigger/TrigAlgorithms/TrigDetCalib/src/TrigROBListWriter.cxx deleted file mode 100755 index 883dbbb81d1..00000000000 --- a/Trigger/TrigAlgorithms/TrigDetCalib/src/TrigROBListWriter.cxx +++ /dev/null @@ -1,154 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -#include "GaudiKernel/MsgStream.h" -#include "TrigSteeringEvent/TrigRoiDescriptor.h" -#include "TrigSteeringEvent/PartialEventBuildingInfo.h" -#include "IRegionSelector/IRegSelSvc.h" - -#include "TrigROBListWriter.h" - -TrigROBListWriter::TrigROBListWriter(const std::string& name, ISvcLocator* pSvcLocator) - : HLT::FexAlgo(name, pSvcLocator), - m_robSelector("TrigROBSelector", this ), - m_addCTPResult(0), m_addL2Result(0), m_addEFResult(0), - m_nRoIs(0) -{ - declareProperty("ROBSelector", m_robSelector, "The ROB Selector Tool"); - declareProperty("AddCTPResult", m_addCTPResult, "Add the CTP result to the list of ROBs"); - declareProperty("AddL2Result", m_addL2Result, "Add the L2 result to the list of ROBs"); - declareProperty("AddEFResult", m_addEFResult, "Add the EF result to the list of ROBs"); - declareProperty("etaEdge", m_etaEdge = 5.0, "Upper limit of |eta| range"); - declareProperty("etaWidth", m_etaWidth = 0.1, "Width of the RoI in eta"); - declareProperty("phiWidth", m_phiWidth = 0.1, "Width of the RoI in phi"); - declareProperty("PEBInfoLabel", m_pebLabel = "dunno", "The label under which the PartialEventBuildingInfo object is stored"); - declareProperty("RoIDescriptorLabels", m_roILabels, "The labels used to search for RoI features"); - declareProperty("MaxRoIsPerEvent", m_maxRoIsPerEvent = -1); - declareProperty("extraROBs", m_extraROBs); - declareProperty("rejectAll", m_rejectAll = false); - - declareMonitoredStdContainer("nROBs", m_nROBs); - declareMonitoredStdContainer("detectors", m_dets); - declareMonitoredVariable("roIEta", m_roIEta); - declareMonitoredVariable("roIPhi", m_roIPhi); -} - - -HLT::ErrorCode TrigROBListWriter::hltInitialize() -{ - if (m_addCTPResult) m_trigResults.push_back(eformat::TDAQ_CTP); - if (m_addL2Result) m_trigResults.push_back(eformat::TDAQ_LVL2); - if (m_addEFResult) m_trigResults.push_back(eformat::TDAQ_EVENT_FILTER); - - return HLT::OK; -} - - -HLT::ErrorCode TrigROBListWriter::hltStart() -{ - return m_robSelector->setupMonitoring(); -} - - -HLT::ErrorCode TrigROBListWriter::hltFinalize() -{ - return HLT::OK; -} - - -HLT::ErrorCode TrigROBListWriter::hltExecute(const HLT::TriggerElement* te_in, - HLT::TriggerElement* te_out) -{ - m_nRoIs++; - msg() << MSG::DEBUG << "Executing this TrigROBListWriter " << name() << " for types " - << te_in->getId() << " -> " << te_out->getId(); - if (m_maxRoIsPerEvent > -1) msg() << " RoI " << m_nRoIs << "/" << m_maxRoIsPerEvent; - msg() << endmsg; - - if (m_maxRoIsPerEvent > -1 && m_nRoIs > m_maxRoIsPerEvent) { - msg() << MSG::DEBUG << "RoI limit (" << m_maxRoIsPerEvent - << ") reached for this event : will not process this RoI" << endmsg; - return HLT::OK; - } - - // Get RoI descriptor - const TrigRoiDescriptor* roIDescriptor = 0; - HLT::ErrorCode status = HLT::BAD_ALGO_CONFIG; - - for (std::vector<std::string>::const_iterator label = m_roILabels.begin(); - label != m_roILabels.end(); label++) { - status = getFeature(te_out, roIDescriptor, *label); - if (status == HLT::OK && roIDescriptor) break; - } - - if (status != HLT::OK || !roIDescriptor) { - msg() << MSG::ERROR << "Could not find RoI descriptor - labels checked : "; - for (std::vector<std::string>::const_iterator label = m_roILabels.begin(); - label != m_roILabels.end(); label++) - msg() << *label << " "; - msg()<< endmsg; - return status; - } - - // from dummyAlgoForCalibration - // create new partial EB directive - PartialEventBuildingInfo* pebInfo = config()->getPEBI(); - if(!pebInfo){ - msg() << MSG::DEBUG << "*** Not Executing this TrigROBListWriter " << name() << ", not a calib chain" << endmsg; - return HLT::OK; - } - /*PartialEventBuildingInfo* pebInfo = 0; - if (store()->transientContains<PartialEventBuildingInfo>(m_pebLabel)) - store()->retrieve(pebInfo, m_pebLabel).ignore(); - else { - pebInfo = new PartialEventBuildingInfo(); - store()->record(pebInfo, m_pebLabel, true).ignore(); - }*/ - - // Some monitoring - - m_roIEta = roIDescriptor->eta(); - m_roIPhi = roIDescriptor->phi(); - - // bool createRoI = false; - // if ( roIDescriptor->eta()==roIDescriptor->etaMinus() && roIDescriptor->eta()==roIDescriptor->etaPlus() && - // roIDescriptor->phi()==roIDescriptor->phiMinus() && roIDescriptor->phi()==roIDescriptor->phiPlus() ) { - - double etaMin = std::max(-m_etaEdge,roIDescriptor->eta() - m_etaWidth); - double etaMax = std::min( m_etaEdge,roIDescriptor->eta() + m_etaWidth); - - double phiMin = roIDescriptor->phi() - m_phiWidth; - double phiMax = roIDescriptor->phi() + m_phiWidth; - while (phiMin < 0) phiMin += 2*M_PI; - while (phiMax > 2*M_PI) phiMax -= 2*M_PI; // AH HA!! This is wrong! Need in the range -pi .. pi - - TrigRoiDescriptor roi( roIDescriptor->eta(), etaMin, etaMax, roIDescriptor->phi(), phiMin, phiMax ); - - // now add ROBs - HLT::ErrorCode ec = m_robSelector->fillPEBInfo(*pebInfo, roi, &m_dets, &m_nROBs); - if (ec != HLT::OK) return ec; - - // Add extra ROBs - for (std::vector<uint32_t>::const_iterator rob = m_extraROBs.begin(); rob != m_extraROBs.end(); rob++) - pebInfo->add(*rob); - - // Add trig results as specified in properties - pebInfo->addSubDetector(m_trigResults); - - if(m_rejectAll) // Flag used for commissioning - te_out->setActiveState(false); - else - te_out->setActiveState(true); - return HLT::OK; -} - - -HLT::ErrorCode TrigROBListWriter::hltEndEvent() -{ - m_robSelector->reset(); - m_dets.clear(); - m_nROBs.clear(); - m_nRoIs = 0; - return HLT::OK; -} diff --git a/Trigger/TrigAlgorithms/TrigDetCalib/src/TrigROBListWriter.h b/Trigger/TrigAlgorithms/TrigDetCalib/src/TrigROBListWriter.h deleted file mode 100755 index 0041c3eae82..00000000000 --- a/Trigger/TrigAlgorithms/TrigDetCalib/src/TrigROBListWriter.h +++ /dev/null @@ -1,95 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -/********************************************************************************** - * @Project: LAr Calibration - * @Package: TrigEgammaHypo - * @class : TrigROBListWriter - * - * @brief : Algorithm to write out a list of LAr ROBs for its input RoI - * - * @author Nicolas Berger <Nicolas.Berger@cern.ch> - CERN - * - * File and Version Information: - * $Id: TrigROBListWriter.h 707504 2015-11-12 16:33:46Z fwinkl $ - **********************************************************************************/ - -#ifndef TrigEgammaHypo_TrigROBListWriter_H -#define TrigEgammaHypo_TrigROBListWriter_H - -#include "TrigInterfaces/FexAlgo.h" - -#include "GaudiKernel/ToolHandle.h" -#include "GaudiKernel/ServiceHandle.h" -#include <vector> -#include <string> - -#include "IRegionSelector/RegSelEnums.h" -#include "GaudiKernel/ITHistSvc.h" -#include "TrigDetCalib/ITrigROBSelector.h" - -#include "eformat/SourceIdentifier.h" - -class IRegSelSvc; -class MsgStream; -class PartialEventBuildingInfo; -class TH1I; - -namespace HLT { - class TriggerElement; -} - -/** - @class TrigROBListWriter - Algorithm to write out a list of LAr ROBs for its input RoI - @author Nicolas Berger <Nicolas.Berger@cern.ch> -*/ -class TrigROBListWriter : public HLT::FexAlgo -{ - public: - - TrigROBListWriter(const std::string& name, ISvcLocator* pSvcLocator); //!< std Gaudi algorthm constructor - - HLT::ErrorCode hltInitialize(); - HLT::ErrorCode hltFinalize(); - - /** @brief take one input TriggerElement and process it - It tries to retrieve any attached TrigRoIDescriptor features and prints them. - @param input TriggerElement to be processed - @param output TriggerElement coming out of the algorithm - */ - HLT::ErrorCode hltExecute(const HLT::TriggerElement* input, - HLT::TriggerElement* output); - - HLT::ErrorCode hltStart(); - - HLT::ErrorCode hltEndEvent(); - - - - private: - - ToolHandle<ITrigROBSelector> m_robSelector; - bool m_addCTPResult, m_addL2Result, m_addEFResult; - - double m_etaEdge, m_etaWidth, m_phiWidth; - - std::string m_pebLabel; - std::vector<std::string> m_roILabels; - - int m_maxRoIsPerEvent, m_nRoIs; - - // Hardcoded extra ROBs that should be shipped in all cases - std::vector<uint32_t> m_extraROBs; - - // Monitored variables - std::vector<DETID> m_dets; - std::vector<eformat::SubDetector> m_trigResults; - std::vector<int> m_nROBs; - double m_roIEta, m_roIPhi; - - bool m_rejectAll; -}; - -#endif diff --git a/Trigger/TrigAlgorithms/TrigDetCalib/src/TrigROBSelector.cxx b/Trigger/TrigAlgorithms/TrigDetCalib/src/TrigROBSelector.cxx deleted file mode 100644 index 558f271ee89..00000000000 --- a/Trigger/TrigAlgorithms/TrigDetCalib/src/TrigROBSelector.cxx +++ /dev/null @@ -1,281 +0,0 @@ -/* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration -*/ - -#include "GaudiKernel/MsgStream.h" -#include "CxxUtils/phihelper.h" -#include "TrigSteeringEvent/TrigRoiDescriptor.h" -#include "TrigSteeringEvent/PartialEventBuildingInfo.h" -#include "IRegionSelector/IRegSelSvc.h" -#include "TrigInterfaces/IMonitoredAlgo.h" -#include "AthenaBaseComps/AthMsgStreamMacros.h" -#include "GaudiKernel/Algorithm.h" - -#include "TrigROBSelector.h" -#include "TH1.h" - -TrigROBSelector::TrigROBSelector(const std::string& type, const std::string& name, - const IInterface* parent) - : AthAlgTool(type, name, parent), - m_regionSelector("RegSelSvc/RegSelSvc", name), - m_tHistSvc("THistSvc/THistSvc", name) -{ - declareInterface<ITrigROBSelector>( this ); - - declareProperty("etaMinMon", m_etaMinMon = -4.8, "lower edge of eta range for monitoring"); - declareProperty("etaMaxMon", m_etaMaxMon = 4.8, "upper edge of eta range for monitoring"); - declareProperty("phiMinMon", m_phiMinMon = -M_PI, "lower edge of phi range for monitoring"); - declareProperty("phiMaxMon", m_phiMaxMon = M_PI, "upper edge of phi range for monitoring"); - declareProperty("Subdetectors", m_detSpec = "All", "Subdetectors to include in readout"); - declareProperty("MonitoringHistoPath", m_outputPath = "", "Path to monitoring histograms"); - - //std::string::size_type index; - //std::string newName = name; - //while ((index = newName.find(".")) != std::string::npos) newName.replace(index, 1, "_"); - - m_detNames[PIXEL] = "PIXEL"; - m_detNames[SCT] = "SCT"; - m_detNames[TRT] = "TRT"; - m_detNames[TTEM] = "TTEM"; - m_detNames[TTHEC] = "TTHEC"; - m_detNames[TILE] = "TILE"; - m_detNames[FCALEM] = "FCALEM"; - m_detNames[FCALHAD] = "FCALHAD"; - m_detNames[MDT] = "MDT"; - m_detNames[RPC] = "RPC"; - m_detNames[TGC] = "TGC"; - /* on April 19, 2018, these subdetectors were not included by default, so do not change this - m_detNames[LAR] = "LAR"; - m_detNames[FTK] = "FTK"; - */ - m_detNames[CSC] = "CSC"; // included since April 19, 2018, small size -} - - -StatusCode TrigROBSelector::initialize() -{ - const IMonitoredAlgo* parentMon = dynamic_cast<const IMonitoredAlgo*>(parent()); - if (!parentMon) { - ATH_MSG_WARNING("Attached to algorithm which is not of type IMonitoredAlgo"); - return StatusCode::FAILURE; - } - const Algorithm* parentAlg = dynamic_cast<const Algorithm*>(parent()); - if (!parentAlg) { - ATH_MSG_WARNING("Attached to algorithm which is not of type Algorithm"); - return StatusCode::FAILURE; - } - std::string parentName = parentAlg->name(); - - if (m_outputPath == "") m_outputPath = "/EXPERT/" + parentName + "/"; - - - // The RegionSelector is being retrieved here - StatusCode sc = StatusCode::SUCCESS; - - sc = m_regionSelector.retrieve(); - if (sc.isFailure()) { - ATH_MSG_FATAL("Unable to retrieve RegionSelector Service"); - return sc; - } - - sc = m_tHistSvc.retrieve(); - if (sc.isFailure()) { - ATH_MSG_ERROR("Unable to retrieve pointer to THistSvc"); - return sc; - } - - std::map<DETID, bool> isIncluded; - - // Look for some groups: - if (m_detSpec.find("ID") != std::string::npos) - isIncluded[PIXEL] = isIncluded[SCT] = isIncluded[TRT] = true; - - if (m_detSpec.find("LAr") != std::string::npos) { - isIncluded[TTEM] = isIncluded[TTHEC] = true; - isIncluded[FCALEM] = isIncluded[FCALHAD] = true; - } - - if (m_detSpec.find("Muons") != std::string::npos) - isIncluded[MDT] = isIncluded[RPC] = isIncluded[TGC] = isIncluded[CSC] = true; - - if (m_detSpec.find("EM") != std::string::npos) - isIncluded[TTEM] = isIncluded[FCALEM] = true; - - if (m_detSpec.find("Had") != std::string::npos) - isIncluded[TTHEC] = isIncluded[TILE] = isIncluded[FCALHAD] = true; - - if (m_detSpec.find("All") != std::string::npos) { - for (std::map<DETID,std::string>::const_iterator name = m_detNames.begin(); - name != m_detNames.end(); name++) - isIncluded[name->first] = true; - } - - m_detectors.clear(); - - // Look for the registered detector names and fill the detector mask. - for (std::map<DETID,std::string>::const_iterator name = m_detNames.begin(); - name != m_detNames.end(); name++) { - if (m_detSpec.find(name->second) != std::string::npos) - isIncluded[name->first] = true; - if (isIncluded[name->first]) m_detectors.push_back(name->first); - } - - msg() << MSG::DEBUG << "Selected subdetectors = "; - for (std::vector<DETID>::const_iterator det = m_detectors.begin(); - det != m_detectors.end(); det++) { - msg() << MSG::DEBUG << *det << " " << endmsg; - } - msg() << endmsg; - - return sc; -} - - -StatusCode TrigROBSelector::finalize() -{ - return StatusCode::SUCCESS; -} - - -HLT::ErrorCode TrigROBSelector::fillPEBInfo(PartialEventBuildingInfo& pebInfo, - const IRoiDescriptor& roi, - std::vector<DETID>* dets, std::vector<int>* nRobs) -{ - std::vector<uint32_t> allROBs; - - for (std::vector<DETID>::const_iterator detector = m_detectors.begin(); - detector != m_detectors.end(); detector++) - { - std::vector<uint32_t> detectorROBs; - m_regionSelector->DetROBIDListUint(*detector, roi, detectorROBs); - - allROBs.insert(allROBs.end(), detectorROBs.begin(), detectorROBs.end()); - msg() << MSG::DEBUG << "ROBs requested for detector " << *detector << " : "; - - for (unsigned int i = 0; i < detectorROBs.size(); i++) msg() << MSG::DEBUG << "0x" << std::hex << detectorROBs[i] << std::dec << " "; - msg() << endmsg; - - if (dets) (*dets).push_back(*detector); - if (nRobs) (*nRobs).push_back(detectorROBs.size()); - - TH1I*& robHist = m_robHists[*detector]; - if (!robHist) { - ATH_MSG_DEBUG("Monitoring of detector " << *detector << " not implemented yet."); - continue; - } - - for (unsigned int i=0; i<detectorROBs.size(); i++) - robHist->Fill(m_robIdMap[detectorROBs[i]]); - } - - for (std::vector<uint32_t>::const_iterator rob = allROBs.begin(); rob != allROBs.end(); rob++) - pebInfo.add(*rob); - - return HLT::OK; -} - - -bool TrigROBSelector::reset() -{ - return true; -} - - -HLT::ErrorCode TrigROBSelector::setupMonitoring() -{ - ATH_MSG_INFO("in setupMonitoring() "); - - for (std::vector<DETID>::const_iterator det = m_detectors.begin(); - det != m_detectors.end(); det++) { - std::vector<uint32_t> range; - - double eta = 0.5*(m_etaMinMon+m_etaMaxMon); - double phi = CxxUtils::phiBisect(m_phiMinMon, m_phiMaxMon); - TrigRoiDescriptor roi( eta, m_etaMinMon, m_etaMaxMon, phi, m_phiMinMon, m_phiMaxMon ); - m_regionSelector->DetROBIDListUint(*det, roi, range ); - ATH_MSG_DEBUG("Range for detId = " << *det << " = " << range.size()); - m_ranges[*det] = range; - - int bin = 0; - for (std::vector<uint32_t>::const_iterator robId = range.begin(); - robId != range.end(); ++robId, ++bin) - m_robIdMap[*robId] = bin; - } - - // Now setup all the histograms - HLT::ErrorCode ec = bookMonitoringHistograms(); - if (ec != HLT::OK) return ec; - - for (std::vector<DETID>::const_iterator det = m_detectors.begin(); - det != m_detectors.end(); det++) { - - std::stringstream ss; - std::string label; - const std::vector<uint32_t>& range = m_ranges[*det]; - TH1I*& hist = m_robHists[*det]; - if (!hist) continue; - - for (unsigned int j = 0; j < range.size(); j++) { - ss << std::hex << "0x" << range[j] << std::dec; - ss >> label; - hist->GetXaxis()->SetBinLabel(j+1, label.c_str()); - } - } - - ATH_MSG_INFO("done setupMonitoring() "); - return HLT::OK; -} - - -HLT::ErrorCode TrigROBSelector::bookMonitoringHistograms() -{ - ATH_MSG_DEBUG("Going to book and register monitoring histograms"); - - for (std::vector<DETID>::const_iterator det = m_detectors.begin(); - det != m_detectors.end(); det++) { - - // temporarily disable these histograms - // since the following errors occured - // TTHEC and TTEM can't be summed (nbins 0) - // in the other histograms all bins have the same axis labels - m_robHists[*det] = 0; continue; - - - if (*det == MDT || *det == RPC || *det == TGC || *det == CSC) { m_robHists[*det] = 0; continue; } // Not implemented yet - TH1I* h = bookAndRegisterTH1I("RobId" + m_detNames[*det], m_outputPath, m_ranges[*det].size(), 0, m_ranges[*det].size()); - - if (!h) return HLT::BAD_JOB_SETUP; - m_robHists[*det] = h; - } - - ATH_MSG_DEBUG("done : book and register monitoring histograms"); - - return HLT::OK; -} - - -TH1I* TrigROBSelector::bookAndRegisterTH1I(std::string name, std::string outpath, int nBins, int minX, int maxX) -{ - // Say hello - ATH_MSG_DEBUG("Now trying to register histogram: " << name << " (TH1I)"); - TH1I* h = new TH1I(name.c_str(), name.c_str(), nBins, minX, maxX); - if (m_tHistSvc->regHist(outpath + h->GetName(), h).isFailure()) { - ATH_MSG_WARNING("Can't book " << outpath + h->GetName()); - return 0; - } - ATH_MSG_DEBUG("done : register histograms"); - return h; -} - - -StatusCode TrigROBSelector::queryInterface( const InterfaceID& riid, - void** ppvIf ) -{ - if ( riid == ITrigROBSelector::interfaceID() ) { - *ppvIf = (ITrigROBSelector*)this; - addRef(); - return StatusCode::SUCCESS; - } - - return AthAlgTool::queryInterface( riid, ppvIf ); -} diff --git a/Trigger/TrigAlgorithms/TrigDetCalib/src/TrigROBSelector.h b/Trigger/TrigAlgorithms/TrigDetCalib/src/TrigROBSelector.h deleted file mode 100644 index a884a8bc723..00000000000 --- a/Trigger/TrigAlgorithms/TrigDetCalib/src/TrigROBSelector.h +++ /dev/null @@ -1,87 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -/********************************************************************************** - * @Project: LAr Calibration - * @Package: TrigDetCalib - * @class : TrigROBSelector - * - * @brief : Tool to select a list of ROBs for a given (eta,phi) region and subdetector set - * - * @author Nicolas Berger <Nicolas.Berger@cern.ch> - CERN - * - * File and Version Information: - * $Id: TrigROBSelector.h 707504 2015-11-12 16:33:46Z fwinkl $ - **********************************************************************************/ - -#ifndef TrigEgammaHypo_TrigROBSelector_H -#define TrigEgammaHypo_TrigROBSelector_H - -#include "TrigDetCalib/ITrigROBSelector.h" - -#include <vector> -#include <string> -#include "AthenaBaseComps/AthAlgTool.h" -#include "GaudiKernel/ServiceHandle.h" -#include "GaudiKernel/ITHistSvc.h" -#include "IRegionSelector/RegSelEnums.h" -#include "IRegionSelector/IRegSelSvc.h" - -class MsgStream; -class PartialEventBuildingInfo; -class TH1I; - -namespace HLT { - class TriggerElement; -} - -/** - @class TrigROBSelector - Tool to select a list of ROBs for a given (eta,phi) region and subdetector set - @author Nicolas Berger <Nicolas.Berger@cern.ch> - */ - - -class TrigROBSelector : public AthAlgTool, public virtual ITrigROBSelector -{ - public: - - TrigROBSelector(const std::string& type, const std::string& name, - const IInterface* parent = 0); - - StatusCode initialize(); - StatusCode finalize(); - - HLT::ErrorCode fillPEBInfo(PartialEventBuildingInfo& pebInfo, - const IRoiDescriptor& roi, - std::vector<DETID>* dets = 0, std::vector<int>* nRobs = 0); - - HLT::ErrorCode setupMonitoring(); - HLT::ErrorCode bookMonitoringHistograms(); - TH1I* bookAndRegisterTH1I(std::string name, std::string outpath, int nBins, int minX, int maxX); - - bool reset(); - - StatusCode queryInterface( const InterfaceID& riid, void** ppvIf ); //!< Gaudi interface method - static const InterfaceID& interfaceID() { return ITrigROBSelector::interfaceID(); } //!< Gaudi interface method - - private: - - ServiceHandle<IRegSelSvc> m_regionSelector; - ServiceHandle<ITHistSvc> m_tHistSvc; - - double m_etaMaxMon, m_etaMinMon, m_phiMinMon, m_phiMaxMon; - - std::string m_detSpec; - std::vector<DETID> m_detectors; - - // Monitoring - std::string m_outputPath; - std::map<uint32_t, int> m_robIdMap; - std::map < DETID, std::vector<uint32_t> > m_ranges; - std::map < DETID, std::string > m_detNames; - std::map < DETID, TH1I * > m_robHists; -}; - -#endif diff --git a/Trigger/TrigAlgorithms/TrigDetCalib/src/TrigSubDetListWriter.cxx b/Trigger/TrigAlgorithms/TrigDetCalib/src/TrigSubDetListWriter.cxx deleted file mode 100755 index 2fb7df717be..00000000000 --- a/Trigger/TrigAlgorithms/TrigDetCalib/src/TrigSubDetListWriter.cxx +++ /dev/null @@ -1,707 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -#include "TrigSteeringEvent/TrigRoiDescriptor.h" -#include "TrigSteeringEvent/PartialEventBuildingInfo.h" -#include "IRegionSelector/IRegSelSvc.h" - -#include "TrigSubDetListWriter.h" -#include "GaudiKernel/IJobOptionsSvc.h" - - -//using namespace eformat; - -TrigSubDetListWriter::TrigSubDetListWriter(const std::string& name, ISvcLocator* pSvcLocator) - //: HLT::FexAlgo(name, pSvcLocator), - : HLT::AllTEAlgo(name, pSvcLocator), - m_regionSelector("RegSelSvc/RegSelSvc", "TrigSubDetListWriter"), - m_detectors(0), - m_sourceid(0), - m_addL1Calo(false), - m_useCachedResult(false), - m_nRoIs(0), - m_rejectAll(false) -{ - declareProperty("PEBInfoLabel", m_pebLabel = "dunno", "The label under which the PartialEventBuildingInfo object is stored"); - //declareProperty("Subdetectors", m_detSpec = "All"); - declareProperty("Subdetectors", m_detSpec); // <--- obsolote, use SubdetId instead - declareProperty("SubdetId", m_detId); - declareProperty("MaxRoIsPerEvent", m_maxRoIsPerEvent = -1); - declareProperty("MonitoringHistoPath", m_outputpath = "/EXPERT/"+name+"/"); -// the tile calibration needs an special ROB: - declareProperty("extraROBs", m_extrarobs); - declareProperty("addL1Calo", m_addL1Calo); - declareProperty("rejectAll", m_rejectAll); -} - - -HLT::ErrorCode TrigSubDetListWriter::hltInitialize() -{ - ServiceHandle<IJobOptionsSvc> p_jobOptionsSvc("JobOptionsSvc", name()); - if ((p_jobOptionsSvc.retrieve()).isFailure()) { - msg() << MSG::WARNING << "Could not find JobOptionsSvc to set DataFlow properties" << endmsg; - } else { - // get the list of enabled ROBs from OKS - const Property* pprob=Gaudi::Utils::getProperty( p_jobOptionsSvc->getProperties("DataFlowConfig"), "DF_Enabled_ROB_IDs"); - if (pprob != 0) { - if (m_enabledROBs.assign(*pprob)) { - //robOKSconfigFound = true; - msg() << MSG::DEBUG << " ---> Read from DataFlow configuration: " << m_enabledROBs.value().size() - << " enabled ROB IDs." << endmsg; - } else { - msg() << MSG::WARNING << "Could not set Property '" << pprob->name() << "' from DataFlow." << endmsg; - } - } - // get the list of enabled Sub Detectors from OKS - const Property* ppsd=Gaudi::Utils::getProperty( p_jobOptionsSvc->getProperties("DataFlowConfig"), "DF_Enabled_SubDet_IDs"); - if (ppsd != 0) { - if (m_enabledSubDetectors.assign(*ppsd)) { - //subDetOKSconfigFound = true; - msg() << MSG::DEBUG << " ---> Read from DataFlow configuration: " << m_enabledSubDetectors.value().size() - << " enabled Sub Detector IDs." << endmsg; - } else { - msg() << MSG::WARNING << "Could not set Property '" << ppsd->name() << "' from DataFlow." << endmsg; - } - } - } - - // The RegionSelector is being retrieved here - if( (m_regionSelector.retrieve()).isFailure() ) { - msg() << MSG::FATAL << "Unable to retrieve RegionSelector Service" << endmsg; - return HLT::TOOL_FAILURE; - } - - bool do_Pixel = false,do_SCT = false, do_TRT = false, - do_TTEM = false, do_TTHEC = false, do_Tile = false, - do_FCalEM = false,do_FCalHad = false, - do_MDT = false, do_RPC = false, do_TGC = false; - - for(std::vector<std::string>::iterator detit = m_detId.begin(); detit != m_detId.end(); ++detit){ - //if (m_detSpec.find("HLTResult") != std::string::npos) { - if (*detit=="RPC") { - m_sourceid.push_back(eformat::MUON_RPC_BARREL_A_SIDE); - m_sourceid.push_back(eformat::MUON_RPC_BARREL_C_SIDE); - } else if (*detit=="HLTResult") { - m_sourceid.push_back(eformat::TDAQ_HLT); - m_sourceid.push_back(eformat::TDAQ_CTP); - } else if (*detit=="TDAQ_HLT") { - m_sourceid.push_back(eformat::TDAQ_HLT); - } else if (*detit=="L2EFResult") { - m_sourceid.push_back(eformat::TDAQ_LVL2); - m_sourceid.push_back(eformat::TDAQ_EVENT_FILTER); - m_sourceid.push_back(eformat::TDAQ_CTP); - } else if (*detit=="TDAQ_LVL2") { - m_sourceid.push_back(eformat::TDAQ_LVL2); - } else if (*detit=="TDAQ_EVENT_FILTER") { - m_sourceid.push_back(eformat::TDAQ_EVENT_FILTER); - } else if (*detit=="TDAQ_CTP") { - m_sourceid.push_back(eformat::TDAQ_CTP); - } else if (*detit=="TDAQ_SFI") { - m_sourceid.push_back(eformat::TDAQ_SFI); - } else if (*detit=="TDAQ_SFO") { - m_sourceid.push_back(eformat::TDAQ_SFO); - } else if (*detit=="TDAQ_CALO" || *detit=="TDAQ_L1CALO") { - m_sourceid.push_back(eformat::TDAQ_CALO_PREPROC); - m_sourceid.push_back(eformat::TDAQ_CALO_CLUSTER_PROC_DAQ); - m_sourceid.push_back(eformat::TDAQ_CALO_CLUSTER_PROC_ROI); - m_sourceid.push_back(eformat::TDAQ_CALO_JET_PROC_DAQ); - m_sourceid.push_back(eformat::TDAQ_CALO_JET_PROC_ROI); - } else if (*detit=="TDAQ_MUON") { - m_sourceid.push_back(eformat::TDAQ_MUON_CTP_INTERFACE); - } else if (*detit=="TDAQ_BEAM_CRATE") { - m_sourceid.push_back(eformat::TDAQ_BEAM_CRATE); - } else if (*detit=="TDAQ_L2SV") { - m_sourceid.push_back(eformat::TDAQ_L2SV); - } else if (*detit=="InnerDetector") { - m_sourceid.push_back(eformat::PIXEL_IBL); - m_sourceid.push_back(eformat::PIXEL_BARREL); - m_sourceid.push_back(eformat::PIXEL_DISK); - m_sourceid.push_back(eformat::PIXEL_B_LAYER); - m_sourceid.push_back(eformat::SCT_BARREL_A_SIDE); - m_sourceid.push_back(eformat::SCT_BARREL_C_SIDE); - m_sourceid.push_back(eformat::SCT_ENDCAP_A_SIDE); - m_sourceid.push_back(eformat::SCT_ENDCAP_C_SIDE); - m_sourceid.push_back(eformat::TRT_ANCILLARY_CRATE); - m_sourceid.push_back(eformat::TRT_BARREL_A_SIDE); - m_sourceid.push_back(eformat::TRT_BARREL_C_SIDE); - m_sourceid.push_back(eformat::TRT_ENDCAP_A_SIDE); - m_sourceid.push_back(eformat::TRT_ENDCAP_C_SIDE); - } else if (*detit=="SiOnly") { - m_sourceid.push_back(eformat::PIXEL_IBL); - m_sourceid.push_back(eformat::PIXEL_BARREL); - m_sourceid.push_back(eformat::PIXEL_DISK); - m_sourceid.push_back(eformat::PIXEL_B_LAYER); - m_sourceid.push_back(eformat::SCT_BARREL_A_SIDE); - m_sourceid.push_back(eformat::SCT_BARREL_C_SIDE); - m_sourceid.push_back(eformat::SCT_ENDCAP_A_SIDE); - m_sourceid.push_back(eformat::SCT_ENDCAP_C_SIDE); - } else if (*detit=="DBM") { - m_sourceid.push_back(eformat::PIXEL_DBM); - } else if (*detit=="IBL") { - m_sourceid.push_back(eformat::PIXEL_IBL); - } else if (*detit=="Pixel") { - m_sourceid.push_back(eformat::PIXEL_IBL); - m_sourceid.push_back(eformat::PIXEL_BARREL); - m_sourceid.push_back(eformat::PIXEL_DISK); - m_sourceid.push_back(eformat::PIXEL_B_LAYER); - } else if (*detit=="Muons") { - m_sourceid.push_back(eformat::MUON_ANCILLARY_CRATE); - m_sourceid.push_back(eformat::MUON_MDT_BARREL_A_SIDE); - m_sourceid.push_back(eformat::MUON_MDT_BARREL_C_SIDE); - m_sourceid.push_back(eformat::MUON_MDT_ENDCAP_A_SIDE); - m_sourceid.push_back(eformat::MUON_MDT_ENDCAP_C_SIDE); - m_sourceid.push_back(eformat::MUON_RPC_BARREL_A_SIDE); - m_sourceid.push_back(eformat::MUON_RPC_BARREL_C_SIDE); - m_sourceid.push_back(eformat::MUON_TGC_ENDCAP_A_SIDE); - m_sourceid.push_back(eformat::MUON_TGC_ENDCAP_C_SIDE); - m_sourceid.push_back(eformat::MUON_CSC_ENDCAP_A_SIDE); - m_sourceid.push_back(eformat::MUON_CSC_ENDCAP_C_SIDE); - m_sourceid.push_back(eformat::TDAQ_MUON_CTP_INTERFACE); - } else if (*detit=="CSC") { - m_sourceid.push_back(eformat::MUON_CSC_ENDCAP_A_SIDE); - m_sourceid.push_back(eformat::MUON_CSC_ENDCAP_C_SIDE); - } else if (*detit=="Tile") { - m_sourceid.push_back(eformat::TILECAL_LASER_CRATE); - m_sourceid.push_back(eformat::TILECAL_BARREL_A_SIDE); - m_sourceid.push_back(eformat::TILECAL_BARREL_C_SIDE); - m_sourceid.push_back(eformat::TILECAL_EXT_A_SIDE); - m_sourceid.push_back(eformat::TILECAL_EXT_C_SIDE); - } else if (*detit=="LAr") { - m_sourceid.push_back(eformat::LAR_EM_BARREL_A_SIDE); - m_sourceid.push_back(eformat::LAR_EM_BARREL_C_SIDE); - m_sourceid.push_back(eformat::LAR_EM_ENDCAP_A_SIDE); - m_sourceid.push_back(eformat::LAR_EM_ENDCAP_C_SIDE); - m_sourceid.push_back(eformat::LAR_FCAL_A_SIDE); - m_sourceid.push_back(eformat::LAR_FCAL_C_SIDE); - m_sourceid.push_back(eformat::LAR_HAD_ENDCAP_A_SIDE); - m_sourceid.push_back(eformat::LAR_HAD_ENDCAP_C_SIDE); - } else if (*detit=="FCal") { - m_sourceid.push_back(eformat::LAR_FCAL_A_SIDE); - m_sourceid.push_back(eformat::LAR_FCAL_C_SIDE); - } else if (*detit=="FORWARD_BCM") { - m_sourceid.push_back(eformat::FORWARD_BCM); - } else if (*detit=="FORWARD_LUCID") { - m_sourceid.push_back(eformat::FORWARD_LUCID); - } else if (*detit=="FORWARD_ZDC") { - m_sourceid.push_back(eformat::FORWARD_ZDC); - } else if (*detit=="FORWARD_ALPHA") { - m_sourceid.push_back(eformat::FORWARD_ALPHA); - } else if (*detit=="FORWARD_AFP") { - m_sourceid.push_back(eformat::FORWARD_AFP); - } else { - ATH_MSG_ERROR("Unknown detector ID for partial event building:" << *detit << ". Please update TrigSubSetListWriter."); - } - - } - - if (m_detSpec.find("ID") != std::string::npos) { - do_Pixel = true; - do_SCT = true; - do_TRT = true; - } - - if (m_detSpec.find("SiOnly") != std::string::npos) { - do_Pixel = true; - do_SCT = true; - } - - if (m_detSpec.find("LAr") != std::string::npos) { - do_TTEM = true; - do_TTHEC = true; - do_FCalEM = true; - do_FCalHad = true; - } - - if (m_detSpec.find("Muons") != std::string::npos) { - do_MDT = true; - do_RPC = true; - do_TGC = true; - } - - if (m_detSpec.find("EM") != std::string::npos) { - do_TTEM = true; - do_FCalEM = true; - } - - if (m_detSpec.find("Had") != std::string::npos) { - do_TTHEC = true; - do_Tile = true; - do_FCalHad = true; - } - - if (m_detSpec.find("Tile") != std::string::npos) { - do_Tile = true; - } - - if (m_detSpec.find("All") != std::string::npos) { - do_Pixel = true; - do_SCT = true; - do_TRT = true; - do_TTEM = true; - do_TTHEC = true; - do_FCalEM = true; - do_FCalHad = true; - do_Tile = true; - do_MDT = true; - do_RPC = true; - do_TGC = true; - } - - m_detectors.clear(); - if (m_detSpec.find("Pixel") != std::string::npos) do_Pixel = true; - if (m_detSpec.find("SCT") != std::string::npos) do_SCT = true; - if (m_detSpec.find("TRT") != std::string::npos) do_TRT = true; - if (m_detSpec.find("TTEM") != std::string::npos) do_TTEM = true; - if (m_detSpec.find("TTHEC") != std::string::npos) do_TTHEC = true; - if (m_detSpec.find("Tile") != std::string::npos) do_Tile = true; - if (m_detSpec.find("FCalEM") != std::string::npos) do_FCalEM = true; - if (m_detSpec.find("FCalHad") != std::string::npos) do_FCalHad = true; - if (m_detSpec.find("MDT") != std::string::npos) do_MDT = true; - if (m_detSpec.find("RPC") != std::string::npos) do_RPC = true; - if (m_detSpec.find("TGC") != std::string::npos) do_TGC = true; - - if (do_Pixel) m_detectors.push_back(PIXEL); - if (do_SCT) m_detectors.push_back(SCT); - if (do_TRT) m_detectors.push_back(TRT); - if (do_TTEM) m_detectors.push_back(TTEM); - if (do_TTHEC) m_detectors.push_back(TTHEC); - if (do_Tile) m_detectors.push_back(TILE); - if (do_FCalEM) m_detectors.push_back(FCALEM); - if (do_FCalHad) m_detectors.push_back(FCALHAD); - if (do_MDT) m_detectors.push_back(MDT); - if (do_RPC) m_detectors.push_back(RPC); - if (do_TGC) m_detectors.push_back(TGC); - - msg() << MSG::INFO << "Selected "<< m_detectors.size() << " subdetectors = "; - for (std::vector<DETID>::const_iterator det = m_detectors.begin(); - det != m_detectors.end(); det++) msg() << *det << " "; - msg() << endmsg; - - if ( service("THistSvc", m_thistSvc).isFailure() ) { - msg() << MSG::ERROR << "Unable to retrieve pointer to THistSvc" << endmsg; - return HLT::BAD_JOB_SETUP; - } - - return HLT::OK; -} - -HLT::ErrorCode TrigSubDetListWriter::hltStart() -{ - TrigRoiDescriptor roi(true); /// create a fullscan RoI - - m_ttemrange.clear(); - m_tthecrange.clear(); - m_fcalrange.clear(); - m_fcalemrange.clear(); - m_tilerange.clear(); - m_pixrange.clear(); - m_sctrange.clear(); - m_trtrange.clear(); - m_regionSelector->DetROBIDListUint(TTEM, roi, m_ttemrange); - m_regionSelector->DetROBIDListUint(TTHEC, roi, m_tthecrange); - m_regionSelector->DetROBIDListUint(FCALHAD, roi, m_fcalrange); - m_regionSelector->DetROBIDListUint(FCALEM, roi, m_fcalemrange); - m_fcalrange.insert(m_fcalrange.end(),m_fcalemrange.begin(),m_fcalemrange.end()); - // Tile uses a different phi convention - m_regionSelector->DetROBIDListUint(TILE, roi, m_tilerange); - m_regionSelector->DetROBIDListUint(PIXEL, roi, m_pixrange); - m_regionSelector->DetROBIDListUint(SCT, roi, m_sctrange); - m_regionSelector->DetROBIDListUint(TRT, roi, m_trtrange); - - for(std::vector<uint32_t>::iterator it = m_fcalrange.begin(); - it != m_fcalrange.end(); it++) { - if (!isRobEnabled( *it ) ) it = m_fcalrange.erase(it)-1; - } - - for(std::vector<uint32_t>::iterator it = m_ttemrange.begin(); - it != m_ttemrange.end(); it++) { - if (!isRobEnabled( *it ) ) it = m_ttemrange.erase(it)-1; - } - - for(std::vector<uint32_t>::iterator it = m_tthecrange.begin(); - it != m_tthecrange.end(); it++) { - if (!isRobEnabled( *it ) ) it = m_tthecrange.erase(it)-1; - } - - for(std::vector<uint32_t>::iterator it = m_tilerange.begin(); - it != m_tilerange.end(); it++) { - if (!isRobEnabled( *it ) ) it = m_tilerange.erase(it)-1; - } - - for(std::vector<uint32_t>::iterator it = m_sctrange.begin(); - it != m_sctrange.end(); it++) { - if (!isRobEnabled( *it ) ) it = m_sctrange.erase(it)-1; - } - - for(std::vector<uint32_t>::iterator it = m_trtrange.begin(); - it != m_trtrange.end(); it++) { - if (!isRobEnabled( *it ) ) it = m_trtrange.erase(it)-1; - } - - for(std::vector<uint32_t>::iterator it = m_pixrange.begin(); - it != m_pixrange.end(); it++) { - if (!isRobEnabled( *it ) ) it = m_pixrange.erase(it)-1; - } - -// Prepare for Histograms - int bin=0; - for(std::vector<uint32_t>::const_iterator it=m_ttemrange.begin();it!=m_ttemrange.end();++it){ - m_robidmap[*it] = bin; - bin++; - } - bin=0; - for(std::vector<uint32_t>::const_iterator it=m_tthecrange.begin();it!=m_tthecrange.end();++it){ - m_robidmap[*it] = bin; - bin++; - } - bin=0; - for(std::vector<uint32_t>::const_iterator it=m_fcalrange.begin();it!=m_fcalrange.end();++it){ - m_robidmap[*it] = bin; - bin++; - } - bin=0; - for(std::vector<uint32_t>::const_iterator it=m_tilerange.begin();it!=m_tilerange.end();++it){ - m_robidmap[*it] = bin; - bin++; - } - bin=0; - for(std::vector<uint32_t>::const_iterator it=m_sctrange.begin();it!=m_sctrange.end();++it){ - m_robidmap[*it] = bin; - bin++; - } - bin=0; - for(std::vector<uint32_t>::const_iterator it=m_trtrange.begin();it!=m_trtrange.end();++it){ - m_robidmap[*it] = bin; - bin++; - } - bin=0; - for(std::vector<uint32_t>::const_iterator it=m_pixrange.begin();it!=m_pixrange.end();++it){ - m_robidmap[*it] = bin; - bin++; - } - - /// Now setup all the histograms! - if ( this->bookMonitoringHistograms().isFailure() ) { - msg() << MSG::WARNING << "Histogram booking error. Issuing HLT::BAD_JOB_SETUP" << endmsg; - return HLT::BAD_JOB_SETUP; - } - -/* std::stringstream ss; - std::string label; - for(unsigned int j=0; j<m_ttemrange.size(); j++){ - ss.clear(); - ss << std::hex << "0x" << m_ttemrange[j] << std::dec; - ss >> label; - m_httemrob->GetXaxis()->SetBinLabel(j+1,label.c_str()); - } - - for(unsigned int j=0; j<m_tthecrange.size(); j++){ - ss.clear(); - ss << std::hex << "0x" << m_tthecrange[j] << std::dec; - ss >> label; - m_htthecrob->GetXaxis()->SetBinLabel(j+1,label.c_str()); - } - - for(unsigned int j=0; j<m_fcalrange.size(); j++){ - ss.clear(); - ss << std::hex << "0x" << m_fcalrange[j] << std::dec; - ss >> label; - m_hfcalrob->GetXaxis()->SetBinLabel(j+1,label.c_str()); - } - - for(unsigned int j=0; j<m_tilerange.size(); j++){ - ss.clear(); - ss << std::hex << "0x" << m_tilerange[j] << std::dec; - ss >> label; - m_htilerob->GetXaxis()->SetBinLabel(j+1,label.c_str()); - } - - for(unsigned int j=0; j<m_trtrange.size(); j++){ - ss.clear(); - ss << std::hex << "0x" << m_trtrange[j] << std::dec; - ss >> label; - m_htrtrob->GetXaxis()->SetBinLabel(j+1,label.c_str()); - } - - for(unsigned int j=0; j<m_sctrange.size(); j++){ - ss.clear(); - ss << std::hex << "0x" << m_sctrange[j] << std::dec; - ss >> label; - m_hsctrob->GetXaxis()->SetBinLabel(j+1,label.c_str()); - } - - for(unsigned int j=0; j<m_pixrange.size(); j++){ - ss.clear(); - ss << std::hex << "0x" << m_pixrange[j] << std::dec; - ss >> label; - m_hpixrob->GetXaxis()->SetBinLabel(j+1,label.c_str()); - } - - for(unsigned int j=0; j<m_ttemrange.size(); j++){ - ss.clear(); - ss << std::hex << "0x" << m_ttemrange[j] << std::dec; - ss >> label; - m_httemrob->GetXaxis()->SetBinLabel(j+1,label.c_str()); - }*/ - - return HLT::OK; - -} - -StatusCode TrigSubDetListWriter::bookMonitoringHistograms() -{ - /// Say hello - if (msgLvl()<=MSG::DEBUG) msg() << MSG::DEBUG << "Now trying to register standard monitoring histograms" << endmsg; - /*m_httemrob = bookAndRegisterTH1I("RobIdTTEM", m_outputpath,m_ttemrange.size() ,0,m_ttemrange.size() ); - m_htthecrob = bookAndRegisterTH1I("RobIdTTHEC", m_outputpath,m_tthecrange.size() ,0,m_tthecrange.size() ); - m_hfcalrob = bookAndRegisterTH1I("RobIdFcal", m_outputpath,m_fcalrange.size() ,0,m_fcalrange.size() ); - m_htilerob = bookAndRegisterTH1I("RobIdTile", m_outputpath,m_tilerange.size() ,0,m_tilerange.size() ); - m_htrtrob = bookAndRegisterTH1I("RobIdTRT", m_outputpath,m_trtrange.size() ,0,m_trtrange.size() ); - m_hsctrob = bookAndRegisterTH1I("RobIdSCT", m_outputpath,m_sctrange.size() ,0,m_sctrange.size() ); - m_hpixrob = bookAndRegisterTH1I("RobIdPixel", m_outputpath,m_pixrange.size() ,0,m_pixrange.size() );*/ - - return StatusCode::SUCCESS; -} - - -HLT::ErrorCode TrigSubDetListWriter::hltFinalize() -{ - return HLT::OK; -} - - -HLT::ErrorCode TrigSubDetListWriter::hltExecute(std::vector<std::vector<HLT::TriggerElement*> >& /*te_in*/, - unsigned int te_out) -{ - - if (m_useCachedResult) { - if (msgLvl() <= MSG::DEBUG) { - msg() << MSG::DEBUG << "Executing this Partial event " << name() << " in cached mode" << endmsg; - } - } - - m_nRoIs++; - - -/* HLT::TEVec allTEs; - for (std::vector<HLT::TEVec>::const_iterator it = te_in.begin(); - it != te_in.end(); ++it) { - - for (HLT::TEVec::const_iterator inner_it = (*it).begin(); - inner_it != (*it).end(); ++inner_it) { - - allTEs.push_back(*inner_it); -// msg() << MSG::DEBUG << "Executing this TrigSubDetListWriter " << name() << " for types " -// << inner_it->getId(); - } - }*/ - - - if (msgLvl(MSG::DEBUG)) { - msg() << MSG::DEBUG << "Executing this TrigSubDetListWriter " << name() << endmsg; - if (m_maxRoIsPerEvent > -1) msg() << " RoI " << m_nRoIs << "/" << m_maxRoIsPerEvent; - msg() << endmsg; - } - - if (m_maxRoIsPerEvent > -1 && m_nRoIs > m_maxRoIsPerEvent) { - ATH_MSG_DEBUG("RoI limit (" << m_maxRoIsPerEvent - << ") reached for this event : will not process this RoI"); - return HLT::OK; - } - - -// Get RoI descriptor - TrigRoiDescriptor* roIDescriptor = 0; - - HLT::ErrorCode status = HLT::BAD_ALGO_CONFIG; - - // from dummyAlgoForCalibration - // create new partial EB directive - PartialEventBuildingInfo* pebInfo = config()->getPEBI(); - if(!pebInfo){ - msg() << MSG::DEBUG << "*** Not Executing this TrigSubDetListWriter " << name() << ", not a calib chain" << endmsg; - return HLT::OK; - } - /*PartialEventBuildingInfo* pebInfo = 0; - if (store()->transientContains<PartialEventBuildingInfo>(m_pebLabel)) - store()->retrieve(pebInfo, m_pebLabel).ignore(); - else { - pebInfo = new PartialEventBuildingInfo(); - store()->record(pebInfo, m_pebLabel, true).ignore(); - }*/ - - // now add ROBs - status = fillPEBInfo(*pebInfo); - if(status!=HLT::OK){ - msg() << MSG::DEBUG << "No ROB info for partial event building" << endmsg; - return status; - } - HLT::TriggerElement* te = addRoI(te_out,roIDescriptor); - if(m_rejectAll) // Flag used for commissioning - te->setActiveState(false); - else - te->setActiveState(true); - return status; - -} - - -HLT::ErrorCode TrigSubDetListWriter::fillPEBInfo(PartialEventBuildingInfo& pebInfo) -{ - - std::vector<uint32_t> detectorROBs; - //std::vector<uint32_t> allROBs, detectorROBs; - -// double etaMin = -5.; -// double etaMax = 5.; -// double phiMax = M_PI; -// double phiMin = -M_PI; - //double phiMin = -2*M_PI; - int size = 0; - - // reserve space of ROB vector, limits to be determined - //allROBs.reserve(120); - // ROB ID 0x520020, need special ROB for tile calibration - //allROBs.insert(allROBs.end(),m_extrarobs.begin(),m_extrarobs.end()); - - // including L1 Calo ROBs - if(m_addL1Calo) - this->fillL1CaloRobs(m_extrarobs); - - pebInfo.addROBs(m_extrarobs); - - size += m_extrarobs.size(); - size += m_sourceid.size(); - - if(m_sourceid.size()!=0) - pebInfo.addSubDetector(m_sourceid); - - for (std::vector<DETID>::const_iterator detector = m_detectors.begin(); - detector != m_detectors.end(); detector++) - { - detectorROBs.clear(); - // if((*detector)==TILE){ - // phiMax = 2*M_PI; - // phiMin = 0.; - // }else{ - // phiMax = M_PI; - // phiMin = -M_PI; - // } - //m_regionSelector->DetROBIDListUint(*detector, etaMin, etaMax, phiMin, phiMax, detectorROBs); - //m_regionSelector->DetROBIDListUint(*detector, detectorROBs); - //allROBs.insert(allROBs.end(), detectorROBs.begin(), detectorROBs.end()); - //msg() << MSG::DEBUG << "ROBs for detector " << *detector << " : "; - //for (unsigned int i = 0; i < detectorROBs.size(); i++) msg() << "0x" << std::hex << detectorROBs[i] << std::dec << " "; - //msg() << endmsg; - switch (*detector) { - case PIXEL: - //for(unsigned int i=0; i<detectorROBs.size(); i++) m_hpixrob->Fill(m_robidmap[detectorROBs[i]]); - size += m_pixrange.size(); - pebInfo.addROBs(m_pixrange); - break; - case SCT: - //for(unsigned int i=0; i<detectorROBs.size(); i++) m_hsctrob->Fill(m_robidmap[detectorROBs[i]]); - size += m_sctrange.size(); - pebInfo.addROBs(m_sctrange); - break; - case TRT: - //for(unsigned int i=0; i<detectorROBs.size(); i++) m_htrtrob->Fill(m_robidmap[detectorROBs[i]]); - size += m_trtrange.size(); - pebInfo.addROBs(m_trtrange); - break; - case LAR: - case TTEM: - //for(unsigned int i=0; i<detectorROBs.size(); i++) m_httemrob->Fill(m_robidmap[detectorROBs[i]]); - size += m_ttemrange.size(); - pebInfo.addROBs(m_ttemrange); - break; - case TTHEC: - //for(unsigned int i=0; i<detectorROBs.size(); i++) m_htthecrob->Fill(m_robidmap[detectorROBs[i]]); - size += m_tthecrange.size(); - pebInfo.addROBs(m_tthecrange); - break; - case TILE: - //for(unsigned int i=0; i<detectorROBs.size(); i++) m_htilerob->Fill(m_robidmap[detectorROBs[i]]); - size += m_tilerange.size(); - pebInfo.addROBs(m_tilerange); - break; - case FCALEM: - case FCALHAD: - //for(unsigned int i=0; i<detectorROBs.size(); i++) m_hfcalrob->Fill(m_robidmap[detectorROBs[i]]); - size += m_fcalrange.size(); - pebInfo.addROBs(m_fcalrange); - break; - case MDT: - case RPC: - case TGC: - case CSC: - ATH_MSG_DEBUG("Muon detectors not yet implemented"); - break; - default: - msg() << MSG::WARNING << "unknown detector type requested " << endmsg; - } - - } - - //for (std::vector<uint32_t>::const_iterator rob = allROBs.begin(); rob != allROBs.end(); rob++) - // pebInfo.add(*rob); - -/* std::cout << "in partial eb after " << std::endl; - std::vector<uint32_t> rob2; - pebInfo.get(rob2); - for(int j=0;j<rob2.size();j++){ - std::cout << "passing this rob = " << (rob2)[j] << std::endl; - }*/ - - m_useCachedResult = true; - - if(size==0) return HLT::MISSING_FEATURE; - - return HLT::OK; -} - - -HLT::ErrorCode TrigSubDetListWriter::hltEndEvent() -{ - m_nRoIs = 0; - m_useCachedResult=false; - return HLT::OK; -} - -TH1I* TrigSubDetListWriter::bookAndRegisterTH1I(const char* name, std::string outpath, int nBins, int minX, int maxX) -{ - TH1I* h = new TH1I(name,name,nBins,minX,maxX); - if (m_thistSvc->regHist(outpath + h->GetName(), h).isFailure()) msg() << MSG::WARNING << "Can't book " << outpath + h->GetName() << endmsg; - - return h; -} - -void TrigSubDetListWriter::fillL1CaloRobs(std::vector<uint32_t>& roblist) -{ - - uint32_t l1caloarray [] = { - 0x710000, 0x710001, 0x710002, 0x710003, 0x710004, 0x710005, 0x710006, 0x710007, 0x710010, 0x710011, 0x710012, 0x710013, 0x710014, 0x710015, 0x710016, 0x710017, 0x710020, 0x710021, 0x710022, 0x710023, 0x710024, 0x710025, 0x710026, 0x710027, 0x710030, 0x710031, 0x710032, 0x710033, 0x710034, 0x710035, 0x710036, 0x710037, 0x720008, 0x720009, 0x72000a, 0x72000b, 0x720028, 0x720029, 0x72002a, 0x72002b, 0x730088, 0x730089, 0x73008a, 0x73008b, 0x74000c, 0x74000d, 0x74001c, 0x74001d, 0x74002c, 0x74002d, 0x74003c, 0x74003d, 0x75008c, 0x75008d }; - roblist.insert(roblist.end(),l1caloarray,l1caloarray+sizeof(l1caloarray)/sizeof(uint32_t)); -} - -//========================================================================= -// check that a ROB ID is enabled for readout in OKS ---> for "online" running -//========================================================================= -bool TrigSubDetListWriter::isRobEnabled(const uint32_t robid) { - bool b_enabled = true; - - // check if given ROB is actually enabled for readout - if (m_enabledROBs.value().size() != 0) { - std::vector<uint32_t>::const_iterator rob_enabled_it = - std::find(m_enabledROBs.value().begin(), m_enabledROBs.value().end(), robid); - if(rob_enabled_it == m_enabledROBs.value().end()) { - ATH_MSG_DEBUG("---> ROB Id : 0x" << MSG::hex << robid << MSG::dec - << " will not be retrieved, since it is not on the list of enabled ROBs."); - b_enabled = false; - } - } - - return b_enabled; -} - diff --git a/Trigger/TrigAlgorithms/TrigDetCalib/src/TrigSubDetListWriter.h b/Trigger/TrigAlgorithms/TrigDetCalib/src/TrigSubDetListWriter.h deleted file mode 100755 index 84308850a98..00000000000 --- a/Trigger/TrigAlgorithms/TrigDetCalib/src/TrigSubDetListWriter.h +++ /dev/null @@ -1,131 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -/********************************************************************************** - * @Project: LAr Calibration - * @Package: TrigEgammaHypo - * @class : TrigSubDetListWriter - * - * @brief : Algorithm to write out a list of LAr ROBs for its input RoI - * - * @author Nicolas Berger <Nicolas.Berger@cern.ch> - CERN - * - * Ignacio Aracena: - * July 22 2008: taken from TrigROBListWriter and modified to read out the whole detector - * - * File and Version Information: - * $Id: TrigSubDetListWriter.h 707504 2015-11-12 16:33:46Z fwinkl $ - **********************************************************************************/ - -#ifndef TrigEgammaHypo_TrigSubDetListWriter_H -#define TrigEgammaHypo_TrigSubDetListWriter_H - -#include "GaudiKernel/ServiceHandle.h" -#include <vector> -#include <string> - -#include "TrigInterfaces/AllTEAlgo.h" -#include "IRegionSelector/RegSelEnums.h" -#include "GaudiKernel/ITHistSvc.h" - -#include "eformat/SourceIdentifier.h" - -#include "TH1I.h" - -class IRegSelSvc; -class PartialEventBuildingInfo; -//class TH1I; - -namespace HLT { - class TriggerElement; -} - -/** - @class TrigSubDetListWriter - Algorithm to write out a list of LAr ROBs for its input RoI - @author Nicolas Berger <Nicolas.Berger@cern.ch> -*/ -class TrigSubDetListWriter : public HLT::AllTEAlgo -{ - public: - - TrigSubDetListWriter(const std::string& name, ISvcLocator* pSvcLocator); //!< std Gaudi algorthm constructor - - HLT::ErrorCode hltInitialize(); - HLT::ErrorCode hltFinalize(); - - /** @brief take one input TriggerElement and process it - It tries to retrieve any attached TrigRoIDescriptor features and prints them. - @param input TriggerElement to be processed - @param output TriggerElement coming out of the algorithm - */ - HLT::ErrorCode hltExecute(std::vector<std::vector<HLT::TriggerElement*> >& te_in, - unsigned int output); - - HLT::ErrorCode fillPEBInfo(PartialEventBuildingInfo& pebInfo); - - HLT::ErrorCode hltStart(); - - TH1I* bookAndRegisterTH1I(const char* name, std::string outpath, int nBins, int minX, int maxX); - - StatusCode bookMonitoringHistograms(); - - HLT::ErrorCode hltEndEvent(); - - void fillL1CaloRobs(std::vector<uint32_t>& roblist); - - private: - - ServiceHandle<IRegSelSvc> m_regionSelector; - std::string m_pebLabel; - - std::string m_detSpec; - std::vector<std::string> m_detId; - std::vector<DETID> m_detectors; - std::vector<eformat::SubDetector> m_sourceid; - std::vector<uint32_t> m_extrarobs; - bool m_addL1Calo; - - bool m_useCachedResult; //!< internal caching: true when the hltExecute will run in cached mode - int m_maxRoIsPerEvent, m_nRoIs; - - std::map<uint32_t,int> m_robidmap; - - /* Histogram service */ - std::vector<uint32_t> m_pixrange; - std::vector<uint32_t> m_sctrange; - std::vector<uint32_t> m_trtrange; - std::vector<uint32_t> m_ttemrange; - std::vector<uint32_t> m_tthecrange; - std::vector<uint32_t> m_tilerange; - std::vector<uint32_t> m_mdtrange; - std::vector<uint32_t> m_rpcrange; - std::vector<uint32_t> m_tgcrange; - std::vector<uint32_t> m_cscrange; - std::vector<uint32_t> m_fcalrange; - std::vector<uint32_t> m_fcalemrange; - - /* Histogram service */ - ITHistSvc * m_thistSvc; - - std::string m_outputpath; - - bool m_rejectAll; - /** detector mask */ - typedef SimpleProperty< std::vector<uint32_t> > Uint32ArrayProperty; - /** @brief list of all enabled ROBs which can be retrieved */ - Uint32ArrayProperty m_enabledROBs; - - /** @brief list of all enabled Sub Detectors which can be retrieved */ - Uint32ArrayProperty m_enabledSubDetectors; - - /// check if a ROB is enabled for readout in OKS - bool isRobEnabled(const uint32_t robid); -// std::string m_outputpath; - -// std::string m_outputpath; - -}; - -#endif diff --git a/Trigger/TrigAlgorithms/TrigDetCalib/src/components/TrigDetCalib_entries.cxx b/Trigger/TrigAlgorithms/TrigDetCalib/src/components/TrigDetCalib_entries.cxx deleted file mode 100644 index 340d8d0e6d8..00000000000 --- a/Trigger/TrigAlgorithms/TrigDetCalib/src/components/TrigDetCalib_entries.cxx +++ /dev/null @@ -1,17 +0,0 @@ -#include "../TrigROBSelector.h" -#include "../TrigROBListWriter.h" -#include "../TrigSubDetListWriter.h" -#include "../TrigEtaHypo.h" -#include "../TrigCheckForTracks.h" -#include "../TrigCheckForMuons.h" -#include "../ScoutingStreamWriter.h" -#include "../TrigL1CaloOverflow.h" - -DECLARE_COMPONENT( TrigROBSelector ) -DECLARE_COMPONENT( TrigROBListWriter ) -DECLARE_COMPONENT( TrigSubDetListWriter ) -DECLARE_COMPONENT( TrigEtaHypo ) -DECLARE_COMPONENT( TrigCheckForTracks ) -DECLARE_COMPONENT( TrigCheckForMuons ) -DECLARE_COMPONENT( ScoutingStreamWriter ) -DECLARE_COMPONENT( TrigL1CaloOverflow ) diff --git a/Trigger/TriggerCommon/TriggerMenu/python/menu/Physics_pp_v7_primaries.py b/Trigger/TriggerCommon/TriggerMenu/python/menu/Physics_pp_v7_primaries.py index 8b80a101062..aae5f473bd2 100644 --- a/Trigger/TriggerCommon/TriggerMenu/python/menu/Physics_pp_v7_primaries.py +++ b/Trigger/TriggerCommon/TriggerMenu/python/menu/Physics_pp_v7_primaries.py @@ -480,7 +480,7 @@ def setupMenu(): #Beamspot chanis first try ATR-9847 TriggerFlags.BeamspotSlice.signatures = [ - ['beamspot_allTE_trkfast_peb_L13J15', 'L1_3J15', [], ["BeamSpot"], ['RATE:BeamSpot', 'BW:BeamSpot'], -1], + ['beamspot_allTE_trkfast_L13J15', 'L1_3J15', [], ["BeamSpot"], ['RATE:BeamSpot', 'BW:BeamSpot'], -1], ] -- GitLab