File indexing completed on 2024-04-06 12:19:07
0001 #ifndef IOPool_Input_RootSecondaryFileSequence_h
0002 #define IOPool_Input_RootSecondaryFileSequence_h
0003
0004
0005
0006
0007
0008
0009
0010 #include "RootInputFileSequence.h"
0011 #include "FWCore/Framework/interface/Frameworkfwd.h"
0012 #include "FWCore/Framework/interface/ProductSelectorRules.h"
0013 #include "DataFormats/Provenance/interface/ProcessHistoryID.h"
0014
0015 #include <memory>
0016 #include <set>
0017 #include <string>
0018 #include <vector>
0019
0020 namespace edm {
0021
0022 class BranchID;
0023 class FileCatalogItem;
0024 class InputFileCatalog;
0025 class PoolSource;
0026 class RootFile;
0027
0028 class RootSecondaryFileSequence : public RootInputFileSequence {
0029 public:
0030 explicit RootSecondaryFileSequence(ParameterSet const& pset, PoolSource& input, InputFileCatalog const& catalog);
0031 ~RootSecondaryFileSequence() override;
0032
0033 RootSecondaryFileSequence(RootSecondaryFileSequence const&) = delete;
0034 RootSecondaryFileSequence& operator=(RootSecondaryFileSequence const&) = delete;
0035
0036 void endJob();
0037 void initAssociationsFromSecondary(std::set<BranchID> const&);
0038
0039 private:
0040 void closeFile_() override;
0041 void initFile_(bool skipBadFiles) override;
0042 RootFileSharedPtr makeRootFile(std::shared_ptr<InputFile> filePtr) override;
0043
0044 PoolSource& input_;
0045 std::vector<BranchID> associationsFromSecondary_;
0046 std::vector<ProcessHistoryID> orderedProcessHistoryIDs_;
0047 bool enablePrefetching_;
0048 bool enforceGUIDInFileName_;
0049 };
0050 }
0051 #endif