ATLAS Offline Software
ThinTrkTrackAlg.h
Go to the documentation of this file.
1 
3 /*
4  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
5 */
6 
7 #ifndef THINNINGUTILS_ThinTrkTrackAlg_H
8 #define THINNINGUTILS_ThinTrkTrackAlg_H
9 
12 // STL includes
13 #include <string>
14 
15 // FrameWork includes
17 #include "GaudiKernel/ServiceHandle.h"
18 #include "GaudiKernel/ToolHandle.h"
19 
27 #include "xAODMuon/MuonContainer.h"
28 
30 {
31 public:
34  virtual StatusCode initialize() override final;
35 
37  virtual StatusCode execute(const EventContext& ctx) const override final;
38 
39 private:
41  StatusCode doEGamma(const EventContext& ctx) const;
42  StatusCode doMuons(const EventContext& ctx) const;
43 
44  StringProperty m_streamName{ this,
45  "StreamName",
46  "",
47  "Name of the stream being thinned" };
48 
52  this,
53  "MuonsKey",
54  "Muons",
55  "StoreGate key for muons container"
56  };
57 
59  this,
60  "ElectronsKey",
61  "Electrons",
62  "StoreGate key for electrons container"
63  };
64 
66  this,
67  "PhotonsKey",
68  "Photons",
69  "StoreGate key for photon container"
70  };
71 
74  this,
75  "CombinedMuonsTrackKey",
76  "CombinedMuonTracks",
77  "StoreGate key for combined muons Trk::Track container"
78  };
79 
81  this,
82  "GSFTrackKey",
83  "GSFTracks",
84  "StoreGate key for GSF Trk::Track container"
85  };
86 
87  Gaudi::Property<bool> m_doElectrons{ this, "doElectrons", true };
88  Gaudi::Property<bool> m_doPhotons{ this, "doPhotons", true };
89  Gaudi::Property<bool> m_doMuons{ this, "doMuons", true };
90  Gaudi::Property<bool> m_bestonlyElectrons{ this, "OnlyBestElectrons", true };
91  Gaudi::Property<bool> m_bestonlyPhotons{ this, "OnlyBestPhotons", true };
92  Gaudi::Property<double> m_minptElectrons{ this, "minptElectrons", 4000. };
93  Gaudi::Property<double> m_minptPhotons{ this, "minptPhotons", 4000. };
94  Gaudi::Property<double> m_minptMuons{ this, "minptMuons", 4000. };
95 };
96 
97 #endif
ThinTrkTrackAlg::m_GSFTracksKey
SG::ThinningHandleKey< TrackCollection > m_GSFTracksKey
Definition: ThinTrkTrackAlg.h:80
SG::ThinningHandleKey
HandleKey object for adding thinning to an object.
Definition: ThinningHandleKey.h:38
TRT_DetElementContainer.h
ThinTrkTrackAlg::m_photonsKey
SG::ReadHandleKey< xAOD::PhotonContainer > m_photonsKey
Definition: ThinTrkTrackAlg.h:65
ThinTrkTrackAlg::doEGamma
StatusCode doEGamma(const EventContext &ctx) const
Inline method.
Definition: ThinTrkTrackAlg.cxx:74
ThinTrkTrackAlg::m_minptMuons
Gaudi::Property< double > m_minptMuons
Definition: ThinTrkTrackAlg.h:94
ThinTrkTrackAlg::m_CombinedMuonsTracksKey
SG::ThinningHandleKey< TrackCollection > m_CombinedMuonsTracksKey
Containers to thin.
Definition: ThinTrkTrackAlg.h:73
ThinTrkTrackAlg::doMuons
StatusCode doMuons(const EventContext &ctx) const
Definition: ThinTrkTrackAlg.cxx:150
SG::ReadHandleKey
Property holding a SG store/key/clid from which a ReadHandle is made.
Definition: StoreGate/StoreGate/ReadHandleKey.h:39
ThinTrkTrackAlg::m_electronsKey
SG::ReadHandleKey< xAOD::ElectronContainer > m_electronsKey
Definition: ThinTrkTrackAlg.h:58
ThinTrkTrackAlg::m_bestonlyElectrons
Gaudi::Property< bool > m_bestonlyElectrons
Definition: ThinTrkTrackAlg.h:90
ThinTrkTrackAlg::m_minptElectrons
Gaudi::Property< double > m_minptElectrons
Definition: ThinTrkTrackAlg.h:92
AthReentrantAlgorithm
An algorithm that can be simultaneously executed in multiple threads.
Definition: AthReentrantAlgorithm.h:83
ThinTrkTrackAlg::m_bestonlyPhotons
Gaudi::Property< bool > m_bestonlyPhotons
Definition: ThinTrkTrackAlg.h:91
ThinTrkTrackAlg::m_doPhotons
Gaudi::Property< bool > m_doPhotons
Definition: ThinTrkTrackAlg.h:88
ThinTrkTrackAlg::m_doMuons
Gaudi::Property< bool > m_doMuons
Definition: ThinTrkTrackAlg.h:89
AthReentrantAlgorithm::AthReentrantAlgorithm
AthReentrantAlgorithm()
Default constructor:
ElectronContainer.h
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
TrackCollection.h
ThinTrkTrackAlg::m_muonsKey
SG::ReadHandleKey< xAOD::MuonContainer > m_muonsKey
Should the thinning run? The containers of Objects of interest Electron/Muon.
Definition: ThinTrkTrackAlg.h:51
ReadCondHandleKey.h
AthReentrantAlgorithm.h
ThinTrkTrackAlg
Definition: ThinTrkTrackAlg.h:30
ThinTrkTrackAlg::m_doElectrons
Gaudi::Property< bool > m_doElectrons
Definition: ThinTrkTrackAlg.h:87
SiDetectorElementCollection.h
MuonContainer.h
ThinTrkTrackAlg::initialize
virtual StatusCode initialize() override final
Athena algorithm's initalize hook.
Definition: ThinTrkTrackAlg.cxx:23
ThinningHandleKey.h
HandleKey object for adding thinning to an object.
ThinTrkTrackAlg::m_minptPhotons
Gaudi::Property< double > m_minptPhotons
Definition: ThinTrkTrackAlg.h:93
ThinTrkTrackAlg::execute
virtual StatusCode execute(const EventContext &ctx) const override final
Athena algorithm's execute hook.
Definition: ThinTrkTrackAlg.cxx:61
PhotonContainer.h
ThinTrkTrackAlg::m_streamName
StringProperty m_streamName
Definition: ThinTrkTrackAlg.h:44