Pandora
Pandora source code navigator
Loading...
Searching...
No Matches
FileWriter.h
Go to the documentation of this file.
1
8#ifndef PANDORA_FILE_WRITER_H
9#define PANDORA_FILE_WRITER_H 1
10
11#include "Pandora/StatusCodes.h"
12
15
16#include <string>
17
18namespace pandora
19{
20
21class Pandora;
22
23//------------------------------------------------------------------------------------------------------------------------------------------
24
28class FileWriter : public Persistency
29{
30public:
38 FileWriter(const pandora::Pandora &pandora, const std::string &fileName);
39
43 virtual ~FileWriter();
44
49
59 StatusCode WriteEvent(const CaloHitList &caloHitList, const TrackList &trackList, const MCParticleList &mcParticleList,
60 const bool writeMCRelationships = true, const bool writeTrackRelationships = true);
61
62protected:
68 virtual StatusCode WriteHeader(const ContainerId containerId) = 0;
69
73 virtual StatusCode WriteFooter() = 0;
74
80 virtual StatusCode WriteSubDetector(const SubDetector *const pSubDetector) = 0;
81
87 virtual StatusCode WriteLArTPC(const LArTPC *const pLArTPC) = 0;
88
94 virtual StatusCode WriteDetectorGap(const DetectorGap *const pDetectorGap) = 0;
95
101 virtual StatusCode WriteCaloHit(const CaloHit *const pCaloHit) = 0;
102
108 virtual StatusCode WriteTrack(const Track *const pTrack) = 0;
109
115 virtual StatusCode WriteMCParticle(const MCParticle *const pMCParticle) = 0;
116
124 virtual StatusCode WriteRelationship(const RelationshipId relationshipId, const void *address1, const void *address2, const float weight = 1.f) = 0;
125
126private:
131
136
141
147 StatusCode WriteTrackList(const TrackList &trackList);
148
154 StatusCode WriteCaloHitList(const CaloHitList &caloHitList);
155
161 StatusCode WriteMCParticleList(const MCParticleList &mcParticleList);
162
169
176
183
190
197
204
210 StatusCode WriteMCParticleRelationships(const MCParticle *const pMCParticle);
211
217 StatusCode WriteTrackRelationships(const Track *const pTrack);
218};
219
220} // namespace pandora
221
222#endif // #ifndef PANDORA_FILE_WRITER_H
Header file for persistency class.
Header file defining status codes and relevant preprocessor macros.
CaloHit class.
Definition CaloHit.h:26
DetectorGap class.
Definition DetectorGap.h:25
FileWriter class.
Definition FileWriter.h:29
virtual ~FileWriter()
Destructor.
Definition FileWriter.cc:39
virtual StatusCode WriteFooter()=0
Write the container footer to the file.
virtual StatusCode WriteHeader(const ContainerId containerId)=0
Write the container header to the file.
virtual StatusCode WriteSubDetector(const SubDetector *const pSubDetector)=0
Write a sub detector to the file.
StatusCode WriteTrackToMCParticleRelationships(const TrackList &trackList)
Write track to mc particle relationships for a specified track list.
StatusCode WriteSubDetectorList()
Write the sub detector parameters to the file.
Definition FileWriter.cc:90
StatusCode WriteTrackList(const TrackList &trackList)
Write a track list to the current position in the file.
virtual StatusCode WriteCaloHit(const CaloHit *const pCaloHit)=0
Write a calo hit to the current position in the file.
virtual StatusCode WriteLArTPC(const LArTPC *const pLArTPC)=0
Write a lar tpc to the file.
StatusCode WriteEvent(const CaloHitList &caloHitList, const TrackList &trackList, const MCParticleList &mcParticleList, const bool writeMCRelationships=true, const bool writeTrackRelationships=true)
Write the specified event components to the file.
Definition FileWriter.cc:63
StatusCode WriteTrackRelationships(const TrackList &trackList)
Write track relationships for a specified list of tracks.
StatusCode WriteCaloHitToMCParticleRelationships(const CaloHitList &caloHitList)
Write calo hit to mc particle relationships for a specified calo hit list.
virtual StatusCode WriteRelationship(const RelationshipId relationshipId, const void *address1, const void *address2, const float weight=1.f)=0
Write a relationship between two objects with specified addresses.
StatusCode WriteMCParticleRelationships(const MCParticleList &mcParticleList)
Write mc particle relationships for a specified mc particle list.
StatusCode WriteCaloHitToMCParticleRelationship(const CaloHit *const pCaloHit)
Write a calo hit to mc particle relationship to the current position in the file.
virtual StatusCode WriteTrack(const Track *const pTrack)=0
Write a track to the current position in the file.
StatusCode WriteCaloHitList(const CaloHitList &caloHitList)
Write a calo hit list to the current position in the file.
StatusCode WriteDetectorGapList()
Write the detector gap parameters to the file.
virtual StatusCode WriteMCParticle(const MCParticle *const pMCParticle)=0
Write a mc particle to the current position in the file.
StatusCode WriteTrackToMCParticleRelationship(const Track *const pTrack)
Write a track to mc particle relationship to the current position in the file.
virtual StatusCode WriteDetectorGap(const DetectorGap *const pDetectorGap)=0
Write the detector gap parameters to the file.
StatusCode WriteGeometry()
Write the current geometry information to the file.
Definition FileWriter.cc:45
StatusCode WriteMCParticleList(const MCParticleList &mcParticleList)
Write a mc particle list to the current position in the file.
StatusCode WriteLArTPCList()
Write the lar tpc parameters to the file.
LArTPC class.
Definition LArTPC.h:26
MCParticle class.
Definition MCParticle.h:26
Pandora class.
Definition Pandora.h:40
Persistency class.
Definition Persistency.h:26
SubDetector class.
Definition SubDetector.h:26
Track class.
Definition Track.h:26
MANAGED_CONTAINER< const MCParticle * > MCParticleList
RelationshipId
The relationship identification enum.
Definition PandoraIO.h:57
ContainerId
The container identification enum.
Definition PandoraIO.h:24
MANAGED_CONTAINER< const CaloHit * > CaloHitList
MANAGED_CONTAINER< const Track * > TrackList
StatusCode
The StatusCode enum.