ATLAS Offline Software
Loading...
Searching...
No Matches
ThinInDetForwardTrackParticlesAlg.h
Go to the documentation of this file.
1
2
3/*
4 Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
5*/
6
7#ifndef THINNINGUTILS_ThinInDetForwardTrackParticlesAlg_H
8#define THINNINGUTILS_ThinInDetForwardTrackParticlesAlg_H 1
9
13
14// FrameWork includes
16#include "GaudiKernel/ServiceHandle.h"
17#include "GaudiKernel/ToolHandle.h"
22
23// STL includes
24#include <atomic>
25#include <string>
26
28{
29public:
31 ThinInDetForwardTrackParticlesAlg(const std::string& name,
32 ISvcLocator* pSvcLocator);
33
36
38 virtual StatusCode initialize() override;
39
41 virtual StatusCode execute(const EventContext& ctx) const override;
42
44 virtual StatusCode finalize() override;
45
46private:
47 StringProperty m_streamName{ this,
48 "StreamName",
49 "",
50 "Stream for which to thin" };
51
53 this,
54 "TracksKey",
55 "InDetForwardTrackParticles",
56 "Tracks to thin"
57 };
58
60 m_muonsKey{ this, "MuonsKey", "Muons", "Muons to use for thinning" };
61
63 BooleanProperty m_doThinning{
64 this,
65 "ThinInDetForwardTrackParticles",
66 true,
67 "Should the InDetForwardTrackParticles thinning be run?"
68 };
69
71 mutable std::atomic<unsigned long> m_nEventsProcessed{};
72 mutable std::atomic<unsigned long> m_nTracksProcessed{};
73 mutable std::atomic<unsigned long> m_nTracksThinned{};
74 mutable std::atomic<unsigned long> m_nMuons{};
75 mutable std::atomic<unsigned long> m_nSiFwdMuons{};
76 mutable std::atomic<unsigned long> m_nSiFwdAssoc{};
77};
78
79#endif //> !THINNINGUTILS_ThinInDetForwardTrackParticlesAlg_H
Property holding a SG store/key/clid from which a ReadHandle is made.
HandleKey object for adding thinning to an object.
An algorithm that can be simultaneously executed in multiple threads.
Property holding a SG store/key/clid from which a ReadHandle is made.
HandleKey object for adding thinning to an object.
std::atomic< unsigned long > m_nEventsProcessed
Counters.
ThinInDetForwardTrackParticlesAlg(const std::string &name, ISvcLocator *pSvcLocator)
Constructor with parameters:
virtual StatusCode initialize() override
Athena algorithm's initalize hook.
SG::ThinningHandleKey< xAOD::TrackParticleContainer > m_tracksKey
virtual StatusCode execute(const EventContext &ctx) const override
Athena algorithm's execute hook.
virtual StatusCode finalize() override
Athena algorithm's finalize hook.
SG::ReadHandleKey< xAOD::MuonContainer > m_muonsKey
virtual ~ThinInDetForwardTrackParticlesAlg()=default
Destructor:
BooleanProperty m_doThinning
Should the thinning run?