20 m_particleId(parameters.m_particleId.Get()),
21 m_charge(parameters.m_charge.Get()),
22 m_mass(parameters.m_mass.Get()),
23 m_energy(parameters.m_energy.Get()),
24 m_momentum(parameters.m_momentum.Get()),
25 m_trackList(parameters.m_trackList),
26 m_clusterList(parameters.m_clusterList),
27 m_vertexList(parameters.m_vertexList),
28 m_propertiesMap(parameters.m_propertiesToAdd)
30 if (!parameters.m_propertiesToRemove.empty())
44 if (!metadata.m_propertiesToAdd.empty() || !metadata.m_propertiesToRemove.empty())
47 if (metadata.m_particleId.IsInitialized())
50 if (metadata.m_charge.IsInitialized())
53 if (metadata.m_mass.IsInitialized())
54 m_mass = metadata.m_mass.Get();
56 if (metadata.m_energy.IsInitialized())
59 if (metadata.m_momentum.IsInitialized())
62 return STATUS_CODE_SUCCESS;
73 trackAddressList.push_back(pTrack->GetParentAddress());
76 return trackAddressList;
94 for (
const CaloHit *
const pCaloHit : *layerEntry.second)
95 caloHitAddressList.push_back(pCaloHit->GetParentAddress());
98 clusterAddressList.push_back(caloHitAddressList);
101 return clusterAddressList;
110 return STATUS_CODE_ALREADY_PRESENT;
113 return STATUS_CODE_SUCCESS;
120 return STATUS_CODE_ALREADY_PRESENT;
123 return STATUS_CODE_SUCCESS;
130 return STATUS_CODE_ALREADY_PRESENT;
133 return STATUS_CODE_SUCCESS;
144 return STATUS_CODE_NOT_FOUND;
147 return STATUS_CODE_SUCCESS;
156 return STATUS_CODE_NOT_FOUND;
159 return STATUS_CODE_SUCCESS;
168 return STATUS_CODE_NOT_FOUND;
171 return STATUS_CODE_SUCCESS;
179 return STATUS_CODE_INVALID_PARAMETER;
182 return STATUS_CODE_ALREADY_PRESENT;
185 return STATUS_CODE_SUCCESS;
193 return STATUS_CODE_INVALID_PARAMETER;
196 return STATUS_CODE_ALREADY_PRESENT;
199 return STATUS_CODE_SUCCESS;
209 return STATUS_CODE_NOT_FOUND;
212 return STATUS_CODE_SUCCESS;
222 return STATUS_CODE_NOT_FOUND;
225 return STATUS_CODE_SUCCESS;
232 for (
const std::string &propertyName : metadata.m_propertiesToRemove)
234 if (metadata.m_propertiesToAdd.count(propertyName))
235 return STATUS_CODE_INVALID_PARAMETER;
238 return STATUS_CODE_NOT_FOUND;
241 for (
const std::string &propertyName : metadata.m_propertiesToRemove)
244 for (
const PropertiesMap::value_type &entryToAdd : metadata.m_propertiesToAdd)
247 return STATUS_CODE_SUCCESS;
Header file for the cluster class.
Header file for the ordered calo hit list class.
Header file for the particle flow object class.
#define PANDORA_THROW_RESULT_IF(StatusCode1, Operator, Command)
#define PANDORA_RETURN_RESULT_IF(StatusCode1, Operator, Command)
Header file for the track class.
Calo hit lists arranged by pseudo layer.
StatusCode Add(const OrderedCaloHitList &rhs)
Add the hits from a second ordered calo hit list to this list.
TheList::value_type value_type
ParticleFlowObject class.
virtual ~ParticleFlowObject()
Destructor.
int m_charge
The particle flow object charge.
StatusCode RemoveDaughter(const ParticleFlowObject *const pPfo)
Remove a daughter pfo from the daughter pfo list.
StatusCode RemoveParent(const ParticleFlowObject *const pPfo)
Remove a parent pfo from the parent pfo list.
StatusCode UpdatePropertiesMap(const object_creation::ParticleFlowObject::Metadata &metadata)
Update the properties map.
ClusterList m_clusterList
The cluster list.
ParticleFlowObject(const object_creation::ParticleFlowObject::Parameters ¶meters)
Constructor.
StatusCode AddDaughter(const ParticleFlowObject *const pPfo)
Add a daughter pfo to the daughter pfo list.
StatusCode RemoveFromPfo(const T *const pT)
Remove an object from the particle flow object.
StatusCode AlterMetadata(const object_creation::ParticleFlowObject::Metadata &metadata)
Alter particle flow object metadata parameters.
TrackAddressList GetTrackAddressList() const
Get track address list.
PfoList m_daughterPfoList
The list of daughter pfos.
float m_mass
The particle flow object mass.
TrackList m_trackList
The track list.
StatusCode AddToPfo(const T *const pT)
Add an object to the particle flow object.
float m_energy
The particle flow object energy.
CartesianVector m_momentum
The particle flow object momentum.
StatusCode AddParent(const ParticleFlowObject *const pPfo)
Add a parent pfo to the parent pfo list.
int m_particleId
The particle flow object id (PDG code)
VertexList m_vertexList
The vertex list.
PropertiesMap m_propertiesMap
The map from registered property name to floating point property value.
ClusterAddressList GetClusterAddressList() const
Get the cluster address list.
PfoList m_parentPfoList
The list of parent pfos.
StatusCodeException class.
std::vector< const void * > TrackAddressList
std::vector< CaloHitAddressList > ClusterAddressList
StatusCode
The StatusCode enum.
std::vector< const void * > CaloHitAddressList