ATLAS Offline Software
Loading...
Searching...
No Matches
EventCnvSuperTool.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef TRKEVENTCNVTOOLS_EVENTCNVSUPERTOOL
6#define TRKEVENTCNVTOOLS_EVENTCNVSUPERTOOL
7
9#include "GaudiKernel/ToolHandle.h"
12
13#include <atomic>
14
15class Identifier;
16class AtlasDetectorID;
17
18namespace Trk
19{
20 class ITrkEventCnvTool;
21 class Surface;
22 class RIO_OnTrack;
23
26class EventCnvSuperTool : public extends<AthAlgTool, IEventCnvSuperTool>
27 {
28 public:
29
30 EventCnvSuperTool(const std::string& t,
31 const std::string& n,
32 const IInterface* p);
33
34 virtual ~EventCnvSuperTool ();
35
36 virtual StatusCode initialize() override;
37
38 virtual StatusCode finalize() override;
39
40 virtual const Trk::ITrkEventCnvTool* getCnvTool(const Identifier& id) const override;
41
43 virtual const Trk::Surface* getSurface(const Identifier& id) const override;
44
46 virtual void recreateRIO_OnTrack( RIO_OnTrack *RoT ) const override;
47
49 virtual void prepareRIO_OnTrack( RIO_OnTrack* Rot) const override;
50
52 virtual void prepareRIO_OnTrackLink( const RIO_OnTrack* Rot,
53 ELKey_t& key,
54 ELIndex_t& index ) const override;
55
56 virtual bool canHandleInDet() const override { return m_haveIdCnvTool;}
57 virtual bool canHandleMuonSpectrometer() const override { return m_haveMuonCnvTool;}
58 virtual int maxNumberOfErrors() const override { return m_maxErrCount;}
59
60 virtual bool noGeometry() const override {return !(m_haveIdCnvTool&&m_haveMuonCnvTool);}
61
62 virtual bool doTrackOverlay() const override {return m_doTrackOverlay;}
63
64 private:
65 ToolHandle<Trk::ITrkEventCnvTool> m_idCnvTool {this, "IdCnvTool", "InDet::InDetEventCnvTool/InDetEventCnvTool", "Tool used to handle ID RoTs etc"};
66 ToolHandle<Trk::ITrkEventCnvTool> m_muonCnvTool {this, "MuonCnvTool", "Muon::MuonEventCnvTool/MuonEventCnvTool", "Tool used to handle Muon RoTs etc"};
67 const AtlasDetectorID* m_detID; // atlas id helper
68
71
72 bool m_doMuons;
73 bool m_doID;
74
76
77 mutable std::atomic_int m_errCount;
79 };
80 }
81#endif
82
This class provides an interface to generate or decode an identifier for the upper levels of the dete...
bool m_doTrackOverlay
Property for whether track overlay is being used, in which case different PRD containers are used by ...
virtual const Trk::Surface * getSurface(const Identifier &id) const override
From passed Identifier.
ToolHandle< Trk::ITrkEventCnvTool > m_idCnvTool
Tool used to handle ID RoTs etc.
virtual bool doTrackOverlay() const override
virtual bool noGeometry() const override
bool m_haveIdCnvTool
Flag set in intialise, letting us know whether the tool has been found.
EventCnvSuperTool(const std::string &t, const std::string &n, const IInterface *p)
virtual bool canHandleInDet() const override
std::atomic_int m_errCount
Current number of ERROR/WARNING messages sent to output.
const AtlasDetectorID * m_detID
bool m_doMuons
Property deciding whether to attempt Muon conversions.
virtual StatusCode initialize() override
bool m_doID
Property deciding whether to attempt ID conversions.
virtual void prepareRIO_OnTrackLink(const RIO_OnTrack *Rot, ELKey_t &key, ELIndex_t &index) const override
Take the passed RoT and return the EL components to write to disc.
int m_maxErrCount
Maximum number of permissable ERROR/WARNING messages sent to output.
virtual bool canHandleMuonSpectrometer() const override
virtual void prepareRIO_OnTrack(RIO_OnTrack *Rot) const override
Take the passed RoT and prepare the PRD ElementLink for writing to disc.
virtual int maxNumberOfErrors() const override
ToolHandle< Trk::ITrkEventCnvTool > m_muonCnvTool
Tool used to handle Muon RoTs etc.
virtual StatusCode finalize() override
virtual void recreateRIO_OnTrack(RIO_OnTrack *RoT) const override
Take the passed RoT and recreate it (i.e.
virtual const Trk::ITrkEventCnvTool * getCnvTool(const Identifier &id) const override
bool m_haveMuonCnvTool
Flag set in intialise, letting us know whether the tool has been found.
Class to handle RIO On Tracks ROT) for InDet and Muons, it inherits from the common MeasurementBase.
Definition RIO_OnTrack.h:70
Abstract Base Class for tracking surfaces.
Ensure that the ATLAS eigen extensions are properly loaded.
Definition index.py:1