Back to home page

Project CMSSW displayed by LXR

 
 

    


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 RootSecondaryFileSequence: This is an InputSource
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;             // Disallow copying and moving
0034     RootSecondaryFileSequence& operator=(RootSecondaryFileSequence const&) = delete;  // Disallow copying and moving
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   };  // class RootSecondaryFileSequence
0050 }  // namespace edm
0051 #endif