ATLAS Offline Software
ThinNegativeEnergyNeutralPFOsAlg.h
Go to the documentation of this file.
1 
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 
14 // STL includes
15 #include <string>
16 
17 // FrameWork includes
19 #include "GaudiKernel/ServiceHandle.h"
20 #include "GaudiKernel/ToolHandle.h"
22 
24 
26 {
27 public:
29  ThinNegativeEnergyNeutralPFOsAlg(const std::string& name,
30  ISvcLocator* pSvcLocator);
31 
33  virtual ~ThinNegativeEnergyNeutralPFOsAlg() = default;
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 
44 private:
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
FlowElementContainer.h
ThinNegativeEnergyNeutralPFOsAlg::m_nEventsProcessed
std::atomic< unsigned long > m_nEventsProcessed
Counters.
Definition: ThinNegativeEnergyNeutralPFOsAlg.h:75
SG::ThinningHandleKey
HandleKey object for adding thinning to an object.
Definition: ThinningHandleKey.h:38
ThinNegativeEnergyNeutralPFOsAlg::execute
virtual StatusCode execute(const EventContext &ctx) const override final
Athena algorithm's execute hook.
Definition: ThinNegativeEnergyNeutralPFOsAlg.cxx:92
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:562
ThinNegativeEnergyNeutralPFOsAlg::m_LCNeutralPFOsKey
SG::ThinningHandleKey< xAOD::FlowElementContainer > m_LCNeutralPFOsKey
Definition: ThinNegativeEnergyNeutralPFOsAlg.h:67
ThinNegativeEnergyNeutralPFOsAlg::finalize
virtual StatusCode finalize() override final
Athena algorithm's finalize hook.
Definition: ThinNegativeEnergyNeutralPFOsAlg.cxx:81
ThinNegativeEnergyNeutralPFOsAlg::ThinNegativeEnergyNeutralPFOsAlg
ThinNegativeEnergyNeutralPFOsAlg(const std::string &name, ISvcLocator *pSvcLocator)
Constructor with parameters:
Definition: ThinNegativeEnergyNeutralPFOsAlg.cxx:34
ThinNegativeEnergyNeutralPFOsAlg::m_streamName
StringProperty m_streamName
Definition: ThinNegativeEnergyNeutralPFOsAlg.h:45
ThinNegativeEnergyNeutralPFOsAlg::m_neutralPFOsKey
SG::ThinningHandleKey< xAOD::FlowElementContainer > m_neutralPFOsKey
Names of the containers to thin.
Definition: ThinNegativeEnergyNeutralPFOsAlg.h:61
AthReentrantAlgorithm
An algorithm that can be simultaneously executed in multiple threads.
Definition: AthReentrantAlgorithm.h:83
ThinNegativeEnergyNeutralPFOsAlg
Definition: ThinNegativeEnergyNeutralPFOsAlg.h:26
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ThinNegativeEnergyNeutralPFOsAlg::m_nNeutralPFOsThinned
std::atomic< unsigned long > m_nNeutralPFOsThinned
Definition: ThinNegativeEnergyNeutralPFOsAlg.h:77
ThinNegativeEnergyNeutralPFOsAlg::m_doThinning
BooleanProperty m_doThinning
Should the thinning run?
Definition: ThinNegativeEnergyNeutralPFOsAlg.h:53
AthReentrantAlgorithm.h
ThinNegativeEnergyNeutralPFOsAlg::m_nNeutralPFOsProcessed
std::atomic< unsigned long > m_nNeutralPFOsProcessed
Definition: ThinNegativeEnergyNeutralPFOsAlg.h:76
private
#define private
Definition: DetDescrConditionsDict_dict_fixes.cxx:13
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
ThinNegativeEnergyNeutralPFOsAlg::initialize
virtual StatusCode initialize() override final
Athena algorithm's initalize hook.
Definition: ThinNegativeEnergyNeutralPFOsAlg.cxx:47
ThinningHandleKey.h
HandleKey object for adding thinning to an object.
ThinNegativeEnergyNeutralPFOsAlg::~ThinNegativeEnergyNeutralPFOsAlg
virtual ~ThinNegativeEnergyNeutralPFOsAlg()=default
Destructor: