Pandora
Pandora source code navigator
Loading...
Searching...
No Matches
MCManager.h
Go to the documentation of this file.
1
8#ifndef PANDORA_MC_MANAGER_H
9#define PANDORA_MC_MANAGER_H 1
10
12
15
16namespace pandora
17{
18
22class MCManager : public InputObjectManager<MCParticle>
23{
24public:
30 MCManager(const Pandora *const pPandora);
31
35 ~MCManager();
36
37private:
45 StatusCode Create(const object_creation::MCParticle::Parameters &parameters, const MCParticle *&pMCParticle,
47
52
59 StatusCode SetMCParentDaughterRelationship(const Uid parentUid, const Uid daughterUid);
60
68 StatusCode SetCaloHitToMCParticleRelationship(const Uid caloHitUid, const Uid mcParticleUid, const float mcParticleWeight);
69
77 StatusCode SetTrackToMCParticleRelationship(const Uid trackUid, const Uid mcParticleUid, const float mcParticleWeight);
78
83
88
95 StatusCode ApplyPfoSelectionRules(const MCParticle *const mcRootParticle, MCParticleSet &mcPfoSet) const;
96
104 StatusCode SetPfoTargetInTree(const MCParticle *const pMCParticle, const MCParticle *const pPfoTarget, bool onlyDaughters = false) const;
105
112
119
124
129
135 StatusCode RemoveMCParticleRelationships(const MCParticle *const pMCParticle) const;
136
137 typedef std::unordered_map<Uid, float> UidToWeightMap;
138 typedef std::unordered_map<Uid, UidToWeightMap> ObjectRelationMap;
139 typedef std::unordered_multimap<Uid, Uid> MCParticleRelationMap;
140
149 StatusCode SetUidToMCParticleRelationship(const Uid objectUid, const Uid mcParticleUid, const float mcParticleWeight,
150 ObjectRelationMap &objectRelationMap) const;
151
158 StatusCode CreateUidToPfoTargetsMap(UidToMCParticleWeightMap &uidToMCParticleWeightMap, const ObjectRelationMap &objectRelationMap) const;
159
160 const std::string m_selectedListName;
161
166
167 friend class PandoraApiImpl;
169 friend class PandoraImpl;
170};
171
172//------------------------------------------------------------------------------------------------------------------------------------------
173
174inline StatusCode MCManager::SetCaloHitToMCParticleRelationship(const Uid caloHitUid, const Uid mcParticleUid, const float mcParticleWeight)
175{
176 return this->SetUidToMCParticleRelationship(caloHitUid, mcParticleUid, mcParticleWeight, m_caloHitToMCParticleMap);
177}
178
179//------------------------------------------------------------------------------------------------------------------------------------------
180
181inline StatusCode MCManager::SetTrackToMCParticleRelationship(const Uid trackUid, const Uid mcParticleUid, const float mcParticleWeight)
182{
183 return this->SetUidToMCParticleRelationship(trackUid, mcParticleUid, mcParticleWeight, m_trackToMCParticleMap);
184}
185
186//------------------------------------------------------------------------------------------------------------------------------------------
187
189{
190 return this->CreateUidToPfoTargetsMap(caloHitToPfoTargetsMap, m_caloHitToMCParticleMap);
191}
192
193//------------------------------------------------------------------------------------------------------------------------------------------
194
196{
197 return this->CreateUidToPfoTargetsMap(trackToPfoTargetsMap, m_trackToMCParticleMap);
198}
199
200} // namespace pandora
201
202#endif // #ifndef PANDORA_MC_MANAGER_H
Header file for the input object manager class.
Header file for pandora object creation classes.
Header file defining relevant internal typedefs, sort and string conversion functions.
InputObjectManager class.
MCManager class.
Definition MCManager.h:23
StatusCode CreateCaloHitToPfoTargetsMap(UidToMCParticleWeightMap &caloHitToPfoTargetsMap) const
Create a map relating calo hit uid to mc pfo target.
Definition MCManager.h:188
StatusCode SetPfoTargetInTree(const MCParticle *const pMCParticle, const MCParticle *const pPfoTarget, bool onlyDaughters=false) const
Set pfo target for a mc tree.
Definition MCManager.cc:189
StatusCode RemoveMCParticleRelationships(const MCParticle *const pMCParticle) const
Remove all parent/daughter particle links from a mc particle and from its (previously) linked particl...
Definition MCManager.cc:274
StatusCode SetMCParentDaughterRelationship(const Uid parentUid, const Uid daughterUid)
Set mc particle relationship.
Definition MCManager.cc:83
StatusCode Create(const object_creation::MCParticle::Parameters &parameters, const MCParticle *&pMCParticle, const ObjectFactory< object_creation::MCParticle::Parameters, object_creation::MCParticle::Object > &factory)
Create a mc particle.
Definition MCManager.cc:40
StatusCode RemoveAllMCParticleRelationships()
Remove all mc particle associations that have been registered with the mc manager.
Definition MCManager.cc:254
std::unordered_map< Uid, float > UidToWeightMap
Definition MCManager.h:137
StatusCode CreateUidToPfoTargetsMap(UidToMCParticleWeightMap &uidToMCParticleWeightMap, const ObjectRelationMap &objectRelationMap) const
Create a map relating an object (calo hit or track) uid to mc pfo targets.
Definition MCManager.cc:331
MCParticleRelationMap m_parentDaughterRelationMap
The mc particle parent-daughter relation map.
Definition MCManager.h:163
ObjectRelationMap m_caloHitToMCParticleMap
The calo hit to mc particle relation map.
Definition MCManager.h:164
StatusCode SelectPfoTargets()
Select pfo targets.
Definition MCManager.cc:112
std::unordered_map< Uid, UidToWeightMap > ObjectRelationMap
Definition MCManager.h:138
StatusCode SetTrackToMCParticleRelationship(const Uid trackUid, const Uid mcParticleUid, const float mcParticleWeight)
Set track to mc particle relationship.
Definition MCManager.h:181
StatusCode ApplyPfoSelectionRules(const MCParticle *const mcRootParticle, MCParticleSet &mcPfoSet) const
Apply mc pfo selection rules.
Definition MCManager.cc:158
StatusCode IdentifyPfoTargets()
Identify pfo targets.
Definition MCManager.cc:92
StatusCode AddMCParticleRelationships() const
Apply mc particle associations (parent-daughter) that have been registered with the mc manager.
Definition MCManager.cc:214
StatusCode CreateTrackToPfoTargetsMap(UidToMCParticleWeightMap &trackToPfoTargetsMap) const
Create a map relating track uid to mc pfo target.
Definition MCManager.h:195
UidToMCParticleMap m_uidToMCParticleMap
The uid to mc particle map.
Definition MCManager.h:162
~MCManager()
Destructor.
Definition MCManager.cc:33
StatusCode EraseAllContent()
Erase all mc manager content.
Definition MCManager.cc:71
const std::string m_selectedListName
The name of the selected list.
Definition MCManager.h:160
StatusCode SetUidToMCParticleRelationship(const Uid objectUid, const Uid mcParticleUid, const float mcParticleWeight, ObjectRelationMap &objectRelationMap) const
Set an object (e.g. calo hit or track) to mc particle relationship.
Definition MCManager.cc:297
std::unordered_multimap< Uid, Uid > MCParticleRelationMap
Definition MCManager.h:139
ObjectRelationMap m_trackToMCParticleMap
The track to mc particle relation map.
Definition MCManager.h:165
StatusCode SetCaloHitToMCParticleRelationship(const Uid caloHitUid, const Uid mcParticleUid, const float mcParticleWeight)
Set calo hit to mc particle relationship.
Definition MCManager.h:174
MCParticle class.
Definition MCParticle.h:26
ObjectFactory class responsible for extended pandora object creation.
PandoraApiImpl class.
PandoraContentApiImpl class.
Pandora class.
Definition Pandora.h:40
PandoraImpl class.
Definition PandoraImpl.h:18
std::unordered_set< const MCParticle * > MCParticleSet
std::unordered_map< Uid, const MCParticle * > UidToMCParticleMap
const void * Uid
StatusCode
The StatusCode enum.
std::unordered_map< Uid, MCParticleWeightMap > UidToMCParticleWeightMap