ATLAS Offline Software
Trigger/TrigConfiguration/TrigConfigSvc/src/BunchGroupCondAlg.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef TRIGCONFIGSVC__BUNCHGROUPCONDALG
6 #define TRIGCONFIGSVC__BUNCHGROUPCONDALG
7 
10 
14 #include <tbb/concurrent_unordered_map.h>
15 
16 
17 namespace TrigConf {
18 
20  public:
21  BunchGroupCondAlg (const std::string& name, ISvcLocator* pSvcLocator);
22  virtual StatusCode initialize() override;
23  virtual StatusCode execute(const EventContext& ctx) const override;
24 
25  // avoids running CondAlg multiple times for the same input (ATEAM-617)
26  virtual bool isReEntrant() const override final { return false; }
27  private:
28  // helper function to load a L1BunchGroupSet set from a file
29  std::shared_ptr<L1BunchGroupSet> createFromFile( const std::string & filename ) const;
30 
31  // helper function to load a L1BunchGroupSet
32  std::shared_ptr<L1BunchGroupSet> createFromDB( unsigned int ) const;
33 
34  // map the key to a L1BunchGroupSet
35  mutable tbb::concurrent_unordered_map<unsigned int, std::shared_ptr<const L1BunchGroupSet>> m_BgsMap ATLAS_THREAD_SAFE;
36 
37  // input key to the BunchGroupKey folder
38  SG::ReadCondHandleKey<AthenaAttributeList> m_bgkFolderInputKey{ this, "BGKFolder", "/TRIGGER/LVL1/BunchGroupKey", "SG Key of AthenaAttributeList bgk"};
39 
40  // output key to store the L1BunchGroup
41  SG::WriteCondHandleKey<TrigConf::L1BunchGroupSet> m_l1BunchGroupSetOutputKey{ this, "L1BunchGroup", "L1BunchGroup", "L1 BunchGroups"};
42 
43  // properties
44  Gaudi::Property< std::string > m_configSource { this, "Source", "FILE", "Configuration source, can be 'FILE', 'DB', or 'COOL'" };
45  Gaudi::Property< std::string > m_dbConnection { this, "TriggerDB", "", "DB connection alias or 'JOSVC', used when property Source set to 'DB' or set to 'COOL'." };
46  Gaudi::Property< unsigned int > m_bgk { this, "BGSK", 0, "L1 BunchGroup key, used when property 'Source' set to 'DB' or 'FILE'" };
47  Gaudi::Property< std::string > m_filename { this, "Filename", "", "L1BunchGroupSet json file, used when property 'Source' set to 'FILE'" };
48 
49 
50  };
51 
52 }
53 
54 #endif
TrigConf::BunchGroupCondAlg::createFromDB
std::shared_ptr< L1BunchGroupSet > createFromDB(unsigned int) const
Definition: Trigger/TrigConfiguration/TrigConfigSvc/src/BunchGroupCondAlg.cxx:73
TrigConf::BunchGroupCondAlg::initialize
virtual StatusCode initialize() override
Definition: Trigger/TrigConfiguration/TrigConfigSvc/src/BunchGroupCondAlg.cxx:19
TrigConf::BunchGroupCondAlg::m_dbConnection
Gaudi::Property< std::string > m_dbConnection
Definition: Trigger/TrigConfiguration/TrigConfigSvc/src/BunchGroupCondAlg.h:45
TrigConf::BunchGroupCondAlg::m_l1BunchGroupSetOutputKey
SG::WriteCondHandleKey< TrigConf::L1BunchGroupSet > m_l1BunchGroupSetOutputKey
Definition: Trigger/TrigConfiguration/TrigConfigSvc/src/BunchGroupCondAlg.h:41
TrigConf::BunchGroupCondAlg::m_configSource
Gaudi::Property< std::string > m_configSource
Definition: Trigger/TrigConfiguration/TrigConfigSvc/src/BunchGroupCondAlg.h:44
WriteCondHandleKey.h
TrigConf::BunchGroupCondAlg::BunchGroupCondAlg
BunchGroupCondAlg(const std::string &name, ISvcLocator *pSvcLocator)
Definition: Trigger/TrigConfiguration/TrigConfigSvc/src/BunchGroupCondAlg.cxx:13
TrigConf::BunchGroupCondAlg::isReEntrant
virtual bool isReEntrant() const override final
Definition: Trigger/TrigConfiguration/TrigConfigSvc/src/BunchGroupCondAlg.h:26
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:562
TrigConf::BunchGroupCondAlg::ATLAS_THREAD_SAFE
tbb::concurrent_unordered_map< unsigned int, std::shared_ptr< const L1BunchGroupSet > > m_BgsMap ATLAS_THREAD_SAFE
Definition: Trigger/TrigConfiguration/TrigConfigSvc/src/BunchGroupCondAlg.h:35
AthReentrantAlgorithm
An algorithm that can be simultaneously executed in multiple threads.
Definition: AthReentrantAlgorithm.h:83
TrigConf
Forward iterator to traverse the main components of the trigger configuration.
Definition: Config.h:22
TrigConf::BunchGroupCondAlg::m_bgkFolderInputKey
SG::ReadCondHandleKey< AthenaAttributeList > m_bgkFolderInputKey
Definition: Trigger/TrigConfiguration/TrigConfigSvc/src/BunchGroupCondAlg.h:38
TrigConf::BunchGroupCondAlg::m_filename
Gaudi::Property< std::string > m_filename
Definition: Trigger/TrigConfiguration/TrigConfigSvc/src/BunchGroupCondAlg.h:47
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
TrigConf::BunchGroupCondAlg::createFromFile
std::shared_ptr< L1BunchGroupSet > createFromFile(const std::string &filename) const
Definition: Trigger/TrigConfiguration/TrigConfigSvc/src/BunchGroupCondAlg.cxx:54
TrigConf::name
Definition: HLTChainList.h:35
ReadCondHandleKey.h
AthReentrantAlgorithm.h
L1BunchGroupSet.h
SG::ReadCondHandleKey< AthenaAttributeList >
CaloCellTimeCorrFiller.filename
filename
Definition: CaloCellTimeCorrFiller.py:24
SG::WriteCondHandleKey< TrigConf::L1BunchGroupSet >
TrigConf::BunchGroupCondAlg
Definition: Trigger/TrigConfiguration/TrigConfigSvc/src/BunchGroupCondAlg.h:19
TrigConf::BunchGroupCondAlg::execute
virtual StatusCode execute(const EventContext &ctx) const override
Definition: Trigger/TrigConfiguration/TrigConfigSvc/src/BunchGroupCondAlg.cxx:91
checker_macros.h
Define macros for attributes used to control the static checker.
TrigConf::BunchGroupCondAlg::m_bgk
Gaudi::Property< unsigned int > m_bgk
Definition: Trigger/TrigConfiguration/TrigConfigSvc/src/BunchGroupCondAlg.h:46