|
ATLAS Offline Software
|
#include <IsoCloseByCorrectionTrkSelAlg.h>
|
| IsoCloseByCorrectionTrkSelAlg (const std::string &name, ISvcLocator *svcLoc) |
|
StatusCode | execute (const EventContext &ctx) const override |
|
StatusCode | initialize () override |
|
StatusCode | finalize () override |
|
virtual StatusCode | sysInitialize () override |
| Override sysInitialize. More...
|
|
virtual bool | isClonable () const override |
| Specify if the algorithm is clonable. More...
|
|
virtual unsigned int | cardinality () const override |
| Cardinality (Maximum number of clones that can exist) special value 0 means that algorithm is reentrant. More...
|
|
virtual StatusCode | sysExecute (const EventContext &ctx) override |
| Execute an algorithm. More...
|
|
virtual const DataObjIDColl & | extraOutputDeps () const override |
| Return the list of extra output dependencies. More...
|
|
virtual bool | filterPassed (const EventContext &ctx) const |
|
virtual void | setFilterPassed (bool state, const EventContext &ctx) const |
|
ServiceHandle< StoreGateSvc > & | evtStore () |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | evtStore () const |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | detStore () const |
| The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
virtual StatusCode | sysStart () override |
| Handle START transition. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | inputHandles () const override |
| Return this algorithm's input handles. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | outputHandles () const override |
| Return this algorithm's output handles. More...
|
|
Gaudi::Details::PropertyBase & | declareProperty (Gaudi::Property< T > &t) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc="none") |
| Declare a new Gaudi property. More...
|
|
void | updateVHKA (Gaudi::Details::PropertyBase &) |
|
MsgStream & | msg () const |
|
MsgStream & | msg (const MSG::Level lvl) const |
|
bool | msgLvl (const MSG::Level lvl) const |
|
|
bool | passSelection (const EventContext &ctx, const xAOD::Electron *elec) const |
|
bool | passSelection (const EventContext &ctx, const xAOD::Photon *phot) const |
|
bool | passSelection (const EventContext &ctx, const xAOD::Muon *muon) const |
|
template<class CONT_TYPE > |
StatusCode | loadTracks (const EventContext &ctx, const SG::ReadHandleKey< CONT_TYPE > &key, TrackSet &tracks, LepContainer &prim_objs) const |
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKey> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyArrayType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleType &) |
| specialization for handling Gaudi::Property<SG::VarHandleBase> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &t, const SG::NotHandleType &) |
| specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
|
|
|
SG::ReadHandleKey< xAOD::MuonContainer > | m_muonKey {this, "MuonContainer", "Muons"} |
| Input containers to retrieve from the storegate. More...
|
|
SG::ReadHandleKey< xAOD::ElectronContainer > | m_elecKey {this, "EleContainer", "Electrons"} |
|
SG::ReadHandleKey< xAOD::PhotonContainer > | m_photKey {this, "PhotContainer", "Photons"} |
|
Gaudi::Property< std::string > | m_selDecoration |
| External selection criteria. More...
|
|
SG::ReadDecorHandleKey< xAOD::MuonContainer > | m_mounSelKey {this, "MuonSelectionKey", ""} |
| The keys serve to declare the data dependency on the optional selection decorator properly. More...
|
|
SG::ReadDecorHandleKey< xAOD::ElectronContainer > | m_elecSelKey {this, "ElecSelectionKey", ""} |
|
SG::ReadDecorHandleKey< xAOD::PhotonContainer > | m_photSelKey {this, "PhotSelectionKey", ""} |
|
ToolHandle< CP::IMuonSelectionTool > | m_muonSelTool {this, "MuonSelectionTool", ""} |
| Optionally the user can also parse the elec / muon / photon selection tools. More...
|
|
ToolHandle< IAsgElectronLikelihoodTool > | m_elecSelTool {this, "ElectronSelectionTool", ""} |
|
ToolHandle< IAsgPhotonIsEMSelector > | m_photSelTool {this, "PhotonSelectionTool", ""} |
|
ToolHandle< CP::IIsolationCloseByCorrectionTool > | m_closeByCorrTool |
| These tools shall be configured to pick up the same Inner detector tracks as for the isolation building. More...
|
|
Gaudi::Property< float > | m_minElecPt |
| Kinematic cuts. The selection tools do not support kinematic cut selection unfortunately. More...
|
|
Gaudi::Property< float > | m_minMuonPt |
|
Gaudi::Property< float > | m_minPhotPt |
|
Gaudi::Property< float > | m_maxConeSize {this, "ConeSize", 0.3} |
|
Gaudi::Property< std::string > | m_stream {this, "OutputStream", "", "Stream"} |
| Output stream to be used for the thinning decision. More...
|
|
SG::ThinningHandleKey< xAOD::TrackParticleContainer > | m_thinKey |
|
SG::WriteHandleKey< ConstDataVector< xAOD::TrackParticleContainer > > | m_trkKey |
| Optionally the user can also dump a TrackParticleContainer containing all the tracks entring the cone 0.3. More...
|
|
std::array< std::atomic< Long64_t >, 3 > m_accepted_trks | ATLAS_THREAD_SAFE |
| Array counting the number of accepted tracks per object type muon[0], electron[1], photon[2]. More...
|
|
std::array< std::atomic< Long64_t >, 3 > m_selected_obj | ATLAS_THREAD_SAFE |
|
std::atomic< Long64_t > | m_tot_trks {} |
| Total track counter. More...
|
|
DataObjIDColl | m_extendedExtraObjects |
| Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks. More...
|
|
StoreGateSvc_t | m_evtStore |
| Pointer to StoreGate (event store by default) More...
|
|
StoreGateSvc_t | m_detStore |
| Pointer to StoreGate (detector store by default) More...
|
|
std::vector< SG::VarHandleKeyArray * > | m_vhka |
|
bool | m_varHandleArraysDeclared |
|
◆ LepContainer
◆ StoreGateSvc_t
◆ IsoCloseByCorrectionTrkSelAlg()
CP::IsoCloseByCorrectionTrkSelAlg::IsoCloseByCorrectionTrkSelAlg |
( |
const std::string & |
name, |
|
|
ISvcLocator * |
svcLoc |
|
) |
| |
◆ cardinality()
unsigned int AthReentrantAlgorithm::cardinality |
( |
| ) |
const |
|
overridevirtualinherited |
Cardinality (Maximum number of clones that can exist) special value 0 means that algorithm is reentrant.
Override this to return 0 for reentrant algorithms.
Override this to return 0 for reentrant algorithms.
Definition at line 55 of file AthReentrantAlgorithm.cxx.
◆ declareGaudiProperty() [1/4]
specialization for handling Gaudi::Property<SG::VarHandleKeyArray>
Definition at line 170 of file AthCommonDataStore.h.
175 hndl.documentation());
◆ declareGaudiProperty() [2/4]
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition at line 156 of file AthCommonDataStore.h.
161 hndl.documentation());
◆ declareGaudiProperty() [3/4]
specialization for handling Gaudi::Property<SG::VarHandleBase>
Definition at line 184 of file AthCommonDataStore.h.
189 hndl.documentation());
◆ declareGaudiProperty() [4/4]
◆ declareProperty() [1/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleBase
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 245 of file AthCommonDataStore.h.
250 this->declare(hndl.
vhKey());
251 hndl.
vhKey().setOwner(
this);
◆ declareProperty() [2/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleKey
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 221 of file AthCommonDataStore.h.
◆ declareProperty() [3/6]
◆ declareProperty() [4/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This is the generic version, for types that do not derive from SG::VarHandleKey
. It just forwards to the base class version of declareProperty
.
Definition at line 333 of file AthCommonDataStore.h.
◆ declareProperty() [5/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This dispatches to either the generic declareProperty
or the one for VarHandle/Key/KeyArray.
Definition at line 352 of file AthCommonDataStore.h.
◆ declareProperty() [6/6]
◆ detStore()
◆ evtStore() [1/2]
◆ evtStore() [2/2]
◆ execute()
StatusCode CP::IsoCloseByCorrectionTrkSelAlg::execute |
( |
const EventContext & |
ctx | ) |
const |
|
override |
Next kick all track that cannot polute the isolation variable cones
The track particle can never polute the isolation cone of its associated lepton / photon
Update the counter
It's outside the cone
Dump the containers
Definition at line 68 of file IsoCloseByCorrectionTrkSelAlg.cxx.
73 const size_t n_muons = prim_objs.size();
75 const size_t n_elecs = prim_objs.size() - n_muons;
77 const size_t n_phots = prim_objs.size() - n_muons - n_elecs;
78 m_selected_obj[0] += n_muons;
79 m_selected_obj[1] += n_elecs;
80 m_selected_obj[2] += n_phots;
85 std::copy_if(assoc_trks.begin(), assoc_trks.end(), std::inserter(pruned_trks, pruned_trks.begin()),
92 if (assoc_trk.count(
track)) {
94 if (prim->type() == xAOD::Type::ObjectType::Muon)
96 else if (prim->type() == xAOD::Type::ObjectType::Electron)
98 else if (prim->type() == xAOD::Type::ObjectType::Photon)
107 if (trk_idx != -1)
break;
109 if (ret_code) ++m_accepted_trks[trk_idx];
112 assoc_trks = std::move(pruned_trks);
117 auto tracks = std::make_unique<ConstDataVector<xAOD::TrackParticleContainer>>(
SG::VIEW_ELEMENTS);
118 for (
const TrackPtr& trk : assoc_trks) {
120 tracks->push_back(trk_p);
123 ATH_CHECK(writeHandle.record(std::move(tracks)));
128 std::vector<bool> thin_dec(thinner->size(),
false);
129 for (
const TrackPtr& trk : assoc_trks) { thin_dec[trk->index()] =
true; }
130 thinner.keep(thin_dec);
132 return StatusCode::SUCCESS;
◆ extraDeps_update_handler()
Add StoreName to extra input/output deps as needed.
use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given
◆ extraOutputDeps()
const DataObjIDColl & AthReentrantAlgorithm::extraOutputDeps |
( |
| ) |
const |
|
overridevirtualinherited |
Return the list of extra output dependencies.
This list is extended to include symlinks implied by inheritance relations.
Definition at line 79 of file AthReentrantAlgorithm.cxx.
86 return Algorithm::extraOutputDeps();
◆ filterPassed()
virtual bool AthReentrantAlgorithm::filterPassed |
( |
const EventContext & |
ctx | ) |
const |
|
inlinevirtualinherited |
◆ finalize()
StatusCode CP::IsoCloseByCorrectionTrkSelAlg::finalize |
( |
| ) |
|
|
override |
Definition at line 54 of file IsoCloseByCorrectionTrkSelAlg.cxx.
55 const Long64_t tot_acc = m_accepted_trks[0] + m_accepted_trks[1] + m_accepted_trks[2];
56 ATH_MSG_INFO(
"Accepted " << tot_acc <<
" tracks associated with collimated lepton pairs."
57 <<
" Track association split into particle type");
58 ATH_MSG_INFO(
" --- Muons: " << m_accepted_trks[0] <<
" out of " << m_selected_obj[0] <<
" ("
59 << (m_selected_obj[0] ? 100. * m_accepted_trks[0] / m_selected_obj[0] : 0.) <<
"%).");
60 ATH_MSG_INFO(
" --- Electrons: " << m_accepted_trks[1] <<
" out of " << m_selected_obj[1] <<
" ("
61 << (m_selected_obj[1] ? 100. * m_accepted_trks[1] / m_selected_obj[1] : 0.) <<
"%).");
62 ATH_MSG_INFO(
" --- Photons: " << m_accepted_trks[2] <<
" out of " << m_selected_obj[2] <<
" ("
63 << (m_selected_obj[2] ? 100. * m_accepted_trks[2] / m_selected_obj[2] : 0.) <<
"%).");
66 return StatusCode::SUCCESS;
◆ initialize()
StatusCode CP::IsoCloseByCorrectionTrkSelAlg::initialize |
( |
| ) |
|
|
override |
◆ inputHandles()
Return this algorithm's input handles.
We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.
◆ isClonable()
bool AthReentrantAlgorithm::isClonable |
( |
| ) |
const |
|
overridevirtualinherited |
Specify if the algorithm is clonable.
Reentrant algorithms are clonable.
Reimplemented in Simulation::BeamEffectsAlg, InDet::SiTrackerSpacePointFinder, InDet::SCT_Clusterization, InDet::SiSPSeededTrackFinder, SCTRawDataProvider, InDet::GNNSeedingTrackMaker, SCT_PrepDataToxAOD, RoIBResultToxAOD, InDet::SiSPGNNTrackMaker, SCT_CablingCondAlgFromCoraCool, SCT_ReadCalibDataTestAlg, SCT_CablingCondAlgFromText, SCT_ReadCalibChipDataTestAlg, SCT_TestCablingAlg, SCT_ConfigurationConditionsTestAlg, ITkPixelCablingAlg, ITkStripCablingAlg, SCTEventFlagWriter, SCT_ConditionsSummaryTestAlg, SCT_ModuleVetoTestAlg, SCT_MonitorConditionsTestAlg, SCT_LinkMaskingTestAlg, SCT_MajorityConditionsTestAlg, SCT_RODVetoTestAlg, SCT_SensorsTestAlg, SCT_TdaqEnabledTestAlg, SCT_SiliconConditionsTestAlg, SCTSiLorentzAngleTestAlg, SCT_ByteStreamErrorsTestAlg, SCT_ConditionsParameterTestAlg, SCT_FlaggedConditionTestAlg, SCT_StripVetoTestAlg, SCT_RawDataToxAOD, and SCTSiPropertiesTestAlg.
Definition at line 44 of file AthReentrantAlgorithm.cxx.
◆ loadTracks()
template<class CONT_TYPE >
Definition at line 136 of file IsoCloseByCorrectionTrkSelAlg.cxx.
139 ATH_MSG_DEBUG(
"No key has been defined. Assume that the container is disabled ");
140 return StatusCode::SUCCESS;
145 return StatusCode::FAILURE;
151 tracks.insert(part_trks.begin(), part_trks.end());
153 return StatusCode::SUCCESS;
◆ msg() [1/2]
◆ msg() [2/2]
◆ msgLvl()
◆ outputHandles()
Return this algorithm's output handles.
We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.
◆ passSelection() [1/3]
◆ passSelection() [2/3]
bool CP::IsoCloseByCorrectionTrkSelAlg::passSelection |
( |
const EventContext & |
ctx, |
|
|
const xAOD::Muon * |
muon |
|
) |
| const |
|
private |
◆ passSelection() [3/3]
bool CP::IsoCloseByCorrectionTrkSelAlg::passSelection |
( |
const EventContext & |
ctx, |
|
|
const xAOD::Photon * |
phot |
|
) |
| const |
|
private |
◆ renounce()
◆ renounceArray()
◆ setFilterPassed()
virtual void AthReentrantAlgorithm::setFilterPassed |
( |
bool |
state, |
|
|
const EventContext & |
ctx |
|
) |
| const |
|
inlinevirtualinherited |
◆ sysExecute()
StatusCode AthReentrantAlgorithm::sysExecute |
( |
const EventContext & |
ctx | ) |
|
|
overridevirtualinherited |
Execute an algorithm.
We override this in order to work around an issue with the Algorithm base class storing the event context in a member variable that can cause crashes in MT jobs.
Definition at line 67 of file AthReentrantAlgorithm.cxx.
69 return Gaudi::Algorithm::sysExecute (ctx);
◆ sysInitialize()
StatusCode AthReentrantAlgorithm::sysInitialize |
( |
| ) |
|
|
overridevirtualinherited |
Override sysInitialize.
Override sysInitialize from the base class.
Loop through all output handles, and if they're WriteCondHandles, automatically register them and this Algorithm with the CondSvc
Scan through all outputHandles, and if they're WriteCondHandles, register them with the CondSvc
Reimplemented from AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >.
Reimplemented in InputMakerBase, and HypoBase.
Definition at line 96 of file AthReentrantAlgorithm.cxx.
107 if ( cs.retrieve().isFailure() ) {
109 return StatusCode::SUCCESS;
111 if (cs->regHandle(
this,*
h).isFailure()) {
112 sc = StatusCode::FAILURE;
113 ATH_MSG_ERROR(
"unable to register WriteCondHandle " <<
h->fullKey()
◆ sysStart()
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
◆ updateVHKA()
◆ ATLAS_THREAD_SAFE [1/2]
std::array<std::atomic<Long64_t>, 3> m_accepted_trks CP::IsoCloseByCorrectionTrkSelAlg::ATLAS_THREAD_SAFE |
|
mutableprivate |
◆ ATLAS_THREAD_SAFE [2/2]
std::array<std::atomic<Long64_t>, 3> m_selected_obj CP::IsoCloseByCorrectionTrkSelAlg::ATLAS_THREAD_SAFE |
|
mutableprivate |
◆ m_closeByCorrTool
Initial value:{this, "IsoCloseByCorrectionTool", "",
"The isolation close by correction tool."}
These tools shall be configured to pick up the same Inner detector tracks as for the isolation building.
Definition at line 70 of file IsoCloseByCorrectionTrkSelAlg.h.
◆ m_detStore
◆ m_elecKey
◆ m_elecSelKey
◆ m_elecSelTool
◆ m_evtStore
◆ m_extendedExtraObjects
DataObjIDColl AthReentrantAlgorithm::m_extendedExtraObjects |
|
privateinherited |
Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.
Empty if no symlinks were found.
Definition at line 153 of file AthReentrantAlgorithm.h.
◆ m_maxConeSize
Gaudi::Property<float> CP::IsoCloseByCorrectionTrkSelAlg::m_maxConeSize {this, "ConeSize", 0.3} |
|
private |
◆ m_minElecPt
Gaudi::Property<float> CP::IsoCloseByCorrectionTrkSelAlg::m_minElecPt |
|
private |
Initial value:
"Minimum pt cut that the electron needs to pass in order to be selected"}
Kinematic cuts. The selection tools do not support kinematic cut selection unfortunately.
Definition at line 74 of file IsoCloseByCorrectionTrkSelAlg.h.
◆ m_minMuonPt
Gaudi::Property<float> CP::IsoCloseByCorrectionTrkSelAlg::m_minMuonPt |
|
private |
◆ m_minPhotPt
Gaudi::Property<float> CP::IsoCloseByCorrectionTrkSelAlg::m_minPhotPt |
|
private |
◆ m_mounSelKey
The keys serve to declare the data dependency on the optional selection decorator properly.
The key is overwritten if the decorator is set
Definition at line 61 of file IsoCloseByCorrectionTrkSelAlg.h.
◆ m_muonKey
◆ m_muonSelTool
ToolHandle<CP::IMuonSelectionTool> CP::IsoCloseByCorrectionTrkSelAlg::m_muonSelTool {this, "MuonSelectionTool", ""} |
|
private |
◆ m_photKey
◆ m_photSelKey
◆ m_photSelTool
ToolHandle<IAsgPhotonIsEMSelector> CP::IsoCloseByCorrectionTrkSelAlg::m_photSelTool {this, "PhotonSelectionTool", ""} |
|
private |
◆ m_selDecoration
Gaudi::Property<std::string> CP::IsoCloseByCorrectionTrkSelAlg::m_selDecoration |
|
private |
Initial value:{this, "SelectionDecorator", "",
"Optional char decorator flag that the leptons have to pass in order to be selected"}
External selection criteria.
Definition at line 57 of file IsoCloseByCorrectionTrkSelAlg.h.
◆ m_stream
Gaudi::Property<std::string> CP::IsoCloseByCorrectionTrkSelAlg::m_stream {this, "OutputStream", "", "Stream"} |
|
private |
◆ m_thinKey
Initial value:{this, "ThinninKey", "InDetTrackParticles",
"Apply the thinning decision to. Decision is set to OR"}
Definition at line 85 of file IsoCloseByCorrectionTrkSelAlg.h.
◆ m_tot_trks
std::atomic<Long64_t> CP::IsoCloseByCorrectionTrkSelAlg::m_tot_trks {} |
|
mutableprivate |
◆ m_trkKey
Initial value:{this, "OutContainerKey", "",
"The associated track particles can be written to an outpt container"}
Optionally the user can also dump a TrackParticleContainer containing all the tracks entring the cone 0.3.
Definition at line 88 of file IsoCloseByCorrectionTrkSelAlg.h.
◆ m_varHandleArraysDeclared
◆ m_vhka
The documentation for this class was generated from the following files:
ToolHandle< IAsgPhotonIsEMSelector > m_photSelTool
SG::ReadHandleKey< xAOD::PhotonContainer > m_photKey
Gaudi::Property< float > m_minMuonPt
ToolHandle< CP::IIsolationCloseByCorrectionTool > m_closeByCorrTool
These tools shall be configured to pick up the same Inner detector tracks as for the isolation buildi...
@ VIEW_ELEMENTS
this data object is a view, it does not own its elmts
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
SG::ReadDecorHandleKey< xAOD::ElectronContainer > m_elecSelKey
SG::ThinningHandleKey< xAOD::TrackParticleContainer > m_thinKey
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce(T &h)
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::set< TrackPtr > TrackSet
std::vector< SG::VarHandleKeyArray * > m_vhka
std::atomic< Long64_t > m_tot_trks
Total track counter.
Gaudi::Property< std::string > m_stream
Output stream to be used for the thinning decision.
const std::string & key() const
Return the StoreGate ID for the referenced object.
bool empty() const
Test if the key is blank.
Class providing the definition of the 4-vector interface.
ToolHandle< CP::IMuonSelectionTool > m_muonSelTool
Optionally the user can also parse the elec / muon / photon selection tools.
Handle for requesting thinning for a data object.
ToolHandle< IAsgElectronLikelihoodTool > m_elecSelTool
virtual void setOwner(IDataHandleHolder *o)=0
std::set< const xAOD::IParticle * > LepContainer
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())
SG::ReadHandleKey< xAOD::MuonContainer > m_muonKey
Input containers to retrieve from the storegate.
AthReentrantAlgorithm()
Default constructor:
Handle class for reading a decoration on an object.
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
double deltaR(double rapidity1, double phi1, double rapidity2, double phi2)
from bare bare rapidity,phi
::StatusCode StatusCode
StatusCode definition for legacy code.
Out copy_if(In first, const In &last, Out res, const Pred &p)
bool passSelection(const EventContext &ctx, const xAOD::Electron *elec) const
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
DataObjIDColl m_extendedExtraObjects
Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
virtual StatusCode sysInitialize() override
Override sysInitialize.
StatusCode loadTracks(const EventContext &ctx, const SG::ReadHandleKey< CONT_TYPE > &key, TrackSet &tracks, LepContainer &prim_objs) const
SG::WriteHandleKey< ConstDataVector< xAOD::TrackParticleContainer > > m_trkKey
Optionally the user can also dump a TrackParticleContainer containing all the tracks entring the cone...
SG::ReadDecorHandleKey< xAOD::PhotonContainer > m_photSelKey
SG::ReadHandleKey< xAOD::ElectronContainer > m_elecKey
Gaudi::Property< float > m_minPhotPt
#define ATH_MSG_WARNING(x)
Gaudi::Property< float > m_minElecPt
Kinematic cuts. The selection tools do not support kinematic cut selection unfortunately.
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
virtual double pt() const override final
The transverse momentum ( ) of the particle.
Class describing a TrackParticle.
SG::ReadDecorHandleKey< xAOD::MuonContainer > m_mounSelKey
The keys serve to declare the data dependency on the optional selection decorator properly.
Gaudi::Property< std::string > m_selDecoration
External selection criteria.
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Gaudi::Property< float > m_maxConeSize
SortedObjPtr< xAOD::TrackParticle > TrackPtr