The Gaudi Framework  v38r0 (2143aa4c)
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
MyGaudiAlgorithm.h
Go to the documentation of this file.
1 /***********************************************************************************\
2 * (c) Copyright 1998-2019 CERN for the benefit of the LHCb and ATLAS collaborations *
3 * *
4 * This software is distributed under the terms of the Apache version 2 licence, *
5 * copied verbatim in the file "LICENSE". *
6 * *
7 * In applying this licence, CERN does not waive the privileges and immunities *
8 * granted to it by virtue of its status as an Intergovernmental Organization *
9 * or submit itself to any jurisdiction. *
10 \***********************************************************************************/
11 #ifndef GAUDIEXAMPLE_MYALGORITHM_H
12 #define GAUDIEXAMPLE_MYALGORITHM_H 1
13 
14 // Include files
16 #include "GaudiKernel/DataObject.h"
17 #include "GaudiKernel/MsgStream.h"
18 #include "GaudiKernel/ToolHandle.h"
19 
20 // Forward references
21 class IMyTool;
22 
28 public:
30  MyGaudiAlgorithm( const std::string& name, ISvcLocator* pSvcLocator );
31 
33  StatusCode initialize() override;
34  StatusCode execute() override;
35  StatusCode finalize() override;
36 
37  bool isClonable() const override { return true; }
38 
39 private:
40  Gaudi::Property<std::string> m_privateToolType{ this, "ToolWithName", "MyTool",
41  "Type of the tool to use (internal name is ToolWithName)" };
42 
43  IMyTool* m_privateTool = nullptr;
44  IMyTool* m_publicTool = nullptr;
45  IMyTool* m_privateGTool = nullptr;
46  IMyTool* m_publicGTool = nullptr;
47 
49 
51 
52  ToolHandle<IMyTool> m_legacyToolHandle{ "MyTool/LegacyToolHandle", this };
53 
54  ToolHandle<IMyTool> m_myPrivToolHandle{ this, "PrivToolHandle", "MyTool/PrivToolHandle" };
55  PublicToolHandle<IMyTool> m_myPubToolHandle{ this, "PubToolHandle", "MyTool/PubToolHandle" };
56 
57  PublicToolHandle<IAlgTool> m_myGenericToolHandle{ this, "GenericToolHandle", "MyTool/GenericToolHandle" };
58 
59  ToolHandle<IAlgTool> m_myUnusedToolHandle{ this, "UnusedToolHandle", "TestToolFailing/UnusedToolHandle" };
60 
62  ToolHandle<IMyTool> m_invalidToolHandle{ this, "InvalidToolHandle", "TestToolFailing" };
63 
64  ToolHandle<IWrongTool> m_wrongIfaceTool{ this, "WrongIfaceTool", "MyTool/WrongIfaceTool" };
65 
66  PublicToolHandle<const IMyTool> m_myConstToolHandle{ "MyTool/ConstGenericToolHandle" };
67 
71 
73  "MyPublicToolHandleArrayProperty",
74  { "MyTool/AnotherConstGenericToolHandle", "MyTool/AnotherInstanceOfMyTool" } };
75 
76  DataObjectReadHandle<DataObject> m_tracks{ this, "tracks", "/Event/Rec/Tracks", "the tracks" };
77  DataObjectReadHandle<DataObject> m_hits{ this, "hits", "/Event/Rec/Hits", "the hits" };
78  DataObjectReadHandle<DataObject> m_raw{ this, "raw", "/Rec/RAW", "the raw stuff" };
79 
80  DataObjectWriteHandle<DataObject> m_selectedTracks{ this, "trackSelection", "/Event/MyAnalysis/Tracks",
81  "the selected tracks" };
82 };
83 
84 #endif // GAUDIEXAMPLE_MYALGORITHM_H
MyGaudiAlgorithm::m_wrongIfaceTool
ToolHandle< IWrongTool > m_wrongIfaceTool
Definition: MyGaudiAlgorithm.h:64
MyGaudiAlgorithm::m_myUnusedToolHandle
ToolHandle< IAlgTool > m_myUnusedToolHandle
Definition: MyGaudiAlgorithm.h:59
IMyOtherTool
Definition: IMyTool.h:39
DataObjectWriteHandle< DataObject >
std::string
STL class.
MyGaudiAlgorithm::m_privateOtherInterface
IMyOtherTool * m_privateOtherInterface
Definition: MyGaudiAlgorithm.h:50
Gaudi::Algorithm::name
const std::string & name() const override
The identifying name of the algorithm object.
Definition: Algorithm.cpp:528
MyGaudiAlgorithm::m_publicGTool
IMyTool * m_publicGTool
Definition: MyGaudiAlgorithm.h:46
MyGaudiAlgorithm::m_hits
DataObjectReadHandle< DataObject > m_hits
Definition: MyGaudiAlgorithm.h:77
ISvcLocator
Definition: ISvcLocator.h:46
MyGaudiAlgorithm::m_myPubToolHandle
PublicToolHandle< IMyTool > m_myPubToolHandle
Definition: MyGaudiAlgorithm.h:55
IMyTool
Definition: IMyTool.h:22
MyGaudiAlgorithm::m_tracks
DataObjectReadHandle< DataObject > m_tracks
Definition: MyGaudiAlgorithm.h:76
MyGaudiAlgorithm::m_myCopiedConstToolHandle2
PublicToolHandle< const IMyTool > m_myCopiedConstToolHandle2
Definition: MyGaudiAlgorithm.h:69
MyGaudiAlgorithm
Trivial Algorithm for tutorial purposes.
Definition: MyGaudiAlgorithm.h:27
MyGaudiAlgorithm::m_privateToolWithName
IMyTool * m_privateToolWithName
Definition: MyGaudiAlgorithm.h:48
ToolHandle< IMyTool >
MyGaudiAlgorithm::m_invalidToolHandle
ToolHandle< IMyTool > m_invalidToolHandle
Definition: MyGaudiAlgorithm.h:62
StatusCode
Definition: StatusCode.h:65
MyGaudiAlgorithm::m_undefinedToolHandle
ToolHandle< IMyTool > m_undefinedToolHandle
Definition: MyGaudiAlgorithm.h:61
GaudiAlgorithm
Definition: GaudiAlgorithm.h:104
MyGaudiAlgorithm::m_raw
DataObjectReadHandle< DataObject > m_raw
Definition: MyGaudiAlgorithm.h:78
MyGaudiAlgorithm::m_myConstToolHandle
PublicToolHandle< const IMyTool > m_myConstToolHandle
Definition: MyGaudiAlgorithm.h:66
MyGaudiAlgorithm::m_publicTool
IMyTool * m_publicTool
Definition: MyGaudiAlgorithm.h:44
DataObjectReadHandle< DataObject >
MyGaudiAlgorithm::initialize
StatusCode initialize() override
Three mandatory member functions of any algorithm.
Definition: MyGaudiAlgorithm.cpp:36
PublicToolHandleArray< IMyTool >
PublicToolHandle< IMyTool >
MyGaudiAlgorithm::m_myGenericToolHandle
PublicToolHandle< IAlgTool > m_myGenericToolHandle
Definition: MyGaudiAlgorithm.h:57
MyGaudiAlgorithm::m_privateTool
IMyTool * m_privateTool
Definition: MyGaudiAlgorithm.h:43
MyGaudiAlgorithm::m_tha
PublicToolHandleArray< IMyTool > m_tha
Definition: MyGaudiAlgorithm.h:72
MyGaudiAlgorithm::m_privateGTool
IMyTool * m_privateGTool
Definition: MyGaudiAlgorithm.h:45
MyGaudiAlgorithm::isClonable
bool isClonable() const override
Definition: MyGaudiAlgorithm.h:37
MyGaudiAlgorithm::finalize
StatusCode finalize() override
Definition: MyGaudiAlgorithm.cpp:118
MyGaudiAlgorithm::execute
StatusCode execute() override
standard execution method
Definition: MyGaudiAlgorithm.cpp:79
MyGaudiAlgorithm::MyGaudiAlgorithm
MyGaudiAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor of this form must be provided.
Definition: MyGaudiAlgorithm.cpp:24
MyGaudiAlgorithm::m_myCopiedToolHandle
PublicToolHandle< IMyTool > m_myCopiedToolHandle
Definition: MyGaudiAlgorithm.h:70
MyGaudiAlgorithm::m_selectedTracks
DataObjectWriteHandle< DataObject > m_selectedTracks
Definition: MyGaudiAlgorithm.h:80
DataObject.h
MyGaudiAlgorithm::m_privateToolType
Gaudi::Property< std::string > m_privateToolType
Definition: MyGaudiAlgorithm.h:40
GaudiAlgorithm.h
ToolHandle.h
MyGaudiAlgorithm::m_myPrivToolHandle
ToolHandle< IMyTool > m_myPrivToolHandle
Definition: MyGaudiAlgorithm.h:54
MyGaudiAlgorithm::m_legacyToolHandle
ToolHandle< IMyTool > m_legacyToolHandle
Definition: MyGaudiAlgorithm.h:52
Gaudi::Property< std::string >
MyGaudiAlgorithm::m_myCopiedConstToolHandle
PublicToolHandle< const IMyTool > m_myCopiedConstToolHandle
Definition: MyGaudiAlgorithm.h:68
MsgStream.h