ATLAS Offline Software
Loading...
Searching...
No Matches
EntryLayerTool.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef ISF_GEANT4COMMONTOOLS_ENTRYLAYERTOOL_H
6#define ISF_GEANT4COMMONTOOLS_ENTRYLAYERTOOL_H 1
7
8// Gaudi
9#include "GaudiKernel/ToolHandle.h"
10#include "GaudiKernel/ServiceHandle.h"
11// Athena
13
14// ISF interface
16
17// TrackRecordCollection (and TrackRecord)
19
20// stl includes
21#include <string>
22
23namespace ISF {
24 class ISFParticle;
25 class IParticleFilter;
26 class IGeoIDSvc;
27}
28
29namespace ISF {
30
32 typedef ToolHandleArray<ISF::IParticleFilter> ParticleFilterArray;
33
39
40 class EntryLayerTool : public extends<AthAlgTool, ISF::IEntryLayerTool> {
41
42 public:
44 EntryLayerTool( const std::string& t, const std::string& n, const IInterface* p );
45
47 virtual ~EntryLayerTool() = default;
48
50 virtual StatusCode initialize() override final;
51
53 virtual bool passesFilters( const ISFParticle& particle) override final;
54
57 virtual ISF::EntryLayer identifyEntryLayer( const ISFParticle& particle) override final;
58
61 ISF::EntryLayer entryLayer) override final;
62
64 virtual StatusCode registerTrackRecordCollection(TrackRecordCollection* collection, EntryLayer layer) override final;
65
66 virtual void setupEvent() override final;
67
68 private:
71
75
80
85 };
86
87}
88
89#endif //> !ISF_GEANT4COMMONTOOLS_ENTRYLAYERTOOL_H
AtlasHitsVector< TrackRecord > TrackRecordCollection
std::string m_volumeName[ISF::fNumAtlasEntryLayers]
virtual StatusCode initialize() override final
Athena algtool's Hooks.
virtual void setupEvent() override final
ServiceHandle< ISF::IGeoIDSvc > m_geoIDSvc
GeoIDSvc will be used to determine the entry layer surface, the particle is on.
std::string m_SGName[ISF::fNumAtlasEntryLayers]
virtual ISF::EntryLayer registerParticle(const ISF::ISFParticle &particle, ISF::EntryLayer entryLayer) override final
Add the given particle to the corresponding Entry/Exit layer if applicable.
TrackRecordCollection * setupSGCollection(const std::string &name)
used to setup a TrackRecordCollection on storegate
EntryLayerTool(const std::string &t, const std::string &n, const IInterface *p)
Constructor with parameters.
virtual bool passesFilters(const ISFParticle &particle) override final
Check if given particle passes the EntryLayer filters.
virtual ISF::EntryLayer identifyEntryLayer(const ISFParticle &particle) override final
Identify the corresponding entry layer for the given particle (may return ISF::fUnsetEntryLayer if pa...
virtual StatusCode registerTrackRecordCollection(TrackRecordCollection *collection, EntryLayer layer) override final
Register the TrackRecordCollection pointer for a layer.
TrackRecordCollection * m_collection[ISF::fNumAtlasEntryLayers]
The entry layer collections.
ParticleFilterArray m_particleFilterHandle
Array of filters to decide whether a particle is added to the Entry/Exit layer.
ISF::IParticleFilter ** m_particleFilter
ISF::IGeoIDSvc * m_geoIDSvcQuick
virtual ~EntryLayerTool()=default
Destructor.
The interface to chose between the sub geometry services, realized as an AlgTool since it does not ha...
Definition IGeoIDSvc.h:41
The generic ISF particle definition,.
Definition ISFParticle.h:42
ISFParticleOrderedQueue.
ToolHandleArray< ISF::IParticleFilter > ParticleFilterArray
use this typedef to make the code structure more clean
EntryLayer
Identifiers for the TrackRecordCollections on the boundaries between CaloEntry: Inner Detector - Calo...
Definition EntryLayer.h:31
@ fNumAtlasEntryLayers
Definition EntryLayer.h:41
STL namespace.
#define private