diff --git a/TileCalorimeter/TileCalib/TileCalibAlgs/TileCalibAlgs/TileCisDefaultCalibTool.h b/TileCalorimeter/TileCalib/TileCalibAlgs/TileCalibAlgs/TileCisDefaultCalibTool.h index 982ddab3fadcec1233593e9767f9065eccda6de4..27885bae46339a33d07da1998c3172a0b0e28fee 100644 --- a/TileCalorimeter/TileCalib/TileCalibAlgs/TileCalibAlgs/TileCisDefaultCalibTool.h +++ b/TileCalorimeter/TileCalib/TileCalibAlgs/TileCalibAlgs/TileCisDefaultCalibTool.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ #ifndef TILECALIBALG_TILECISDEFAULTCALIBTOOL_H @@ -16,6 +16,8 @@ // Tile includes #include "TileCalibAlgs/ITileCalibTool.h" #include "TileConditions/TileCablingService.h" +#include "TileEvent/TileDQstatus.h" +#include "StoreGate/ReadHandleKey.h" #include "TString.h" @@ -24,7 +26,6 @@ #include <map> // Forward declaration -class TileBeamInfoProvider; class TileHWID; class TileCablingSvc; class TFile; @@ -40,12 +41,12 @@ class TileCisDefaultCalibTool: public AthAlgTool const IInterface* pParent); virtual ~TileCisDefaultCalibTool(); - virtual StatusCode initialize(); - virtual StatusCode initNtuple(int runNumber, int runType, TFile * rootfile); - virtual StatusCode execute(); - virtual StatusCode finalizeCalculations(); - virtual StatusCode writeNtuple(int runNumber, int runType, TFile * rootfile); - virtual StatusCode finalize(); + virtual StatusCode initialize() override; + virtual StatusCode initNtuple(int runNumber, int runType, TFile * rootfile) override; + virtual StatusCode execute() override; + virtual StatusCode finalizeCalculations() override; + virtual StatusCode writeNtuple(int runNumber, int runType, TFile * rootfile) override; + virtual StatusCode finalize() override; private: @@ -85,8 +86,8 @@ class TileCisDefaultCalibTool: public AthAlgTool const TileHWID* m_tileHWID; const TileCablingService* m_cabling; ServiceHandle<TileCablingSvc> m_cablingSvc; - ToolHandle<TileBeamInfoProvider> m_beamPrv; ToolHandle<ITileStuckBitsProbsTool> m_stuckBitsProbs; + SG::ReadHandleKey<TileDQstatus> m_dqStatusKey; // jobOptions std::string m_rawChannelContainerName; diff --git a/TileCalorimeter/TileCalib/TileCalibAlgs/TileCalibAlgs/TileDigiNoiseCalibAlg.h b/TileCalorimeter/TileCalib/TileCalibAlgs/TileCalibAlgs/TileDigiNoiseCalibAlg.h index 5ac36415ba16e5a1beb2c0e4790cc830c86aba7a..68f8cc753a4972510b7ded9f03716de0735fbbb5 100644 --- a/TileCalorimeter/TileCalib/TileCalibAlgs/TileCalibAlgs/TileDigiNoiseCalibAlg.h +++ b/TileCalorimeter/TileCalib/TileCalibAlgs/TileCalibAlgs/TileDigiNoiseCalibAlg.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ #ifndef TILEDIGINOISECALIBALG_H @@ -23,6 +23,8 @@ // Tile includes #include "TileConditions/TileCablingService.h" +#include "TileEvent/TileDQstatus.h" +#include "StoreGate/ReadHandleKey.h" #include <cmath> #include <vector> @@ -32,7 +34,6 @@ // Forward declaration class TileHWID; -class TileBeamInfoProvider; class TileBeamElemContByteStreamCnv; class TileRawChannelBuilderFlatFilter; class TileOFCorrelation; @@ -43,9 +44,9 @@ class TileDigiNoiseCalibAlg: public AthAlgorithm { virtual ~TileDigiNoiseCalibAlg(); // Functions - StatusCode initialize(); //only array initialization is done here - StatusCode execute(); - StatusCode finalize(); + virtual StatusCode initialize() override; //only array initialization is done here + virtual StatusCode execute() override; + virtual StatusCode finalize() override; private: @@ -59,9 +60,9 @@ class TileDigiNoiseCalibAlg: public AthAlgorithm { StatusCode FirstEvt_initialize(); // real initialization is done in this method - StatusCode fillDigits(); //accumulate statistics for pedestal, lfn, hfn, noise_cov calculation + StatusCode fillDigits (const TileDQstatus* theDQstatus); //accumulate statistics for pedestal, lfn, hfn, noise_cov calculation void finalDigits(); // pedestal, lfn, hfn, noise_cov calculation is done here - void StoreRunInfo(); // called only at the first event. General variables + void StoreRunInfo (const TileDQstatus* dqStatus); // called only at the first event. General variables inline int digiChannel2PMT(int ros, int chan) { return (abs(m_cabling->channel2hole(ros, chan)) - 1); @@ -81,8 +82,9 @@ class TileDigiNoiseCalibAlg: public AthAlgorithm { // Default: use standard bool m_doRobustCov; - // Tools / storegate info - ToolHandle<TileBeamInfoProvider> m_beamInfo; + SG::ReadHandleKey<TileDQstatus> m_dqStatusKey; + + // Tools / storegate info ToolHandle<TileRawChannelBuilderFlatFilter> m_adderFilterAlgTool; TileBeamElemContByteStreamCnv* m_beamCnv; const TileCablingService* m_cabling; diff --git a/TileCalorimeter/TileCalib/TileCalibAlgs/TileCalibAlgs/TileLaserDefaultCalibTool.h b/TileCalorimeter/TileCalib/TileCalibAlgs/TileCalibAlgs/TileLaserDefaultCalibTool.h index 92eeb8222115b1f6054a5838945ab5bdfcd46b50..df52a945e1fd61cd02444e5cb975461f5769933a 100644 --- a/TileCalorimeter/TileCalib/TileCalibAlgs/TileCalibAlgs/TileLaserDefaultCalibTool.h +++ b/TileCalorimeter/TileCalib/TileCalibAlgs/TileCalibAlgs/TileLaserDefaultCalibTool.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ #ifndef TILECALIBALG_TILELASERDEFAULTCALIBTOOL_H @@ -8,6 +8,8 @@ #include "AthenaBaseComps/AthAlgTool.h" #include "TileCalibAlgs/ITileCalibTool.h" +#include "TileEvent/TileDQstatus.h" +#include "StoreGate/ReadHandleKey.h" #include <string> #include <map> #include <cmath> @@ -33,7 +35,6 @@ class TileRawChannelContainer; -class TileBeamInfoProvider; class TileLaserObject; class TileHWID; class TFile; @@ -48,12 +49,12 @@ class TileLaserDefaultCalibTool : public AthAlgTool, virtual public ITileCalibTo TileLaserDefaultCalibTool(const std::string& type, const std::string& name,const IInterface* pParent); virtual ~TileLaserDefaultCalibTool(); - virtual StatusCode initialize(); - virtual StatusCode initNtuple(int runNumber, int runType, TFile * rootfile); - virtual StatusCode execute(); - virtual StatusCode finalizeCalculations(); - virtual StatusCode writeNtuple(int runNumber, int runType, TFile * rootfile); - virtual StatusCode finalize(); + virtual StatusCode initialize() override; + virtual StatusCode initNtuple(int runNumber, int runType, TFile * rootfile) override; + virtual StatusCode execute() override; + virtual StatusCode finalizeCalculations() override; + virtual StatusCode writeNtuple(int runNumber, int runType, TFile * rootfile) override; + virtual StatusCode finalize() override; private: @@ -70,8 +71,8 @@ class TileLaserDefaultCalibTool : public AthAlgTool, virtual public ITileCalibTo const TileCablingService* m_cabling; ToolHandle<TileCondToolEmscale> m_tileToolEmscale; ToolHandle<ITileBadChanTool> m_tileBadChanTool; - TileBeamInfoProvider *m_beamInfo; ToolHandle<ITileStuckBitsProbsTool> m_stuckBitsProbs; + SG::ReadHandleKey<TileDQstatus> m_dqStatusKey; ServiceHandle<TileDCSSvc> m_tileDCSSvc; //!< Pointer to TileDCSSvc diff --git a/TileCalorimeter/TileCalib/TileCalibAlgs/TileCalibAlgs/TileLaserLinearityCalibTool.h b/TileCalorimeter/TileCalib/TileCalibAlgs/TileCalibAlgs/TileLaserLinearityCalibTool.h index 1439061543e2e983e0d73730d18030c9214b9964..7c69e0edd9a76ead97e15efd3f2e946ec2ddfac2 100644 --- a/TileCalorimeter/TileCalib/TileCalibAlgs/TileCalibAlgs/TileLaserLinearityCalibTool.h +++ b/TileCalorimeter/TileCalib/TileCalibAlgs/TileCalibAlgs/TileLaserLinearityCalibTool.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ #ifndef TILECALIBALG_TILELASERLINEARITYCALIBTOOL_H @@ -14,9 +14,10 @@ #include "TileConditions/TileCablingService.h" #include "TileConditions/TileCondToolEmscale.h" #include "TileCalibAlgs/TileLaserDefaultCalibTool.h" +#include "TileEvent/TileDQstatus.h" +#include "StoreGate/ReadHandleKey.h" class TileRawChannelContainer; -class TileBeamInfoProvider; class TileLaserObject; class TileHWID; class TFile; @@ -28,12 +29,12 @@ class TileLaserLinearityCalibTool : public AthAlgTool, virtual public ITileCalib TileLaserLinearityCalibTool(const std::string& type, const std::string& name,const IInterface* pParent); virtual ~TileLaserLinearityCalibTool(); - virtual StatusCode initialize(); - virtual StatusCode initNtuple(int runNumber, int runType, TFile * rootfile); - virtual StatusCode execute(); - virtual StatusCode finalizeCalculations(); - virtual StatusCode writeNtuple(int runNumber, int runType, TFile * rootfile); - virtual StatusCode finalize(); + virtual StatusCode initialize() override; + virtual StatusCode initNtuple(int runNumber, int runType, TFile * rootfile) override; + virtual StatusCode execute() override; + virtual StatusCode finalizeCalculations() override; + virtual StatusCode writeNtuple(int runNumber, int runType, TFile * rootfile) override; + virtual StatusCode finalize() override; private: @@ -42,11 +43,11 @@ class TileLaserLinearityCalibTool : public AthAlgTool, virtual public ITileCalib std::string m_rawChannelContainerName; std::string m_laserContainerName; + SG::ReadHandleKey<TileDQstatus> m_dqStatusKey; const TileHWID* m_tileHWID; const TileCablingService* m_cabling; ToolHandle<TileCondToolEmscale> m_tileToolEmscale; - TileBeamInfoProvider *m_beamInfo; // Parameter which will end up in the ROOTuple // diff --git a/TileCalorimeter/TileCalib/TileCalibAlgs/TileCalibAlgs/TileLaserTimingTool.h b/TileCalorimeter/TileCalib/TileCalibAlgs/TileCalibAlgs/TileLaserTimingTool.h index c420abe85b03148bc124b3deece1daefd42dd447..4cf198b994799de1105e56d0e5719f6ec4486b4d 100644 --- a/TileCalorimeter/TileCalib/TileCalibAlgs/TileCalibAlgs/TileLaserTimingTool.h +++ b/TileCalorimeter/TileCalib/TileCalibAlgs/TileCalibAlgs/TileLaserTimingTool.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ #ifndef TILECALIBALG_TILELASERTIMINGTOOL_H @@ -52,7 +52,6 @@ #include <sstream> class TileHWID; -class TileBeamInfoProvider; class TileRawChannelContainer; class TFile; @@ -69,12 +68,12 @@ class TileLaserTimingTool: public AthAlgTool, virtual public ITileCalibTool { virtual ~TileLaserTimingTool(); // implementation of ITileCalibTool - virtual StatusCode initialize(); - virtual StatusCode initNtuple(int runNumber, int runType, TFile * rootfile); - virtual StatusCode execute(); - virtual StatusCode finalizeCalculations(); - virtual StatusCode writeNtuple(int runNumber, int runType, TFile * rootfile); - virtual StatusCode finalize(); + virtual StatusCode initialize() override; + virtual StatusCode initNtuple(int runNumber, int runType, TFile * rootfile) override; + virtual StatusCode execute() override; + virtual StatusCode finalizeCalculations() override; + virtual StatusCode writeNtuple(int runNumber, int runType, TFile * rootfile) override; + virtual StatusCode finalize() override; private: /** @@ -234,7 +233,6 @@ class TileLaserTimingTool: public AthAlgTool, virtual public ITileCalibTool { // Tools info const TileHWID* m_tileHWID; const TileCablingService* m_cabling; - ToolHandle<TileBeamInfoProvider> m_beamInfo; ToolHandle<TileCondToolTiming> m_tileToolTiming; // jobOptions diff --git a/TileCalorimeter/TileCalib/TileCalibAlgs/TileCalibAlgs/TileRawChNoiseCalibAlg.h b/TileCalorimeter/TileCalib/TileCalibAlgs/TileCalibAlgs/TileRawChNoiseCalibAlg.h index 49a9a0958303914bad78ea78a5aa0ef4d97f40aa..9db35130aa755c256df065a9129c288bd33d23b6 100644 --- a/TileCalorimeter/TileCalib/TileCalibAlgs/TileCalibAlgs/TileRawChNoiseCalibAlg.h +++ b/TileCalorimeter/TileCalib/TileCalibAlgs/TileCalibAlgs/TileRawChNoiseCalibAlg.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ #ifndef TILERAWCHNOISECALIBALG_H @@ -20,12 +20,14 @@ // Athena includes #include "AthenaBaseComps/AthAlgorithm.h" +#include "StoreGate/ReadHandleKey.h" // Tile includes #include "TileConditions/TileCablingService.h" #include "TileConditions/TileCondIdTransforms.h" #include "TileConditions/TileCondToolEmscale.h" #include "TileConditions/ITileBadChanTool.h" +#include "TileEvent/TileDQstatus.h" #include <cmath> #include <vector> @@ -34,7 +36,6 @@ #include <stdint.h> class TileHWID; -class TileBeamInfoProvider; class TileBeamElemContByteStreamCnv; class TileDQstatus; class TileRawChannel; @@ -47,9 +48,9 @@ class TileRawChNoiseCalibAlg: public AthAlgorithm { virtual ~TileRawChNoiseCalibAlg(); // Functions - StatusCode initialize(); //only array initialization is done here - StatusCode execute(); - StatusCode finalize(); + virtual StatusCode initialize() override; //only array initialization is done here + virtual StatusCode execute() override; + virtual StatusCode finalize() override; void finalRawCh(int rctype); private: @@ -64,8 +65,8 @@ class TileRawChNoiseCalibAlg: public AthAlgorithm { StatusCode FirstEvt_initialize(); // real initialization is done in this method - StatusCode fillRawChannels(std::string rcCnt, RCtype rctype); // raw chans variables is done here - void StoreRunInfo(); // called only at the first event. General variables + StatusCode fillRawChannels(const TileDQstatus* dqStatus, std::string rcCnt, RCtype rctype); // raw chans variables is done here + void StoreRunInfo(const TileDQstatus* dqStatus); // called only at the first event. General variables void removeRC(RCtype rctype); // if a RawChannel container doesn't exist, it is removed from the list void fillCell(TileRawChannelUnit::UNIT RChUnit, const TileRawChannel * rch); @@ -101,15 +102,14 @@ class TileRawChNoiseCalibAlg: public AthAlgorithm { bool m_fillidx; // Tools / storegate info - ToolHandle<TileBeamInfoProvider> m_beamInfo; TileBeamElemContByteStreamCnv* m_beamCnv; - //TileBeamInfoProvider* m_beamPrv; const TileCablingService* m_cabling; // Identifiers const TileID* m_tileID; const TileHWID* m_tileHWID; ToolHandle<TileCondToolEmscale> m_tileToolEmscale; ToolHandle<ITileBadChanTool> m_tileBadChanTool; + SG::ReadHandleKey<TileDQstatus> m_dqStatusKey; ToolHandle<TileCondIdTransforms> m_tileIdTrans; const uint32_t* m_cispar; diff --git a/TileCalorimeter/TileCalib/TileCalibAlgs/TileCalibAlgs/TileTriggerDefaultCalibTool.h b/TileCalorimeter/TileCalib/TileCalibAlgs/TileCalibAlgs/TileTriggerDefaultCalibTool.h index 3ac1b0a213c6b2bcab4c90c7fba171c6f9aef8bf..b6e764b4e03f067a4c9f0a0e28445542b5ea3c85 100644 --- a/TileCalorimeter/TileCalib/TileCalibAlgs/TileCalibAlgs/TileTriggerDefaultCalibTool.h +++ b/TileCalorimeter/TileCalib/TileCalibAlgs/TileCalibAlgs/TileTriggerDefaultCalibTool.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ #ifndef TILECALIBALG_TILETRIGGERDEFAULTCALIBTOOL_H @@ -11,10 +11,11 @@ #include "TileCalibAlgs/ITileCalibTool.h" #include "TrigT1CaloCalibToolInterfaces/IL1CaloTTIdTools.h" //#include "TrigT1CaloToolInterfaces/IL1TriggerTowerTool.h" +#include "TileEvent/TileDQstatus.h" +#include "StoreGate/ReadHandleKey.h" #include <string> -class TileBeamInfoProvider; class TileCablingService; class TileCondToolEmscale; class CaloLVL1_ID; @@ -34,12 +35,12 @@ class TileTriggerDefaultCalibTool : public AthAlgTool, virtual public ITileCalib TileTriggerDefaultCalibTool(const std::string& type, const std::string& name,const IInterface* pParent); virtual ~TileTriggerDefaultCalibTool(); - virtual StatusCode initialize(); - virtual StatusCode initNtuple(int runNumber, int runType, TFile * rootfile); - virtual StatusCode execute(); - virtual StatusCode finalizeCalculations(); - virtual StatusCode writeNtuple(int runNumber, int runType, TFile * rootfile); - virtual StatusCode finalize(); + virtual StatusCode initialize() override; + virtual StatusCode initNtuple(int runNumber, int runType, TFile * rootfile) override; + virtual StatusCode execute() override; + virtual StatusCode finalizeCalculations() override; + virtual StatusCode writeNtuple(int runNumber, int runType, TFile * rootfile) override; + virtual StatusCode finalize() override; private: @@ -51,12 +52,12 @@ class TileTriggerDefaultCalibTool : public AthAlgTool, virtual public ITileCalib unsigned int m_nevpmt; // Tools / storegate info - TileBeamInfoProvider *m_beamPrv; const CaloLVL1_ID* m_TT_ID; const TileHWID* m_tileHWID; const TileID* m_tileID; const TileCablingService* m_tileCablingService; ToolHandle<TileCondToolEmscale> m_tileToolEmscale; //!< main Tile Calibration tool + SG::ReadHandleKey<TileDQstatus> m_dqStatusKey; // Results Tile float m_meanTile[5][64][48]; diff --git a/TileCalorimeter/TileCalib/TileCalibAlgs/share/jobOptions_NoiseCalib.py b/TileCalorimeter/TileCalib/TileCalibAlgs/share/jobOptions_NoiseCalib.py index 840f0e0d004d61a1018ca9caab879e39245cccbf..5ec0f1b1f555cbdba391c2e41279bb1ba85ed5d1 100755 --- a/TileCalorimeter/TileCalib/TileCalibAlgs/share/jobOptions_NoiseCalib.py +++ b/TileCalorimeter/TileCalib/TileCalibAlgs/share/jobOptions_NoiseCalib.py @@ -360,6 +360,9 @@ else: from AthenaCommon.AlgSequence import AlgSequence topSequence = AlgSequence() +from TileRecUtils.TileDQstatusAlgDefault import TileDQstatusAlgDefault +TileDQstatusAlgDefault() + #Add Noise Calib Tool from TileCalibAlgs.TileCalibAlgsConf import TileDigiNoiseCalibAlg diff --git a/TileCalorimeter/TileCalib/TileCalibAlgs/src/TileCisDefaultCalibTool.cxx b/TileCalorimeter/TileCalib/TileCalibAlgs/src/TileCisDefaultCalibTool.cxx index dfc0a5e4bbe758ffbdf82e2d2c4280d6f43f40d6..ad49a74c82769a3745ec507b4563aa6638dd27d2 100644 --- a/TileCalorimeter/TileCalib/TileCalibAlgs/src/TileCisDefaultCalibTool.cxx +++ b/TileCalorimeter/TileCalib/TileCalibAlgs/src/TileCisDefaultCalibTool.cxx @@ -1,21 +1,21 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ // Gaudi includes -#include "GaudiKernel/ListItem.h" #include "GaudiKernel/IToolSvc.h" #include "GaudiKernel/MsgStream.h" #include "GaudiKernel/Service.h" +#include "GaudiKernel/ThreadLocalContext.h" #include "Identifier/HWIdentifier.h" // Athena includes #include "AthenaKernel/errorcheck.h" +#include "StoreGate/ReadHandle.h" // Tile includes #include "TileCalibAlgs/TileCisDefaultCalibTool.h" -#include "TileRecUtils/TileBeamInfoProvider.h" #include "TileEvent/TileRawChannelContainer.h" #include "TileEvent/TileDigitsContainer.h" #include "TileIdentifier/TileHWID.h" @@ -43,7 +43,6 @@ TileCisDefaultCalibTool::TileCisDefaultCalibTool(const std::string& type, const , m_tileHWID(0) , m_cabling(0) , m_cablingSvc("TileCablingSvc", name) - , m_beamPrv("TileBeamInfoProvider") , m_stuckBitsProbs("") , m_scanMap(0) , m_scanMapRMS(0) @@ -68,7 +67,7 @@ TileCisDefaultCalibTool::TileCisDefaultCalibTool(const std::string& type, const declareProperty("doSampleChecking", m_doSampleChecking = true); // do sample checking by default declareProperty("DigitsContainer", m_DigitsContainerName = "TileDigitsCnt"); declareProperty("StuckBitsProbsTool", m_stuckBitsProbs); - + declareProperty("TileDQstatus", m_dqStatusKey = "TileDQstatus"); } TileCisDefaultCalibTool::~TileCisDefaultCalibTool() { @@ -92,11 +91,6 @@ StatusCode TileCisDefaultCalibTool::initialize() { memset(m_BitStatus, 0, sizeof(m_BitStatus)); memset(m_NumSamp, 0, sizeof(m_NumSamp)); - // get beam info tool - CHECK( m_beamPrv.retrieve() ); - - CHECK( m_beamPrv->setProperty("TileRawChannelContainer", "TileRawChannelCnt") ); - // get TileHWID helper CHECK( detStore()->retrieve(m_tileHWID) ); @@ -104,6 +98,8 @@ StatusCode TileCisDefaultCalibTool::initialize() { CHECK( m_cablingSvc.retrieve() ); m_cabling = m_cablingSvc->cablingService(); + CHECK( m_dqStatusKey.initialize() ); + return StatusCode::SUCCESS; } @@ -117,15 +113,16 @@ StatusCode TileCisDefaultCalibTool::execute() { ATH_MSG_DEBUG( "execute()" ); + // Get the DQ digital check information + const EventContext& ctx = Gaudi::Hive::currentContext(); + const TileDQstatus* theDQstatus = SG::makeHandle (m_dqStatusKey, ctx).get(); + // Get event's CIS parameters - const uint32_t *cispar = m_beamPrv->cispar(); + const uint32_t *cispar = theDQstatus->cispar(); uint32_t dac = cispar[6]; uint32_t phase = cispar[5]; uint32_t cap = cispar[7]; - // Get the DQ digital check information - const TileDQstatus * theDQstatus = m_beamPrv->getDQstatus(); - // Check if event should be used in calibration bool pass = true; if (cap == 100 && m_useSmallCap) diff --git a/TileCalorimeter/TileCalib/TileCalibAlgs/src/TileDigiNoiseCalibAlg.cxx b/TileCalorimeter/TileCalib/TileCalibAlgs/src/TileDigiNoiseCalibAlg.cxx index 16be57fa8ce69b571f2fd09e2c5df897d395a1c4..b5da646dd5dd8d92f4fba4730638fe774b81ead2 100644 --- a/TileCalorimeter/TileCalib/TileCalibAlgs/src/TileDigiNoiseCalibAlg.cxx +++ b/TileCalorimeter/TileCalib/TileCalibAlgs/src/TileDigiNoiseCalibAlg.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ // ******************************************************************** @@ -14,14 +14,15 @@ // Gaudi includes #include "GaudiKernel/ServiceHandle.h" +#include "GaudiKernel/ThreadLocalContext.h" //Event info #include "xAODEventInfo/EventInfo.h" +#include "StoreGate/ReadHandle.h" #include "AthenaKernel/errorcheck.h" // Tile includes #include "TileCalibAlgs/TileDigiNoiseCalibAlg.h" -#include "TileRecUtils/TileBeamInfoProvider.h" #include "TileEvent/TileRawChannelContainer.h" #include "CaloIdentifier/TileID.h" #include "TileIdentifier/TileHWID.h" @@ -29,7 +30,6 @@ #include "TileEvent/TileBeamElemContainer.h" #include "TileEvent/TileRawChannelContainer.h" #include "TileRecUtils/TileRawChannelBuilderFlatFilter.h" -#include "TileRecUtils/TileBeamInfoProvider.h" #include "TileByteStream/TileBeamElemContByteStreamCnv.h" #include "TileCalibAlgs/TileOFCorrelation.h" #include "TileCalibBlobObjs/TileCalibUtils.h" @@ -48,7 +48,6 @@ TileDigiNoiseCalibAlg::TileDigiNoiseCalibAlg(const std::string& name, ISvcLocator* pSvcLocator) : AthAlgorithm(name, pSvcLocator) - , m_beamInfo("TileBeamInfoProvider/TileBeamInfoProvider") , m_adderFilterAlgTool("TileRawChannelBuilderFlatFilter/TileAdderFlatFilter", this) , m_beamCnv(0) , m_cabling(0) @@ -66,7 +65,6 @@ TileDigiNoiseCalibAlg::TileDigiNoiseCalibAlg(const std::string& name, ISvcLocato , m_min(0) , m_trigType(0) { - declareProperty("TileBeamInfoProvider", m_beamInfo); declareProperty("TileAdderFlatFilter", m_adderFilterAlgTool); declareProperty("TileDigitsContainer", m_digitsContainer = "TileDigitsCnt"); declareProperty("TileBeamElemContainer", m_beamElemContainer = "TileBeamElemCnt"); @@ -83,6 +81,7 @@ TileDigiNoiseCalibAlg::TileDigiNoiseCalibAlg(const std::string& name, ISvcLocato declareProperty("NSamples", m_nSamples = 7); declareProperty("DoAvgCorr", m_doAvgCorr = false); declareProperty("DoRobustCov", m_doRobustCov = false); + declareProperty("TileDQstatus", m_dqStatusKey = "TileDQstatus"); m_run = 0; m_evtNr = -1; @@ -110,6 +109,8 @@ StatusCode TileDigiNoiseCalibAlg::initialize() { memset(m_noise_cov, 0, sizeof(m_noise_cov)); memset(m_auto_corr, 0, sizeof(m_auto_corr)); + CHECK( m_dqStatusKey.initialize() ); + return StatusCode::SUCCESS; } @@ -125,8 +126,6 @@ StatusCode TileDigiNoiseCalibAlg::FirstEvt_initialize() { CHECK( detStore()->retrieve(m_tileHWID) ); - CHECK( m_beamInfo.retrieve() ); - CHECK( m_adderFilterAlgTool.retrieve() ); m_adderFilterAlgTool->setProperty("TileRawChannelContainer", "TileAdderFlat"); @@ -177,6 +176,9 @@ StatusCode TileDigiNoiseCalibAlg::FirstEvt_initialize() { /// Main method StatusCode TileDigiNoiseCalibAlg::execute() { + const EventContext& ctx = Gaudi::Hive::currentContext(); + const TileDQstatus * dqStatus = SG::makeHandle (m_dqStatusKey, ctx).get(); + StatusCode sc; bool empty(false); @@ -186,23 +188,23 @@ StatusCode TileDigiNoiseCalibAlg::execute() { ATH_MSG_ERROR( "FirstEvt_initialize failed" ); } - bool calibMode = (m_beamInfo->calibMode() == 1); + bool calibMode = (dqStatus->calibMode() == 1); if (calibMode != m_calibMode) { ATH_MSG_INFO( "Calib mode from data is " ); ATH_MSG_INFO( " Overwriting calib mode " ); m_calibMode = calibMode; } - m_cispar = m_beamInfo->cispar(); - StoreRunInfo(); // done only once + m_cispar = dqStatus->cispar(); + StoreRunInfo(dqStatus); // done only once } - m_cispar = m_beamInfo->cispar(); + m_cispar = dqStatus->cispar(); if (m_evtNr % 1000 == 0) ATH_MSG_WARNING( m_evtNr << " events processed so far" ); // store TileDigits - if (m_nSamples > 0) sc = fillDigits(); + if (m_nSamples > 0) sc = fillDigits (dqStatus); empty &= (sc.isFailure()); if (empty) { @@ -275,9 +277,9 @@ StatusCode TileDigiNoiseCalibAlg::finalize() { } /// StoreRunInfo is called only during the first event -void TileDigiNoiseCalibAlg::StoreRunInfo() { +void TileDigiNoiseCalibAlg::StoreRunInfo (const TileDQstatus* dqStatus) { - if (m_beamInfo->calibMode() == 1 && m_beamElemContainer.length() > 0) {// Bigain can use cispar + if (dqStatus->calibMode() == 1 && m_beamElemContainer.length() > 0) {// Bigain can use cispar if (m_beamCnv) { // std::cout << "LUCA m_time= "<< m_time << " bc_time_seconds= "<< m_beamCnv->eventFragment()->bc_time_seconds() << // " bc_time_nanoseconds= " << m_beamCnv->eventFragment()->bc_time_nanoseconds() << std::endl; @@ -289,7 +291,7 @@ void TileDigiNoiseCalibAlg::StoreRunInfo() { } else m_run = 0; - if (m_beamInfo && m_cispar) { + if (dqStatus && m_cispar) { m_time = m_cispar[10]; //time in sc from 1970 m_trigType = m_cispar[12]; } else { @@ -342,11 +344,9 @@ void TileDigiNoiseCalibAlg::StoreRunInfo() { /// fillDigits is called at every events. /// Statistics is summed for Average, RMS and covariance calculations /*---------------------------------------------------------*/ -StatusCode TileDigiNoiseCalibAlg::fillDigits() { +StatusCode TileDigiNoiseCalibAlg::fillDigits (const TileDQstatus* theDQstatus) { /*---------------------------------------------------------*/ - const TileDQstatus * theDQstatus = m_beamInfo->getDQstatus(); - const TileDigitsContainer* DigitsCnt; CHECK( evtStore()->retrieve(DigitsCnt, "TileDigitsCnt") ); diff --git a/TileCalorimeter/TileCalib/TileCalibAlgs/src/TileLaserDefaultCalibTool.cxx b/TileCalorimeter/TileCalib/TileCalibAlgs/src/TileLaserDefaultCalibTool.cxx index 4a9d3df792dc62fdfc07050e0d6f9cd494fc406f..614effeabff42477a1502002899f6b447b833c4e 100644 --- a/TileCalorimeter/TileCalib/TileCalibAlgs/src/TileLaserDefaultCalibTool.cxx +++ b/TileCalorimeter/TileCalib/TileCalibAlgs/src/TileLaserDefaultCalibTool.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ #include "TileCalibAlgs/TileLaserDefaultCalibTool.h" @@ -8,14 +8,15 @@ #include "GaudiKernel/Service.h" #include "GaudiKernel/IToolSvc.h" #include "GaudiKernel/ListItem.h" +#include "GaudiKernel/ThreadLocalContext.h" #include "Identifier/HWIdentifier.h" +#include "StoreGate/ReadHandle.h" #include "TileEvent/TileRawChannelContainer.h" #include "TileEvent/TileLaserObject.h" #include "TileConditions/TileCablingService.h" #include "TileCalibBlobObjs/TileCalibUtils.h" -#include "TileRecUtils/TileBeamInfoProvider.h" #include "TileConditions/ITileBadChanTool.h" #include "TileConditions/TileDCSSvc.h" @@ -44,7 +45,6 @@ TileLaserDefaultCalibTool::TileLaserDefaultCalibTool(const std::string& type, co m_cabling(nullptr), m_tileToolEmscale("TileCondToolEmscale"), m_tileBadChanTool("TileBadChanTool"), - m_beamInfo(nullptr), m_stuckBitsProbs(""), m_tileDCSSvc("TileDCSSvc",name), m_toolRunNo(0), @@ -125,6 +125,7 @@ TileLaserDefaultCalibTool::TileLaserDefaultCalibTool(const std::string& type, co declareProperty("pisaMethod2", m_pisaMethod2=true); declareProperty("TileDCSSvc",m_tileDCSSvc); declareProperty("StuckBitsProbsTool", m_stuckBitsProbs); + declareProperty("TileDQstatus", m_dqStatusKey = "TileDQstatus"); } // TileLaserDefaultCalibTool::TileLaserDefaultCalibTool TileLaserDefaultCalibTool::~TileLaserDefaultCalibTool() @@ -270,10 +271,12 @@ StatusCode TileLaserDefaultCalibTool::initialize(){ ATH_CHECK( detStore()->retrieve(m_tileHWID) ); ATH_CHECK( m_tileToolEmscale.retrieve() ); ATH_CHECK( m_tileBadChanTool.retrieve() ); - ATH_CHECK( toolSvc()->retrieveTool("TileBeamInfoProvider",m_beamInfo) ); ATH_CHECK( m_tileDCSSvc.retrieve() ); + + CHECK( m_dqStatusKey.initialize() ); + return StatusCode::SUCCESS; } @@ -285,6 +288,9 @@ StatusCode TileLaserDefaultCalibTool::initNtuple(int runNumber, int runType, TFi StatusCode TileLaserDefaultCalibTool::execute(){ + const EventContext& ctx = Gaudi::Hive::currentContext(); + const TileDQstatus* dqStatus = SG::makeHandle (m_dqStatusKey, ctx).get(); + const char* text[NGAINS] = {"LG DIODE ","HG DIODE "}; ++m_evtNr; // Increment event number ATH_MSG_DEBUG ( "Event counter: " << m_evtNr ); @@ -303,7 +309,7 @@ StatusCode TileLaserDefaultCalibTool::execute(){ if(m_LASERII) ATH_MSG_DEBUG ( "LaserII version is " << laserObj->getVersion() << " DAQ Type = " << laserObj->getDaqType() ); else ATH_MSG_DEBUG ( "LaserI version is " << laserObj->getVersion() << " DAQ Type = " << laserObj->getDaqType() ); - const uint32_t *cispar = m_beamInfo->cispar(); + const uint32_t *cispar = dqStatus->cispar(); m_las_time = static_cast<double>(cispar[10])+static_cast<double>(cispar[11])/1000000; @@ -332,8 +338,7 @@ StatusCode TileLaserDefaultCalibTool::execute(){ for ( int drawer=0; drawer<NDRAWERS; ++drawer ) { unsigned int drawerIdx = TileCalibUtils::getDrawerIdx(ros,drawer); for ( int channel=0; channel<NCHANNELS; ++channel ) { - const TileDQstatus *theDQstatus = m_beamInfo->getDQstatus(); - if ( theDQstatus->isChEmpty(ros,drawer,channel) ) { // Check whether channel is connected + if ( dqStatus->isChEmpty(ros,drawer,channel) ) { // Check whether channel is connected continue; } for ( int gain=0; gain<NGAINS; ++gain ) { @@ -556,14 +561,13 @@ StatusCode TileLaserDefaultCalibTool::execute(){ if(ofctime!=0.0) ofctime -= avg_time[part][gain]->Mean(); - const TileDQstatus *theDQstatus = m_beamInfo->getDQstatus(); - if ( theDQstatus->isChEmpty(ros,drawer,chan) ) { // Check whether channel is connected + if ( dqStatus->isChEmpty(ros,drawer,chan) ) { // Check whether channel is connected m_status[part][drawer][chan][0] = -1; m_status[part][drawer][chan][1] = -1; continue; // Nothing to be seen here } - if ( !theDQstatus->isAdcDQgood(ros,drawer,chan,gain) ) { // Masked on the fly + if ( !dqStatus->isAdcDQgood(ros,drawer,chan,gain) ) { // Masked on the fly m_status[part][drawer][chan][gain] |= 0x10; is_good = false; } diff --git a/TileCalorimeter/TileCalib/TileCalibAlgs/src/TileLaserLinearityCalibTool.cxx b/TileCalorimeter/TileCalib/TileCalibAlgs/src/TileLaserLinearityCalibTool.cxx index 4cc3b09245a88b1dabf55889a25d2c771319fdc7..0533ddb5b943c332e55e371c91a13a7aebe1fd81 100644 --- a/TileCalorimeter/TileCalib/TileCalibAlgs/src/TileLaserLinearityCalibTool.cxx +++ b/TileCalorimeter/TileCalib/TileCalibAlgs/src/TileLaserLinearityCalibTool.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ #include "TileCalibAlgs/TileLaserLinearityCalibTool.h" @@ -11,12 +11,12 @@ #include "Identifier/HWIdentifier.h" +#include "StoreGate/ReadHandle.h" #include "TileEvent/TileRawChannelContainer.h" #include "TileEvent/TileLaserObject.h" #include "TileConditions/TileCablingService.h" #include "TileCalibBlobObjs/TileCalibUtils.h" -#include "TileRecUtils/TileBeamInfoProvider.h" #include "TFile.h" #include "TTree.h" @@ -36,7 +36,6 @@ TileLaserLinearityCalibTool::TileLaserLinearityCalibTool(const std::string& type m_tileHWID (nullptr), m_cabling (nullptr), m_tileToolEmscale("TileCondToolEmscale"), - m_beamInfo (nullptr), m_toolRunNo(0), m_ADC_problem(0), m_las_filter(0), @@ -84,6 +83,7 @@ TileLaserLinearityCalibTool::TileLaserLinearityCalibTool(const std::string& type declareProperty("toolNtuple", m_toolNtuple="h3000"); declareProperty("rawChannelContainer", m_rawChannelContainerName=""); declareProperty("laserObjContainer", m_laserContainerName=""); + declareProperty("TileDQstatus", m_dqStatusKey = "TileDQstatus"); } TileLaserLinearityCalibTool::~TileLaserLinearityCalibTool() @@ -193,7 +193,8 @@ StatusCode TileLaserLinearityCalibTool::initialize() m_cabling = TileCablingService::getInstance(); - ATH_CHECK( toolSvc()->retrieveTool("TileBeamInfoProvider",m_beamInfo) ); + CHECK( m_dqStatusKey.initialize() ); + return StatusCode::SUCCESS; } @@ -219,6 +220,9 @@ StatusCode TileLaserLinearityCalibTool::execute() { ATH_MSG_INFO ( "execute()" ); + const EventContext& ctx = Gaudi::Hive::currentContext(); + const TileDQstatus* dqStatus = SG::makeHandle (m_dqStatusKey, ctx).get(); + // // Here we analyze a run with filter wheel moving // we just keep the information from the first turn of the wheel @@ -240,7 +244,7 @@ StatusCode TileLaserLinearityCalibTool::execute() // First we got event time (From 1/1/70) - const uint32_t *cispar = m_beamInfo->cispar(); + const uint32_t *cispar = dqStatus->cispar(); m_las_time = static_cast<double>(cispar[10])+static_cast<double>(cispar[11])/1000000; diff --git a/TileCalorimeter/TileCalib/TileCalibAlgs/src/TileLaserTimingTool.cxx b/TileCalorimeter/TileCalib/TileCalibAlgs/src/TileLaserTimingTool.cxx index 5ede446da820a0dd0ae362917f4136d38b292fcc..1817f9dbcc1d07926a28e7a766aeff8912ef12d5 100644 --- a/TileCalorimeter/TileCalib/TileCalibAlgs/src/TileLaserTimingTool.cxx +++ b/TileCalorimeter/TileCalib/TileCalibAlgs/src/TileLaserTimingTool.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ // Athena includes @@ -11,7 +11,6 @@ // Tile includes #include "TileCalibAlgs/TileLaserTimingTool.h" -#include "TileRecUtils/TileBeamInfoProvider.h" #include "TileEvent/TileRawChannelContainer.h" #include "TileEvent/TileDigitsContainer.h" #include "TileIdentifier/TileHWID.h" @@ -123,7 +122,6 @@ TileLaserTimingTool::TileLaserTimingTool(const std::string& type, const std::str : AthAlgTool(type, name, pParent) , m_tileHWID(0) , m_cabling(0) - , m_beamInfo("TileBeamInfoProvider") , m_tileToolTiming("TileCondToolTiming") , m_nevts(0) , m_gaussf(0) @@ -132,7 +130,6 @@ TileLaserTimingTool::TileLaserTimingTool(const std::string& type, const std::str declareInterface<ITileCalibTool>( this ); declareProperty("TileCondToolTiming", m_tileToolTiming); - declareProperty("TileBeamInfoProvider", m_beamInfo); declareProperty("RawChannelContainer", m_rawChannelContainerName = "TileRawChannelFit"); declareProperty("DigitsContainer", m_digitsContainerName = "TileDigitsCnt"); declareProperty("NtupleID", m_ntupleID = "h3000"); @@ -164,9 +161,6 @@ StatusCode TileLaserTimingTool::initialize() { ATH_MSG_INFO( "initialize()" ); - // get beam info tool - CHECK( m_beamInfo.retrieve() ); - // get TileHWID helper CHECK( detStore()->retrieve(m_tileHWID) ); diff --git a/TileCalorimeter/TileCalib/TileCalibAlgs/src/TileRawChNoiseCalibAlg.cxx b/TileCalorimeter/TileCalib/TileCalibAlgs/src/TileRawChNoiseCalibAlg.cxx index 3357a48c63b64fabdc5b4514b71cad88d99be81c..b2c2c293af1ccd3a298b9840e0793a3935470ef0 100644 --- a/TileCalorimeter/TileCalib/TileCalibAlgs/src/TileRawChNoiseCalibAlg.cxx +++ b/TileCalorimeter/TileCalib/TileCalibAlgs/src/TileRawChNoiseCalibAlg.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ // ****** ************************************************************** @@ -19,17 +19,16 @@ //Event info #include "xAODEventInfo/EventInfo.h" #include "AthenaKernel/errorcheck.h" +#include "StoreGate/ReadHandle.h" // Tile includes #include "TileCalibAlgs/TileRawChNoiseCalibAlg.h" -#include "TileRecUtils/TileBeamInfoProvider.h" #include "TileEvent/TileRawChannelContainer.h" #include "CaloIdentifier/TileID.h" #include "TileIdentifier/TileHWID.h" #include "TileCalibBlobObjs/TileCalibUtils.h" #include "TileEvent/TileDigitsContainer.h" #include "TileEvent/TileBeamElemContainer.h" -#include "TileRecUtils/TileBeamInfoProvider.h" #include "TileByteStream/TileBeamElemContByteStreamCnv.h" #include "TileCalibBlobObjs/TileCalibUtils.h" @@ -62,9 +61,7 @@ TileRawChNoiseCalibAlg::TileRawChNoiseCalibAlg(const std::string& name, ISvcLocator* pSvcLocator) : AthAlgorithm(name,pSvcLocator) - , m_beamInfo("TileBeamInfoProvider/TileBeamInfoProvider") , m_beamCnv(0) - //, m_beamPrv(0) , m_cabling(0) , m_tileID(0) , m_tileHWID(0) @@ -110,6 +107,7 @@ TileRawChNoiseCalibAlg::TileRawChNoiseCalibAlg(const std::string& name, ISvcLoca declareProperty("TreeSize", m_treeSize = 16000000000LL); declareProperty("TileCondToolEmscale", m_tileToolEmscale); declareProperty("TileBadChanTool", m_tileBadChanTool); + declareProperty("TileDQstatus", m_dqStatusKey = "TileDQstatus"); m_evtNr=-1; @@ -229,6 +227,7 @@ StatusCode TileRawChNoiseCalibAlg::initialize() { //=== get TileCondIdTransforms CHECK( m_tileIdTrans.retrieve() ); + CHECK( m_dqStatusKey.initialize() ); return StatusCode::SUCCESS; } @@ -246,8 +245,6 @@ StatusCode TileRawChNoiseCalibAlg::FirstEvt_initialize() { CHECK( detStore()->retrieve(m_tileHWID) ); - CHECK( m_beamInfo.retrieve() ); - ATH_MSG_INFO( "calibMode " << m_calibMode ); @@ -283,35 +280,37 @@ StatusCode TileRawChNoiseCalibAlg::FirstEvt_initialize() { /// Main method StatusCode TileRawChNoiseCalibAlg::execute() { + const EventContext& ctx = Gaudi::Hive::currentContext(); + const TileDQstatus* dqStatus = SG::makeHandle (m_dqStatusKey, ctx).get(); + bool empty(false); // to add all StatusCodes - if (m_evtNr < 0) { if (FirstEvt_initialize().isFailure()) { ATH_MSG_ERROR( "FirstEvt_initialize failed" ); } - bool calibMode = (m_beamInfo->calibMode() == 1); + bool calibMode = (dqStatus->calibMode() == 1); if ( calibMode != m_calibMode ) { ATH_MSG_INFO( "Overwriting calib mode [" << m_calibMode << "] by one from data: " << calibMode ); m_calibMode = calibMode; } - m_cispar = m_beamInfo->cispar(); - StoreRunInfo(); // done only once + m_cispar = dqStatus->cispar(); + StoreRunInfo(dqStatus); // done only once } memset(m_ecell_ene ,0, sizeof(m_ecell_ene )); memset(m_cell_nch ,0, sizeof(m_cell_nch )); - m_cispar = m_beamInfo->cispar(); + m_cispar = dqStatus->cispar(); if (m_evtNr % 1000 == 0) ATH_MSG_INFO( " events processed so far " << m_evtNr ); - if (m_doFit){empty &= (fillRawChannels(m_fitRawChannelContainer, Fit).isFailure());} - if (m_doFixed){empty &= (fillRawChannels(m_fixedRawChannelContainer, Fixed).isFailure());} - if (m_doOpt){empty &= (fillRawChannels(m_optRawChannelContainer, Opt).isFailure());} - if (m_doDsp) {empty &= (fillRawChannels(m_dspRawChannelContainer, Dsp).isFailure());} - if (m_doOF1) {empty &= (fillRawChannels(m_OF1RawChannelContainer, OF1).isFailure());} - if (m_doMF) {empty &= (fillRawChannels(m_MFRawChannelContainer, MF).isFailure());} + if (m_doFit){empty &= (fillRawChannels(dqStatus, m_fitRawChannelContainer, Fit).isFailure());} + if (m_doFixed){empty &= (fillRawChannels(dqStatus, m_fixedRawChannelContainer, Fixed).isFailure());} + if (m_doOpt){empty &= (fillRawChannels(dqStatus, m_optRawChannelContainer, Opt).isFailure());} + if (m_doDsp) {empty &= (fillRawChannels(dqStatus, m_dspRawChannelContainer, Dsp).isFailure());} + if (m_doOF1) {empty &= (fillRawChannels(dqStatus, m_OF1RawChannelContainer, OF1).isFailure());} + if (m_doMF) {empty &= (fillRawChannels(dqStatus, m_MFRawChannelContainer, MF).isFailure());} if (empty) {ATH_MSG_ERROR( "Error in execute " ); } @@ -592,10 +591,11 @@ StatusCode TileRawChNoiseCalibAlg::finalize() { } /// StoreRunInfo is called only during the first event -void TileRawChNoiseCalibAlg::StoreRunInfo() { +void TileRawChNoiseCalibAlg::StoreRunInfo(const TileDQstatus* dqStatus) { + MsgStream log(msgSvc(), name()); - if (m_beamInfo->calibMode() == 1 && m_beamElemContainer.length() > 0) {// Bigain can use cispar + if (dqStatus->calibMode() == 1 && m_beamElemContainer.length() > 0) {// Bigain can use cispar if (m_beamCnv) { @@ -607,7 +607,7 @@ void TileRawChNoiseCalibAlg::StoreRunInfo() { } else m_run = 0; - if (m_beamInfo && m_cispar) { + if (dqStatus && m_cispar) { m_time = m_cispar[10]; //time in sc from 1970 m_trigType = m_cispar[12]; } else { @@ -660,11 +660,10 @@ void TileRawChNoiseCalibAlg::StoreRunInfo() { // fillRawChannels is called at every events. // Statistics is summed for Average, RMS calculations /*---------------------------------------------------------*/ -StatusCode TileRawChNoiseCalibAlg::fillRawChannels(std::string rcCnt, RCtype rctype) { +StatusCode TileRawChNoiseCalibAlg::fillRawChannels(const TileDQstatus* dqStatus, + std::string rcCnt, RCtype rctype) { /*---------------------------------------------------------*/ - const TileDQstatus* theDQstatus = m_beamInfo->getDQstatus(); - const TileRawChannelContainer* RawChannelCnt; if (evtStore()->retrieve(RawChannelCnt, rcCnt).isFailure()) { @@ -698,12 +697,12 @@ StatusCode TileRawChNoiseCalibAlg::fillRawChannels(std::string rcCnt, RCtype rct m_tileIdTrans->getIndices(adc_id, ros, drawer, channel, gain); unsigned int drawerIdx = TileCalibUtils::getDrawerIdx(ros, drawer); - if (theDQstatus->isChEmpty(ros, drawer, channel)) continue; + if (dqStatus->isChEmpty(ros, drawer, channel)) continue; // If DQ problem, do not fill calib ntuple if (m_calibMode == 1) { // Bigain: check indivual adc's - if (!(theDQstatus->isAdcDQgood(ros, drawer, channel, gain))) { + if (!(dqStatus->isAdcDQgood(ros, drawer, channel, gain))) { ATH_MSG_VERBOSE( "Skipping Module: " << TileCalibUtils::getDrawerString(ros, drawer) << " channel: " << channel << " ADC: " << gain << " due to DQ error found." ); @@ -712,7 +711,7 @@ StatusCode TileRawChNoiseCalibAlg::fillRawChannels(std::string rcCnt, RCtype rct } } else { // monogain, just check channel - if (!(theDQstatus->isChanDQgood(ros, drawer, channel))) { + if (!(dqStatus->isChanDQgood(ros, drawer, channel))) { ATH_MSG_VERBOSE( "Skipping Module: " << TileCalibUtils::getDrawerString(ros, drawer) << " channel: " << channel << " due to DQ error found." ); diff --git a/TileCalorimeter/TileCalib/TileCalibAlgs/src/TileTriggerDefaultCalibTool.cxx b/TileCalorimeter/TileCalib/TileCalibAlgs/src/TileTriggerDefaultCalibTool.cxx index 35e1e490d684e851be393ceb428733b64b5741c4..812cba33fd48fa0bdff467b2c711969ddec8fe87 100644 --- a/TileCalorimeter/TileCalib/TileCalibAlgs/src/TileTriggerDefaultCalibTool.cxx +++ b/TileCalorimeter/TileCalib/TileCalibAlgs/src/TileTriggerDefaultCalibTool.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ @@ -16,13 +16,13 @@ #include "TrigT1CaloCalibToolInterfaces/IL1CaloOfflineTriggerTowerTools.h" #include "Identifier/HWIdentifier.h" +#include "StoreGate/ReadHandle.h" #include "CaloIdentifier/CaloLVL1_ID.h" #include "CaloIdentifier/TileID.h" #include "TileCalibBlobObjs/TileCalibUtils.h" #include "TileIdentifier/TileHWID.h" -#include "TileRecUtils/TileBeamInfoProvider.h" #include "TileEvent/TileRawChannelContainer.h" #include "TileEvent/TileBeamElemContainer.h" #include "TileConditions/TileCablingService.h" @@ -51,7 +51,6 @@ TileTriggerDefaultCalibTool::TileTriggerDefaultCalibTool(const std::string& type AthAlgTool(type, name, pParent) , m_maxNTT(0) , m_nevpmt(0) - , m_beamPrv(nullptr) , m_TT_ID(nullptr) , m_tileHWID(nullptr) , m_tileID(nullptr) @@ -96,6 +95,7 @@ TileTriggerDefaultCalibTool::TileTriggerDefaultCalibTool(const std::string& type declareProperty("NumEventPerPMT", m_nevpmt=195); // changed from 200 to 195 declareProperty("TileBeamElemContainer",m_TileBeamContainerID); declareProperty("TileCondToolEmscale", m_tileToolEmscale); + declareProperty("TileDQstatus", m_dqStatusKey = "TileDQstatus"); // declareProperty("L1TriggerTowerTool", m_ttTool); } @@ -115,9 +115,6 @@ StatusCode TileTriggerDefaultCalibTool::initialize() ATH_CHECK( m_l1CaloTTIdTools.retrieve() ); ATH_MSG_DEBUG("L1CaloTTIdTools retrieved"); - ATH_CHECK( toolSvc()->retrieveTool("TileBeamInfoProvider",m_beamPrv) ); - ATH_CHECK( m_beamPrv->setProperty("TileRawChannelContainer","TileRawChannelCnt") ); - ATH_CHECK( detStore()->retrieve(m_TT_ID) ); ATH_CHECK( detStore()->retrieve(m_tileHWID) ); ATH_CHECK( detStore()->retrieve(m_tileID) ); @@ -127,6 +124,8 @@ StatusCode TileTriggerDefaultCalibTool::initialize() //=== get TileCondToolEmscale CHECK( m_tileToolEmscale.retrieve() ); + CHECK( m_dqStatusKey.initialize() ); + return StatusCode::SUCCESS; } @@ -140,6 +139,9 @@ StatusCode TileTriggerDefaultCalibTool::execute() { ATH_MSG_DEBUG ( "executeTrigger()" ); + const EventContext& ctx = Gaudi::Hive::currentContext(); + const TileDQstatus* dqStatus = SG::makeHandle (m_dqStatusKey, ctx).get(); + // Get TileRawChannelContainer const TileRawChannelContainer *container; ATH_CHECK( evtStore()->retrieve(container, m_rawChannelContainerName) ); @@ -150,7 +152,7 @@ StatusCode TileTriggerDefaultCalibTool::execute() memset(chanIds, 0, sizeof(chanIds)); // Get event's ext CIS parameters - const uint32_t *cispar = m_beamPrv->cispar(); + const uint32_t *cispar = dqStatus->cispar(); // Mapping pmt2chan int chan_bar[54] = {4 ,1 ,2 ,3 ,0 ,-1 ,