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_; }
45  int treeMaxVirtualSize() const { return treeMaxVirtualSize_; }
47  RunHelperBase* runHelper() { return runHelper_.get(); }
48 
49  static void fillDescriptions(ConfigurationDescriptions& descriptions);
50 
51  protected:
52  ItemType getNextItemType() override;
53  void readLuminosityBlock_(LuminosityBlockPrincipal& lumiPrincipal) override;
54  std::shared_ptr<LuminosityBlockAuxiliary> readLuminosityBlockAuxiliary_() override;
55  void readEvent_(EventPrincipal& eventPrincipal) override;
56 
57  private:
58  std::shared_ptr<RunAuxiliary> readRunAuxiliary_() override;
59  void readRun_(RunPrincipal& runPrincipal) override;
60  std::unique_ptr<FileBlock> readFile_() override;
61  void closeFile_() override;
62  void endJob() override;
63  bool readIt(EventID const& id, EventPrincipal& eventPrincipal, StreamContext& streamContext) override;
64  void skip(int offset) override;
65  bool goToEvent_(EventID const& eventID) override;
66  void rewind_() override;
67  bool randomAccess_() const override;
70 
71  std::pair<SharedResourcesAcquirer*, std::recursive_mutex*> resourceSharedWithDelayedReader_() override;
72 
78  std::vector<edm::propagate_const<std::unique_ptr<EventPrincipal>>> secondaryEventPrincipals_;
79  std::array<std::vector<BranchID>, NumBranchTypes> branchIDsToReplace_;
80 
81  unsigned int nStreams_;
89 
91  std::unique_ptr<SharedResourcesAcquirer>
92  resourceSharedWithDelayedReaderPtr_; // We do not use propagate_const because the acquirer is itself mutable.
93  std::shared_ptr<std::recursive_mutex> mutexSharedWithDelayedReader_;
96  }; // class PoolSource
97 } // namespace edm
98 #endif
bool bypassVersionCheck_
Definition: PoolSource.h:83
edm::propagate_const< std::unique_ptr< RootSecondaryFileSequence > > secondaryFileSequence_
Definition: PoolSource.h:95
PoolSource(ParameterSet const &pset, InputSourceDescription const &desc)
Definition: PoolSource.cc:65
bool goToEvent_(EventID const &eventID) override
Definition: PoolSource.cc:274
InputFileCatalog catalog_
Definition: PoolSource.h:74
std::unique_ptr< SharedResourcesAcquirer > resourceSharedWithDelayedReaderPtr_
Definition: PoolSource.h:92
ProductRegistry & productRegistryUpdate()
Definition: InputSource.h:326
edm::propagate_const< std::unique_ptr< RunHelperBase > > runHelper_
Definition: PoolSource.h:90
ProcessingController::ReverseState reverseState_() const override
Definition: PoolSource.cc:317
edm::propagate_const< std::shared_ptr< RunPrincipal > > secondaryRunPrincipal_
Definition: PoolSource.h:76
bool dropDescendants_
Definition: PoolSource.h:86
void readLuminosityBlock_(LuminosityBlockPrincipal &lumiPrincipal) override
Definition: PoolSource.cc:195
unsigned int nStreams_
Definition: PoolSource.h:81
std::shared_ptr< LuminosityBlockAuxiliary > readLuminosityBlockAuxiliary_() override
Definition: PoolSource.cc:169
~PoolSource() override
Definition: PoolSource.cc:148
std::pair< SharedResourcesAcquirer *, std::recursive_mutex * > resourceSharedWithDelayedReader_() override
Definition: PoolSource.cc:264
RunHelperBase * runHelper()
Definition: PoolSource.h:47
bool delayReadingEventProducts_
Definition: PoolSource.h:88
void readRun_(RunPrincipal &runPrincipal) override
Definition: PoolSource.cc:173
std::vector< edm::propagate_const< std::unique_ptr< EventPrincipal > > > secondaryEventPrincipals_
Definition: PoolSource.h:78
void readEvent_(EventPrincipal &eventPrincipal) override
Definition: PoolSource.cc:217
bool labelRawDataLikeMC_
Definition: PoolSource.h:87
std::shared_ptr< RunAuxiliary > readRunAuxiliary_() override
Definition: PoolSource.cc:167
unsigned int nStreams() const
Definition: PoolSource.h:44
bool randomAccess_() const override
Definition: PoolSource.cc:313
bool dropDescendants() const
Definition: PoolSource.h:41
bool bypassVersionCheck() const
Definition: PoolSource.h:42
ItemType getNextItemType() override
Definition: PoolSource.cc:249
int const treeMaxVirtualSize_
Definition: PoolSource.h:84
int treeMaxVirtualSize() const
Definition: PoolSource.h:45
InputFileCatalog secondaryCatalog_
Definition: PoolSource.h:75
bool skipBadFiles() const
Definition: PoolSource.h:40
static void fillDescriptions(ConfigurationDescriptions &descriptions)
Definition: PoolSource.cc:276
bool readIt(EventID const &id, EventPrincipal &eventPrincipal, StreamContext &streamContext) override
Definition: PoolSource.cc:240
bool labelRawDataLikeMC() const
Definition: PoolSource.h:43
std::array< std::vector< BranchID >, NumBranchTypes > branchIDsToReplace_
Definition: PoolSource.h:79
ProductSelectorRules productSelectorRules_
Definition: PoolSource.h:85
bool skipBadFiles_
Definition: PoolSource.h:82
void endJob() override
Definition: PoolSource.cc:150
ProcessHistoryRegistry & processHistoryRegistryForUpdate()
Definition: InputSource.h:327
void skip(int offset) override
Definition: PoolSource.cc:272
RootServiceChecker rootServiceChecker_
Definition: PoolSource.h:73
HLT enums.
std::unique_ptr< FileBlock > readFile_() override
Definition: PoolSource.cc:157
std::shared_ptr< std::recursive_mutex > mutexSharedWithDelayedReader_
Definition: PoolSource.h:93
void rewind_() override
Definition: PoolSource.cc:269
edm::propagate_const< std::shared_ptr< LuminosityBlockPrincipal > > secondaryLumiPrincipal_
Definition: PoolSource.h:77
edm::propagate_const< std::unique_ptr< RootPrimaryFileSequence > > primaryFileSequence_
Definition: PoolSource.h:94
void closeFile_() override
Definition: PoolSource.cc:165
ProductSelectorRules const & productSelectorRules() const
Definition: PoolSource.h:46
ProcessingController::ForwardState forwardState_() const override
Definition: PoolSource.cc:315