From f585dc63c7d94ef2bb128bd9e9a16925671cf88c Mon Sep 17 00:00:00 2001 From: Will Leight <wleight@cern.ch> Date: Wed, 21 Mar 2018 10:52:51 +0100 Subject: [PATCH] Migrate RpcRawDataMonitoring to use ReadHandles for data access Mostly this just changes direct retrievals from the store to access via ReadHandles instead. The main additional change is that RpcRawDataMonitoring now has an m_isMC flag so that it can determine whether or not to try to retrieve the sector logic container in initialize(). The configuration has been updated to ensure that the flag is set correctly. Also, I removed the readOfflineMuonContainer method of RpcLv1RawDataEfficiency: since this was attempting to retrieve the Run-1 muon container, it was clearly unused. Mentioning ATLASRECTS-4390 for bookkeeping purposes. --- .../RPCStandaloneTracksMon.h | 23 +- .../RpcLv1RawDataEfficiency.h | 11 +- .../RpcLv1RawDataSectorLogic.h | 8 +- .../RpcLv1RawDataValAlg.h | 12 +- .../RpcRawDataMonitoring/RpcRawDataValAlg.h | 19 +- .../share/RpcRawESD_MonitoringOptions.py | 4 +- .../src/RPCStandaloneTracksMon.cxx | 216 ++++++------------ .../src/RpcLv1RawDataEfficiency.cxx | 185 +++------------ .../src/RpcLv1RawDataSectorLogic.cxx | 65 +++--- .../src/RpcLv1RawDataValAlg.cxx | 34 +-- .../src/RpcRawDataValAlg.cxx | 71 +----- 11 files changed, 197 insertions(+), 451 deletions(-) diff --git a/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/RpcRawDataMonitoring/RpcRawDataMonitoring/RPCStandaloneTracksMon.h b/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/RpcRawDataMonitoring/RpcRawDataMonitoring/RPCStandaloneTracksMon.h index 9406cb1bfa2..50977d306ed 100755 --- a/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/RpcRawDataMonitoring/RpcRawDataMonitoring/RPCStandaloneTracksMon.h +++ b/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/RpcRawDataMonitoring/RpcRawDataMonitoring/RPCStandaloneTracksMon.h @@ -31,7 +31,7 @@ #include "MuonReadoutGeometry/RpcReadoutElement.h" #include "RPCcablingInterface/IRPCcablingServerSvc.h" - +#include "MuonPrepRawData/MuonPrepDataContainer.h" #include "xAODTracking/TrackParticle.h" #include "xAODMuon/MuonContainer.h" @@ -41,8 +41,12 @@ #include "xAODEventInfo/EventInfo.h" #include "TrigT1Interfaces/RecMuonRoiSvc.h" - +#include "TrigT1Result/MuCTPI_RDO.h" #include "TrigDecisionTool/TrigDecisionTool.h" +#include "MuonRDO/RpcSectorLogicContainer.h" +#include "MuonTrigCoinData/RpcCoinDataContainer.h" + +#include "StoreGate/ReadHandleKey.h" #include <TError.h> #include <TH1F.h> @@ -89,7 +93,6 @@ class RPCStandaloneTracksMon: public ManagedMonitorToolBase { ActiveStoreSvc* m_activeStore; - std::string m_muonsName; std::string m_muonSegmentsName; std::string m_muonTracksName; std::string m_msVertexCollection; @@ -149,16 +152,18 @@ class RPCStandaloneTracksMon: public ManagedMonitorToolBase { const IRPCcablingSvc* m_cabling; - - const RpcSectorLogicContainer* m_sectorLogicContainer; - //Declare Properties + SG::ReadHandleKey<Muon::RpcPrepDataContainer> m_key_rpc{this,"RpcPrepDataContainer","RPC_Measurements","RPC PRDs"}; + SG::ReadHandleKey<xAOD::EventInfo> m_eventInfo{this,"EventInfo","EventInfo","event info"}; + SG::ReadHandleKey<Muon::RpcPrepDataContainer> m_clusterContainerName{this,"ClusterContainer","rpcClusters","RPC clusters"}; + SG::ReadHandleKey<MuCTPI_RDO> m_muCTPI_RDO_key{this,"muCTPI_RDO_key","MUCTPI_RDO","muCTPI RDO"}; + SG::ReadHandleKey<RpcSectorLogicContainer> m_sectorLogicContainerKey{this,"RPCSec","RPC_SECTORLOGIC","RPC sector logic"}; + SG::ReadHandleKey<Muon::RpcCoinDataContainer> m_rpc_coin_key{this,"RPCCoinKey","RPC_triggerHits","RPC coin container"}; + SG::ReadHandleKey<xAOD::MuonContainer> m_muonsName{this,"MuonCollection","Muons","muons"}; std::string m_chamberName ; std::string m_StationSize ; - std::string m_key_rpc ; std::string m_key_trig ; bool m_doClusters ; - std::string m_clusterContainerName ; bool m_checkCabling ; bool m_rpcfile ; bool m_rpcchamberhist ; @@ -193,6 +198,8 @@ class RPCStandaloneTracksMon: public ManagedMonitorToolBase { double m_MuonDeltaRMatching ; bool m_requireMuonCombinedTight ; bool m_StandAloneMatchedWithTrack ; + + bool m_isMC ; int m_nClus; // number of clusters diff --git a/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/RpcRawDataMonitoring/RpcRawDataMonitoring/RpcLv1RawDataEfficiency.h b/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/RpcRawDataMonitoring/RpcRawDataMonitoring/RpcLv1RawDataEfficiency.h index 3f0b913fc69..c37c37bb07f 100644 --- a/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/RpcRawDataMonitoring/RpcRawDataMonitoring/RpcLv1RawDataEfficiency.h +++ b/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/RpcRawDataMonitoring/RpcRawDataMonitoring/RpcLv1RawDataEfficiency.h @@ -45,6 +45,10 @@ #include "MuonTrigCoinData/RpcCoinDataContainer.h" #include "MuonTrigCoinData/RpcCoinDataCollection.h" +#include "xAODEventInfo/EventInfo.h" + +#include "StoreGate/ReadHandleKey.h" + // STL includes #include <sstream> #include <string.h> @@ -180,11 +184,8 @@ class RpcLv1RawDataEfficiency: public ManagedMonitorToolBase { virtual StatusCode procHistograms(); private: - StatusCode readOfflineMuonContainer(std::string key); // Retrieving information and data - ActiveStoreSvc* m_activeStore; // to get all the other information const RpcIdHelper* m_rpcIdHelper; - const RpcSectorLogicContainer* m_sectorLogicContainer; const MuonGM::MuonDetectorManager* m_muonMgr; // to retrieve coincidence informations // Trigger type stuff @@ -200,6 +201,10 @@ class RpcLv1RawDataEfficiency: public ManagedMonitorToolBase { int m_lumiblock; int m_BCID; + SG::ReadHandleKey<Muon::RpcCoinDataContainer> m_rpcCoinKey{this,"RpcCoinKey","RPC_triggerHits","RPC coincidences"}; + SG::ReadHandleKey<xAOD::EventInfo> m_eventInfo{this,"EventInfo","EventInfo","EventInfo"}; + SG::ReadHandleKey<RpcSectorLogicContainer> m_sectorLogicContainerKey{this,"RPCSec","RPC_SECTORLOGIC","RPC sector logic"}; + // muon informations for offline muons and trigger hits std::vector<OfflineMuon> m_OfflineMuons; std::vector<CoincidenceData*> m_CoincidenceData; diff --git a/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/RpcRawDataMonitoring/RpcRawDataMonitoring/RpcLv1RawDataSectorLogic.h b/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/RpcRawDataMonitoring/RpcRawDataMonitoring/RpcLv1RawDataSectorLogic.h index e4285695bba..bd4046fce00 100644 --- a/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/RpcRawDataMonitoring/RpcRawDataMonitoring/RpcLv1RawDataSectorLogic.h +++ b/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/RpcRawDataMonitoring/RpcRawDataMonitoring/RpcLv1RawDataSectorLogic.h @@ -38,6 +38,8 @@ #include "MuonRDO/RpcPadContainer.h" #include "MuonRDO/RpcSectorLogicContainer.h" +#include "xAODEventInfo/EventInfo.h" + #include <sstream> #include <string.h> #include <vector> @@ -65,12 +67,13 @@ class RpcLv1RawDataSectorLogic: public ManagedMonitorToolBase { // Private functions and members and histograms - ActiveStoreSvc* m_activeStore; - StatusCode StoreTriggerType(); int GetTriggerType() { return m_trigtype; } int m_trigtype; + SG::ReadHandleKey<RpcSectorLogicContainer> m_sectorLogicContainerKey{this,"RPCSec","RPC_SECTORLOGIC","RPC sector logic"}; + SG::ReadHandleKey<xAOD::EventInfo> m_eventInfo{this,"EventInfo","EventInfo","event info"}; + int m_rpc_eventstotal; int m_rpc_event_inarea; @@ -113,7 +116,6 @@ class RpcLv1RawDataSectorLogic: public ManagedMonitorToolBase { int m_Tower_in; int m_in_sectorid; - const RpcSectorLogicContainer* m_sectorLogicContainer; }; #endif diff --git a/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/RpcRawDataMonitoring/RpcRawDataMonitoring/RpcLv1RawDataValAlg.h b/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/RpcRawDataMonitoring/RpcRawDataMonitoring/RpcLv1RawDataValAlg.h index 61509d8623c..5f38e293b74 100755 --- a/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/RpcRawDataMonitoring/RpcRawDataMonitoring/RpcLv1RawDataValAlg.h +++ b/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/RpcRawDataMonitoring/RpcRawDataMonitoring/RpcLv1RawDataValAlg.h @@ -15,7 +15,6 @@ #include "GaudiKernel/Algorithm.h" #include "GaudiKernel/StatusCode.h" -#include "StoreGate/StoreGateSvc.h" #include "GaudiKernel/MsgStream.h" #include "GaudiKernel/NTuple.h" @@ -23,6 +22,8 @@ #include "AthenaMonitoring/ManagedMonitorToolBase.h" #include "MuonDQAUtils/MuonDQAHistMap.h" +#include "xAODEventInfo/EventInfo.h" + #include "RPCcablingInterface/IRPCcablingServerSvc.h" #include "MuonReadoutGeometry/MuonDetectorManager.h" @@ -41,6 +42,8 @@ #include "RpcRawDataMonitoring/RpcGlobalUtilities.h" +#include "StoreGate/ReadHandleKey.h" + #include <sstream> #include <string.h> #include <vector> @@ -80,10 +83,6 @@ class RpcLv1RawDataValAlg: public ManagedMonitorToolBase { MuonDQAHistMap m_stationHists; - StoreGateSvc* m_eventStore; - - ActiveStoreSvc* m_activeStore; - StatusCode StoreTriggerType(); int GetTriggerType() { return m_trigtype; } int m_trigtype; @@ -91,6 +90,9 @@ class RpcLv1RawDataValAlg: public ManagedMonitorToolBase { int m_sector; int m_side; + SG::ReadHandleKey<xAOD::EventInfo> m_eventInfo{this,"EventInfo","EventInfo","event info"}; + SG::ReadHandleKey<RpcPadContainer> m_rpcRdoKey{this,"RpcRdo","RPCPAD","RPC RDO"}; + std::vector<std::string> m_sectorlogicTowerCma_name_list ; std::vector<std::string> m_sectorlogicTowerCma_name_list2 ; std::vector<std::string> m_profile_list ; diff --git a/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/RpcRawDataMonitoring/RpcRawDataMonitoring/RpcRawDataValAlg.h b/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/RpcRawDataMonitoring/RpcRawDataMonitoring/RpcRawDataValAlg.h index e3c2139865b..244bb0b2b6a 100755 --- a/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/RpcRawDataMonitoring/RpcRawDataMonitoring/RpcRawDataValAlg.h +++ b/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/RpcRawDataMonitoring/RpcRawDataMonitoring/RpcRawDataValAlg.h @@ -35,6 +35,12 @@ #include "RPCcablingInterface/IRPCcablingServerSvc.h" +#include "MuonPrepRawData/MuonPrepDataContainer.h" +#include "MuonTrigCoinData/RpcCoinDataContainer.h" +#include "xAODEventInfo/EventInfo.h" + +#include "StoreGate/ReadHandleKey.h" + #include <TError.h> #include <TH1F.h> @@ -75,14 +81,12 @@ class RpcRawDataValAlg: public ManagedMonitorToolBase { // Private function to add the clusters to the ntuple StatusCode addClusters(std::string clusterContainerName); - StoreGateSvc* m_eventStore; - - ActiveStoreSvc* m_activeStore; - - //ServiceHandle<IRPCConditionsSvc> m_pSummarySvc; - + SG::ReadHandleKey<xAOD::EventInfo> m_eventInfo{this,"EventInfo","EventInfo","event info"}; + SG::ReadHandleKey<Muon::RpcPrepDataContainer> m_key_rpc{this,"RpcPrepDataContainer","RPC_Measurements","RPC PRDs"}; + SG::ReadHandleKey<Muon::RpcCoinDataContainer> m_key_trig{this,"RPCTriggerContainer","RPC_triggerHits","RPC trigger hits"}; + SG::ReadHandleKey<Muon::RpcPrepDataContainer> m_clusterContainerName{this,"ClusterContainer","rpcClusters","RPC clusters"}; std::string m_generic_path_rpcmonitoring ; @@ -133,10 +137,7 @@ class RpcRawDataValAlg: public ManagedMonitorToolBase { //Declare Properties std::string m_chamberName ; std::string m_StationSize ; - std::string m_key_rpc ; - std::string m_key_trig ; bool m_doClusters ; - std::string m_clusterContainerName ; bool m_checkCabling ; bool m_rpcfile ; bool m_rpcchamberhist ; diff --git a/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/RpcRawDataMonitoring/share/RpcRawESD_MonitoringOptions.py b/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/RpcRawDataMonitoring/share/RpcRawESD_MonitoringOptions.py index d294d61cffd..3085782f745 100755 --- a/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/RpcRawDataMonitoring/share/RpcRawESD_MonitoringOptions.py +++ b/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/RpcRawDataMonitoring/share/RpcRawESD_MonitoringOptions.py @@ -71,7 +71,9 @@ RPCStandaloneTracksMon = RPCStandaloneTracksMon(name='RPCStandaloneTracksMon', rpc_readout_window = 0.2, ## micro sec doRadiography = False, doCoolDB = False, - ClusterContainer = "rpcClusters") + ClusterContainer = "rpcClusters") +if globalflags.DataSource() != 'data': + RPCStandaloneTracksMon.isMC = True ToolSvc += RPCStandaloneTracksMon rpcTrackMonMan.AthenaMonTools += [ RPCStandaloneTracksMon ] topSequence += rpcTrackMonMan diff --git a/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/RpcRawDataMonitoring/src/RPCStandaloneTracksMon.cxx b/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/RpcRawDataMonitoring/src/RPCStandaloneTracksMon.cxx index 7b5b37c60a6..4f6f5b4e93d 100755 --- a/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/RpcRawDataMonitoring/src/RPCStandaloneTracksMon.cxx +++ b/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/RpcRawDataMonitoring/src/RPCStandaloneTracksMon.cxx @@ -25,18 +25,12 @@ #include "MuonRDO/RpcCoinMatrix.h" #include "MuonRDO/RpcPad.h" #include "MuonRDO/RpcPadContainer.h" -#include "MuonRDO/RpcSectorLogicContainer.h" -#include "TrigT1Result/MuCTPI_RDO.h" #include "TrigT1Result/MuCTPI_DataWord_Decoder.h" #include "TrigT1Interfaces/RecMuonRoI.h" #include "TrigConfL1Data/TriggerThreshold.h" #include "MuonDigitContainer/RpcDigitContainer.h" -#include "MuonPrepRawData/MuonPrepDataContainer.h" - -#include "MuonTrigCoinData/RpcCoinDataContainer.h" - #include "MuonDQAUtils/MuonChamberNameConverter.h" #include "MuonDQAUtils/MuonChambersRange.h" #include "MuonDQAUtils/MuonCosmicSetup.h" @@ -44,7 +38,6 @@ #include "MuonIdHelpers/MuonStationIndex.h" -#include "xAODEventInfo/EventInfo.h" #include "TrkMultiComponentStateOnSurface/MultiComponentStateOnSurface.h" #include "TrkMultiComponentStateOnSurface/MultiComponentState.h" @@ -100,8 +93,6 @@ RPCStandaloneTracksMon::RPCStandaloneTracksMon( const std::string & type, const declareProperty("CosmicStation", m_cosmicStation = 0 ); declareProperty("Side", m_side = 0 ); declareProperty("Clusters", m_doClusters = true ); - declareProperty("ClusterContainer", m_clusterContainerName = "rpcClusters" ); - declareProperty("RpcPrepDataContainer",m_key_rpc = "RPC_Measurements" ); declareProperty("RPCTriggerContainer", m_key_trig = "RPC_triggerHits" ); declareProperty("MinimunEntries", m_MinEntries = 10 ); // min entries required for summary plot declareProperty("rpc_readout_window", m_rpc_readout_window = 0.2 ); // rpc readout window in 10^(-6) s for noise evaluation @@ -121,7 +112,6 @@ RPCStandaloneTracksMon::RPCStandaloneTracksMon( const std::string & type, const declareProperty("Muon_Trigger_Items", m_muon_triggers); declareProperty("TriggerDecisionTool", m_trigDecTool); - declareProperty("MuonCollection", m_muonsName = "Muons"); declareProperty("MuonSegmentCollection", m_muonSegmentsName = "MuonSegments"); declareProperty("MuonTrackCollection", m_muonTracksName = "MuonSpectrometerTrackParticles"); declareProperty("MuonExtrapolatedTrackCollection", m_muonExtrapTracksName = "ExtrapolatedMuonTrackParticles"); @@ -133,6 +123,8 @@ RPCStandaloneTracksMon::RPCStandaloneTracksMon( const std::string & type, const declareProperty("MuonDeltaRMatching" , m_MuonDeltaRMatching = 0.15 ); declareProperty("requireMuonCombinedTight" , m_requireMuonCombinedTight = false ); declareProperty("StandAloneMatchedWithTrack" , m_StandAloneMatchedWithTrack = true ); + + declareProperty("isMC" , m_isMC = false ); declareProperty( "selectTriggerChainGroup" , m_selectTriggerChainGroup = false ); declareProperty( "deSelectTriggerChainGroup" , m_deselectTriggerChainGroup = false ); @@ -176,19 +168,6 @@ StatusCode RPCStandaloneTracksMon::initialize(){ StatusCode sc; - // Store Gate store - sc = serviceLocator()->service("StoreGateSvc", m_eventStore); - if (sc != StatusCode::SUCCESS ) { - ATH_MSG_ERROR ( " Cannot get StoreGateSvc " ); - return sc ; - } - // retrieve the active store - sc = serviceLocator()->service("ActiveStoreSvc", m_activeStore); - if (sc != StatusCode::SUCCESS ) { - ATH_MSG_ERROR ( " Cannot get ActiveStoreSvc " ); - return sc ; - } - // Initialize the IdHelper StoreGateSvc* detStore = 0; sc = service("DetectorStore", detStore); @@ -270,8 +249,15 @@ StatusCode RPCStandaloneTracksMon::initialize(){ m_hRPCPhiEtaCoinThr_eff.clear() ; m_hRPCPadThr_eff.clear() ; m_hRPCMuctpiThr_eff.clear() ; - m_sectorLogicContainer = 0 ; + ATH_CHECK(m_key_rpc.initialize()); + ATH_CHECK(m_eventInfo.initialize()); + ATH_CHECK(m_clusterContainerName.initialize()); + ATH_CHECK(m_muCTPI_RDO_key.initialize()); + ATH_CHECK(m_sectorLogicContainerKey.initialize(!m_isMC)); + ATH_CHECK(m_rpc_coin_key.initialize()); + ATH_CHECK(m_muonsName.initialize()); + return StatusCode::SUCCESS; } @@ -336,39 +322,19 @@ StatusCode RPCStandaloneTracksMon::fillHistograms() // // retrieve containers // const xAOD::MuonSegmentContainer* MuonSegments = evtStore()->retrieve< const xAOD::MuonSegmentContainer > (m_muonSegmentsName); // const xAOD::TrackParticleContainer* tracksMS = evtStore()->retrieve< const xAOD::TrackParticleContainer > (m_muonTracksName); - const xAOD::MuonContainer* Muons = evtStore()->retrieve< const xAOD::MuonContainer > (m_muonsName); - if (!Muons) { - ATH_MSG_WARNING ("Couldn't retrieve Muons container with key: " << m_muonsName); - return StatusCode::SUCCESS; - } - ATH_MSG_DEBUG ("Muon container with key: " << m_muonsName<<" found"); + SG::ReadHandle<xAOD::MuonContainer> Muons(m_muonsName); + ATH_MSG_DEBUG ("Muon container with key: " << m_muonsName.key()<<" found"); // const xAOD::VertexContainer* MSVertices = evtStore()->retrieve< const xAOD::VertexContainer > (m_msVertexCollection); // const xAOD::TrackParticleContainer* METracks = evtStore()->retrieve< const xAOD::TrackParticleContainer >( m_muonExtrapTracksName ); // const xAOD::TrackParticleContainer* IDTracks = evtStore()->retrieve< const xAOD::TrackParticleContainer > ( m_innerTracksName ); - const Muon::RpcPrepDataContainer* rpc_container; - sc = (*m_activeStore)->retrieve(rpc_container, m_key_rpc); - if (sc.isFailure()) { - ATH_MSG_ERROR ( " Cannot retrieve RpcPrepDataContainer " << m_key_rpc ); - return sc; - } - ATH_MSG_DEBUG ( "RpcPrepDataContainer " << m_key_rpc <<" found"); + SG::ReadHandle<Muon::RpcPrepDataContainer> rpc_container(m_key_rpc); + ATH_MSG_DEBUG ( "RpcPrepDataContainer " << m_key_rpc.key() <<" found"); - - - const DataHandle<xAOD::EventInfo> eventInfo; - sc = m_eventStore->retrieve( eventInfo ); - if (sc.isFailure()) { - ATH_MSG_DEBUG ( "no event info" ); - return StatusCode::SUCCESS; - } - else { - ATH_MSG_DEBUG ( "yes event info" ); - } + SG::ReadHandle<xAOD::EventInfo> eventInfo(m_eventInfo); - //int RunNumber = eventInfo->runNumber(); //long int EventNumber = eventInfo->eventNumber(); long int BCID = eventInfo-> bcid() ; @@ -385,15 +351,6 @@ StatusCode RPCStandaloneTracksMon::fillHistograms() } } - - // check if data or MC - int isMC=0; - if (eventInfo->eventType(xAOD::EventInfo::IS_SIMULATION ) ){ - isMC=1; - ATH_MSG_INFO( "SIMULATION"); - } - // return StatusCode::SUCCESS; // stop this algorithms execute() for this event, here only interested in MC - ATH_MSG_DEBUG ("****** rpc->size() : " << rpc_container->size()); Muon::RpcPrepDataContainer::const_iterator containerIt; @@ -415,16 +372,9 @@ StatusCode RPCStandaloneTracksMon::fillHistograms() MonGroup rpc_triggerefficiency( this, m_generic_path_rpcmonitoring +"/TriggerEfficiency", run, ATTRIB_UNMANAGED ); // begin cluster monitoring - const Muon::RpcPrepDataContainer* rpc_clusterContainer = nullptr; - if(m_eventStore->contains<Muon::RpcPrepDataContainer>(m_clusterContainerName)){ - sc = m_eventStore->retrieve(rpc_clusterContainer, m_clusterContainerName); - if (sc.isFailure()) { - ATH_MSG_DEBUG ( " RPCStandaloneTracksMon :: Cannot retrieve the RPC cluster container " ); - return sc; - } - } + SG::ReadHandle<Muon::RpcPrepDataContainer> rpc_clusterContainer(m_clusterContainerName); - if (m_doClusters && rpc_clusterContainer ) + if (m_doClusters) { ATH_MSG_DEBUG ( "Start RPC Cluster Monitoring" ); @@ -834,7 +784,7 @@ StatusCode RPCStandaloneTracksMon::fillHistograms() //Check for muon combined match bool foundmatch3DwithMuon = false; int nm=0; - if (Muons){ + if (Muons.cptr()){ // CombinedMuons Tight for (const xAOD::Muon* muons: *Muons) { @@ -912,77 +862,64 @@ StatusCode RPCStandaloneTracksMon::fillHistograms() std::list<muctpi_rdo> muctpi_rdo_roi_list; muctpi_rdo_roi_list.clear(); - const MuCTPI_RDO* muctpiRDO; - sc = (*m_activeStore)->retrieve(muctpiRDO,"MUCTPI_RDO"); - if (sc.isFailure()) { - ATH_MSG_WARNING ( "Cannot retrieve the MuCTPI" ); - return StatusCode::SUCCESS; - } - else { - + SG::ReadHandle<MuCTPI_RDO> muctpiRDO(m_muCTPI_RDO_key); - // Create some dummy LVL1 muon thresholds: - std::vector< TrigConf::TriggerThreshold* > dummy_thresholds; - - - // Loop over the MuCTPI data words, and "reconstruct" them: - std::vector< uint32_t >::const_iterator dw_itr = muctpiRDO->dataWord().begin(); - std::vector< uint32_t >::const_iterator dw_end = muctpiRDO->dataWord().end(); - for( ; dw_itr != dw_end; ++dw_itr ) { - - muctpi_rdo muctpi_rdo_roi; - // Use the same class that is used by the LVL2 steering to decode - // the muon RoIs: - - uint32_t dataWord = (*dw_itr); - uint32_t RoIWord = ( ( dataWord & 0x18000000 ) | - ( ( dataWord & 0x3fe0000 ) >> 3 ) | - ( dataWord & 0x3fff ) ); - - LVL1::RecMuonRoI roi( RoIWord, - &( *m_rpcRoiSvc ), &( *m_tgcRoiSvc ), - &dummy_thresholds ); - - muctpi_rdo_roi.eta= roi.eta() ; - muctpi_rdo_roi.phi= roi.phi() ; - muctpi_rdo_roi.source= roi.sysID() ; - muctpi_rdo_roi.hemisphere= roi.subsysID() ; - int muctpi_bcid = ( ( dataWord >> 14 ) & 0x7 ); - // store difference from L1Acc - int dbc = muctpi_bcid; - if (!isMC) dbc = dbc - BCID%8; - if (dbc<=-4) { - dbc=dbc+8; - }else if (dbc>4) { - dbc=dbc-8; - } - muctpi_rdo_roi.bcid=dbc; - muctpi_rdo_roi.sectorID= roi.sectorID() ; - muctpi_rdo_roi.thrNumber= roi.getThresholdNumber() ; - muctpi_rdo_roi.RoINumber= roi.getRoINumber() ; - muctpi_rdo_roi.overlapFlags= roi.getOverlap() ; - - - muctpi_rdo_roi_list.push_back(muctpi_rdo_roi); - - } - - ATH_MSG_DEBUG(" MUCTPI RoIs = " << muctpi_rdo_roi_list.size() ); + // Create some dummy LVL1 muon thresholds: + std::vector< TrigConf::TriggerThreshold* > dummy_thresholds; + + + // Loop over the MuCTPI data words, and "reconstruct" them: + std::vector< uint32_t >::const_iterator dw_itr = muctpiRDO->dataWord().begin(); + std::vector< uint32_t >::const_iterator dw_end = muctpiRDO->dataWord().end(); + for( ; dw_itr != dw_end; ++dw_itr ) { + + muctpi_rdo muctpi_rdo_roi; + // Use the same class that is used by the LVL2 steering to decode + // the muon RoIs: + + uint32_t dataWord = (*dw_itr); + uint32_t RoIWord = ( ( dataWord & 0x18000000 ) | + ( ( dataWord & 0x3fe0000 ) >> 3 ) | + ( dataWord & 0x3fff ) ); + + LVL1::RecMuonRoI roi( RoIWord, + &( *m_rpcRoiSvc ), &( *m_tgcRoiSvc ), + &dummy_thresholds ); + + muctpi_rdo_roi.eta= roi.eta() ; + muctpi_rdo_roi.phi= roi.phi() ; + muctpi_rdo_roi.source= roi.sysID() ; + muctpi_rdo_roi.hemisphere= roi.subsysID() ; + int muctpi_bcid = ( ( dataWord >> 14 ) & 0x7 ); + // store difference from L1Acc + int dbc = muctpi_bcid; + if (!m_isMC) dbc = dbc - BCID%8; + if (dbc<=-4) { + dbc=dbc+8; + }else if (dbc>4) { + dbc=dbc-8; + } + muctpi_rdo_roi.bcid=dbc; + muctpi_rdo_roi.sectorID= roi.sectorID() ; + muctpi_rdo_roi.thrNumber= roi.getThresholdNumber() ; + muctpi_rdo_roi.RoINumber= roi.getRoINumber() ; + muctpi_rdo_roi.overlapFlags= roi.getOverlap() ; + + + muctpi_rdo_roi_list.push_back(muctpi_rdo_roi); + } + + ATH_MSG_DEBUG(" MUCTPI RoIs = " << muctpi_rdo_roi_list.size() ); // Retrieve the Sector Logic container - sc = (*m_activeStore) -> retrieve(m_sectorLogicContainer); - if (sc.isFailure()) { - if (isMC==1) ATH_MSG_DEBUG ( "Cannot retrieve the RpcSectorLogicContainer ... that's normal in MC: no container is produced in digitization" ); - else - { - ATH_MSG_WARNING ( "Cannot retrieve the RpcSectorLogicContainer ... however, there's no reason to stop here" ); - //return StatusCode::SUCCESS; - } + if (m_isMC) { + ATH_MSG_DEBUG ( "Cannot retrieve the RpcSectorLogicContainer ... that's normal in MC: no container is produced in digitization" ); } else { - ATH_MSG_DEBUG("RpcSectorLogicContainer found with size " << m_sectorLogicContainer->size()); + SG::ReadHandle<RpcSectorLogicContainer> sectorLogicContainer(m_sectorLogicContainerKey); + ATH_MSG_DEBUG("RpcSectorLogicContainer found with size " << sectorLogicContainer->size()); /////////////////////////////////////////// // Loop over the Sector Logic containers // @@ -994,9 +931,9 @@ StatusCode RPCStandaloneTracksMon::fillHistograms() phimaxpad.clear(); thresholdpad.clear(); - RpcSectorLogicContainer::const_iterator its = m_sectorLogicContainer -> begin(); + RpcSectorLogicContainer::const_iterator its = sectorLogicContainer -> begin(); - for ( ; its != m_sectorLogicContainer -> end() ; ++its ) + for ( ; its != sectorLogicContainer -> end() ; ++its ) { int i_sectorid = (*its)->sectorId(); // Loop over the trigger hits of each sector @@ -1038,16 +975,9 @@ StatusCode RPCStandaloneTracksMon::fillHistograms() /////////////// Trigger hits efficiency //Trigger hits - const Muon::RpcCoinDataContainer* rpc_coin_container; - sc = (*m_activeStore)->retrieve(rpc_coin_container, "RPC_triggerHits" ); - if (sc.isFailure()) { - ATH_MSG_WARNING ( "Cannot retrieve RPC trigger hits container"); - return sc; - } - - + SG::ReadHandle<Muon::RpcCoinDataContainer> rpc_coin_container(m_rpc_coin_key); - if (Muons){ + if (Muons.cptr()){ // CombinedMuons Tight for (const xAOD::Muon* muons: *Muons) { diff --git a/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/RpcRawDataMonitoring/src/RpcLv1RawDataEfficiency.cxx b/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/RpcRawDataMonitoring/src/RpcLv1RawDataEfficiency.cxx index d580e4204f6..a2b76ec4247 100644 --- a/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/RpcRawDataMonitoring/src/RpcLv1RawDataEfficiency.cxx +++ b/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/RpcRawDataMonitoring/src/RpcLv1RawDataEfficiency.cxx @@ -25,9 +25,7 @@ #include "AthenaMonitoring/AthenaMonManager.h" #include "MuonPrepRawData/MuonPrepDataContainer.h" -#include "MuonTrigCoinData/RpcCoinDataContainer.h" -#include "xAODEventInfo/EventInfo.h" #include <inttypes.h> #include <sstream> @@ -55,9 +53,7 @@ StatusCode RpcLv1RawDataEfficiency::initialize() ATH_MSG_INFO( "In initializing 'RpcLv1RawDataEfficiency'" ); ATH_MSG_INFO( "Package version = "<< PACKAGE_VERSION ); - m_activeStore = 0 ; m_rpcIdHelper = 0 ; - m_sectorLogicContainer = 0 ; m_muonMgr = 0 ; m_trigtype = 0 ; m_event = 0 ; @@ -82,132 +78,20 @@ StatusCode RpcLv1RawDataEfficiency::initialize() m_rpclv1_sectorhits_C[5] = 0 ; m_rpclv1_sectorhits_all[5]= 0 ; - // Retrieve the active store where all the information is being read from - ATH_CHECK( serviceLocator()->service("ActiveStoreSvc", m_activeStore) ); - ATH_CHECK( detStore()->retrieve(m_rpcIdHelper,"RPCIDHELPER") ); ATH_CHECK( detStore()->retrieve(m_muonMgr) ); ATH_MSG_DEBUG( "Found the MuonDetectorManager from detector store." ); + ATH_CHECK(m_rpcCoinKey.initialize()); + ATH_CHECK(m_eventInfo.initialize()); + ATH_CHECK(m_sectorLogicContainerKey.initialize()); + // Ignore the checking code ManagedMonitorToolBase::initialize().ignore(); return StatusCode::SUCCESS; } - -//================================================================================================================================ -// Reads the offline muon container into vectors for use in filling histograms -//================================================================================================================================ -StatusCode RpcLv1RawDataEfficiency::readOfflineMuonContainer( std::string key ) -{ - ATH_MSG_VERBOSE( "Reading OfflineMuonContainer... " ); - - // read the container the first time or again, so delete the old one - m_OfflineMuons.clear(); - - const float ptcut = 1.0; - const float etamin = -1.0; - const float etamax = 1.0; - - const Analysis::MuonContainer* muonCont; - - // retrieve the offline muon container - StatusCode sc = (*m_activeStore)->retrieve(muonCont, key); - if(sc.isFailure()) { - ATH_MSG_WARNING( "Container of muon particle with key " << key << " not found in ActiveStore" ); - return StatusCode::SUCCESS; - } - - float pt,eta; - - int pixHits; - int sctHits; - int trtHits; - int pixHoles; - int sctHoles; - int trtOL; - int trtOLfrac; - bool trt; - float matchChi2; - - Analysis::MuonContainer::const_iterator it = muonCont->begin(); - Analysis::MuonContainer::const_iterator ite = muonCont->end(); - for (; it != ite; it++ ) { - pt = (*it)->pt(); - eta = (*it)->eta(); - if( fabs(pt) < ptcut || - fabs(eta) < etamin || - fabs(eta) > etamax ) continue; - - pixHits = (*it)->numberOfPixelHits(); - sctHits = (*it)->numberOfSCTHits(); - trtHits = (*it)->numberOfTRTHits(); - pixHoles = (*it)->numberOfPixelHoles(); - sctHoles = (*it)->numberOfSCTHoles(); - trtOL = (*it)->numberOfTRTOutliers(); - - trtOLfrac = 0; - if( trtHits + trtOL > 0 ) trtOLfrac = trtOL/(trtHits + trtOL); - - trt=false; - if( fabs(eta) < 1.9 ) - trt = ( (trtHits > 5) && (trtOLfrac < 0.9) ); - else{ - if( trtHits > 5 ) - trt = ( trtOLfrac < 0.9 ); - else - trt=true; - } - - matchChi2 = (*it)->matchChi2(); - - //Muid MCP except phi hits - if( key == "MuidMuonCollection" && - !( (*it)->combinedMuonTrackParticle() && - sctHits >= 6 && - pixHits >= 2 && - pixHoles+sctHoles <=1 && - trt - ) ) continue; - - //Staco MCP - if( key == "StacoMuonCollection" && - ! ( (*it)->combinedMuonTrackParticle() && - sctHits >= 6 && - pixHits >= 2 && - pixHoles+sctHoles <=1 && - trt && - matchChi2 < 50 ) ) continue; - - OfflineMuon offmu; - offmu.SetPtEtaPhiQ( pt/CLHEP::GeV, eta, (*it)->phi(), (*it)->charge() ); - m_OfflineMuons.push_back(offmu); - } - ATH_MSG_VERBOSE( "Number of offline muons before dR check : " << m_OfflineMuons.size() ); - - // check if no track is too close to another track - bool bTooClose = false; - float trackdr; - const float trackdr_min = .8; - - vector<OfflineMuon>::const_iterator it1 = m_OfflineMuons.begin(); - vector<OfflineMuon>::const_iterator it2; - while( it1 != m_OfflineMuons.end() ) { - it2 = it1+1; - while( it2 != m_OfflineMuons.end() ) { - trackdr = (*it1).DeltaR( (*it2) ); - if( trackdr < trackdr_min ) bTooClose = true; - ++it2;} - ++it1; } - if(bTooClose) m_OfflineMuons.clear(); - - ATH_MSG_VERBOSE( "Finished reading OfflineMuonContainer... " ); - return StatusCode::SUCCESS; -} - - - //================================================================================================================================ // Reads RPC coincidence data from container into vectors for use in filling histograms //================================================================================================================================ @@ -215,8 +99,7 @@ StatusCode RpcLv1RawDataEfficiency::readRpcCoinDataContainer() { ATH_MSG_DEBUG( "Reading RpcCoincidenceContainer... " ); - const Muon::RpcCoinDataContainer* rpc_coin_container; - ATH_CHECK( (*m_activeStore)->retrieve(rpc_coin_container, "RPC_triggerHits" ) ); + SG::ReadHandle<Muon::RpcCoinDataContainer> rpc_coin_container(m_rpcCoinKey); Muon::RpcCoinDataContainer::const_iterator it_container; //Muon::RpcCoinDataCollection::const_iterator it_collection; Identifier prdcoll_id; @@ -269,8 +152,7 @@ StatusCode RpcLv1RawDataEfficiency::readRpcCoinDataContainer() StatusCode RpcLv1RawDataEfficiency::StoreTriggerType() { ATH_MSG_DEBUG( "Storing Trigger Type... " ); - const xAOD::EventInfo* eventInfo; - ATH_CHECK( evtStore() -> retrieve(eventInfo) ); + SG::ReadHandle<xAOD::EventInfo> eventInfo(m_eventInfo); ATH_MSG_DEBUG( "RpcLv1RawDataEfficiency::retrieved eventInfo" ); // Protection against simulated cosmics when the trigger_info() of the event_info is not filled and returns a null pointer. @@ -334,37 +216,32 @@ StatusCode RpcLv1RawDataEfficiency::fillHistograms( ) // == Filling the Histograms //--------------------Sector Hits--------------------------------- // Retrieve the Sector Logic container - if ( (*m_activeStore) -> retrieve(m_sectorLogicContainer).isFailure() ) { - ATH_MSG_INFO( "Cannot retrieve the RpcSectorLogicContainer" ); - return StatusCode::FAILURE; - } - else { - - RpcSectorLogicContainer::const_iterator it = m_sectorLogicContainer -> begin(); - - for ( ; it != m_sectorLogicContainer -> end() ; ++it ) - { - int i_sectorid = (*it)->sectorId(); - // Loop over the trigger hits of each sector - RpcSectorLogic::const_iterator ithit = (*it) -> begin(); - for ( ; ithit != (*it) -> end() ; ++ithit ) - { - bool b_isInput = (*ithit) -> isInput(); - int i_ptid = (*ithit) -> ptId(); - if (b_isInput == true) // fill histograms only if there was a trigger hit - { - for( int iThresholdIndex=0; iThresholdIndex < 6; iThresholdIndex++) { - if (i_ptid == (iThresholdIndex + 1)) - { - m_rpclv1_sectorhits_all[iThresholdIndex]->Fill(m_lumiblock,i_sectorid); - m_rpclv1_sectorhits_A[iThresholdIndex]->Fill(m_lumiblock,i_sectorid); - m_rpclv1_sectorhits_C[iThresholdIndex]->Fill(m_lumiblock,i_sectorid); - } - } + SG::ReadHandle<RpcSectorLogicContainer> sectorLogicContainer(m_sectorLogicContainerKey); + + RpcSectorLogicContainer::const_iterator it = sectorLogicContainer -> begin(); + + for ( ; it != sectorLogicContainer -> end() ; ++it ) + { + int i_sectorid = (*it)->sectorId(); + // Loop over the trigger hits of each sector + RpcSectorLogic::const_iterator ithit = (*it) -> begin(); + for ( ; ithit != (*it) -> end() ; ++ithit ) + { + bool b_isInput = (*ithit) -> isInput(); + int i_ptid = (*ithit) -> ptId(); + if (b_isInput == true) // fill histograms only if there was a trigger hit + { + for( int iThresholdIndex=0; iThresholdIndex < 6; iThresholdIndex++) { + if (i_ptid == (iThresholdIndex + 1)) + { + m_rpclv1_sectorhits_all[iThresholdIndex]->Fill(m_lumiblock,i_sectorid); + m_rpclv1_sectorhits_A[iThresholdIndex]->Fill(m_lumiblock,i_sectorid); + m_rpclv1_sectorhits_C[iThresholdIndex]->Fill(m_lumiblock,i_sectorid); + } } - } - } - } + } + } + } return StatusCode::SUCCESS; } diff --git a/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/RpcRawDataMonitoring/src/RpcLv1RawDataSectorLogic.cxx b/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/RpcRawDataMonitoring/src/RpcLv1RawDataSectorLogic.cxx index 9bb4926e34f..b35efef082a 100644 --- a/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/RpcRawDataMonitoring/src/RpcLv1RawDataSectorLogic.cxx +++ b/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/RpcRawDataMonitoring/src/RpcLv1RawDataSectorLogic.cxx @@ -14,7 +14,6 @@ #include "GaudiKernel/MsgStream.h" #include "GaudiKernel/AlgFactory.h" -#include "xAODEventInfo/EventInfo.h" #include "MuonDQAUtils/MuonChamberNameConverter.h" #include "MuonDQAUtils/MuonChambersRange.h" #include "MuonDQAUtils/MuonCosmicSetup.h" @@ -68,10 +67,9 @@ StatusCode RpcLv1RawDataSectorLogic::initialize() m_Tower_out = 0 ; m_Tower_in = 0 ; m_in_sectorid = 0 ; - m_sectorLogicContainer = 0 ; - // Retrieve the active store - ATH_CHECK( serviceLocator() -> service("ActiveStoreSvc", m_activeStore) ); + ATH_CHECK(m_sectorLogicContainerKey.initialize()); + ATH_CHECK(m_eventInfo.initialize()); // Ignore the checking code ManagedMonitorToolBase::initialize().ignore(); @@ -83,8 +81,7 @@ StatusCode RpcLv1RawDataSectorLogic::initialize() //*********************************************************************************************************************** StatusCode RpcLv1RawDataSectorLogic::StoreTriggerType() { - const xAOD::EventInfo* eventInfo; - ATH_CHECK( evtStore() -> retrieve(eventInfo) ); + SG::ReadHandle<xAOD::EventInfo> eventInfo(m_eventInfo); ATH_MSG_DEBUG( "RpcLv1RawDataSectorLogic::retrieved eventInfo" ); m_trigtype = eventInfo->level1TriggerType(); @@ -179,25 +176,19 @@ StatusCode RpcLv1RawDataSectorLogic::fillHistograms( ) m_nTriggerHits = 0; // Retrieve the Sector Logic container - sc = (*m_activeStore) -> retrieve(m_sectorLogicContainer); - - if (sc.isFailure()) { - ATH_MSG_INFO( "Cannot retrieve the RpcSectorLogicContainer" ); - return StatusCode::SUCCESS; - } - else { - /////////////////////////////////////////// - // Loop over the Sector Logic containers // - /////////////////////////////////////////// - RpcSectorLogicContainer::const_iterator it = m_sectorLogicContainer -> begin(); - for ( ; it != m_sectorLogicContainer -> end() ; ++it ) - { - int i_sectorid = (*it)->sectorId(); - m_nTriggerHitsperSector = 0; - - // Loop over the trigger hits of each sector - RpcSectorLogic::const_iterator ithit = (*it) -> begin(); - for ( ; ithit != (*it) -> end() ; ++ithit ) + SG::ReadHandle<RpcSectorLogicContainer> sectorLogicContainer(m_sectorLogicContainerKey); + /////////////////////////////////////////// + // Loop over the Sector Logic containers // + /////////////////////////////////////////// + RpcSectorLogicContainer::const_iterator it = sectorLogicContainer -> begin(); + for ( ; it != sectorLogicContainer -> end() ; ++it ) + { + int i_sectorid = (*it)->sectorId(); + m_nTriggerHitsperSector = 0; + + // Loop over the trigger hits of each sector + RpcSectorLogic::const_iterator ithit = (*it) -> begin(); + for ( ; ithit != (*it) -> end() ; ++ithit ) { // from RpcSLTriggerHit bool b_isInput = (*ithit) -> isInput(); @@ -320,19 +311,17 @@ StatusCode RpcLv1RawDataSectorLogic::fillHistograms( ) } // End Loop over the trigger hits of each sector - // Fill the trigger hits per event per sector histogram here - if (m_nTriggerHitsperSector > 0) { - m_rpclv1_TriggerHitsperEventperTriggerSector -> Fill(float(i_sectorid), float(m_nTriggerHitsperSector)); - //per lumi block - if(m_lumiblockhist)m_rpclv1_TriggerHitsperEventperTriggerSector_LB -> Fill(float(i_sectorid), float(m_nTriggerHitsperSector)); - } - - } // End Loop over the Sector Logic containers - - // Fill the trigger hits per event histogram here - m_rpclv1_TriggerHitsperEvent -> Fill(float(m_nTriggerHits)); - - } + // Fill the trigger hits per event per sector histogram here + if (m_nTriggerHitsperSector > 0) { + m_rpclv1_TriggerHitsperEventperTriggerSector -> Fill(float(i_sectorid), float(m_nTriggerHitsperSector)); + //per lumi block + if(m_lumiblockhist)m_rpclv1_TriggerHitsperEventperTriggerSector_LB -> Fill(float(i_sectorid), float(m_nTriggerHitsperSector)); + } + + } // End Loop over the Sector Logic containers + + // Fill the trigger hits per event histogram here + m_rpclv1_TriggerHitsperEvent -> Fill(float(m_nTriggerHits)); } // AthenaMonManager::tier0 || AthenaMonManager::tier0Raw diff --git a/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/RpcRawDataMonitoring/src/RpcLv1RawDataValAlg.cxx b/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/RpcRawDataMonitoring/src/RpcLv1RawDataValAlg.cxx index feab3818dfa..b26f5b77f33 100755 --- a/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/RpcRawDataMonitoring/src/RpcLv1RawDataValAlg.cxx +++ b/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/RpcRawDataMonitoring/src/RpcLv1RawDataValAlg.cxx @@ -14,7 +14,6 @@ #include "GaudiKernel/MsgStream.h" #include "GaudiKernel/AlgFactory.h" -#include "xAODEventInfo/EventInfo.h" #include "MuonDQAUtils/MuonChamberNameConverter.h" #include "MuonDQAUtils/MuonChambersRange.h" #include "MuonDQAUtils/MuonCosmicSetup.h" @@ -74,19 +73,6 @@ StatusCode RpcLv1RawDataValAlg::initialize() ATH_MSG_INFO ( "RpcLv1ReduceNbins " << m_rpclv1reducenbins ); StatusCode sc; - // Store Gate store - sc = serviceLocator()->service("StoreGateSvc", m_eventStore); - if (sc != StatusCode::SUCCESS ) { - ATH_MSG_ERROR ( " Cannot get StoreGateSvc " ); - return sc ; - } - // retrieve the active store - sc = serviceLocator()->service("ActiveStoreSvc", m_activeStore); - if (sc != StatusCode::SUCCESS ) { - ATH_MSG_ERROR ( " Cannot get ActiveStoreSvc " ); - return sc ; - } - // Initialize the IdHelper StoreGateSvc* detStore = 0; sc = service("DetectorStore", detStore); @@ -137,23 +123,20 @@ StatusCode RpcLv1RawDataValAlg::initialize() hardware_name_list.push_back("XXX"); ManagedMonitorToolBase::initialize().ignore(); // Ignore the checking code; + + ATH_CHECK(m_eventInfo.initialize()); + ATH_CHECK(m_rpcRdoKey.initialize()); return StatusCode::SUCCESS; } StatusCode RpcLv1RawDataValAlg::StoreTriggerType() { - const xAOD::EventInfo* eventInfo = nullptr; - StatusCode sc = StatusCode::SUCCESS; - sc = m_eventStore->retrieve(eventInfo); - if ( sc.isFailure() ) { - ATH_MSG_ERROR ( "Could not find eventInfo " ); - return sc; - }else {ATH_MSG_DEBUG ( "RpcLv1RawDataValAlg::retrieved eventInfo" );} + SG::ReadHandle<xAOD::EventInfo> eventInfo(m_eventInfo); m_trigtype = eventInfo->level1TriggerType(); - return sc; + return StatusCode::SUCCESS; } @@ -191,12 +174,7 @@ StatusCode RpcLv1RawDataValAlg::fillHistograms() // Prepare the retrieval of the RpcPadContainer - const RpcPadContainer* rpcRDO = nullptr; - sc= (*m_activeStore)->retrieve(rpcRDO,"RPCPAD"); - if (sc.isFailure()) { - ATH_MSG_ERROR ( "Could not find RPC Pads" ); - return sc; - } + SG::ReadHandle<RpcPadContainer> rpcRDO(m_rpcRdoKey); // begin loop to get trigger time for (RpcPadContainer::const_iterator rdoColli = rpcRDO->begin(); rdoColli!=rpcRDO->end(); ++rdoColli) diff --git a/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/RpcRawDataMonitoring/src/RpcRawDataValAlg.cxx b/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/RpcRawDataMonitoring/src/RpcRawDataValAlg.cxx index 39dcb257e33..e5555a53836 100755 --- a/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/RpcRawDataMonitoring/src/RpcRawDataValAlg.cxx +++ b/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/RpcRawDataMonitoring/src/RpcRawDataValAlg.cxx @@ -35,10 +35,6 @@ #include "MuonDigitContainer/RpcDigitContainer.h" -#include "MuonPrepRawData/MuonPrepDataContainer.h" - -#include "MuonTrigCoinData/RpcCoinDataContainer.h" - #include "MuonDQAUtils/MuonChamberNameConverter.h" #include "MuonDQAUtils/MuonChambersRange.h" #include "MuonDQAUtils/MuonCosmicSetup.h" @@ -93,9 +89,6 @@ RpcRawDataValAlg::RpcRawDataValAlg( const std::string & type, const std::string declareProperty("lv1Thres_2", m_lv1Thres_2 = 2 ); declareProperty("lv1Thres_3", m_lv1Thres_3 = 3 ); declareProperty("doCoolDB", m_doCoolDB = true ); - declareProperty("ClusterContainer", m_clusterContainerName = "rpcClusters" ); - declareProperty("RpcPrepDataContainer",m_key_rpc = "RPC_Measurements" ); - declareProperty("RPCTriggerContainer", m_key_trig = "RPC_triggerHits" ); declareProperty("MinimunEntries", m_MinEntries = 10 ); // min entries required for summary plot declareProperty("LB_Nbins" , m_LB_Nbins = 300 ); declareProperty("LBmax" , m_LBmax = 1500 ); @@ -130,19 +123,6 @@ StatusCode RpcRawDataValAlg::initialize(){ StatusCode sc; - // Store Gate store - sc = serviceLocator()->service("StoreGateSvc", m_eventStore); - if (sc != StatusCode::SUCCESS ) { - ATH_MSG_ERROR ( " Cannot get StoreGateSvc " ); - return sc ; - } - // retrieve the active store - sc = serviceLocator()->service("ActiveStoreSvc", m_activeStore); - if (sc != StatusCode::SUCCESS ) { - ATH_MSG_ERROR ( " Cannot get ActiveStoreSvc " ); - return sc ; - } - // Initialize the IdHelper StoreGateSvc* detStore = 0; sc = service("DetectorStore", detStore); @@ -245,6 +225,10 @@ StatusCode RpcRawDataValAlg::initialize(){ m_first = true ; + ATH_CHECK(m_eventInfo.initialize()); + ATH_CHECK( m_key_rpc.initialize()); + ATH_CHECK( m_key_trig.initialize()); + ATH_CHECK(m_clusterContainerName.initialize(m_doClusters)); return StatusCode::SUCCESS; } @@ -263,31 +247,18 @@ StatusCode RpcRawDataValAlg::fillHistograms() int lumiblock = -1 ; - const DataHandle<xAOD::EventInfo> eventInfo; - StatusCode sc = m_eventStore->retrieve( eventInfo ); - if (sc.isFailure()) { - ATH_MSG_INFO ( "no event info" ); - return StatusCode::SUCCESS; - } - else { + SG::ReadHandle<xAOD::EventInfo> eventInfo(m_eventInfo); - lumiblock = eventInfo->lumiBlock() ; + lumiblock = eventInfo->lumiBlock() ; - ATH_MSG_DEBUG ( "event LB " << lumiblock ); - - } + ATH_MSG_DEBUG ( "event LB " << lumiblock ); float AverageLuminosityWeight = 1; - const Muon::RpcPrepDataContainer* rpc_container; - sc = (*m_activeStore)->retrieve(rpc_container, m_key_rpc); - if (sc.isFailure()) { - ATH_MSG_ERROR ( " Cannot retrieve RpcPrepDataContainer " << m_key_rpc ); - return sc; - } + SG::ReadHandle<Muon::RpcPrepDataContainer> rpc_container(m_key_rpc); ATH_MSG_DEBUG ( "****** rpc->size() : " << rpc_container->size()) ; @@ -1222,13 +1193,8 @@ StatusCode RpcRawDataValAlg::fillHistograms() // loop on trigger hits if(m_doTriggerHits){ - const Muon::RpcCoinDataContainer* rpc_trigcontainer; + SG::ReadHandle<Muon::RpcCoinDataContainer> rpc_trigcontainer(m_key_trig ); - sc = (*m_activeStore)->retrieve(rpc_trigcontainer, m_key_trig ); - if (sc.isFailure()) { - ATH_MSG_ERROR ( " Cannot retrieve RPC trigger Hits container " << m_key_trig ); - return sc; - } Muon::RpcCoinDataContainer::const_iterator trigcontainerIt; for ( trigcontainerIt = rpc_trigcontainer->begin(); trigcontainerIt != rpc_trigcontainer->end(); ++trigcontainerIt ) { @@ -1832,25 +1798,12 @@ StatusCode RpcRawDataValAlg::fillHistograms() m_rpcTriggerHitsPerEvents_Phi_HighPt -> Fill (NTrigger_Phi_HighPt) ; } // begin cluster monitoring - const Muon::RpcPrepDataContainer* rpc_clusterContainer; - bool Clus_Retr = false; - if(m_eventStore->contains<Muon::RpcPrepDataContainer>(m_clusterContainerName)){ - sc = m_eventStore->retrieve(rpc_clusterContainer, m_clusterContainerName); - if ( sc.isSuccess() ) { - Clus_Retr = true ; - } - else { - ATH_MSG_DEBUG ( " RpcRawDataValAlg :: Cannot retrieve the RPC cluster container " ); - Clus_Retr = false; - return sc; - } - } - else { Clus_Retr = false;} - if (m_doClusters && Clus_Retr ) + if (m_doClusters ) { ATH_MSG_DEBUG ( "Start RPC Cluster Monitoring" ); - + SG::ReadHandle<Muon::RpcPrepDataContainer> rpc_clusterContainer(m_clusterContainerName); + // RPC clusters histograms m_nClus=0; -- GitLab