CMS 3D CMS Logo

PoolSource.h
Go to the documentation of this file.
1 #ifndef IOPool_Input_PoolSource_h
2 #define IOPool_Input_PoolSource_h
3 
4 /*----------------------------------------------------------------------
5 
6 PoolSource: This is an InputSource
7 
8 ----------------------------------------------------------------------*/
9 
18 
19 #include <array>
20 #include <memory>
21 #include <string>
22 #include <vector>
23 
24 namespace edm {
25 
27  class FileCatalogItem;
28  class RootPrimaryFileSequence;
29  class RootSecondaryFileSequence;
30  class RunHelperBase;
31 
32  class PoolSource : public InputSource {
33  public:
34  explicit PoolSource(ParameterSet const& pset, InputSourceDescription const& desc);
35  ~PoolSource() override;
38 
39  // const accessors
40  bool skipBadFiles() const {return skipBadFiles_;}
41  bool dropDescendants() const {return dropDescendants_;}
42  bool bypassVersionCheck() const {return bypassVersionCheck_;}
43  bool labelRawDataLikeMC() const {return labelRawDataLikeMC_;}
44  unsigned int nStreams() const {return nStreams_;}
47  RunHelperBase* runHelper() {return runHelper_.get();}
48 
49  static void fillDescriptions(ConfigurationDescriptions& descriptions);
50 
51  private:
52  void readEvent_(EventPrincipal& eventPrincipal) override;
53  std::shared_ptr<LuminosityBlockAuxiliary> readLuminosityBlockAuxiliary_() override;
54  void readLuminosityBlock_(LuminosityBlockPrincipal& lumiPrincipal) override;
55  std::shared_ptr<RunAuxiliary> readRunAuxiliary_() override;
56  void readRun_(RunPrincipal& runPrincipal) override;
57  std::unique_ptr<FileBlock> readFile_() override;
58  void closeFile_() override;
59  void endJob() override;
60  ItemType getNextItemType() override;
61  bool readIt(EventID const& id, EventPrincipal& eventPrincipal, StreamContext& streamContext) override;
62  void skip(int offset) override;
63  bool goToEvent_(EventID const& eventID) override;
64  void rewind_() override;
65  bool randomAccess_() const override;
68 
69  std::pair<SharedResourcesAcquirer*,std::recursive_mutex*> resourceSharedWithDelayedReader_() override;
70 
76  std::vector<edm::propagate_const<std::unique_ptr<EventPrincipal>>> secondaryEventPrincipals_;
77  std::array<std::vector<BranchID>, NumBranchTypes> branchIDsToReplace_;
78 
79  unsigned int nStreams_;
86 
88  std::unique_ptr<SharedResourcesAcquirer> resourceSharedWithDelayedReaderPtr_; // We do not use propagate_const because the acquirer is itself mutable.
89  std::shared_ptr<std::recursive_mutex> mutexSharedWithDelayedReader_;
92  }; // class PoolSource
93 }
94 #endif
bool bypassVersionCheck_
Definition: PoolSource.h:81
edm::propagate_const< std::unique_ptr< RootSecondaryFileSequence > > secondaryFileSequence_
Definition: PoolSource.h:91
PoolSource(ParameterSet const &pset, InputSourceDescription const &desc)
Definition: PoolSource.cc:65
bool goToEvent_(EventID const &eventID) override
Definition: PoolSource.cc:294
InputFileCatalog catalog_
Definition: PoolSource.h:72
std::unique_ptr< SharedResourcesAcquirer > resourceSharedWithDelayedReaderPtr_
Definition: PoolSource.h:88
ProductRegistry & productRegistryUpdate()
Definition: InputSource.h:339
edm::propagate_const< std::unique_ptr< RunHelperBase > > runHelper_
Definition: PoolSource.h:87
ProcessingController::ReverseState reverseState_() const override
Definition: PoolSource.cc:343
edm::propagate_const< std::shared_ptr< RunPrincipal > > secondaryRunPrincipal_
Definition: PoolSource.h:74
bool dropDescendants_
Definition: PoolSource.h:84
void readLuminosityBlock_(LuminosityBlockPrincipal &lumiPrincipal) override
Definition: PoolSource.cc:205
unsigned int nStreams_
Definition: PoolSource.h:79
std::shared_ptr< LuminosityBlockAuxiliary > readLuminosityBlockAuxiliary_() override
Definition: PoolSource.cc:176
~PoolSource() override
Definition: PoolSource.cc:148
std::pair< SharedResourcesAcquirer *, std::recursive_mutex * > resourceSharedWithDelayedReader_() override
Definition: PoolSource.cc:277
RunHelperBase * runHelper()
Definition: PoolSource.h:47
void readRun_(RunPrincipal &runPrincipal) override
Definition: PoolSource.cc:181
std::vector< edm::propagate_const< std::unique_ptr< EventPrincipal > > > secondaryEventPrincipals_
Definition: PoolSource.h:76
void readEvent_(EventPrincipal &eventPrincipal) override
Definition: PoolSource.cc:230
bool labelRawDataLikeMC_
Definition: PoolSource.h:85
std::shared_ptr< RunAuxiliary > readRunAuxiliary_() override
Definition: PoolSource.cc:171
unsigned int nStreams() const
Definition: PoolSource.h:44
bool randomAccess_() const override
Definition: PoolSource.cc:333
bool dropDescendants() const
Definition: PoolSource.h:41
bool bypassVersionCheck() const
Definition: PoolSource.h:42
ItemType getNextItemType() override
Definition: PoolSource.cc:261
int const treeMaxVirtualSize_
Definition: PoolSource.h:82
int treeMaxVirtualSize() const
Definition: PoolSource.h:45
InputFileCatalog secondaryCatalog_
Definition: PoolSource.h:73
bool skipBadFiles() const
Definition: PoolSource.h:40
static void fillDescriptions(ConfigurationDescriptions &descriptions)
Definition: PoolSource.cc:299
bool readIt(EventID const &id, EventPrincipal &eventPrincipal, StreamContext &streamContext) override
Definition: PoolSource.cc:252
bool labelRawDataLikeMC() const
Definition: PoolSource.h:43
std::array< std::vector< BranchID >, NumBranchTypes > branchIDsToReplace_
Definition: PoolSource.h:77
ProductSelectorRules productSelectorRules_
Definition: PoolSource.h:83
bool skipBadFiles_
Definition: PoolSource.h:80
void endJob() override
Definition: PoolSource.cc:151
ProcessHistoryRegistry & processHistoryRegistryForUpdate()
Definition: InputSource.h:340
void skip(int offset) override
Definition: PoolSource.cc:289
RootServiceChecker rootServiceChecker_
Definition: PoolSource.h:71
HLT enums.
std::unique_ptr< FileBlock > readFile_() override
Definition: PoolSource.cc:158
std::shared_ptr< std::recursive_mutex > mutexSharedWithDelayedReader_
Definition: PoolSource.h:89
void rewind_() override
Definition: PoolSource.cc:283
edm::propagate_const< std::shared_ptr< LuminosityBlockPrincipal > > secondaryLumiPrincipal_
Definition: PoolSource.h:75
edm::propagate_const< std::unique_ptr< RootPrimaryFileSequence > > primaryFileSequence_
Definition: PoolSource.h:90
void closeFile_() override
Definition: PoolSource.cc:166
ProductSelectorRules const & productSelectorRules() const
Definition: PoolSource.h:46
ProcessingController::ForwardState forwardState_() const override
Definition: PoolSource.cc:338