ATLAS Offline Software
ITruthParticleCnvTool.h
Go to the documentation of this file.
1 
3 /*
4  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
5 */
6 
7 // ITruthParticleCnvTool.h
8 // Header file for class ITruthParticleCnvTool
9 // Author: S.Binet<binet@cern.ch>
11 #ifndef MCPARTICLEKERNEL_ITRUTHPARTICLECNVTOOL_H
12 #define MCPARTICLEKERNEL_ITRUTHPARTICLECNVTOOL_H
13 
22 // STL includes
23 
24 // FrameWork includes
25 #include "GaudiKernel/IAlgTool.h"
26 #include "GaudiKernel/IProperty.h"
27 
28 // McParticleKernel includes
30 
31 // Forward declaration
32 class McEventCollection;
33 class TruthParticle;
35 class EventContext;
36 
37 static const InterfaceID IID_ITruthParticleCnvTool("ITruthParticleCnvTool", 1, 0);
38 
39 class ITruthParticleCnvTool : virtual public IAlgTool,
40  virtual public IProperty
41 {
42 
44  // Public methods:
46  public:
47 
50  virtual ~ITruthParticleCnvTool();
51 
52  // Athena algorithm's Hooks
53  virtual StatusCode execute() const = 0;
54  virtual StatusCode execute(const EventContext& ctx) const = 0;
55 
57  // Const methods:
59  static const InterfaceID& interfaceID();
60 
62  // Non-const methods:
64 
72  virtual
74  const unsigned int genEvtIndex,
75  TruthParticleContainer* mcParts,
76  const ITruthParticleVisitor* visitor = 0 ) const = 0;
77 
81  StatusCode convert( const McEventCollection* mcCollection,
82  TruthParticleContainer* container ) const;
83 
89  StatusCode
90  convertMcEventCollection( const McEventCollection* mcCollection,
91  TruthParticleContainer* container ) const;
95  // Protected data:
98  protected:
99 
100 };
101 
102 
106 inline const InterfaceID& ITruthParticleCnvTool::interfaceID()
107 {
108  return IID_ITruthParticleCnvTool;
109 }
110 
111 inline StatusCode
113  TruthParticleContainer* container ) const
114 {
115  const unsigned int genEvtIndex = 0;
116  const ITruthParticleVisitor* dummyVisitor = 0;
117  return this->convert( mcCollection, genEvtIndex, container, dummyVisitor );
118 }
119 
120 inline StatusCode
122  TruthParticleContainer* container ) const
123 {
124  const unsigned int genEvtIndex = 0;
125  const ITruthParticleVisitor* dummyVisitor = 0;
126  return this->convert( mcCollection, genEvtIndex, container, dummyVisitor );
127 }
128 
129 #endif //> MCPARTICLEKERNEL_ITRUTHPARTICLECNVTOOL_H
ITruthParticleCnvTool::convert
virtual StatusCode convert(const McEventCollection *mcEvts, const unsigned int genEvtIndex, TruthParticleContainer *mcParts, const ITruthParticleVisitor *visitor=0) const =0
Convert a McEventCollection into an TruthParticleContainer.
ITruthParticleCnvTool::execute
virtual StatusCode execute() const =0
ITruthParticleCnvTool::convertMcEventCollection
StatusCode convertMcEventCollection(const McEventCollection *mcCollection, TruthParticleContainer *container) const
Convert a McEventCollection into an TruthParticleContainer.
Definition: ITruthParticleCnvTool.h:121
TruthParticle
Definition: PhysicsAnalysis/TruthParticleID/McParticleEvent/McParticleEvent/TruthParticle.h:58
TruthParticleContainer
Definition: PhysicsAnalysis/TruthParticleID/McParticleEvent/McParticleEvent/TruthParticleContainer.h:42
ITruthParticleCnvTool::~ITruthParticleCnvTool
virtual ~ITruthParticleCnvTool()
Destructor:
Definition: ITruthParticleCnvTool.cxx:25
ITruthParticleCnvTool::execute
virtual StatusCode execute(const EventContext &ctx) const =0
ITruthParticleVisitor
Definition: ITruthParticleVisitor.h:30
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ITruthParticleVisitor.h
McEventCollection
This defines the McEventCollection, which is really just an ObjectVector of McEvent objects.
Definition: McEventCollection.h:33
ITruthParticleCnvTool
Definition: ITruthParticleCnvTool.h:41
ITruthParticleCnvTool::interfaceID
static const InterfaceID & interfaceID()
Inline methods:
Definition: ITruthParticleCnvTool.h:106