Pandora
Pandora source code navigator
Loading...
Searching...
No Matches
Metadata.h
Go to the documentation of this file.
1
8#ifndef PANDORA_METADATA_MANAGER_H
9#define PANDORA_METADATA_MANAGER_H 1
10
11#include "Objects/CaloHit.h"
12
14#include "Pandora/StatusCodes.h"
15
16namespace pandora
17{
18
28
29typedef std::vector<CaloHitReplacement *> CaloHitReplacementList;
30typedef std::unordered_map<const CaloHit *, bool> CaloHitUsageMap;
31
32//------------------------------------------------------------------------------------------------------------------------------------------
33//------------------------------------------------------------------------------------------------------------------------------------------
34
39{
40public:
48 CaloHitMetadata(CaloHitList *const pCaloHitList, const std::string &caloHitListName, const bool initialHitAvailability);
49
54
62 template <typename T>
63 bool IsAvailable(const T *const pT) const;
64
71 template <typename T>
72 StatusCode SetAvailability(const T *const pT, bool isAvailable);
73
79 StatusCode Update(const CaloHitMetadata &caloHitMetadata);
80
86 StatusCode Update(const CaloHitReplacement &caloHitReplacement);
87
91 void Clear();
92
99
106
107private:
109 std::string m_caloHitListName;
112};
113
114//------------------------------------------------------------------------------------------------------------------------------------------
115//------------------------------------------------------------------------------------------------------------------------------------------
116
121{
122public:
128 ReclusterMetadata(CaloHitList *const pCaloHitList);
129
134
143 StatusCode CreateCaloHitMetadata(CaloHitList *const pCaloHitList, const std::string &caloHitListName, const std::string &reclusterListName,
144 const bool initialHitAvailability);
145
152 StatusCode ExtractCaloHitMetadata(const std::string &reclusterListName, CaloHitMetadata *&pCaloHitMetaData);
153
159 const CaloHitList &GetCaloHitList() const;
160
167
168private:
169 typedef std::map<std::string, CaloHitMetadata *> NameToMetadataMap;
170
174};
175
176typedef std::vector<ReclusterMetadata *> ReclusterMetadataList;
177
178//------------------------------------------------------------------------------------------------------------------------------------------
179//------------------------------------------------------------------------------------------------------------------------------------------
180
185
186//------------------------------------------------------------------------------------------------------------------------------------------
187
192
193//------------------------------------------------------------------------------------------------------------------------------------------
194//------------------------------------------------------------------------------------------------------------------------------------------
195
197{
198 return m_caloHitList;
199}
200
201//------------------------------------------------------------------------------------------------------------------------------------------
202
207
208} // namespace pandora
209
210#endif // #ifndef PANDORA_METADATA_MANAGER_H
Header file for the calo hit class.
Header file defining relevant internal typedefs, sort and string conversion functions.
Header file defining status codes and relevant preprocessor macros.
CaloHitMetadata class.
Definition Metadata.h:39
bool IsAvailable(const T *const pT) const
Is a calo hit, or a list of calo hits, available to add to a cluster.
~CaloHitMetadata()
Destructor.
Definition Metadata.cc:31
CaloHitUsageMap m_caloHitUsageMap
The calo hit usage map.
Definition Metadata.h:110
const CaloHitUsageMap & GetCaloHitUsageMap() const
Get the calo hit usage map.
Definition Metadata.h:181
StatusCode Update(const CaloHitMetadata &caloHitMetadata)
Update metadata to account for changes by daughter recluster processes.
Definition Metadata.cc:102
void Clear()
Clear all metadata content.
Definition Metadata.cc:172
CaloHitReplacementList m_caloHitReplacementList
The calo hit replacement list.
Definition Metadata.h:111
std::string m_caloHitListName
The name of the associated calo hit list.
Definition Metadata.h:109
CaloHitList * m_pCaloHitList
Address of the associated calo hit list.
Definition Metadata.h:108
const CaloHitReplacementList & GetCaloHitReplacementList() const
Get the calo hit replacement list.
Definition Metadata.h:188
StatusCode SetAvailability(const T *const pT, bool isAvailable)
Set availability of a calo hit, or a list of calo hits, to be added to a cluster.
ReclusterMetadata class.
Definition Metadata.h:121
StatusCode CreateCaloHitMetadata(CaloHitList *const pCaloHitList, const std::string &caloHitListName, const std::string &reclusterListName, const bool initialHitAvailability)
Create new calo hit metadata, associated with a new reclustering option for the calo hits.
Definition Metadata.cc:204
const CaloHitList & GetCaloHitList() const
Get the initial calo hit list.
Definition Metadata.h:196
std::map< std::string, CaloHitMetadata * > NameToMetadataMap
Definition Metadata.h:169
CaloHitMetadata * GetCurrentCaloHitMetadata()
Get the current calo hit metadata.
Definition Metadata.h:203
~ReclusterMetadata()
Destructor.
Definition Metadata.cc:196
StatusCode ExtractCaloHitMetadata(const std::string &reclusterListName, CaloHitMetadata *&pCaloHitMetaData)
Extract specific calo hit metadata, removing entry from map and receiving a pointer to the metadata.
Definition Metadata.cc:220
CaloHitMetadata * m_pCurrentCaloHitMetadata
Address of the current calo hit metadata.
Definition Metadata.h:171
CaloHitList m_caloHitList
Copy of the reclustering input calo hit list.
Definition Metadata.h:172
NameToMetadataMap m_nameToMetadataMap
The recluster list name to metadata map.
Definition Metadata.h:173
std::unordered_map< const CaloHit *, bool > CaloHitUsageMap
Definition Metadata.h:30
std::vector< CaloHitReplacement * > CaloHitReplacementList
Definition Metadata.h:29
CaloHitList m_oldCaloHits
The list of old calo hits, to be replaced.
Definition Metadata.h:25
std::vector< ReclusterMetadata * > ReclusterMetadataList
Definition Metadata.h:176
CaloHitList m_newCaloHits
The list new calo hits, to act as replacements.
Definition Metadata.h:26
MANAGED_CONTAINER< const CaloHit * > CaloHitList
StatusCode
The StatusCode enum.
CaloHitReplacement class.
Definition Metadata.h:23