ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Simulation
ISF
ISF_Geant4
ISF_Geant4CommonTools
src
EntryLayerToolMT.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_ENTRYLAYERTOOLMT_H
6
#define ISF_GEANT4COMMONTOOLS_ENTRYLAYERTOOLMT_H 1
7
8
// Gaudi
9
#include "GaudiKernel/ToolHandle.h"
10
#include "GaudiKernel/ServiceHandle.h"
11
// Athena
12
#include "
AthenaBaseComps/AthAlgTool.h
"
13
14
// ISF interfaces
15
#include "
ISF_Interfaces/IParticleFilter.h
"
16
#include "
ISF_Interfaces/IGeoIDSvc.h
"
17
#include "
ISF_Interfaces/IEntryLayerTool.h
"
18
19
// TrackRecordCollection (and TrackRecord)
20
#include "
TrackRecord/TrackRecordCollection.h
"
21
22
// stl includes
23
#include <array>
24
#include <memory>
25
#include <string>
26
27
namespace
ISF
{
28
class
ISFParticle
;
29
}
30
31
namespace
ISF
{
32
34
typedef
ToolHandleArray<ISF::IParticleFilter>
ParticleFilterArray
;
35
41
42
class
EntryLayerToolMT
:
public
extends<AthAlgTool, ISF::IEntryLayerTool> {
43
44
public
:
46
EntryLayerToolMT
(
const
std::string& t,
const
std::string& n,
const
IInterface* p );
47
49
virtual
~EntryLayerToolMT
() =
default
;
50
52
virtual
StatusCode
initialize
() override final;
53
54
// /** handle for incident service */
55
// void handle(const Incident& inc);
56
58
virtual
bool
passesFilters
(
const
ISFParticle
& particle) override final;
59
62
virtual
ISF
::
EntryLayer
identifyEntryLayer
(
const
ISFParticle
& particle) override final;
63
65
virtual
ISF
::
EntryLayer
registerParticle
(
const
ISF
::
ISFParticle
&particle,
66
ISF
::
EntryLayer
entryLayer) override final;
67
69
virtual StatusCode
registerTrackRecordCollection
(
TrackRecordCollection
* collection,
EntryLayer
layer) override final;
70
71
virtual
void
setupEvent
()
override
{
return
; }
72
73
private
:
75
ServiceHandle<ISF::IGeoIDSvc>
m_geoIDSvc
{
this
,
"GeoIDSvc"
,
"GeoIDSvc"
,
"AthenaService used to indentify sub-detector by (x,y,z) coordintes."
};
76
ISF::IGeoIDSvc
*
m_geoIDSvcQuick
{};
77
79
ParticleFilterArray
m_particleFilterHandle
{
this
,
"ParticleFilters"
, {},
"ISF Particle filters, defining whether a particle will be stored or not."
};
80
ISF::IParticleFilter
**
m_particleFilter
{};
81
size_t
m_numParticleFilters
{0};
82
84
static
thread_local
std::unique_ptr<std::array<TrackRecordCollection*, ISF::fNumAtlasEntryLayers>>
s_collection
;
85
std::string
m_volumeName
[
ISF::fNumAtlasEntryLayers
];
86
};
87
88
}
89
90
#endif
//> !ISF_GEANT4COMMONTOOLS_ENTRYLAYERTOOL_H
AthAlgTool.h
IEntryLayerTool.h
IGeoIDSvc.h
IParticleFilter.h
TrackRecordCollection.h
TrackRecordCollection
AtlasHitsVector< TrackRecord > TrackRecordCollection
Definition
TrackRecordCollection.h:12
ISF::EntryLayerToolMT::m_geoIDSvc
ServiceHandle< ISF::IGeoIDSvc > m_geoIDSvc
GeoIDSvc will be used to determine the entry layer surface, the particle is on.
Definition
EntryLayerToolMT.h:75
ISF::EntryLayerToolMT::passesFilters
virtual bool passesFilters(const ISFParticle &particle) override final
Check if given particle passes the EntryLayer filters.
Definition
EntryLayerToolMT.cxx:59
ISF::EntryLayerToolMT::~EntryLayerToolMT
virtual ~EntryLayerToolMT()=default
Destructor.
ISF::EntryLayerToolMT::m_particleFilter
ISF::IParticleFilter ** m_particleFilter
Definition
EntryLayerToolMT.h:80
ISF::EntryLayerToolMT::setupEvent
virtual void setupEvent() override
Definition
EntryLayerToolMT.h:71
ISF::EntryLayerToolMT::m_volumeName
std::string m_volumeName[ISF::fNumAtlasEntryLayers]
Definition
EntryLayerToolMT.h:85
ISF::EntryLayerToolMT::registerTrackRecordCollection
virtual StatusCode registerTrackRecordCollection(TrackRecordCollection *collection, EntryLayer layer) override final
Register the TrackRecordCollection pointer for a layer.
Definition
EntryLayerToolMT.cxx:159
ISF::EntryLayerToolMT::identifyEntryLayer
virtual ISF::EntryLayer identifyEntryLayer(const ISFParticle &particle) override final
Identify the corresponding entry layer for the given particle (may return ISF::fUnsetEntryLayere if p...
Definition
EntryLayerToolMT.cxx:72
ISF::EntryLayerToolMT::m_numParticleFilters
size_t m_numParticleFilters
Definition
EntryLayerToolMT.h:81
ISF::EntryLayerToolMT::m_particleFilterHandle
ParticleFilterArray m_particleFilterHandle
Array of filters to decide whether a particle is added to the Entry/Exit layer.
Definition
EntryLayerToolMT.h:79
ISF::EntryLayerToolMT::initialize
virtual StatusCode initialize() override final
Athena algtool's Hooks.
Definition
EntryLayerToolMT.cxx:34
ISF::EntryLayerToolMT::EntryLayerToolMT
EntryLayerToolMT(const std::string &t, const std::string &n, const IInterface *p)
Constructor with parameters.
Definition
EntryLayerToolMT.cxx:16
ISF::EntryLayerToolMT::registerParticle
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.
Definition
EntryLayerToolMT.cxx:106
ISF::EntryLayerToolMT::s_collection
static std::unique_ptr< std::array< TrackRecordCollection *, ISF::fNumAtlasEntryLayers > > s_collection
The entry layer collections.
Definition
EntryLayerToolMT.h:84
ISF::EntryLayerToolMT::m_geoIDSvcQuick
ISF::IGeoIDSvc * m_geoIDSvcQuick
Definition
EntryLayerToolMT.h:76
ISF::IGeoIDSvc
The interface to chose between the sub geometry services, realized as an AlgTool since it does not ha...
Definition
IGeoIDSvc.h:41
ISF::IParticleFilter
Definition
IParticleFilter.h:28
ISF::ISFParticle
The generic ISF particle definition,.
Definition
ISFParticle.h:42
ServiceHandle
Definition
ClusterMakerTool.h:36
const
ISF
ISFParticleOrderedQueue.
Definition
PrimaryParticleInformation.h:13
ISF::ParticleFilterArray
ToolHandleArray< ISF::IParticleFilter > ParticleFilterArray
use this typedef to make the code structure more clean
Definition
EntryLayerTool.h:32
ISF::EntryLayer
EntryLayer
Identifiers for the TrackRecordCollections on the boundaries between CaloEntry: Inner Detector - Calo...
Definition
EntryLayer.h:31
ISF::fNumAtlasEntryLayers
@ fNumAtlasEntryLayers
Definition
EntryLayer.h:41
Generated on
for ATLAS Offline Software by
1.17.0