|
ATLAS Offline Software
|
#include <PFLeptonSelector.h>
|
| PFLeptonSelector (const std::string &name, ISvcLocator *pSvcLocator) |
| Default constructor. More...
|
|
| ~PFLeptonSelector () |
| Default destructor. More...
|
|
StatusCode | initialize () |
| Gaudi AthAlgorithm hooks. More...
|
|
StatusCode | execute (const EventContext &ctx) const |
|
StatusCode | finalize () |
|
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 |
|
|
StatusCode | selectElectrons (SG::WriteHandle< ConstDataVector< xAOD::ElectronContainer >> &selectedElectronsWriteHandle, const SG::WriteHandle< ConstDataVector< CaloCellContainer >> &leptonCaloCellsWriteHandle) const |
| Select electrons to use. More...
|
|
void | storeElectronCells (const xAOD::Egamma &electron, SG::WriteHandle< ConstDataVector< CaloCellContainer >> leptonCaloCellsWriteHandle) const |
| store the cells of the electrons More...
|
|
StatusCode | selectMuons (SG::WriteHandle< ConstDataVector< xAOD::MuonContainer >> &selectedMuonsWriteHandle, const SG::WriteHandle< ConstDataVector< CaloCellContainer >> &leptonCaloCellsWriteHandle) const |
| select muons to use More...
|
|
void | storeMuonCells (const xAOD::Muon &muon, SG::WriteHandle< ConstDataVector< CaloCellContainer >> leptonCaloCellsWriteHandle) const |
| store the cells of the muons More...
|
|
void | storeLeptonCells (const xAOD::CaloCluster &theCluster, SG::WriteHandle< ConstDataVector< CaloCellContainer >> leptonCaloCellsWriteHandle) const |
| puts set of lepton cells into the lepton container More...
|
|
StatusCode | recordLeptonContainers (SG::WriteHandle< ConstDataVector< xAOD::ElectronContainer >> &selectedElectronsWriteHandle, SG::WriteHandle< ConstDataVector< xAOD::MuonContainer >> &selectedMuonsWriteHandle, SG::WriteHandle< ConstDataVector< CaloCellContainer >> leptonCaloCellsWriteHandle) const |
| Put lepton containers and list of lepton cells into Storegate. More...
|
|
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::ElectronContainer > | m_electronsReadHandleKey |
| ReadHandle for the ElectronContainer to be used as input. More...
|
|
SG::ReadHandleKey< xAOD::MuonContainer > | m_muonsReadHandleKey |
| ReadHandle for the MuonContainer to be used as input. More...
|
|
SG::WriteHandleKey< ConstDataVector< xAOD::ElectronContainer > > | m_selectedElectronsWriteHandleKey |
| WriteHandle for the ElectronContainer, that will be filled with electrons passing the electron ID in PFLeptonSelector::selectElectrons. More...
|
|
SG::WriteHandleKey< ConstDataVector< xAOD::MuonContainer > > | m_selectedMuonsWriteHandleKey |
| WriteHandle for the MuonContainer, that will be filled with muons passing the muon ID in PFLeptonSelector::selectMuons. More...
|
|
SG::WriteHandleKey< ConstDataVector< CaloCellContainer > > | m_leptonCaloCellsWriteHandleKey |
| WriteHandle for the CaloCellContainer, that will store calorimeter cells associated to leptons. More...
|
|
Gaudi::Property< bool > | m_storeLeptonCells { this, "storeLeptonCells", false, "Toggle storage of lepton CaloCells" } |
| Toggle storage of lepton CaloCells. More...
|
|
Gaudi::Property< std::string > | m_electronID { this, "electronID", "LHMedium", "Select electron ID" } |
|
Gaudi::Property< bool > | m_selectElectrons { this, "selectElectrons", true, "Toggle usage of electron ID" } |
| Toggle to determine whether we select any electrons or not - if selected then tracks matched to those electrons in PFTrackSelector are not used in particle flow. More...
|
|
Gaudi::Property< bool > | m_selectMuons { this, "selectMuons", true, "Toggle usage of muon ID" } |
| Toggle to determine whether we select any muons or not - if selected then tracks matched to those muons in PFTrackSelector are not used in particle flow. 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 |
|
Definition at line 18 of file PFLeptonSelector.h.
◆ StoreGateSvc_t
◆ PFLeptonSelector()
PFLeptonSelector::PFLeptonSelector |
( |
const std::string & |
name, |
|
|
ISvcLocator * |
pSvcLocator |
|
) |
| |
◆ ~PFLeptonSelector()
PFLeptonSelector::~PFLeptonSelector |
( |
| ) |
|
|
inline |
◆ 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 PFLeptonSelector::execute |
( |
const EventContext & |
ctx | ) |
const |
Definition at line 24 of file PFLeptonSelector.cxx.
30 if (
recordLeptonContainers(selectedElectronsWriteHandle,selectedMuonsWriteHandle,leptonCaloCellsWriteHandle).isFailure()) {
31 return StatusCode::SUCCESS;
48 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 PFLeptonSelector::finalize |
( |
| ) |
|
◆ initialize()
StatusCode PFLeptonSelector::initialize |
( |
| ) |
|
◆ 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, SCT_CablingCondAlgFromCoraCool, SCT_ReadCalibDataTestAlg, SCT_CablingCondAlgFromText, InDet::SiSPGNNTrackMaker, 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.
◆ 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.
◆ recordLeptonContainers()
Put lepton containers and list of lepton cells into Storegate.
Definition at line 177 of file PFLeptonSelector.cxx.
185 if (
sc.isFailure()) {
186 ATH_MSG_WARNING(
"Could not record electron WriteHandle with key: " << selectedElectronsWriteHandle.
key());
192 if (
sc.isFailure()) {
193 ATH_MSG_WARNING(
"Could not record muon WriteHandle with key: " << selectedMuonsWriteHandle.
key());
202 if (
sc.isFailure()) {
203 ATH_MSG_WARNING(
"Could not record CaloCell WriteHandle with key: " << leptonCaloCellsWriteHandle);
208 return StatusCode::SUCCESS;
◆ renounce()
◆ renounceArray()
◆ selectElectrons()
Select electrons to use.
Definition at line 54 of file PFLeptonSelector.cxx.
61 if (!electronsReadHandle.isValid()){
62 ATH_MSG_WARNING(
"Invalid read handle to electron container with name: " << electronsReadHandle.key());
63 return StatusCode::FAILURE;
66 for (
const auto* theElectron : *electronsReadHandle) {
69 if (theElectron->pt() > 10000) {
70 bool passElectronID =
false;
71 bool gotID = theElectron->passSelection(passElectronID,
m_electronID);
77 if (selectedElectronsWriteHandle.
isValid())
78 selectedElectronsWriteHandle->
push_back(theElectron);
81 "Do not have valid WriteHandle for ElectronContainer with name: " << selectedElectronsWriteHandle.
key());
92 return StatusCode::SUCCESS;
◆ selectMuons()
select muons to use
Definition at line 108 of file PFLeptonSelector.cxx.
114 if (!muonsReadHandle.isValid()) {
115 ATH_MSG_WARNING(
"Invalid read handle to muon container with name: " << muonsReadHandle.key());
116 return StatusCode::FAILURE;
119 for (
const auto *theMuon : *muonsReadHandle){
126 xAOD::Muon::Quality muonQuality = theMuon->quality();
128 xAOD::Muon::MuonType muonType = theMuon->muonType();
130 if (selectedMuonsWriteHandle.
isValid())
131 selectedMuonsWriteHandle->
push_back(theMuon);
134 "Do not have valid WriteHandle for MuonContainer with name: " << selectedMuonsWriteHandle.
key());
141 return StatusCode::SUCCESS;
◆ setFilterPassed()
virtual void AthReentrantAlgorithm::setFilterPassed |
( |
bool |
state, |
|
|
const EventContext & |
ctx |
|
) |
| const |
|
inlinevirtualinherited |
◆ storeElectronCells()
store the cells of the electrons
Definition at line 96 of file PFLeptonSelector.cxx.
101 if (electronCluster){
102 this->
storeLeptonCells(*electronCluster,std::move(leptonCaloCellsWriteHandle));
104 else ATH_MSG_WARNING(
"This electron has an invalid pointer to its cluster");
◆ storeLeptonCells()
puts set of lepton cells into the lepton container
Definition at line 161 of file PFLeptonSelector.cxx.
168 for (
const auto *theCaloCell : *theCellLink){
169 if (leptonCaloCellsWriteHandle.
isValid()) leptonCaloCellsWriteHandle->
push_back(theCaloCell);
170 else ATH_MSG_WARNING(
" Do not have valid WriteHandle for CaloCellContaienr with name: " << leptonCaloCellsWriteHandle.
key());
173 else ATH_MSG_WARNING(
"This cluster has an invalid pointer to its cells, in storeLeptonCells");
◆ storeMuonCells()
◆ 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()
◆ m_detStore
◆ m_electronID
Gaudi::Property<std::string> PFLeptonSelector::m_electronID { this, "electronID", "LHMedium", "Select electron ID" } |
|
private |
◆ m_electronsReadHandleKey
Initial value:{
this,
"inputElectronsName",
"Electrons",
"ReadHandle for the ElectronContainer to be used as input"
}
ReadHandle for the ElectronContainer to be used as input.
Definition at line 60 of file PFLeptonSelector.h.
◆ 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_leptonCaloCellsWriteHandleKey
Initial value:{
this,
"outputLeptonCellsName",
"eflowRec_leptonCellContainer",
"WriteHandle for the CaloCellContainer, that will store calorimeter cells associated to leptons"
}
WriteHandle for the CaloCellContainer, that will store calorimeter cells associated to leptons.
Definition at line 94 of file PFLeptonSelector.h.
◆ m_muonsReadHandleKey
Initial value:{ this,
"inputMuonsName",
"Muons",
"ReadHandle for the MuonContainer to be used as input" }
ReadHandle for the MuonContainer to be used as input.
Definition at line 68 of file PFLeptonSelector.h.
◆ m_selectedElectronsWriteHandleKey
Initial value:{
this,
"outputElectronsName",
"eflowRec_selectedElectrons",
"WriteHandle for the ElectronContainer, that will be filled with electrons passing the electron ID in "
"PFLeptonSelector::selectElectrons"
}
WriteHandle for the ElectronContainer, that will be filled with electrons passing the electron ID in PFLeptonSelector::selectElectrons.
Definition at line 75 of file PFLeptonSelector.h.
◆ m_selectedMuonsWriteHandleKey
Initial value:{
this,
"outputMuonsName",
"eflowRec_selectedMuons",
"WriteHandle for the MuonContainer, that will be filled with muons passing the muon ID in "
"PFLeptonSelector::selectMuons"
}
WriteHandle for the MuonContainer, that will be filled with muons passing the muon ID in PFLeptonSelector::selectMuons.
Definition at line 85 of file PFLeptonSelector.h.
◆ m_selectElectrons
Gaudi::Property<bool> PFLeptonSelector::m_selectElectrons { this, "selectElectrons", true, "Toggle usage of electron ID" } |
|
private |
Toggle to determine whether we select any electrons or not - if selected then tracks matched to those electrons in PFTrackSelector are not used in particle flow.
If not selected then an empty electron container is created, and hence PFTrackSelector won't find any electrons to match its selected tracks to.
Definition at line 110 of file PFLeptonSelector.h.
◆ m_selectMuons
Gaudi::Property<bool> PFLeptonSelector::m_selectMuons { this, "selectMuons", true, "Toggle usage of muon ID" } |
|
private |
Toggle to determine whether we select any muons or not - if selected then tracks matched to those muons in PFTrackSelector are not used in particle flow.
If not selected then an empty muon container is created, and hence PFTrackSelector won't find any muons to match its selected tracks to.
Definition at line 116 of file PFLeptonSelector.h.
◆ m_storeLeptonCells
Gaudi::Property<bool> PFLeptonSelector::m_storeLeptonCells { this, "storeLeptonCells", false, "Toggle storage of lepton CaloCells" } |
|
private |
◆ m_varHandleArraysDeclared
◆ m_vhka
The documentation for this class was generated from the following files:
StatusCode selectElectrons(SG::WriteHandle< ConstDataVector< xAOD::ElectronContainer >> &selectedElectronsWriteHandle, const SG::WriteHandle< ConstDataVector< CaloCellContainer >> &leptonCaloCellsWriteHandle) const
Select electrons to use.
@ VIEW_ELEMENTS
this data object is a view, it does not own its elmts
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
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::vector< SG::VarHandleKeyArray * > m_vhka
Gaudi::Property< bool > m_storeLeptonCells
Toggle storage of lepton CaloCells.
SG::WriteHandleKey< ConstDataVector< xAOD::ElectronContainer > > m_selectedElectronsWriteHandleKey
WriteHandle for the ElectronContainer, that will be filled with electrons passing the electron ID in ...
bool isValid() const
Test to see if the link can be dereferenced.
virtual void setOwner(IDataHandleHolder *o)=0
Bookkeeping of cells that make up a cluster Simplified replacement for CaloCellLink,...
void storeElectronCells(const xAOD::Egamma &electron, SG::WriteHandle< ConstDataVector< CaloCellContainer >> leptonCaloCellsWriteHandle) const
store the cells of the electrons
Description of a calorimeter cluster.
AthReentrantAlgorithm()
Default constructor:
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
::StatusCode StatusCode
StatusCode definition for legacy code.
Gaudi::Property< std::string > m_electronID
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.
const CaloClusterCellLink * getCellLinks() const
Get a pointer to the CaloClusterCellLink object (const version)
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
ElementLink implementation for ROOT usage.
virtual bool isValid() override final
Can the handle be successfully dereferenced?
SG::WriteHandleKey< ConstDataVector< xAOD::MuonContainer > > m_selectedMuonsWriteHandleKey
WriteHandle for the MuonContainer, that will be filled with muons passing the muon ID in PFLeptonSele...
virtual StatusCode sysInitialize() override
Override sysInitialize.
value_type push_back(value_type pElem)
Add an element to the end of the collection.
virtual const std::string & key() const override final
Return the StoreGate ID for the referenced object.
void storeMuonCells(const xAOD::Muon &muon, SG::WriteHandle< ConstDataVector< CaloCellContainer >> leptonCaloCellsWriteHandle) const
store the cells of the muons
StatusCode recordLeptonContainers(SG::WriteHandle< ConstDataVector< xAOD::ElectronContainer >> &selectedElectronsWriteHandle, SG::WriteHandle< ConstDataVector< xAOD::MuonContainer >> &selectedMuonsWriteHandle, SG::WriteHandle< ConstDataVector< CaloCellContainer >> leptonCaloCellsWriteHandle) const
Put lepton containers and list of lepton cells into Storegate.
Gaudi::Property< bool > m_selectMuons
Toggle to determine whether we select any muons or not - if selected then tracks matched to those muo...
SG::WriteHandleKey< ConstDataVector< CaloCellContainer > > m_leptonCaloCellsWriteHandleKey
WriteHandle for the CaloCellContainer, that will store calorimeter cells associated to leptons.
StatusCode record(std::unique_ptr< T > data)
Record a const object to the store.
#define ATH_MSG_WARNING(x)
DataVector adapter that acts like it holds const pointers.
StatusCode selectMuons(SG::WriteHandle< ConstDataVector< xAOD::MuonContainer >> &selectedMuonsWriteHandle, const SG::WriteHandle< ConstDataVector< CaloCellContainer >> &leptonCaloCellsWriteHandle) const
select muons to use
void storeLeptonCells(const xAOD::CaloCluster &theCluster, SG::WriteHandle< ConstDataVector< CaloCellContainer >> leptonCaloCellsWriteHandle) const
puts set of lepton cells into the lepton container
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
SG::ReadHandleKey< xAOD::ElectronContainer > m_electronsReadHandleKey
ReadHandle for the ElectronContainer to be used as input.
SG::ReadHandleKey< xAOD::MuonContainer > m_muonsReadHandleKey
ReadHandle for the MuonContainer to be used as input.
Gaudi::Property< bool > m_selectElectrons
Toggle to determine whether we select any electrons or not - if selected then tracks matched to those...