From c7f02218c4ea503916cf82dd8b9dc9352108dffe Mon Sep 17 00:00:00 2001
From: Susumu Oda <Susumu.Oda@cern.ch>
Date: Fri, 9 Sep 2016 15:16:42 +0200
Subject: [PATCH] Fix ATLASRECTS-3489 (SCT_Monitoring-00-06-80)

	* Fix ATLASRECTS-3489 by using EventInfo (xAOD::EventInfo_v1)
	  instead of ByteStreamEventInfo (EventInfo) in src/SCTErrMonTool.cxx.
        * Update CMakeLists.txt to use xAODEventInfo.
	* Update cmt/requirements to use xAODEventInfo and fix compilation warnings.
	* tag as SCT_Monitoring-00-06-80
---
 .../SCT_Monitoring/CMakeLists.txt               |  1 +
 .../SCT_Monitoring/cmt/requirements             |  3 ++-
 .../SCT_Monitoring/src/SCTErrMonTool.cxx        | 17 ++++++++---------
 3 files changed, 11 insertions(+), 10 deletions(-)

diff --git a/InnerDetector/InDetMonitoring/SCT_Monitoring/CMakeLists.txt b/InnerDetector/InDetMonitoring/SCT_Monitoring/CMakeLists.txt
index eaab33a9fc6..65014e9bb11 100644
--- a/InnerDetector/InDetMonitoring/SCT_Monitoring/CMakeLists.txt
+++ b/InnerDetector/InDetMonitoring/SCT_Monitoring/CMakeLists.txt
@@ -25,6 +25,7 @@ atlas_depends_on_subdirs( PUBLIC
                           Control/DataModel
                           DetectorDescription/Identifier
                           Event/EventInfo
+                          Event/xAOD/xAODEventInfo
                           InnerDetector/InDetDetDescr/InDetIdentifier
                           InnerDetector/InDetRawEvent/InDetRawData
                           InnerDetector/InDetRecEvent/InDetRIO_OnTrack
diff --git a/InnerDetector/InDetMonitoring/SCT_Monitoring/cmt/requirements b/InnerDetector/InDetMonitoring/SCT_Monitoring/cmt/requirements
index ccf41c2e0c5..273b6bee9cb 100755
--- a/InnerDetector/InDetMonitoring/SCT_Monitoring/cmt/requirements
+++ b/InnerDetector/InDetMonitoring/SCT_Monitoring/cmt/requirements
@@ -5,6 +5,7 @@ author Shaun Roe <shaun.roe@cern.ch>
 private
 # General
 use EventInfo         			EventInfo-*             Event
+use xAODEventInfo                        xAODEventInfo-*        Event/xAOD
 use DataModel         			DataModel-*             Control
 use AthenaKernel                AthenaKernel-*          Control
 
@@ -45,7 +46,7 @@ use AtlasROOT                   AtlasROOT-*             External
 use InDetPrepRawData            InDetPrepRawData-*      InnerDetector/InDetRecEvent
 use InDetReadoutGeometry        InDetReadoutGeometry-*  InnerDetector/InDetDetDescr
 
-use AtlasBoost                  AtlasBoost-*            External
+#use AtlasBoost                  AtlasBoost-*            External
 use GaudiInterface              GaudiInterface-*        External
 
 use AthenaMonitoring            AthenaMonitoring-*      Control
diff --git a/InnerDetector/InDetMonitoring/SCT_Monitoring/src/SCTErrMonTool.cxx b/InnerDetector/InDetMonitoring/SCT_Monitoring/src/SCTErrMonTool.cxx
index 91c0a5378ac..36027a2962a 100755
--- a/InnerDetector/InDetMonitoring/SCT_Monitoring/src/SCTErrMonTool.cxx
+++ b/InnerDetector/InDetMonitoring/SCT_Monitoring/src/SCTErrMonTool.cxx
@@ -38,8 +38,7 @@
 #include "Identifier/Identifier.h"
 #include "InDetIdentifier/SCT_ID.h"
 #include "InDetReadoutGeometry/SCT_DetectorManager.h"
-#include "EventInfo/EventID.h"
-#include "EventInfo/EventInfo.h"
+#include "xAODEventInfo/EventInfo.h"
 #include "cArrayUtilities.h"
 #include <vector>
 #include <set>
@@ -225,12 +224,12 @@ SCTErrMonTool::SCTErrMonTool(const std::string & type,const std::string & name,c
   m_LinksWithBadErrorsVsLBLayer{},
   m_LinksWithLnkErrorsVsLBLayer{},
   m_LinksWithRODErrorsVsLBLayer{},
+  m_NumberOfSCTFlagErrorsVsLB{},
+  m_NumberOfEventsVsLB{},
   m_ConfEffOnline{},
   m_ConfNoiseOnline{},
   m_ConfNoiseOnlineRecent{},
   m_DetailedConfiguration{},
-  m_NumberOfSCTFlagErrorsVsLB{},
-  m_NumberOfEventsVsLB{},
   m_thistSvc("THistSvc",name),
   m_byteStreamErrSvc("SCT_ByteStreamErrorsSvc",name),
   m_checkBadModules(true),
@@ -378,17 +377,17 @@ StatusCode SCTErrMonTool::bookHistograms()
 //====================================================================================================
 StatusCode SCTErrMonTool::fillHistograms(){
   typedef SCT_RDORawData SCTRawDataType;
-  const EventInfo* pEvent(0);
+  const xAOD::EventInfo* pEvent(0);
   if( evtStore()->retrieve(pEvent).isFailure() ) {
     ATH_MSG_WARNING( "Could not retrieve event info!" );
     return StatusCode::RECOVERABLE; 
   }
-  m_current_lb = pEvent->event_ID()->lumi_block();
+  m_current_lb = pEvent->lumiBlock();
   if (fillByteStreamErrors().isFailure() ) {
     ATH_MSG_ERROR("Could not fill ByteStreamErrors ");
     return StatusCode::FAILURE;
   }
-  if(pEvent->errorState(EventInfo::SCT)==EventInfo::Error){
+  if(pEvent->errorState(xAOD::EventInfo::SCT)==xAOD::EventInfo::Error){
     //ATH_MSG_WARNING("SCT_Flag==FALSE:: LVL1ID Errors >500 ");
     m_NumberOfSCTFlagErrorsVsLB->Fill(m_current_lb);
     return StatusCode::SUCCESS;
@@ -710,12 +709,12 @@ void SCTErrMonTool::numByteStreamErrors(const std::set<IdentifierHash>* errors,
 StatusCode SCTErrMonTool::fillByteStreamErrors() {
 
   // Masked and ROB Fragment vs. lb
-  const EventInfo* pEvent(0);
+  const xAOD::EventInfo* pEvent(0);
   if( evtStore()->retrieve(pEvent).isFailure() ) {
     if (msgLvl(MSG::ERROR)) msg(MSG::ERROR) << "Could not retrieve event info!" <<endreq;
     return StatusCode::FAILURE;
   }
-  unsigned int current_lb = pEvent->event_ID()->lumi_block();
+  unsigned int current_lb = pEvent->lumiBlock();
   
   int bytestream_errs[N_ERRTYPES][NREGIONS_INC_GENERAL];
   int tot_mod_bytestream_errs[N_ERRTYPES][NREGIONS_INC_GENERAL];
-- 
GitLab