1 #ifndef art_Framework_IO_Root_RootOutputFile_h 2 #define art_Framework_IO_Root_RootOutputFile_h 14 #include "boost/filesystem.hpp" 23 #include "hep_concurrency/RecursiveMutex.h" 38 class ResultsPrincipal;
43 class SubRunAuxiliary;
45 class ResultsAuxiliary;
68 bool const fastCloning,
69 bool const wantAllEvents,
77 int const compressionLevel,
78 int64_t const saveMemoryObjectThreshold,
79 int64_t const treeMaxVirtualSize,
83 bool dropMetaDataForDroppedData,
84 bool fastCloningRequested);
122 template <BranchType>
124 template <BranchType BT>
129 template <BranchType BT>
136 mutable hep::concurrency::RecursiveMutex
mutex_;
SubRunAuxiliary const * pSubRunAux_
EventAuxiliary const * pEventAux_
void setFileStatus(OutputFileStatus const ofs)
int const compressionLevel_
bool fastCloningEnabledAtConstruction_
std::string const & currentFileName() const
RootOutputFile(OutputModule *, std::string const &fileName, ClosingCriteria const &fileSwitchCriteria, int const compressionLevel, int64_t const saveMemoryObjectThreshold, int64_t const treeMaxVirtualSize, int const splitLevel, int const basketSize, DropMetaData dropMetaData, bool dropMetaDataForDroppedData, bool fastCloningRequested)
ProductProvenances * pRunProductProvenanceVector_
int64_t const treeMaxVirtualSize_
ProductProvenances resultsProductProvenanceVector_
std::chrono::steady_clock::time_point beginTime_
std::unique_ptr< TFile > filePtr_
void beginInputFile(RootFileBlock const *, bool fastClone)
std::array< std::set< OutputItem >, NumBranchTypes > selectedOutputItemList_
DropMetaData dropMetaData_
ProductProvenances runProductProvenanceVector_
BranchDescription const branchDescription_
void writeOne(EventPrincipal const &)
hep::concurrency::RecursiveMutex mutex_
void writeProductDependencies()
void setRunAuxiliaryRangeSetID(RangeSet const &)
void writeFileFormatVersion()
void writeParentageRegistry()
ProductProvenances eventProductProvenanceVector_
ProductProvenances * pResultsProductProvenanceVector_
void incrementInputFileNumber()
void writeFileCatalogMetadata(FileStatsCollector const &stats, FileCatalogMetadata::collection_type const &, FileCatalogMetadata::collection_type const &)
bool dropMetaDataForDroppedData_
void setSubRunAuxiliaryRangeSetID(RangeSet const &)
bool operator<(ProductInfo const &a, ProductInfo const &b)
ProductProvenances subRunProductProvenanceVector_
void writeSubRun(SubRunPrincipal const &)
static bool shouldFastClone(bool const fastCloningSet, bool const fastCloning, bool const wantAllEvents, ClosingCriteria const &cc)
detail::DummyProductCache dummyProductCache_
void writeResults(ResultsPrincipal &resp)
RootOutputTreePtrArray treePointers_
std::unique_ptr< cet::sqlite::Connection > rootFileDB_
void respondToCloseInputFile(FileBlock const &)
ProductProvenances * pEventProductProvenanceVector_
std::enable_if_t<!detail::RangeSetsSupported< BT >::value, EDProduct const * > getProduct(OutputHandle const &, RangeSet const &productRS, std::string const &wrappedName)
bool maxSizeReached(unsigned const maxFileSize) const
void writeProductDescriptionRegistry()
void writeParameterSetRegistry()
TTree * eventHistoryTree_
std::array< ProductDescriptionsByID, NumBranchTypes > descriptionsToPersist_
bool maxEventsPerFileReached(FileIndex::EntryNumber_t const maxEventsPerFile) const
void writeProcessConfigurationRegistry()
int64_t const saveMemoryObjectThreshold_
void writeRun(RunPrincipal const &)
std::array< std::unique_ptr< RootOutputTree >, NumBranchTypes > RootOutputTreePtrArray
void writeProcessHistoryRegistry()
std::vector< ProductProvenance > ProductProvenances
ResultsAuxiliary const * pResultsAux_
ProductProvenances * pSubRunProductProvenanceVector_
RunAuxiliary const * pRunAux_
History const * pHistory_
RootOutputFile & operator=(RootOutputFile const &)=delete
ClosingCriteria fileSwitchCriteria_
void fillBranches(Principal const &, std::vector< ProductProvenance > *)
bool requestsToCloseFile()