From 1276ebed8df2274772897b73458aeee2bb7c80c2 Mon Sep 17 00:00:00 2001 From: Susumu Oda <Susumu.Oda@cern.ch> Date: Tue, 25 Apr 2017 11:40:12 +0200 Subject: [PATCH] Use ReadHandles in SCT_Monitoring --- .../SCT_Monitoring/CMakeLists.txt | 1 + .../SCT_Monitoring/SCTHitsNoiseMonTool.h | 1 - .../SCT_Monitoring/src/SCTErrMonTool.cxx | 12 ++--- .../SCT_Monitoring/src/SCTHitEffMonTool.cxx | 24 ++++----- .../src/SCTHitsNoiseMonTool.cxx | 53 +++++++++---------- .../SCT_Monitoring/src/SCTLorentzMonTool.cxx | 5 +- .../src/SCTMotherTrigMonTool.cxx | 9 ++-- .../src/SCTRatioNoiseMonTool.cxx | 10 ++-- 8 files changed, 55 insertions(+), 60 deletions(-) diff --git a/InnerDetector/InDetMonitoring/SCT_Monitoring/CMakeLists.txt b/InnerDetector/InDetMonitoring/SCT_Monitoring/CMakeLists.txt index 65014e9bb11..40a789ec03a 100644 --- a/InnerDetector/InDetMonitoring/SCT_Monitoring/CMakeLists.txt +++ b/InnerDetector/InDetMonitoring/SCT_Monitoring/CMakeLists.txt @@ -23,6 +23,7 @@ atlas_depends_on_subdirs( PUBLIC Commission/CommissionEvent Control/AthenaKernel Control/DataModel + Control/StoreGate DetectorDescription/Identifier Event/EventInfo Event/xAOD/xAODEventInfo diff --git a/InnerDetector/InDetMonitoring/SCT_Monitoring/SCT_Monitoring/SCTHitsNoiseMonTool.h b/InnerDetector/InDetMonitoring/SCT_Monitoring/SCT_Monitoring/SCTHitsNoiseMonTool.h index 401bb5166ec..87c816b52cb 100644 --- a/InnerDetector/InDetMonitoring/SCT_Monitoring/SCT_Monitoring/SCTHitsNoiseMonTool.h +++ b/InnerDetector/InDetMonitoring/SCT_Monitoring/SCT_Monitoring/SCTHitsNoiseMonTool.h @@ -263,7 +263,6 @@ class SCTHitsNoiseMonTool : public SCTMotherTrigMonTool{ unsigned int m_maxTracks; std::vector<Identifier> m_RDOsOnTracks; StatusCode makeVectorOfTrackRDOIdentifiers(); - const DataVector<Trk::Track> *m_tracks; VecH2_t m_ptrackhitsHistoVector; VecH2_t m_ptrackhitsHistoVectorECp; VecH2_t m_ptrackhitsHistoVectorECm; diff --git a/InnerDetector/InDetMonitoring/SCT_Monitoring/src/SCTErrMonTool.cxx b/InnerDetector/InDetMonitoring/SCT_Monitoring/src/SCTErrMonTool.cxx index 04137e54389..b5d27b25411 100755 --- a/InnerDetector/InDetMonitoring/SCT_Monitoring/src/SCTErrMonTool.cxx +++ b/InnerDetector/InDetMonitoring/SCT_Monitoring/src/SCTErrMonTool.cxx @@ -39,6 +39,7 @@ #include "InDetReadoutGeometry/SiDetectorElement.h" #include "xAODEventInfo/EventInfo.h" #include "cArrayUtilities.h" +#include "StoreGate/ReadHandle.h" #include <vector> #include <set> #include <iostream> @@ -671,8 +672,8 @@ StatusCode SCTErrMonTool::fillHistograms() { typedef SCT_RDORawData SCTRawDataType; - const xAOD::EventInfo *pEvent(0); - if (evtStore()->retrieve(pEvent).isFailure()) { + SG::ReadHandle<xAOD::EventInfo> pEvent; + if (not pEvent.isValid()) { ATH_MSG_WARNING("Could not retrieve event info!"); return StatusCode::RECOVERABLE; } @@ -698,8 +699,7 @@ SCTErrMonTool::fillHistograms() { } m_NumberOfEventsVsLB->Fill(m_current_lb); - const SCT_RDO_Container *p_rdocontainer; - ATH_CHECK(evtStore()->retrieve(p_rdocontainer, m_dataObjectName)); + SG::ReadHandle<SCT_RDO_Container> p_rdocontainer(m_dataObjectName); Identifier SCT_Identifier; // Define variables for error histograms @@ -1010,10 +1010,10 @@ SCTErrMonTool::numByteStreamErrors(const std::set<IdentifierHash> *errors, int & StatusCode SCTErrMonTool::fillByteStreamErrors() { // Masked and ROB Fragment vs. lb - const xAOD::EventInfo *pEvent(0); + SG::ReadHandle<xAOD::EventInfo> pEvent; msg(MSG::INFO) << "INFO|| monitor ||INFO" << endmsg; - if (evtStore()->retrieve(pEvent).isFailure()) { + if (not pEvent.isValid()) { if (msgLvl(MSG::ERROR)) { msg(MSG::ERROR) << "Could not retrieve event info!" << endmsg; } diff --git a/InnerDetector/InDetMonitoring/SCT_Monitoring/src/SCTHitEffMonTool.cxx b/InnerDetector/InDetMonitoring/SCT_Monitoring/src/SCTHitEffMonTool.cxx index ebe167deb26..cc2a113ecd8 100755 --- a/InnerDetector/InDetMonitoring/SCT_Monitoring/src/SCTHitEffMonTool.cxx +++ b/InnerDetector/InDetMonitoring/SCT_Monitoring/src/SCTHitEffMonTool.cxx @@ -31,6 +31,7 @@ #include "AthenaMonitoring/AthenaMonManager.h" #include "EventInfo/EventID.h" #include "EventInfo/EventInfo.h" +#include "StoreGate/ReadHandle.h" #include "SCT_ConditionsServices/ISCT_ConfigurationConditionsSvc.h" @@ -1104,10 +1105,10 @@ SCTHitEffMonTool::fillHistograms() { VERBOSE("SCTHitEffMonTool::fillHistograms()"); string m_comTimeName("TRT_Phase"); Double_t timecor(-20.); - const ComTime *theComTime; + SG::ReadHandle<ComTime> theComTime(m_comTimeName); if (m_useTRTPhase or m_isCosmic) { if (evtStore()->contains<ComTime>(m_comTimeName)) { - if (StatusCode::SUCCESS == evtStore()->retrieve(theComTime, m_comTimeName)) { + if (theComTime.isValid()) { timecor = theComTime->getTime(); VERBOSE("Retrieved ComTime object with name " << m_comTimeName << " found: Time = " << timecor); } else { @@ -1121,10 +1122,9 @@ SCTHitEffMonTool::fillHistograms() { } // If we are going to use TRT phase in anger, need run-dependent corrections. EventID *eventID; - const EventInfo *pEvent(0); - CHECK(evtStore()->retrieve(pEvent)); - if (not pEvent) { - return ERROR("Could not find event pointer"), StatusCode::FAILURE; + SG::ReadHandle<EventInfo> pEvent; + if (not pEvent.isValid()) { + return ERROR("Could not find EventInfo"), StatusCode::FAILURE; } eventID = pEvent->event_ID(); unsigned BCID = eventID->bunch_crossing_id(); @@ -1138,9 +1138,9 @@ SCTHitEffMonTool::fillHistograms() { } // ---- First try if m_tracksName is a TrackCollection - const TrackCollection *m_tracks(0); + SG::ReadHandle<TrackCollection>m_tracks(m_TrackName); if (evtStore()->contains<TrackCollection> (m_TrackName)) { - if (evtStore()->retrieve(m_tracks, m_TrackName).isFailure()) { + if (not m_tracks.isValid()) { WARNING("Tracks not found: " << m_tracks << " / " << m_TrackName); if (m_chronotime) { m_chrono->chronoStop("SCTHitEff"); @@ -1157,8 +1157,8 @@ SCTHitEffMonTool::fillHistograms() { return StatusCode::SUCCESS; } - const InDet::SCT_ClusterContainer *p_sctclcontainer; - if (evtStore()->retrieve(p_sctclcontainer, "SCT_Clusters").isFailure()) { + SG::ReadHandle<InDet::SCT_ClusterContainer> p_sctclcontainer("SCT_Clusters"); + if (not p_sctclcontainer.isValid()) { WARNING("SCT clusters container not found: " << p_sctclcontainer); if (m_chronotime) { m_chrono->chronoStop("SCTHitEff"); @@ -1307,7 +1307,7 @@ SCTHitEffMonTool::fillHistograms() { } if (m_sctId->is_sct(surfaceID)) { m_NHits[bec2Index(m_sctId->barrel_ec(surfaceID))]++; - mapOfTrackHitResiduals[surfaceID] = getResidual(surfaceID, (*TSOSItr)->trackParameters(), p_sctclcontainer); + mapOfTrackHitResiduals[surfaceID] = getResidual(surfaceID, (*TSOSItr)->trackParameters(), &*p_sctclcontainer); } } @@ -1374,7 +1374,7 @@ SCTHitEffMonTool::fillHistograms() { Float_t layerPlusHalfSide(float(layer) + float(side) * 0.5); Float_t dedicated_layerPlusHalfSide(float(layer) + float((side + 1) % 2) * 0.5); const Trk::TrackParameters *trkParamOnSurface((*TSOSItr)->trackParameters()); - Double_t trackHitResidual(getResidual(surfaceID, trkParamOnSurface, p_sctclcontainer)); + Double_t trackHitResidual(getResidual(surfaceID, trkParamOnSurface, &*p_sctclcontainer)); Float_t distCut(m_effdistcut); diff --git a/InnerDetector/InDetMonitoring/SCT_Monitoring/src/SCTHitsNoiseMonTool.cxx b/InnerDetector/InDetMonitoring/SCT_Monitoring/src/SCTHitsNoiseMonTool.cxx index fe6cff824a5..ba0e6f09f0b 100755 --- a/InnerDetector/InDetMonitoring/SCT_Monitoring/src/SCTHitsNoiseMonTool.cxx +++ b/InnerDetector/InDetMonitoring/SCT_Monitoring/src/SCTHitsNoiseMonTool.cxx @@ -64,6 +64,8 @@ #include "InDetRIO_OnTrack/PixelClusterOnTrack.h" // ? #include "cArrayUtilities.h" +#include "StoreGate/ReadHandle.h" + typedef Trk::SpacePoint SpacePoint; using namespace std; using namespace SCT_Monitoring; @@ -219,7 +221,6 @@ SCTHitsNoiseMonTool::SCTHitsNoiseMonTool(const std::string &type, m_booltxscan(false), m_current_lb(0), m_last_reset_lb(0), - m_tracks(nullptr), m_tbinHisto(nullptr), m_tbinHistoECp(nullptr), m_tbinHistoECm(nullptr), @@ -538,8 +539,8 @@ StatusCode SCTHitsNoiseMonTool::fillHistograms() { ++m_numberOfEvents; ++m_numberOfEventsRecent; - const EventInfo *pEvent(0); - if (evtStore()->retrieve(pEvent).isFailure()) { + SG::ReadHandle<EventInfo> pEvent; + if (not pEvent.isValid()) { if (msgLvl(MSG::ERROR)) { msg(MSG::ERROR) << "Could not retrieve event info!" << endmsg; } @@ -795,22 +796,22 @@ SCTHitsNoiseMonTool::checkHists(bool /*fromFinalize*/) { StatusCode SCTHitsNoiseMonTool::generalHistsandNoise() { typedef SCT_RDORawData SCTRawDataType; - const SCT_RDO_Container *p_rdocontainer; - const EventInfo *pEvent(0); - if (evtStore()->retrieve(pEvent).isFailure()) { + SG::ReadHandle<SCT_RDO_Container> p_rdocontainer(m_dataObjectName); + SG::ReadHandle<EventInfo> pEvent; + if (not pEvent.isValid()) { if (msgLvl(MSG::ERROR)) { msg(MSG::ERROR) << "Could not retrieve event info!" << endmsg; } return StatusCode::FAILURE; } unsigned int current_lb = pEvent->event_ID()->lumi_block(); - if (evtStore()->retrieve(p_rdocontainer, m_dataObjectName).isFailure()) { + if (not p_rdocontainer.isValid()) { return StatusCode::FAILURE; } // Get the space point container - const SpacePointContainer *sctContainer; m_SCTSPContainerName = "SCT_SpacePoints"; - if (evtStore()->retrieve(sctContainer, m_SCTSPContainerName).isFailure()) { + SG::ReadHandle<SpacePointContainer> sctContainer(m_SCTSPContainerName); + if (not sctContainer.isValid()) { return StatusCode::FAILURE; } Identifier SCT_Identifier; @@ -1255,9 +1256,8 @@ SCTHitsNoiseMonTool::generalHistsandNoise() { // if(m_environment!=AthenaMonManager::online){ // Uncomment this line to turn off cluster hists in online // Fill Cluster size histogram - const InDet::SCT_ClusterContainer *p_clucontainer; - StatusCode sc = evtStore()->retrieve(p_clucontainer, "SCT_Clusters"); - if (sc.isFailure()) { + SG::ReadHandle<InDet::SCT_ClusterContainer> p_clucontainer("SCT_Clusters"); + if (not p_clucontainer.isValid()) { if (msgLvl(MSG::WARNING)) { msg(MSG::WARNING) << "Couldn't retrieve clusters" << endmsg; } @@ -3058,12 +3058,10 @@ SCTHitsNoiseMonTool::bookSPvsEventNumber() { StatusCode SCTHitsNoiseMonTool::makeSPvsEventNumber() { // Retrieve the spacepoint collection - StatusCode sc; - const SpacePointContainer *m_SCT_spcontainer; + SG::ReadHandle<SpacePointContainer> SCT_spcontainer("SCT_SpacePoints"); // get space points for SCT from TDS - sc = evtStore()->retrieve(m_SCT_spcontainer, "SCT_SpacePoints"); - if (sc.isFailure() || !m_SCT_spcontainer) { + if (not SCT_spcontainer.isValid()) { if (msgLvl(MSG::WARNING)) { msg(MSG::WARNING) << "Si SpacePoint container for SCT not found" << endmsg; } @@ -3071,8 +3069,8 @@ SCTHitsNoiseMonTool::makeSPvsEventNumber() { } int m_sct_nspacepoints(0); // loop over SCT space points collections - SpacePointContainer::const_iterator it = m_SCT_spcontainer->begin(); - SpacePointContainer::const_iterator endit = m_SCT_spcontainer->end(); + SpacePointContainer::const_iterator it = SCT_spcontainer->begin(); + SpacePointContainer::const_iterator endit = SCT_spcontainer->end(); for (; it != endit; ++it) { const SpacePointCollection *colNext = &(**it); if (!colNext) { @@ -3143,9 +3141,8 @@ SCTHitsNoiseMonTool::makeVectorOfTrackRDOIdentifiers() { // Clear the RDOsOnTracks vector m_RDOsOnTracks.clear(); - const SCT_RDO_Container *p_rdocontainer; - sc = evtStore()->retrieve(p_rdocontainer, m_dataObjectName); - if (sc.isFailure() || !p_rdocontainer) { + SG::ReadHandle<SCT_RDO_Container> p_rdocontainer(m_dataObjectName); + if (not p_rdocontainer.isValid()) { msg(MSG::FATAL) << "Could not find the data object " << m_dataObjectName << " !" << endmsg; return StatusCode::FAILURE; } else { @@ -3153,14 +3150,14 @@ SCTHitsNoiseMonTool::makeVectorOfTrackRDOIdentifiers() { msg(MSG::DEBUG) << "Data object " << m_dataObjectName << " found" << endmsg; } } - - sc = evtStore()->retrieve(m_tracks, m_tracksName); - if (sc.isFailure()) { + + SG::ReadHandle<DataVector<Trk::Track> > tracks(m_tracksName); + if (not tracks.isValid()) { msg(MSG::FATAL) << "No tracks for you!" << endmsg; - return sc; + return StatusCode::FAILURE; } // Only do for events with less than some number of tracks - if (m_tracks->size() > m_maxTracks) { + if (tracks->size() > m_maxTracks) { if (msgLvl(MSG::DEBUG)) { msg(MSG::DEBUG) << "The event has more than " << m_maxTracks << " tracks. Don't do hits-on-track-hists" << endmsg; @@ -3168,8 +3165,8 @@ SCTHitsNoiseMonTool::makeVectorOfTrackRDOIdentifiers() { return StatusCode::SUCCESS; } // assemble list of rdo ids associated with tracks - for (int i = 0; i < (int) m_tracks->size(); i++) { - const Trk::Track *track = (*m_tracks)[i]; + for (int i = 0; i < (int) tracks->size(); i++) { + const Trk::Track *track = (*tracks)[i]; if (track == 0) { if (msgLvl(MSG::WARNING)) { msg(MSG::WARNING) << "no pointer to track!!!" << endmsg; diff --git a/InnerDetector/InDetMonitoring/SCT_Monitoring/src/SCTLorentzMonTool.cxx b/InnerDetector/InDetMonitoring/SCT_Monitoring/src/SCTLorentzMonTool.cxx index 58abc0f6db4..18837d8ada7 100755 --- a/InnerDetector/InDetMonitoring/SCT_Monitoring/src/SCTLorentzMonTool.cxx +++ b/InnerDetector/InDetMonitoring/SCT_Monitoring/src/SCTLorentzMonTool.cxx @@ -16,6 +16,7 @@ #include "GaudiKernel/StatusCode.h" #include "GaudiKernel/IToolSvc.h" +#include "StoreGate/ReadHandle.h" #include "TH1F.h" #include "TH2F.h" @@ -158,9 +159,9 @@ SCTLorentzMonTool::fillHistograms() { ATH_MSG_DEBUG("enters fillHistograms"); - const TrackCollection *tracks(0); + SG::ReadHandle<TrackCollection> tracks(m_tracksName); if (evtStore()->contains<TrackCollection> (m_tracksName)) { - if (evtStore()->retrieve(tracks, m_tracksName).isFailure()) { + if (not tracks.isValid()) { msg(MSG::WARNING) << " TrackCollection not found: Exit SCTLorentzTool" << m_tracksName << endmsg; return StatusCode::SUCCESS; } diff --git a/InnerDetector/InDetMonitoring/SCT_Monitoring/src/SCTMotherTrigMonTool.cxx b/InnerDetector/InDetMonitoring/SCT_Monitoring/src/SCTMotherTrigMonTool.cxx index b2aa155c89c..60007d62506 100755 --- a/InnerDetector/InDetMonitoring/SCT_Monitoring/src/SCTMotherTrigMonTool.cxx +++ b/InnerDetector/InDetMonitoring/SCT_Monitoring/src/SCTMotherTrigMonTool.cxx @@ -14,6 +14,7 @@ #include "GaudiKernel/StatusCode.h" #include "EventInfo/EventInfo.h" #include "EventInfo/TriggerInfo.h" +#include "StoreGate/ReadHandle.h" const std::string SCTMotherTrigMonTool::m_triggerNames[] = { "RNDM", "BPTX", "L1CAL", "TGC", "RPC", "MBTS", "COSM", "Calib" @@ -40,10 +41,8 @@ SCTMotherTrigMonTool::initialize() { // --------------------------------------------------------- StatusCode SCTMotherTrigMonTool::checkTriggers() { - const EventInfo *evtInfo(0); - if (evtStore()->contains<EventInfo>("ByteStreamEventInfo")) { - evtStore()->retrieve(evtInfo, "ByteStreamEventInfo"); + SG::ReadHandle<EventInfo> evtInfo("ByteStreamEventInfo"); m_firedTriggers = evtInfo->trigger_info()->level1TriggerType(); return StatusCode::SUCCESS; @@ -83,10 +82,8 @@ SCTMotherTrigMonTool::isCalibrationNoise(const std::string &L1_Item) { bool SCTMotherTrigMonTool::isStream(const std::string &StreamName) { - const EventInfo *evtInfo(0); - if (evtStore()->contains<EventInfo>("ByteStreamEventInfo")) { - evtStore()->retrieve(evtInfo, "ByteStreamEventInfo"); + SG::ReadHandle<EventInfo> evtInfo("ByteStreamEventInfo"); m_isStream = false; diff --git a/InnerDetector/InDetMonitoring/SCT_Monitoring/src/SCTRatioNoiseMonTool.cxx b/InnerDetector/InDetMonitoring/SCT_Monitoring/src/SCTRatioNoiseMonTool.cxx index 0418652c781..8da03ec450c 100755 --- a/InnerDetector/InDetMonitoring/SCT_Monitoring/src/SCTRatioNoiseMonTool.cxx +++ b/InnerDetector/InDetMonitoring/SCT_Monitoring/src/SCTRatioNoiseMonTool.cxx @@ -47,6 +47,7 @@ #include "InDetConditionsSummaryService/IInDetConditionsSvc.h" #include "EventInfo/EventID.h" #include "EventInfo/EventInfo.h" +#include "StoreGate/ReadHandle.h" // using namespace std; @@ -322,8 +323,8 @@ SCTRatioNoiseMonTool::fillHistograms() { ATH_MSG_DEBUG("enters fillHistograms"); // lets get the raw hit container typedef SCT_RDORawData SCTRawDataType; - const SCT_RDO_Container *p_rdocontainer; - if (evtStore()->retrieve(p_rdocontainer, m_dataObjectName).isFailure()) { + SG::ReadHandle<SCT_RDO_Container> p_rdocontainer(m_dataObjectName); + if (not p_rdocontainer.isValid()) { return StatusCode::FAILURE; } @@ -364,9 +365,8 @@ SCTRatioNoiseMonTool::fillHistograms() { goodModules[i] = true; } - const EventInfo *pEvent(0); - CHECK(evtStore()->retrieve(pEvent)); - if (not pEvent) { + SG::ReadHandle<EventInfo> pEvent; + if (not pEvent.isValid()) { return ERROR("Could not find event pointer"), StatusCode::FAILURE; } -- GitLab