2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
5 /// @author Nils Krumnack
8 #include <AsgMessaging/StatusCode.h>
9 #include <AsgTools/AsgTool.h>
10 #include <ColumnarCore/ContainerId.h>
11 #include <ColumnarCore/ObjectRange.h>
15 template<> class ColumnarTool<ColumnarModeXAOD>
17 /// Common Public Members
18 /// =====================
21 static constexpr bool singleEvent = true;
24 explicit ColumnarTool (ColumnarTool<ColumnarModeXAOD>* val_parent);
25 ColumnarTool (const ColumnarTool<ColumnarModeXAOD>&) = delete;
26 ColumnarTool& operator = (const ColumnarTool<ColumnarModeXAOD>&) = delete;
27 virtual ~ColumnarTool ();
30 /// @brief initialize the columns/column handles
32 /// This should be called at the end of initialize after all data handles
33 /// have been declared.
34 StatusCode initializeColumns ();
37 /// @brief add the given sub-tool
38 void addSubtool (ColumnarTool<ColumnarModeXAOD>& /*subtool*/) {};
41 /// @brief call the tool for the given event range
42 virtual void callEvents (ObjectRange<ContainerId::eventContext,ColumnarModeXAOD> events) const;
46 /// Mode-Specific Public Members
47 /// ============================
50 auto& eventStore () const noexcept {
51 #ifdef XAOD_STANDALONE
64 #ifdef XAOD_STANDALONE
65 mutable asg::SgTEvent m_event;
67 using StoreGateSvc_t = ServiceHandle<StoreGateSvc>;
68 /// Pointer to StoreGate (event store by default)
69 StoreGateSvc_t m_evtStore {"StoreGateSvc/StoreGateSvc", "ColumnarToolXAOD"};