Skip to content
Snippets Groups Projects
Commit 0ddcb974 authored by Scott Snyder's avatar Scott Snyder Committed by Frank Winklmeier
Browse files

ALFA_CLinkAlg: Enable thread-safety checking. ATLASRECTS-7311

ALFA_CLinkAlg: Enable thread-safety checking.

Enable thread-safety checking and fix warnings.
Migrate to use handles for data/conditions access.
Clean up.
parent 8dd79f4e
No related branches found
No related tags found
No related merge requests found
ForwardDetectors/ALFA/ALFA_CLinkAlg
This diff is collapsed.
...@@ -6,15 +6,19 @@ ...@@ -6,15 +6,19 @@
#define ALFA_CLINKALG_H #define ALFA_CLINKALG_H
#include "AthenaBaseComps/AthAlgorithm.h" #include "AthenaBaseComps/AthAlgorithm.h"
#include "GaudiKernel/MsgStream.h" #include "StoreGate/ReadCondHandleKey.h"
#include "AthLinks/DataLink.h" #include "StoreGate/ReadHandleKey.h"
#include "GaudiKernel/ServiceHandle.h" #include "StoreGate/WriteHandleKey.h"
#include "AthenaBaseComps/AthService.h"
#include "AthenaKernel/IIOVSvc.h"
#include "AthenaKernel/IIOVDbSvc.h"
#include "ALFA_CLinkEv/ALFA_CLinkEvent.h" #include "ALFA_CLinkEv/ALFA_CLinkEvent.h"
#include "xAODForward/ALFADataContainer.h" #include "xAODForward/ALFADataContainer.h"
#include "ALFA_RawEv/ALFA_RawDataContainer.h"
#include "ALFA_RawEv/ALFA_DigitCollection.h"
#include "ALFA_RawEv/ALFA_ODDigitCollection.h"
#include "ALFA_LocRecEv/ALFA_LocRecEvCollection.h"
#include "ALFA_LocRecEv/ALFA_LocRecODEvCollection.h"
#include "ALFA_LocRecCorrEv/ALFA_LocRecCorrEvCollection.h"
#include "ALFA_LocRecCorrEv/ALFA_LocRecCorrODEvCollection.h"
#define EVCOLLNAME_XAODALFADATACONTAINER "ALFADataContainer" #define EVCOLLNAME_XAODALFADATACONTAINER "ALFADataContainer"
#define EVCOLLNAME_XAODALFADATAAUXCONTAINER "ALFADataContainerAux." #define EVCOLLNAME_XAODALFADATAAUXCONTAINER "ALFADataContainerAux."
...@@ -49,32 +53,29 @@ class ALFA_CLinkAlg : public AthAlgorithm ...@@ -49,32 +53,29 @@ class ALFA_CLinkAlg : public AthAlgorithm
{ {
public: public:
ALFA_CLinkAlg (const std::string& name, ISvcLocator* pSvcLocator); ALFA_CLinkAlg (const std::string& name, ISvcLocator* pSvcLocator);
~ALFA_CLinkAlg(); virtual ~ALFA_CLinkAlg();
private: private:
DCSID m_CurrentDCSId{};
ServiceHandle< IIOVDbSvc > m_iovSvc;
int m_nDataType; //data type (simulation or real data) using in the local reconstruction int m_nDataType; //data type (simulation or real data) using in the local reconstruction
int m_nProcessingMode; //1=offline, 2=online int m_nProcessingMode; //1=offline, 2=online
public: public:
StatusCode initialize(); virtual StatusCode initialize() override;
StatusCode execute(); virtual StatusCode execute() override;
StatusCode finalize(); virtual StatusCode finalize() override;
public: public:
StatusCode LoadAllEventData(ALFA_CLinkEvent* pDataEvent); StatusCode LoadAllEventData(const EventContext& ctx, ALFA_CLinkEvent& dataEvent) const;
private: private:
StatusCode COOLUpdate(IOVSVC_CALLBACK_ARGS_P(I, keys)); unsigned long long CalcDCSId (const EventContext& ctx,
StatusCode AddCOOLFolderCallback(const std::string& szFolder); const SG::ReadCondHandleKey<CondAttrListCollection>& key) const;
unsigned long long CalcDCSId(eDCSItem eItem); StatusCode CalcAllDCSIds (const EventContext& ctx,
StatusCode CalcAllDCSIds(PDCSID pDCSIds); DCSID& pDCSIds) const;
private: private:
StatusCode GenerateXAOD(); StatusCode GenerateXAOD(const EventContext& ctx);
StatusCode FillXAOD_TrackingData(xAOD::ALFADataContainer* pxAODContainer); StatusCode FillXAOD_TrackingData(const EventContext& ctx, xAOD::ALFADataContainer& xAODContainer);
StatusCode FillXAOD_HeaderData(xAOD::ALFADataContainer* pxAODContainer); StatusCode FillXAOD_HeaderData(const EventContext& ctx, xAOD::ALFADataContainer& xAODContainer);
void ClearXAODTrackingData(const int nMaxTrackCnt, eRecType eType); void ClearXAODTrackingData(const int nMaxTrackCnt, eRecType eType);
void ClearXAODHeaderData(); void ClearXAODHeaderData();
...@@ -120,6 +121,43 @@ private: ...@@ -120,6 +121,43 @@ private:
std::vector<int> m_vecODFiberHitsNeg; std::vector<int> m_vecODFiberHitsNeg;
std::vector<int> m_vecODMultiplicityPos; std::vector<int> m_vecODMultiplicityPos;
std::vector<int> m_vecODMultiplicityNeg; std::vector<int> m_vecODMultiplicityNeg;
SG::ReadCondHandleKey<CondAttrListCollection> m_BLMKey
{ this, "BLMKey", DCSCOLLNAME_BLM, "BLM conditions key" };
SG::ReadCondHandleKey<CondAttrListCollection> m_HVChannelKey
{ this, "HVChannelKey", DCSCOLLNAME_HVCHANNEL, "HV channel conditions key" };
SG::ReadCondHandleKey<CondAttrListCollection> m_localMonitoringKey
{ this, "LocalMonitoringKey", DCSCOLLNAME_LOCALMONITORING, "Local monitoring conditions key" };
SG::ReadCondHandleKey<CondAttrListCollection> m_movementKey
{ this, "MovementKey", DCSCOLLNAME_LOCALMONITORING, "Movement conditions key" };
SG::ReadCondHandleKey<CondAttrListCollection> m_radmonKey
{ this, "RadmonKey", DCSCOLLNAME_RADMON, "Radmon conditions key" };
SG::ReadCondHandleKey<CondAttrListCollection> m_triggerRatesKey
{ this, "TriggerRatesKey", DCSCOLLNAME_TRIGGERRATES, "Trigger rates conditions key" };
SG::ReadCondHandleKey<CondAttrListCollection> m_FEConfigurationKey
{ this, "FEConfigurationKey", DCSCOLLNAME_FECONFIGURATION, "FE configuration conditions key" };
SG::ReadCondHandleKey<CondAttrListCollection> m_triggerSettingsKey
{ this, "TriggerSettingsKey", DCSCOLLNAME_TRIGGERSETTINGS, "Trigger settings conditions key" };
SG::ReadHandleKey<ALFA_RawDataContainer> m_rawDataContKey
{ this, "RawDataContKey", EVCOLLNAME_RAWDATA, "SG key for raw data container" };
SG::ReadHandleKey<ALFA_DigitCollection> m_digitCollKey
{ this, "DigitCollKey", EVCOLLNAME_DIGIT, "SG key for digit collection" };
SG::ReadHandleKey<ALFA_ODDigitCollection> m_ODDigitCollKey
{ this, "ODDigitCollKey", EVCOLLNAME_ODDIGIT, "SG key for OD digit collection" };
SG::ReadHandleKey<ALFA_LocRecEvCollection> m_locRecEvCollKey
{ this, "LocRecEvCollectionKey", EVCOLLNAME_LOCREC, "SG key for LocRecEv collection" };
SG::ReadHandleKey<ALFA_LocRecODEvCollection> m_locRecODEvCollKey
{ this, "LocRecEvODCollectionKey", EVCOLLNAME_LOCRECOD, "SG key for LocRecEvOD collection" };
SG::ReadHandleKey<ALFA_LocRecCorrEvCollection> m_locRecCorrEvCollKey
{ this, "LocRecCorrEvCollectionKey", EVCOLLNAME_LOCRECCORR, "SG key for LocRecCorrEv collection" };
SG::ReadHandleKey<ALFA_LocRecCorrODEvCollection> m_locRecCorrODEvCollKey
{ this, "LocRecCorrODEvCollectionKey", EVCOLLNAME_LOCRECCORROD, "SG key for LocRecCorrODEv collection" };
SG::WriteHandleKey<ALFA_CLinkEvent> m_clinkEventKey
{ this, "CLinkEventKey", "ALFA_CLinkEvent", "SG key for output CLinkEvent" };
SG::WriteHandleKey<xAOD::ALFADataContainer> m_xaodDataKey
{ this, "xAODDataKey", EVCOLLNAME_XAODALFADATACONTAINER, "SG key for output xAOD::ALFADataContainer" };
}; };
#endif // ALFA_CLINKALG_H #endif // ALFA_CLINKALG_H
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment