ATLAS Offline Software
ThinInDetForwardTrackParticlesAlg.h
Go to the documentation of this file.
1 
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 
14 // FrameWork includes
16 #include "GaudiKernel/ServiceHandle.h"
17 #include "GaudiKernel/ToolHandle.h"
20 #include "xAODMuon/MuonContainer.h"
22 
23 // STL includes
24 #include <atomic>
25 #include <string>
26 
28 {
29 public:
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 
46 private:
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
ThinInDetForwardTrackParticlesAlg::m_nSiFwdMuons
std::atomic< unsigned long > m_nSiFwdMuons
Definition: ThinInDetForwardTrackParticlesAlg.h:75
ReadHandleKey.h
Property holding a SG store/key/clid from which a ReadHandle is made.
ThinInDetForwardTrackParticlesAlg::initialize
virtual StatusCode initialize() override
Athena algorithm's initalize hook.
Definition: ThinInDetForwardTrackParticlesAlg.cxx:47
SG::ThinningHandleKey
HandleKey object for adding thinning to an object.
Definition: ThinningHandleKey.h:38
ThinInDetForwardTrackParticlesAlg::m_streamName
StringProperty m_streamName
Definition: ThinInDetForwardTrackParticlesAlg.h:47
ThinInDetForwardTrackParticlesAlg::m_nMuons
std::atomic< unsigned long > m_nMuons
Definition: ThinInDetForwardTrackParticlesAlg.h:74
ThinInDetForwardTrackParticlesAlg
Definition: ThinInDetForwardTrackParticlesAlg.h:28
ThinInDetForwardTrackParticlesAlg::m_nTracksProcessed
std::atomic< unsigned long > m_nTracksProcessed
Definition: ThinInDetForwardTrackParticlesAlg.h:72
SG::ReadHandleKey
Property holding a SG store/key/clid from which a ReadHandle is made.
Definition: StoreGate/StoreGate/ReadHandleKey.h:39
AthReentrantAlgorithm
An algorithm that can be simultaneously executed in multiple threads.
Definition: AthReentrantAlgorithm.h:83
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ThinInDetForwardTrackParticlesAlg::m_nSiFwdAssoc
std::atomic< unsigned long > m_nSiFwdAssoc
Definition: ThinInDetForwardTrackParticlesAlg.h:76
AthReentrantAlgorithm.h
ThinInDetForwardTrackParticlesAlg::m_muonsKey
SG::ReadHandleKey< xAOD::MuonContainer > m_muonsKey
Definition: ThinInDetForwardTrackParticlesAlg.h:60
ThinInDetForwardTrackParticlesAlg::m_nTracksThinned
std::atomic< unsigned long > m_nTracksThinned
Definition: ThinInDetForwardTrackParticlesAlg.h:73
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
MuonContainer.h
ThinInDetForwardTrackParticlesAlg::m_tracksKey
SG::ThinningHandleKey< xAOD::TrackParticleContainer > m_tracksKey
Definition: ThinInDetForwardTrackParticlesAlg.h:52
ThinInDetForwardTrackParticlesAlg::ThinInDetForwardTrackParticlesAlg
ThinInDetForwardTrackParticlesAlg(const std::string &name, ISvcLocator *pSvcLocator)
Constructor with parameters:
Definition: ThinInDetForwardTrackParticlesAlg.cxx:37
ThinningHandleKey.h
HandleKey object for adding thinning to an object.
ThinInDetForwardTrackParticlesAlg::finalize
virtual StatusCode finalize() override
Athena algorithm's finalize hook.
Definition: ThinInDetForwardTrackParticlesAlg.cxx:73
ThinInDetForwardTrackParticlesAlg::m_nEventsProcessed
std::atomic< unsigned long > m_nEventsProcessed
Counters.
Definition: ThinInDetForwardTrackParticlesAlg.h:71
TrackParticleContainer.h
ThinInDetForwardTrackParticlesAlg::execute
virtual StatusCode execute(const EventContext &ctx) const override
Athena algorithm's execute hook.
Definition: ThinInDetForwardTrackParticlesAlg.cxx:88
ThinInDetForwardTrackParticlesAlg::m_doThinning
BooleanProperty m_doThinning
Should the thinning run?
Definition: ThinInDetForwardTrackParticlesAlg.h:63
ThinInDetForwardTrackParticlesAlg::~ThinInDetForwardTrackParticlesAlg
virtual ~ThinInDetForwardTrackParticlesAlg()=default
Destructor: