ATLAS Offline Software
Loading...
Searching...
No Matches
ThinNegativeEnergyNeutralPFOsAlg.h
Go to the documentation of this file.
1
2
3/*
4 Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
5*/
6
7#ifndef THINNINGUTILS_ThinNegativeEnergyNeutralPFOsAlg_H
8#define THINNINGUTILS_ThinNegativeEnergyNeutralPFOsAlg_H 1
9
13
14// STL includes
15#include <string>
16
17// FrameWork includes
19#include "GaudiKernel/ServiceHandle.h"
20#include "GaudiKernel/ToolHandle.h"
22
24
26{
27public:
29 ThinNegativeEnergyNeutralPFOsAlg(const std::string& name,
30 ISvcLocator* pSvcLocator);
31
34
36 virtual StatusCode initialize() override final;
37
39 virtual StatusCode execute(const EventContext& ctx) const override final;
40
42 virtual StatusCode finalize() override final;
43
45 StringProperty m_streamName{
46 this,
47 "StreamName",
48 "",
49 "Name of the stream for which thinning is being done."
50 };
51
53 BooleanProperty m_doThinning{
54 this,
55 "ThinNegativeEnergyNeutralPFOs",
56 true,
57 "Should the thinning of negative energy neutral PFOs be run?"
58 };
59
62 this,
63 "NeutralPFOsKey",
64 "JetETMissNeutralParticleFlowObjects",
65 "StoreGate key for the FlowElementContainer to be thinned"
66 };
68 this,
69 "LCNeutralPFOsKey",
70 "JetETMissLCNeutralParticleFlowObjects",
71 "StoreGate key for the LC FlowElementContainer to be thinned (if any)"
72 };
73
75 mutable std::atomic<unsigned long> m_nEventsProcessed;
76 mutable std::atomic<unsigned long> m_nNeutralPFOsProcessed;
77 mutable std::atomic<unsigned long> m_nNeutralPFOsThinned;
78};
79
80#endif //> !THINNINGUTILS_ThinNegativeEnergyNeutralPFOsAlg_H
HandleKey object for adding thinning to an object.
An algorithm that can be simultaneously executed in multiple threads.
HandleKey object for adding thinning to an object.
BooleanProperty m_doThinning
Should the thinning run?
ThinNegativeEnergyNeutralPFOsAlg(const std::string &name, ISvcLocator *pSvcLocator)
Constructor with parameters:
virtual StatusCode finalize() override final
Athena algorithm's finalize hook.
virtual StatusCode execute(const EventContext &ctx) const override final
Athena algorithm's execute hook.
SG::ThinningHandleKey< xAOD::FlowElementContainer > m_LCNeutralPFOsKey
virtual ~ThinNegativeEnergyNeutralPFOsAlg()=default
Destructor:
virtual StatusCode initialize() override final
Athena algorithm's initalize hook.
SG::ThinningHandleKey< xAOD::FlowElementContainer > m_neutralPFOsKey
Names of the containers to thin.
std::atomic< unsigned long > m_nNeutralPFOsProcessed
std::atomic< unsigned long > m_nEventsProcessed
Counters.
#define private