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  protected:
51  ItemType getNextItemType() override;
52  void readLuminosityBlock_(LuminosityBlockPrincipal& lumiPrincipal) override;
53  std::shared_ptr<LuminosityBlockAuxiliary> readLuminosityBlockAuxiliary_() override;
54  void readEvent_(EventPrincipal& eventPrincipal) override;
55 
56  private:
57  std::shared_ptr<RunAuxiliary> readRunAuxiliary_() override;
58  void readRun_(RunPrincipal& runPrincipal) override;
59  std::unique_ptr<FileBlock> readFile_() override;
60  void closeFile_() override;
61  void endJob() override;
62  bool readIt(EventID const& id, EventPrincipal& eventPrincipal, StreamContext& streamContext) override;
63  void skip(int offset) override;
64  bool goToEvent_(EventID const& eventID) override;
65  void rewind_() override;
66  bool randomAccess_() const override;
69 
70  std::pair<SharedResourcesAcquirer*,std::recursive_mutex*> resourceSharedWithDelayedReader_() override;
71 
77  std::vector<edm::propagate_const<std::unique_ptr<EventPrincipal>>> secondaryEventPrincipals_;
78  std::array<std::vector<BranchID>, NumBranchTypes> branchIDsToReplace_;
79 
80  unsigned int nStreams_;
88 
90  std::unique_ptr<SharedResourcesAcquirer> resourceSharedWithDelayedReaderPtr_; // We do not use propagate_const because the acquirer is itself mutable.
91  std::shared_ptr<std::recursive_mutex> mutexSharedWithDelayedReader_;
94  }; // class PoolSource
95 }
96 #endif
bool bypassVersionCheck_
Definition: PoolSource.h:82
edm::propagate_const< std::unique_ptr< RootSecondaryFileSequence > > secondaryFileSequence_
Definition: PoolSource.h:93
PoolSource(ParameterSet const &pset, InputSourceDescription const &desc)
Definition: PoolSource.cc:65
bool goToEvent_(EventID const &eventID) override
Definition: PoolSource.cc:299
InputFileCatalog catalog_
Definition: PoolSource.h:73
std::unique_ptr< SharedResourcesAcquirer > resourceSharedWithDelayedReaderPtr_
Definition: PoolSource.h:90
ProductRegistry & productRegistryUpdate()
Definition: InputSource.h:334
edm::propagate_const< std::unique_ptr< RunHelperBase > > runHelper_
Definition: PoolSource.h:89
ProcessingController::ReverseState reverseState_() const override
Definition: PoolSource.cc:349
edm::propagate_const< std::shared_ptr< RunPrincipal > > secondaryRunPrincipal_
Definition: PoolSource.h:75
bool dropDescendants_
Definition: PoolSource.h:85
void readLuminosityBlock_(LuminosityBlockPrincipal &lumiPrincipal) override
Definition: PoolSource.cc:206
unsigned int nStreams_
Definition: PoolSource.h:80
std::shared_ptr< LuminosityBlockAuxiliary > readLuminosityBlockAuxiliary_() override
Definition: PoolSource.cc:177
~PoolSource() override
Definition: PoolSource.cc:149
std::pair< SharedResourcesAcquirer *, std::recursive_mutex * > resourceSharedWithDelayedReader_() override
Definition: PoolSource.cc:282
RunHelperBase * runHelper()
Definition: PoolSource.h:47
bool delayReadingEventProducts_
Definition: PoolSource.h:87
void readRun_(RunPrincipal &runPrincipal) override
Definition: PoolSource.cc:182
std::vector< edm::propagate_const< std::unique_ptr< EventPrincipal > > > secondaryEventPrincipals_
Definition: PoolSource.h:77
void readEvent_(EventPrincipal &eventPrincipal) override
Definition: PoolSource.cc:232
bool labelRawDataLikeMC_
Definition: PoolSource.h:86
std::shared_ptr< RunAuxiliary > readRunAuxiliary_() override
Definition: PoolSource.cc:172
unsigned int nStreams() const
Definition: PoolSource.h:44
bool randomAccess_() const override
Definition: PoolSource.cc:339
bool dropDescendants() const
Definition: PoolSource.h:41
bool bypassVersionCheck() const
Definition: PoolSource.h:42
ItemType getNextItemType() override
Definition: PoolSource.cc:266
int const treeMaxVirtualSize_
Definition: PoolSource.h:83
int treeMaxVirtualSize() const
Definition: PoolSource.h:45
InputFileCatalog secondaryCatalog_
Definition: PoolSource.h:74
bool skipBadFiles() const
Definition: PoolSource.h:40
static void fillDescriptions(ConfigurationDescriptions &descriptions)
Definition: PoolSource.cc:304
bool readIt(EventID const &id, EventPrincipal &eventPrincipal, StreamContext &streamContext) override
Definition: PoolSource.cc:257
bool labelRawDataLikeMC() const
Definition: PoolSource.h:43
std::array< std::vector< BranchID >, NumBranchTypes > branchIDsToReplace_
Definition: PoolSource.h:78
ProductSelectorRules productSelectorRules_
Definition: PoolSource.h:84
bool skipBadFiles_
Definition: PoolSource.h:81
void endJob() override
Definition: PoolSource.cc:152
ProcessHistoryRegistry & processHistoryRegistryForUpdate()
Definition: InputSource.h:335
void skip(int offset) override
Definition: PoolSource.cc:294
RootServiceChecker rootServiceChecker_
Definition: PoolSource.h:72
HLT enums.
std::unique_ptr< FileBlock > readFile_() override
Definition: PoolSource.cc:159
std::shared_ptr< std::recursive_mutex > mutexSharedWithDelayedReader_
Definition: PoolSource.h:91
void rewind_() override
Definition: PoolSource.cc:288
edm::propagate_const< std::shared_ptr< LuminosityBlockPrincipal > > secondaryLumiPrincipal_
Definition: PoolSource.h:76
edm::propagate_const< std::unique_ptr< RootPrimaryFileSequence > > primaryFileSequence_
Definition: PoolSource.h:92
void closeFile_() override
Definition: PoolSource.cc:167
ProductSelectorRules const & productSelectorRules() const
Definition: PoolSource.h:46
ProcessingController::ForwardState forwardState_() const override
Definition: PoolSource.cc:344