|
ATLAS Offline Software
|
#include <JetConstituentModSequence.h>
|
| JetConstituentModSequence (const std::string &name) |
|
StatusCode | initialize () |
| Dummy implementation of the initialisation function. More...
|
|
int | execute () const |
| Method to be called for each event. More...
|
|
virtual void | print () const |
| Print the state of the tool. More...
|
|
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 | sysInitialize () override |
| Perform system initialization for an algorithm. 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 |
|
virtual int | inputContainerNames (std::vector< std::string > &connames) |
| Method to return the list of input containers. More...
|
|
virtual int | outputContainerNames (std::vector< std::string > &connames) |
| Method to return the list of output containers. More...
|
|
|
template<class T > |
StatusCode | copyModRecord (const SG::ReadHandleKey< T > &, const SG::WriteHandleKey< T > &) const |
| helper function to cast, shallow copy and record a container. More...
|
|
template<class T , class U > |
StatusCode | copyModRecordFlowLike (const SG::ReadHandleKey< T > &, const SG::ReadHandleKey< T > &, const SG::WriteHandleKey< T > &, const SG::WriteHandleKey< T > &, const SG::WriteHandleKey< T > &) const |
|
void | renounceArray (SG::VarHandleKeyArray &handlesArray) |
| remove all handles from I/O resolution More...
|
|
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) |
|
void | extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps) |
| Add StoreName to extra input/output deps as needed. More...
|
|
|
Gaudi::Property< std::string > | m_inputContainer {this, "InputContainer", "", "The input container for the sequence"} |
|
Gaudi::Property< std::string > | m_outputContainer = {this, "OutputContainer", "", "The output container for the sequence"} |
|
Gaudi::Property< bool > | m_byVertex = {this, "DoByVertex", false, "True if we should match to each primary vertex, not just PV0"} |
|
SG::ReadHandleKey< xAOD::VertexContainer > | m_vertexContainerKey {this, "VertexContainerKey", "PrimaryVertices", "Reconstructed primary vertex container name"} |
|
unsigned short | m_inputType |
|
ToolHandleArray< IJetConstituentModifier > | m_modifiers {this , "Modifiers" , {} , "List of constit modifier tools."} |
|
ToolHandle< GenericMonitoringTool > | m_monTool {this,"MonTool","","Monitoring tool"} |
|
bool | m_saveAsShallow = true |
|
SG::ReadHandleKey< xAOD::CaloClusterContainer > | m_inClusterKey {this, "InClusterKey", "", "ReadHandleKey for unmodified CaloClusters"} |
|
SG::WriteHandleKey< xAOD::CaloClusterContainer > | m_outClusterKey {this, "OutClusterKey", "", "WriteHandleKey for modified CaloClusters"} |
|
SG::ReadHandleKey< xAOD::TrackCaloClusterContainer > | m_inTCCKey {this, "InTCCKey", "", "ReadHandleKey for unmodified TrackCaloClusters"} |
|
SG::WriteHandleKey< xAOD::TrackCaloClusterContainer > | m_outTCCKey {this, "OutTCCKey", "", "WriteHandleKey for modified TrackCaloClusters"} |
|
SG::ReadHandleKey< xAOD::PFOContainer > | m_inChargedPFOKey {this, "InChargedPFOKey", "", "ReadHandleKey for modified Charged PFlow Objects"} |
|
SG::WriteHandleKey< xAOD::PFOContainer > | m_outChargedPFOKey {this, "OutChargedPFOKey", "", "WriteHandleKey for modified Charged PFlow Objects"} |
|
SG::ReadHandleKey< xAOD::PFOContainer > | m_inNeutralPFOKey {this, "InNeutralPFOKey", "", "ReadHandleKey for modified Neutral PFlow Objects"} |
|
SG::WriteHandleKey< xAOD::PFOContainer > | m_outNeutralPFOKey {this, "OutNeutralPFOKey", "", "WriteHandleKey for modified Neutral PFlow Objects"} |
|
SG::WriteHandleKey< xAOD::PFOContainer > | m_outAllPFOKey {this, "OutAllPFOKey", "", "WriteHandleKey for all modified PFlow Objects"} |
|
SG::ReadHandleKey< xAOD::FlowElementContainer > | m_inChargedFEKey {this, "InChargedFEKey", "", "ReadHandleKey for modified Charged FlowElements"} |
|
SG::WriteHandleKey< xAOD::FlowElementContainer > | m_outChargedFEKey {this, "OutChargedFEKey", "", "WriteHandleKey for modified Charged FlowElements"} |
|
SG::ReadHandleKey< xAOD::FlowElementContainer > | m_inNeutralFEKey {this, "InNeutralFEKey", "", "ReadHandleKey for modified Neutral FlowElements"} |
|
SG::WriteHandleKey< xAOD::FlowElementContainer > | m_outNeutralFEKey {this, "OutNeutralFEKey", "", "WriteHandleKey for modified Neutral FlowElements"} |
|
SG::WriteHandleKey< xAOD::FlowElementContainer > | m_outAllFEKey {this, "OutAllFEKey", "", "WriteHandleKey for all modified FlowElements"} |
|
SG::ReadDecorHandleKeyArray< xAOD::FlowElementContainer > | m_inChargedFEDecorKeys {this, "InChargedFEDecorKeys", {}, "Dummy keys that force all neccessary charged FlowElement decorations to be applied before running this algorithm"} |
|
SG::ReadDecorHandleKeyArray< xAOD::FlowElementContainer > | m_inNeutralFEDecorKeys {this, "InNeutralFEDecorKeys", {}, "Dummy keys that force all neccessary neutral FlowElement decorations to be applied before running this algorithm"} |
|
Definition at line 51 of file JetConstituentModSequence.h.
◆ StoreGateSvc_t
◆ JetConstituentModSequence()
JetConstituentModSequence::JetConstituentModSequence |
( |
const std::string & |
name | ) |
|
◆ copyModRecord()
helper function to cast, shallow copy and record a container.
Definition at line 121 of file JetConstituentModSequence.h.
130 if(!inHandle.isValid()){
132 return StatusCode::FAILURE;
135 std::pair< T*, xAOD::ShallowAuxContainer* > newconstit =
142 ATH_CHECK(handle.record(std::unique_ptr<T>(newconstit.first),
143 std::unique_ptr<xAOD::ShallowAuxContainer>(newconstit.second)));
147 return StatusCode::SUCCESS;
◆ copyModRecordFlowLike()
template<class T , class U >
Definition at line 150 of file JetConstituentModSequence.h.
166 if(!inNeutralHandle.
isValid()){
168 << inNeutralKey.
key() <<
"\" and \""
169 << inChargedKey.
key() <<
"\"");
170 return StatusCode::FAILURE;
173 unsigned numNeutralCopies = 1;
177 if (!handle.isValid()){
179 return StatusCode::FAILURE;
183 if(vertices->
empty()){
184 ATH_MSG_WARNING(
" Failed to retrieve valid primary vertex container" );
185 return StatusCode::FAILURE;
187 numNeutralCopies =
static_cast<unsigned>(vertices->
size());
198 ATH_CHECK(outChargedHandle.
record(std::unique_ptr<T>(chargedCopy.first),
199 std::unique_ptr<xAOD::ShallowAuxContainer>(chargedCopy.second)));
208 chargedCopy.second->setShallowIO(
true);
211 ATH_CHECK(outNeutralHandle.
record(std::unique_ptr<T>(neutralCopy.first),
212 std::unique_ptr<xAOD::ShallowAuxContainer>(neutralCopy.second)));
221 auto neutralCopies = std::make_unique<T>();
222 auto neutralCopiesAux = std::make_unique<xAOD::AuxContainerBase>();
223 neutralCopies->setStore(neutralCopiesAux.get());
227 for (
unsigned i = 0;
i < numNeutralCopies;
i++){
228 for (
const U* fe : *inNeutralHandle) {
230 neutralCopies->push_back(
copy);
232 copyIndex(*
copy) =
i;
238 std::move(neutralCopiesAux))
246 (*outAllHandle).assign((*outNeutralHandle).begin(), (*outNeutralHandle).end());
247 (*outAllHandle).insert((*outAllHandle).end(),
248 (*outChargedHandle).begin(),
249 (*outChargedHandle).end());
253 return StatusCode::SUCCESS;
◆ 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);
253 return PBASE::declareProperty(
name,hndl,
doc);
◆ 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.
229 return PBASE::declareProperty(
name,hndl,
doc);
◆ 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.
338 return PBASE::declareProperty(
name, property,
doc);
◆ 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()
int JetConstituentModSequence::execute |
( |
| ) |
const |
|
virtual |
Method to be called for each event.
Returns 0 for success.
Implements IJetExecuteTool.
Definition at line 189 of file JetConstituentModSequence.cxx.
191 #ifndef XAOD_ANALYSIS
202 if(!
sc.isSuccess())
return 1;
208 if(!
sc.isSuccess())
return 1;
213 if(!
sc.isSuccess())
return 1;
220 if(!
sc.isSuccess()){
return 1;}
230 #ifndef XAOD_ANALYSIS
◆ 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
◆ getKey()
Get the (hashed) key of an object that is in the event store.
This is a bit of a special one. StoreGateSvc
and xAOD::TEvent
both provide ways for getting the SG::sgkey_t
key for an object that is in the store, based on a bare pointer. But they provide different interfaces for doing so.
In order to allow tools to efficiently perform this operation, they can use this helper function.
- See also
- asg::AsgTool::getName
- Parameters
-
ptr | The bare pointer to the object that the event store should know about |
- Returns
- The hashed key of the object in the store. If not found, an invalid (zero) key.
Definition at line 119 of file AsgTool.cxx.
121 #ifdef XAOD_STANDALONE
127 return (
proxy ==
nullptr ? 0 :
proxy->sgkey() );
128 #endif // XAOD_STANDALONE
◆ getName()
const std::string & asg::AsgTool::getName |
( |
const void * |
ptr | ) |
const |
|
inherited |
Get the name of an object that is / should be in the event store.
This is a bit of a special one. StoreGateSvc
and xAOD::TEvent
both provide ways for getting the std::string
name for an object that is in the store, based on a bare pointer. But they provide different interfaces for doing so.
In order to allow tools to efficiently perform this operation, they can use this helper function.
- See also
- asg::AsgTool::getKey
- Parameters
-
ptr | The bare pointer to the object that the event store should know about |
- Returns
- The string name of the object in the store. If not found, an empty string.
Definition at line 106 of file AsgTool.cxx.
108 #ifdef XAOD_STANDALONE
114 static const std::string
dummy =
"";
116 #endif // XAOD_STANDALONE
◆ getProperty()
template<class T >
const T* asg::AsgTool::getProperty |
( |
const std::string & |
name | ) |
const |
|
inherited |
Get one of the tool's properties.
◆ initialize()
StatusCode JetConstituentModSequence::initialize |
( |
| ) |
|
|
virtual |
Dummy implementation of the initialisation function.
It's here to allow the dual-use tools to skip defining an initialisation function. Since many are doing so...
Reimplemented from asg::AsgTool.
Definition at line 37 of file JetConstituentModSequence.cxx.
72 size_t pos = inputContainerBase.find(
"ParticleFlowObjects");
73 if(
pos != std::string::npos) inputContainerBase.erase(
pos);
75 pos = outputContainerBase.find(
"ParticleFlowObjects");
76 if(
pos != std::string::npos) outputContainerBase.erase(
pos);
105 const std::string subString =
"ParticleFlowObjects";
106 const std::string subStringCharged =
"ChargedParticleFlowObjects";
107 const std::string subStringNeutral =
"NeutralParticleFlowObjects";
123 size_t pos = inputContainerBase.find(subString);
124 if(
pos != std::string::npos) {
135 pos = outputContainerBase.find(subString);
136 if(
pos != std::string::npos) {
149 pos = outputContainerBase.find(subString);
150 if(
pos == std::string::npos)
m_outAllFEKey = outputContainerBase + subString;
183 return StatusCode::FAILURE;
186 return StatusCode::SUCCESS;
◆ inputContainerNames()
int IJetExecuteTool::inputContainerNames |
( |
std::vector< std::string > & |
connames | ) |
|
|
virtualinherited |
Method to return the list of input containers.
The names of required input containers are appended to connames. Returns nonzero for error. Default returns 0 and adds no names.
Reimplemented in JetRecTool.
Definition at line 11 of file IJetExecuteTool.cxx.
◆ 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.
◆ msg() [1/2]
◆ msg() [2/2]
◆ msg_level_name()
const std::string & asg::AsgTool::msg_level_name |
( |
| ) |
const |
|
inherited |
A deprecated function for getting the message level's name.
Instead of using this, weirdly named function, user code should get the string name of the current minimum message level (in case they really need it...), with:
MSG::name( msg().level() )
This function's name doesn't follow the ATLAS coding rules, and as such will be removed in the not too distant future.
- Returns
- The string name of the current minimum message level that's printed
Definition at line 101 of file AsgTool.cxx.
◆ msgLvl()
◆ outputContainerNames()
int IJetExecuteTool::outputContainerNames |
( |
std::vector< std::string > & |
connames | ) |
|
|
virtualinherited |
Method to return the list of output containers.
The names of produced output containers are appended to connames. Returns nonzero for error. Default returns 0 and adds no names.
Reimplemented in JetRecTool.
Definition at line 17 of file IJetExecuteTool.cxx.
◆ 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.
◆ print()
void asg::AsgTool::print |
( |
| ) |
const |
|
virtualinherited |
Print the state of the tool.
Implements asg::IAsgTool.
Reimplemented in JetRecTool, JetFinder, JetModifiedMassDrop, JetFromPseudojet, JetReclusterer, JetReclusteringTool, JetTruthLabelingTool, JetPileupLabelingTool, HI::HIPileupTool, JetDumper, JetBottomUpSoftDrop, JetRecursiveSoftDrop, JetSoftDrop, JetConstituentsRetriever, JetSubStructureMomentToolsBase, JetSplitter, JetToolRunner, JetPruner, JetPseudojetRetriever, JetTrimmer, AsgHelloTool, and KtDeltaRTool.
Definition at line 131 of file AsgTool.cxx.
◆ renounce()
◆ renounceArray()
◆ sysInitialize()
◆ 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_byVertex
Gaudi::Property<bool> JetConstituentModSequence::m_byVertex = {this, "DoByVertex", false, "True if we should match to each primary vertex, not just PV0"} |
|
protected |
◆ m_detStore
◆ m_evtStore
◆ m_inChargedFEDecorKeys
◆ m_inChargedFEKey
◆ m_inChargedPFOKey
◆ m_inClusterKey
◆ m_inNeutralFEDecorKeys
◆ m_inNeutralFEKey
◆ m_inNeutralPFOKey
◆ m_inputContainer
Gaudi::Property<std::string> JetConstituentModSequence::m_inputContainer {this, "InputContainer", "", "The input container for the sequence"} |
|
protected |
◆ m_inputType
unsigned short JetConstituentModSequence::m_inputType |
|
protected |
◆ m_inTCCKey
◆ m_modifiers
ToolHandleArray<IJetConstituentModifier> JetConstituentModSequence::m_modifiers {this , "Modifiers" , {} , "List of constit modifier tools."} |
|
protected |
◆ m_monTool
◆ m_outAllFEKey
◆ m_outAllPFOKey
◆ m_outChargedFEKey
◆ m_outChargedPFOKey
◆ m_outClusterKey
◆ m_outNeutralFEKey
◆ m_outNeutralPFOKey
◆ m_outputContainer
Gaudi::Property<std::string> JetConstituentModSequence::m_outputContainer = {this, "OutputContainer", "", "The output container for the sequence"} |
|
protected |
◆ m_outTCCKey
◆ m_saveAsShallow
bool JetConstituentModSequence::m_saveAsShallow = true |
|
protected |
◆ m_varHandleArraysDeclared
◆ m_vertexContainerKey
◆ m_vhka
The documentation for this class was generated from the following files:
SG::ReadHandleKey< xAOD::TrackCaloClusterContainer > m_inTCCKey
Group
Properties of a chain group.
ToolHandle< GenericMonitoringTool > m_monTool
ToolHandleArray< IJetConstituentModifier > m_modifiers
Gaudi::Property< bool > m_byVertex
Helper class to provide type-safe access to aux data.
@ VIEW_ELEMENTS
this data object is a view, it does not own its elmts
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
SG::ReadHandle< T > makeHandle(const SG::View *view, const SG::ReadHandleKey< T > &rhKey, const EventContext &context)
navigate from the TrigComposite to nearest view and fetch object from it
Gaudi::Property< std::string > m_outputContainer
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
SG::WriteHandleKey< xAOD::FlowElementContainer > m_outChargedFEKey
std::vector< SG::VarHandleKeyArray * > m_vhka
SG::ReadHandleKey< xAOD::CaloClusterContainer > m_inClusterKey
SG::ReadHandleKey< xAOD::FlowElementContainer > m_inNeutralFEKey
const std::string & key() const
Return the StoreGate ID for the referenced object.
SG::ReadHandleKey< xAOD::VertexContainer > m_vertexContainerKey
CaloCluster_v1 CaloCluster
Define the latest version of the calorimeter cluster class.
virtual void setOwner(IDataHandleHolder *o)=0
TrackCaloCluster_v1 TrackCaloCluster
Reference the current persistent version:
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())
SG::WriteHandleKey< xAOD::CaloClusterContainer > m_outClusterKey
ServiceHandle< StoreGateSvc > & evtStore()
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
SG::WriteHandleKey< xAOD::PFOContainer > m_outChargedPFOKey
unsigned short m_inputType
SG::WriteHandleKey< xAOD::PFOContainer > m_outAllPFOKey
SG::WriteHandleKey< xAOD::PFOContainer > m_outNeutralPFOKey
FlowElement_v1 FlowElement
Definition of the current "pfo version".
SG::ReadDecorHandleKeyArray< xAOD::FlowElementContainer > m_inNeutralFEDecorKeys
@ ParticleFlow
The object is a particle-flow object.
const std::string & name(Level lvl)
Convenience function for translating message levels to strings.
SG::ReadHandleKey< xAOD::PFOContainer > m_inNeutralPFOKey
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.
SG::WriteHandleKey< xAOD::FlowElementContainer > m_outNeutralFEKey
virtual bool isValid() override final
Can the handle be successfully dereferenced?
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
StatusCode copyModRecord(const SG::ReadHandleKey< T > &, const SG::WriteHandleKey< T > &) const
helper function to cast, shallow copy and record a container.
std::pair< std::unique_ptr< T >, std::unique_ptr< ShallowAuxContainer > > shallowCopyContainer(const T &cont, [[maybe_unused]] const EventContext &ctx)
Function making a shallow copy of a constant container.
SG::ReadHandleKey< xAOD::PFOContainer > m_inChargedPFOKey
SG::ReadHandleKey< xAOD::FlowElementContainer > m_inChargedFEKey
StatusCode record(std::unique_ptr< T > data)
Record a const object to the store.
#define ATH_MSG_WARNING(x)
bool setOriginalObjectLink(const IParticle &original, IParticle ©)
This function should be used by CP tools when they make a deep copy of an object in their correctedCo...
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
SG::WriteHandleKey< xAOD::FlowElementContainer > m_outAllFEKey
SG::WriteHandleKey< xAOD::TrackCaloClusterContainer > m_outTCCKey
size_type size() const noexcept
Returns the number of elements in the collection.
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
bool empty() const noexcept
Returns true if the collection is empty.
SG::ReadDecorHandleKeyArray< xAOD::FlowElementContainer > m_inChargedFEDecorKeys
Gaudi::Property< std::string > m_inputContainer