CMS 3D CMS Logo

RootFile.h
Go to the documentation of this file.
1 #ifndef IOPool_Input_RootFile_h
2 #define IOPool_Input_RootFile_h
3 
4 /*----------------------------------------------------------------------
5 
6 RootFile.h // used by ROOT input sources
7 
8 ----------------------------------------------------------------------*/
9 
10 #include "RootTree.h"
14 #include "DataFormats/Provenance/interface/EntryDescriptionID.h" // backward compatibility
16 #include "DataFormats/Provenance/interface/EventEntryDescription.h" // backward compatibility
17 #include "DataFormats/Provenance/interface/EventProcessHistoryID.h" // backward compatibility
27 
28 #include <array>
29 #include <map>
30 #include <memory>
31 #include <string>
32 #include <vector>
33 
34 namespace edm {
35 
36  //------------------------------------------------------------
37  // Class RootFile: supports file reading.
38 
39  class BranchID;
40  class BranchIDListHelper;
41  class ProductProvenanceRetriever;
42  struct DaqProvenanceHelper;
43  class DuplicateChecker;
44  class EventSkipperByID;
45  class ProcessHistoryRegistry;
46  class ProductSelectorRules;
47  class InputFile;
48  class ProvenanceReaderBase;
49  class ProvenanceAdaptor;
50  class StoredMergeableRunProductMetadata;
51  class RunHelperBase;
53 
54  typedef std::map<EntryDescriptionID, EventEntryDescription> EntryDescriptionMap;
55 
57  public:
58  virtual std::unique_ptr<ProvenanceReaderBase> makeReader(RootTree& eventTree,
59  DaqProvenanceHelper const* daqProvenanceHelper) const = 0;
60  virtual ~MakeProvenanceReader() = default;
61  };
62 
63  class RootFile {
64  public:
65  typedef std::array<RootTree*, NumBranchTypes> RootTreePtrArray;
67  ProcessConfiguration const& processConfiguration,
68  std::string const& logicalFileName,
69  std::shared_ptr<InputFile> filePtr,
70  std::shared_ptr<EventSkipperByID> eventSkipperByID,
71  bool skipAnyEvents,
72  int remainingEvents,
73  int remainingLumis,
74  unsigned int nStreams,
75  unsigned int treeCacheSize,
76  int treeMaxVirtualSize,
78  RunHelperBase* runHelper,
79  bool noEventSort,
80  ProductSelectorRules const& productSelectorRules,
81  InputType inputType,
82  std::shared_ptr<BranchIDListHelper> branchIDListHelper,
83  std::shared_ptr<ThinnedAssociationsHelper> thinnedAssociationsHelper,
84  std::vector<BranchID> const* associationsFromSecondary,
85  std::shared_ptr<DuplicateChecker> duplicateChecker,
86  bool dropDescendantsOfDroppedProducts,
87  ProcessHistoryRegistry& processHistoryRegistry,
88  std::vector<std::shared_ptr<IndexIntoFile>> const& indexesIntoFiles,
89  std::vector<std::shared_ptr<IndexIntoFile>>::size_type currentIndexIntoFile,
90  std::vector<ProcessHistoryID>& orderedProcessHistoryIDs,
91  bool bypassVersionCheck,
92  bool labelRawDataLikeMC,
93  bool usingGoToEvent,
94  bool enablePrefetching,
95  bool enforceGUIDInFileName);
96 
98  ProcessConfiguration const& processConfiguration,
99  std::string const& logicalFileName,
100  std::shared_ptr<InputFile> filePtr,
101  unsigned int nStreams,
102  int treeMaxVirtualSize,
104  RunHelperBase* runHelper,
105  ProductSelectorRules const& productSelectorRules,
106  InputType inputType,
107  std::shared_ptr<BranchIDListHelper> branchIDListHelper,
108  std::shared_ptr<ThinnedAssociationsHelper> thinnedAssociationsHelper,
109  std::vector<BranchID> const* associationsFromSecondary,
110  bool dropDescendantsOfDroppedProducts,
111  ProcessHistoryRegistry& processHistoryRegistry,
112  std::vector<std::shared_ptr<IndexIntoFile>> const& indexesIntoFiles,
113  std::vector<std::shared_ptr<IndexIntoFile>>::size_type currentIndexIntoFile,
114  std::vector<ProcessHistoryID>& orderedProcessHistoryIDs,
115  bool bypassVersionCheck,
116  bool labelRawDataLikeMC,
117  bool enablePrefetching,
118  bool enforceGUIDInFileName)
119  : RootFile(fileName,
120  processConfiguration,
121  logicalFileName,
122  filePtr,
123  nullptr,
124  false,
125  -1,
126  -1,
127  nStreams,
128  0U,
129  treeMaxVirtualSize,
131  runHelper,
132  false,
133  productSelectorRules,
134  inputType,
136  thinnedAssociationsHelper,
137  associationsFromSecondary,
138  nullptr,
139  dropDescendantsOfDroppedProducts,
140  processHistoryRegistry,
141  indexesIntoFiles,
142  currentIndexIntoFile,
143  orderedProcessHistoryIDs,
144  bypassVersionCheck,
145  labelRawDataLikeMC,
146  false,
147  enablePrefetching,
148  enforceGUIDInFileName) {}
149 
151  ProcessConfiguration const& processConfiguration,
152  std::string const& logicalFileName,
153  std::shared_ptr<InputFile> filePtr,
154  unsigned int nStreams,
155  unsigned int treeCacheSize,
156  int treeMaxVirtualSize,
157  RunHelperBase* runHelper,
158  ProductSelectorRules const& productSelectorRules,
159  InputType inputType,
160  ProcessHistoryRegistry& processHistoryRegistry,
161  std::vector<std::shared_ptr<IndexIntoFile>> const& indexesIntoFiles,
162  std::vector<std::shared_ptr<IndexIntoFile>>::size_type currentIndexIntoFile,
163  std::vector<ProcessHistoryID>& orderedProcessHistoryIDs,
164  bool bypassVersionCheck,
165  bool enablePrefetching,
166  bool enforceGUIDInFileName)
167  : RootFile(fileName,
168  processConfiguration,
169  logicalFileName,
170  filePtr,
171  nullptr,
172  false,
173  -1,
174  -1,
175  nStreams,
176  treeCacheSize,
177  treeMaxVirtualSize,
178  InputSource::RunsLumisAndEvents,
179  runHelper,
180  false,
181  productSelectorRules,
182  inputType,
183  nullptr,
184  nullptr,
185  nullptr,
186  nullptr,
187  false,
188  processHistoryRegistry,
189  indexesIntoFiles,
190  currentIndexIntoFile,
191  orderedProcessHistoryIDs,
192  bypassVersionCheck,
193  false,
194  false,
195  enablePrefetching,
196  enforceGUIDInFileName) {}
197 
198  ~RootFile();
199 
200  RootFile(RootFile const&) = delete; // Disallow copying and moving
201  RootFile& operator=(RootFile const&) = delete; // Disallow copying and moving
202 
203  void reportOpened(std::string const& inputType);
204  void close();
207 
208  std::shared_ptr<LuminosityBlockAuxiliary> readLuminosityBlockAuxiliary_();
209  std::shared_ptr<RunAuxiliary> readRunAuxiliary_();
210  std::shared_ptr<RunAuxiliary> readFakeRunAuxiliary_();
211  void readRun_(RunPrincipal& runPrincipal);
212  void readFakeRun_(RunPrincipal& runPrincipal);
213  void readLuminosityBlock_(LuminosityBlockPrincipal& lumiPrincipal);
214  std::string const& file() const { return file_; }
215  std::shared_ptr<ProductRegistry const> productRegistry() const { return productRegistry_; }
216  EventAuxiliary const& eventAux() const { return eventAux_; }
217  // IndexIntoFile::EntryNumber_t const& entryNumber() const {return indexIntoFileIter().entry();}
218  // LuminosityBlockNumber_t const& luminosityBlockNumber() const {return indexIntoFileIter().lumi();}
219  // RunNumber_t const& runNumber() const {return indexIntoFileIter().run();}
220  EventID const& eventID() const { return eventAux().id(); }
221  RootTree const& eventTree() const { return eventTree_; }
222  RootTree const& lumiTree() const { return lumiTree_; }
223  RootTree const& runTree() const { return runTree_; }
225  int whyNotFastClonable() const { return whyNotFastClonable_; }
226  std::array<bool, NumBranchTypes> const& hasNewlyDroppedBranch() const { return hasNewlyDroppedBranch_; }
228  bool modifiedIDs() const { return daqProvenanceHelper_.get() != nullptr; }
229  std::unique_ptr<FileBlock> createFileBlock() const;
232  }
239 
240  void rewind() {
242  eventTree_.rewind();
243  lumiTree_.rewind();
244  runTree_.rewind();
245  }
247 
248  bool skipEntries(unsigned int& offset) { return eventTree_.skipEntries(offset); }
249  bool skipEvents(int& offset);
250  bool goToEvent(EventID const& eventID);
253  std::shared_ptr<BranchIDListHelper const> branchIDListHelper() const {
255  }
256  std::shared_ptr<BranchIDListHelper>& branchIDListHelper() { return get_underlying_safe(branchIDListHelper_); }
257  std::shared_ptr<IndexIntoFile const> indexIntoFileSharedPtr() const {
259  }
260  std::shared_ptr<IndexIntoFile>& indexIntoFileSharedPtr() { return get_underlying_safe(indexIntoFileSharedPtr_); }
261  bool wasLastEventJustRead() const;
262  bool wasFirstEventJustRead() const;
265  void initAssociationsFromSecondary(std::vector<BranchID> const&);
266 
267  void setSignals(
268  signalslot::Signal<void(StreamContext const&, ModuleCallingContext const&)> const* preEventReadSource,
269  signalslot::Signal<void(StreamContext const&, ModuleCallingContext const&)> const* postEventReadSource);
270 
271  private:
273  bool skipThisEntry();
274  void setIfFastClonable(int remainingEvents, int remainingLumis);
275  void validateFile(InputType inputType, bool usingGoToEvent);
276  void fillIndexIntoFile();
278  void fillThisEventAuxiliary();
279  void fillEventHistory();
280  std::shared_ptr<LuminosityBlockAuxiliary> fillLumiAuxiliary();
281  std::shared_ptr<RunAuxiliary> fillRunAuxiliary();
282  std::string const& newBranchToOldBranch(std::string const& newBranch) const;
283  void markBranchToBeDropped(bool dropDescendants,
284  BranchDescription const& branch,
285  std::set<BranchID>& branchesToDrop,
286  std::map<BranchID, BranchID> const& droppedToKeptAlias) const;
287  void dropOnInput(ProductRegistry& reg, ProductSelectorRules const& rules, bool dropDescendants, InputType inputType);
288  void readParentageTree(InputType inputType);
289  void readEntryDescriptionTree(EntryDescriptionMap& entryDescriptionMap,
290  InputType inputType); // backward compatibility
291  void readEventHistoryTree();
292  bool isDuplicateEvent();
293 
294  void initializeDuplicateChecker(std::vector<std::shared_ptr<IndexIntoFile>> const& indexesIntoFiles,
295  std::vector<std::shared_ptr<IndexIntoFile>>::size_type currentIndexIntoFile);
296 
297  std::unique_ptr<MakeProvenanceReader> makeProvenanceReaderMaker(InputType inputType);
298  std::shared_ptr<ProductProvenanceRetriever> makeProductProvenanceRetriever(unsigned int iStreamIndex);
299 
300  std::shared_ptr<RunAuxiliary const> savedRunAuxiliary() const { return get_underlying_safe(savedRunAuxiliary_); }
301  std::shared_ptr<RunAuxiliary>& savedRunAuxiliary() { return get_underlying_safe(savedRunAuxiliary_); }
302 
303  std::shared_ptr<BranchChildren const> branchChildren() const { return get_underlying_safe(branchChildren_); }
304  std::shared_ptr<BranchChildren>& branchChildren() { return get_underlying_safe(branchChildren_); }
305 
306  std::shared_ptr<ProductProvenanceRetriever const> eventProductProvenanceRetriever(size_t index) const {
308  }
309  std::shared_ptr<ProductProvenanceRetriever>& eventProductProvenanceRetriever(size_t index) {
311  }
312 
323  std::vector<ProcessHistoryID>& orderedProcessHistoryIDs_;
328  std::vector<EventProcessHistoryID> eventProcessHistoryIDs_; // backward compatibility
329  std::vector<EventProcessHistoryID>::const_iterator eventProcessHistoryIter_; // backward compatibility
335  std::array<bool, NumBranchTypes> hasNewlyDroppedBranch_;
343  std::shared_ptr<ProductRegistry const> productRegistry_;
344  std::shared_ptr<BranchIDLists const> branchIDLists_;
350  std::map<std::string, std::string> newBranchToOldBranch_;
359  std::vector<edm::propagate_const<std::shared_ptr<ProductProvenanceRetriever>>> eventProductProvenanceRetrievers_;
360  std::vector<ParentageID> parentageIDLookup_;
364  }; // class RootFile
365 
366 } // namespace edm
367 #endif
edm::RootFile::nextEventEntry
bool nextEventEntry()
Definition: RootFile.h:251
edm::RunNumber_t
unsigned int RunNumber_t
Definition: RunLumiEventNumber.h:14
edm::RootFile::eventSkipperByID_
edm::propagate_const< std::shared_ptr< EventSkipperByID > > eventSkipperByID_
Definition: RootFile.h:318
benchmark-oval_cfg.noEventSort
noEventSort
Definition: benchmark-oval_cfg.py:19
edm::RootFile::eventProductProvenanceRetrievers_
std::vector< edm::propagate_const< std::shared_ptr< ProductProvenanceRetriever > > > eventProductProvenanceRetrievers_
Definition: RootFile.h:359
edm::RootFile::eventProcessHistoryIter_
std::vector< EventProcessHistoryID >::const_iterator eventProcessHistoryIter_
Definition: RootFile.h:329
edm::RootFile::makeProductProvenanceRetriever
std::shared_ptr< ProductProvenanceRetriever > makeProductProvenanceRetriever(unsigned int iStreamIndex)
Definition: RootFile.cc:1844
edm::RootFile::setToLastEntry
void setToLastEntry()
Definition: RootFile.h:246
funct::false
false
Definition: Factorize.h:34
edm::RootFile::indexIntoFileSharedPtr_
edm::propagate_const< std::shared_ptr< IndexIntoFile > > indexIntoFileSharedPtr_
Definition: RootFile.h:321
edm::RootFile::productRegistry
std::shared_ptr< ProductRegistry const > productRegistry() const
Definition: RootFile.h:215
edm::RootFile::lumiTree_
RootTree lumiTree_
Definition: RootFile.h:339
edm::RootFile::processHistoryRegistry_
edm::propagate_const< ProcessHistoryRegistry * > processHistoryRegistry_
Definition: RootFile.h:316
edm::RootFile::indexIntoFileEnd_
IndexIntoFile::IndexIntoFileItr indexIntoFileEnd_
Definition: RootFile.h:325
edm::RootFile::daqProvenanceHelper_
edm::propagate_const< std::unique_ptr< DaqProvenanceHelper > > daqProvenanceHelper_
Definition: RootFile.h:361
edm::RootFile::runHelper_
edm::propagate_const< RunHelperBase * > runHelper_
Definition: RootFile.h:349
edm::RootFile::readParentageTree
void readParentageTree(InputType inputType)
Definition: RootFile.cc:633
edm::RootFile::eventHistoryTree_
edm::propagate_const< TTree * > eventHistoryTree_
Definition: RootFile.h:351
edm::RootFile::reportOpened
void reportOpened(std::string const &inputType)
Definition: RootFile.cc:1192
edm::RootFile::readLuminosityBlock_
void readLuminosityBlock_(LuminosityBlockPrincipal &lumiPrincipal)
Definition: RootFile.cc:1608
edm::RootFile::RootFile
RootFile(std::string const &fileName, ProcessConfiguration const &processConfiguration, std::string const &logicalFileName, std::shared_ptr< InputFile > filePtr, unsigned int nStreams, int treeMaxVirtualSize, InputSource::ProcessingMode processingMode, RunHelperBase *runHelper, ProductSelectorRules const &productSelectorRules, InputType inputType, std::shared_ptr< BranchIDListHelper > branchIDListHelper, std::shared_ptr< ThinnedAssociationsHelper > thinnedAssociationsHelper, std::vector< BranchID > const *associationsFromSecondary, bool dropDescendantsOfDroppedProducts, ProcessHistoryRegistry &processHistoryRegistry, std::vector< std::shared_ptr< IndexIntoFile >> const &indexesIntoFiles, std::vector< std::shared_ptr< IndexIntoFile >>::size_type currentIndexIntoFile, std::vector< ProcessHistoryID > &orderedProcessHistoryIDs, bool bypassVersionCheck, bool labelRawDataLikeMC, bool enablePrefetching, bool enforceGUIDInFileName)
Definition: RootFile.h:97
edm::RootFile::branchListIndexesUnchanged
bool branchListIndexesUnchanged() const
Definition: RootFile.h:227
edm::RootFile::close
void close()
Definition: RootFile.cc:1199
edm::RootFile::setEntryAtItem
bool setEntryAtItem(RunNumber_t run, LuminosityBlockNumber_t lumi, EventNumber_t event)
Definition: RootFile.h:230
MicroEventContent_cff.branch
branch
Definition: MicroEventContent_cff.py:152
edm::RootFile::runTree
RootTree const & runTree() const
Definition: RootFile.h:223
edm
HLT enums.
Definition: AlignableModifier.h:19
mps_splice.entry
entry
Definition: mps_splice.py:68
edm::RootFile::lumiTree
RootTree const & lumiTree() const
Definition: RootFile.h:222
edm::RootFile::eventTree
RootTree const & eventTree() const
Definition: RootFile.h:221
edm::RootFile::indexIntoFileIter_
IndexIntoFile::IndexIntoFileItr indexIntoFileIter_
Definition: RootFile.h:326
edm::RootFile::readRunAuxiliary_
std::shared_ptr< RunAuxiliary > readRunAuxiliary_()
Definition: RootFile.cc:1479
edm::RootFile::indexIntoFileSharedPtr
std::shared_ptr< IndexIntoFile > & indexIntoFileSharedPtr()
Definition: RootFile.h:260
edm::RootFile::readCurrentEvent
bool readCurrentEvent(EventPrincipal &cache)
Definition: RootFile.cc:1449
edm::DaqProvenanceHelper
Definition: DaqProvenanceHelper.h:27
edm::RootFile::eventAux_
EventAuxiliary eventAux_
Definition: RootFile.h:337
edm::LuminosityBlockPrincipal
Definition: LuminosityBlockPrincipal.h:31
edm::BranchListIndexes
std::vector< BranchListIndex > BranchListIndexes
Definition: BranchListIndex.h:18
edm::IndexIntoFile
Definition: IndexIntoFile.h:225
RootTree.h
edm::RootFile::branchIDListHelper_
edm::propagate_const< std::shared_ptr< BranchIDListHelper > > branchIDListHelper_
Definition: RootFile.h:345
edm::RootFile::eventTree_
RootTree eventTree_
Definition: RootFile.h:338
EntryDescriptionID.h
IndexIntoFile.h
edm::RootFile::readEntryDescriptionTree
void readEntryDescriptionTree(EntryDescriptionMap &entryDescriptionMap, InputType inputType)
Definition: RootFile.cc:587
edm::RootFile::eventID
EventID const & eventID() const
Definition: RootFile.h:220
MillePedeFileConverter_cfg.fileName
fileName
Definition: MillePedeFileConverter_cfg.py:32
edm::RootFile::isDuplicateEvent
bool isDuplicateEvent()
Definition: RootFile.cc:784
edm::RootFile::enforceGUIDInFileName_
bool enforceGUIDInFileName_
Definition: RootFile.h:333
edm::RootFile::skipThisEntry
bool skipThisEntry()
Definition: RootFile.cc:747
edm::FileID
Definition: FileID.h:14
edm::RootFile::fileFormatVersion
FileFormatVersion fileFormatVersion() const
Definition: RootFile.h:224
edm::LuminosityBlockNumber_t
unsigned int LuminosityBlockNumber_t
Definition: RunLumiEventNumber.h:13
edm::RootFile::eventProcessHistoryIDs_
std::vector< EventProcessHistoryID > eventProcessHistoryIDs_
Definition: RootFile.h:328
edm::RootFile
Definition: RootFile.h:63
edm::InputType
InputType
Definition: InputType.h:5
edm::EntryDescriptionMap
std::map< EntryDescriptionID, EventEntryDescription > EntryDescriptionMap
Definition: RootFile.h:52
InputFile
Definition: FedRawDataInputSource.h:201
edm::RootFile::setEntryAtLumi
bool setEntryAtLumi(RunNumber_t run, LuminosityBlockNumber_t lumi)
Definition: RootFile.cc:1635
edm::RootFile::dropOnInput
void dropOnInput(ProductRegistry &reg, ProductSelectorRules const &rules, bool dropDescendants, InputType inputType)
Definition: RootFile.cc:1701
edm::RootFile::file
std::string const & file() const
Definition: RootFile.h:214
edm::ProductRegistry
Definition: ProductRegistry.h:34
edm::RootFile::setEntryAtRun
bool setEntryAtRun(RunNumber_t run)
Definition: RootFile.cc:1643
edm::RootFile::inputType_
InputType inputType_
Definition: RootFile.h:363
edm::RootFile::RootFile
RootFile(std::string const &fileName, ProcessConfiguration const &processConfiguration, std::string const &logicalFileName, std::shared_ptr< InputFile > filePtr, std::shared_ptr< EventSkipperByID > eventSkipperByID, bool skipAnyEvents, int remainingEvents, int remainingLumis, unsigned int nStreams, unsigned int treeCacheSize, int treeMaxVirtualSize, InputSource::ProcessingMode processingMode, RunHelperBase *runHelper, bool noEventSort, ProductSelectorRules const &productSelectorRules, InputType inputType, std::shared_ptr< BranchIDListHelper > branchIDListHelper, std::shared_ptr< ThinnedAssociationsHelper > thinnedAssociationsHelper, std::vector< BranchID > const *associationsFromSecondary, std::shared_ptr< DuplicateChecker > duplicateChecker, bool dropDescendantsOfDroppedProducts, ProcessHistoryRegistry &processHistoryRegistry, std::vector< std::shared_ptr< IndexIntoFile >> const &indexesIntoFiles, std::vector< std::shared_ptr< IndexIntoFile >>::size_type currentIndexIntoFile, std::vector< ProcessHistoryID > &orderedProcessHistoryIDs, bool bypassVersionCheck, bool labelRawDataLikeMC, bool usingGoToEvent, bool enablePrefetching, bool enforceGUIDInFileName)
Definition: RootFile.cc:141
edm::RootFile::fileThinnedAssociationsHelper_
edm::propagate_const< std::unique_ptr< ThinnedAssociationsHelper > > fileThinnedAssociationsHelper_
Definition: RootFile.h:346
edm::RootFile::setAtEventEntry
void setAtEventEntry(IndexIntoFile::EntryNumber_t entry)
Definition: RootFile.cc:1477
edm::propagate_const
Definition: propagate_const.h:32
trigger::size_type
uint16_t size_type
Definition: TriggerTypeDefs.h:18
edm::RootTree::skipEntries
bool skipEntries(unsigned int &offset)
Definition: RootTree.cc:381
edm::EventPrincipal
Definition: EventPrincipal.h:46
edm::RootFile::eventSelectionIDs_
EventSelectionIDVector eventSelectionIDs_
Definition: RootFile.h:352
edm::StreamContext
Definition: StreamContext.h:31
edm::RootFile::provenanceAdaptor_
edm::propagate_const< std::unique_ptr< ProvenanceAdaptor > > provenanceAdaptor_
Definition: RootFile.h:357
edm::RootFile::skipEvents
bool skipEvents(int &offset)
Definition: RootFile.cc:1336
edm::RootFile::modifiedIDs
bool modifiedIDs() const
Definition: RootFile.h:228
edm::RootFile::fillRunAuxiliary
std::shared_ptr< RunAuxiliary > fillRunAuxiliary()
Definition: RootFile.cc:1316
edm::RootFile::branchChildren_
edm::propagate_const< std::shared_ptr< BranchChildren > > branchChildren_
Definition: RootFile.h:355
BranchListIndex.h
edm::RootFile::wasLastEventJustRead
bool wasLastEventJustRead() const
Definition: RootFile.cc:846
edm::RootFile::operator=
RootFile & operator=(RootFile const &)=delete
edm::RootFile::fillEventHistory
void fillEventHistory()
Definition: RootFile.cc:1237
edm::RootFile::getNextItemType
IndexIntoFile::EntryType getNextItemType(RunNumber_t &run, LuminosityBlockNumber_t &lumi, EventNumber_t &event)
Definition: RootFile.cc:801
edm::RootFile::branchListIndexes_
BranchListIndexes branchListIndexes_
Definition: RootFile.h:353
edm::EventAuxiliary::id
EventID const & id() const
Definition: EventAuxiliary.h:63
edm::EventNumber_t
unsigned long long EventNumber_t
Definition: RunLumiEventNumber.h:12
edm::RootFile::savedRunAuxiliary
std::shared_ptr< RunAuxiliary const > savedRunAuxiliary() const
Definition: RootFile.h:300
edm::RootFile::whyNotFastClonable_
int whyNotFastClonable_
Definition: RootFile.h:334
edm::RootFile::thinnedAssociationsHelper_
edm::propagate_const< std::shared_ptr< ThinnedAssociationsHelper > > thinnedAssociationsHelper_
Definition: RootFile.h:347
edm::RootFile::setPosition
void setPosition(IndexIntoFile::IndexIntoFileItr const &position)
Definition: RootFile.cc:738
edm::RootFile::RootFile
RootFile(std::string const &fileName, ProcessConfiguration const &processConfiguration, std::string const &logicalFileName, std::shared_ptr< InputFile > filePtr, unsigned int nStreams, unsigned int treeCacheSize, int treeMaxVirtualSize, RunHelperBase *runHelper, ProductSelectorRules const &productSelectorRules, InputType inputType, ProcessHistoryRegistry &processHistoryRegistry, std::vector< std::shared_ptr< IndexIntoFile >> const &indexesIntoFiles, std::vector< std::shared_ptr< IndexIntoFile >>::size_type currentIndexIntoFile, std::vector< ProcessHistoryID > &orderedProcessHistoryIDs, bool bypassVersionCheck, bool enablePrefetching, bool enforceGUIDInFileName)
Definition: RootFile.h:150
edm::RootFile::rewind
void rewind()
Definition: RootFile.h:240
edm::RootFile::hasNewlyDroppedBranch
std::array< bool, NumBranchTypes > const & hasNewlyDroppedBranch() const
Definition: RootFile.h:226
edm::RootFile::fillIndexIntoFile
void fillIndexIntoFile()
Definition: RootFile.cc:913
utilities.cache
def cache(function)
Definition: utilities.py:3
mitigatedMETSequence_cff.U
U
Definition: mitigatedMETSequence_cff.py:36
InputType.h
edm::EventAuxiliary
Definition: EventAuxiliary.h:14
edm::RootFile::treePointers_
RootTreePtrArray treePointers_
Definition: RootFile.h:341
edm::RootFile::indexIntoFile_
IndexIntoFile & indexIntoFile_
Definition: RootFile.h:322
edm::ProductSelectorRules
Definition: ProductSelectorRules.h:24
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
edm::RunHelperBase
Definition: RunHelper.h:15
edm::RootFile::branchIDListHelper
std::shared_ptr< BranchIDListHelper > & branchIDListHelper()
Definition: RootFile.h:256
edm::RootFile::readEvent
void readEvent(EventPrincipal &cache)
Definition: RootFile.cc:1425
edm::RootFile::newBranchToOldBranch
std::string const & newBranchToOldBranch(std::string const &newBranch) const
Definition: RootFile.cc:728
edm::RootFile::fid_
FileID fid_
Definition: RootFile.h:320
edm::RootFile::orderedProcessHistoryIDs_
std::vector< ProcessHistoryID > & orderedProcessHistoryIDs_
Definition: RootFile.h:323
edm::get_underlying_safe
std::shared_ptr< T > & get_underlying_safe(propagate_const< std::shared_ptr< T >> &iP)
Definition: get_underlying_safe.h:40
edm::InputSource::ProcessingMode
ProcessingMode
Definition: InputSource.h:80
edm::ThinnedAssociationsHelper
Definition: ThinnedAssociationsHelper.h:35
edm::RootFile::savedRunAuxiliary_
edm::propagate_const< std::shared_ptr< RunAuxiliary > > savedRunAuxiliary_
Definition: RootFile.h:330
edm::RootFile::storedMergeableRunProductMetadata_
edm::propagate_const< std::unique_ptr< StoredMergeableRunProductMetadata > > storedMergeableRunProductMetadata_
Definition: RootFile.h:327
edm::FileFormatVersion
Definition: FileFormatVersion.h:7
edm::RootFile::hasNewlyDroppedBranch_
std::array< bool, NumBranchTypes > hasNewlyDroppedBranch_
Definition: RootFile.h:335
edm::RootFile::makeProvenanceReaderMaker
std::unique_ptr< MakeProvenanceReader > makeProvenanceReaderMaker(InputType inputType)
Definition: RootFile.cc:1828
edm::RootFile::savedRunAuxiliary
std::shared_ptr< RunAuxiliary > & savedRunAuxiliary()
Definition: RootFile.h:301
edm::IndexIntoFile::IndexIntoFileItr
Definition: IndexIntoFile.h:681
edm::RootFile::setEntryAtEvent
bool setEntryAtEvent(RunNumber_t run, LuminosityBlockNumber_t lumi, EventNumber_t event)
Definition: RootFile.cc:1627
edm::RootFile::setIfFastClonable
void setIfFastClonable(int remainingEvents, int remainingLumis)
Definition: RootFile.cc:668
edm::RootFile::logicalFile_
const std::string logicalFile_
Definition: RootFile.h:314
edm::RootFile::initializeDuplicateChecker
void initializeDuplicateChecker(std::vector< std::shared_ptr< IndexIntoFile >> const &indexesIntoFiles, std::vector< std::shared_ptr< IndexIntoFile >>::size_type currentIndexIntoFile)
Definition: RootFile.cc:1677
edm::RootFile::processingMode_
InputSource::ProcessingMode processingMode_
Definition: RootFile.h:348
edm::MakeProvenanceReader::~MakeProvenanceReader
virtual ~MakeProvenanceReader()=default
FileFormatVersion.h
edm::RootFile::validateFile
void validateFile(InputType inputType, bool usingGoToEvent)
Definition: RootFile.cc:1137
edm::RootFile::skipEntries
bool skipEntries(unsigned int &offset)
Definition: RootFile.h:248
edm::RootFile::markBranchToBeDropped
void markBranchToBeDropped(bool dropDescendants, BranchDescription const &branch, std::set< BranchID > &branchesToDrop, std::map< BranchID, BranchID > const &droppedToKeptAlias) const
Definition: RootFile.cc:1690
edm::RootFile::filePtr_
edm::propagate_const< std::shared_ptr< InputFile > > filePtr_
Definition: RootFile.h:317
edm::RootFile::readFakeRunAuxiliary_
std::shared_ptr< RunAuxiliary > readFakeRunAuxiliary_()
position
static int position[264][3]
Definition: ReadPGInfo.cc:289
edm::RootFile::readLuminosityBlockAuxiliary_
std::shared_ptr< LuminosityBlockAuxiliary > readLuminosityBlockAuxiliary_()
Definition: RootFile.cc:1570
edm::MakeProvenanceReader
Definition: RootFile.h:56
edm::RootFile::readFakeRun_
void readFakeRun_(RunPrincipal &runPrincipal)
edm::RootFile::branchChildren
std::shared_ptr< BranchChildren const > branchChildren() const
Definition: RootFile.h:303
edm::RootFile::eventProductProvenanceRetriever
std::shared_ptr< ProductProvenanceRetriever > & eventProductProvenanceRetriever(size_t index)
Definition: RootFile.h:309
edm::RootFile::skipAnyEvents_
bool skipAnyEvents_
Definition: RootFile.h:331
edm::RootFile::fillEventAuxiliary
bool fillEventAuxiliary(IndexIntoFile::EntryNumber_t entry)
Definition: RootFile.cc:1228
edm::RootFile::edProductClass_
edm::propagate_const< TClass * > edProductClass_
Definition: RootFile.h:362
edm::RootFile::fileFormatVersion_
FileFormatVersion fileFormatVersion_
Definition: RootFile.h:319
edm::RootFile::readEventHistoryTree
void readEventHistoryTree()
Definition: RootFile.cc:1666
edm::RootFile::RootTreePtrArray
std::array< RootTree *, NumBranchTypes > RootTreePtrArray
Definition: RootFile.h:65
BranchIDList.h
FileID.h
edm::RootFile::initAssociationsFromSecondary
void initAssociationsFromSecondary(std::vector< BranchID > const &)
Definition: RootFile.cc:742
edm::RootFile::treePointers
RootTreePtrArray & treePointers()
Definition: RootFile.h:272
edm::RootFile::history_
edm::propagate_const< std::unique_ptr< History > > history_
Definition: RootFile.h:354
edm::RootFile::noEventSort_
bool noEventSort_
Definition: RootFile.h:332
EventEntryDescription.h
edm::RootFile::createFileBlock
std::unique_ptr< FileBlock > createFileBlock() const
Definition: RootFile.cc:712
edm::RootFile::provenanceReaderMaker_
edm::propagate_const< std::unique_ptr< MakeProvenanceReader > > provenanceReaderMaker_
Definition: RootFile.h:358
edm::RootFile::eventAux
EventAuxiliary const & eventAux() const
Definition: RootFile.h:216
writedatasetfile.run
run
Definition: writedatasetfile.py:27
edm::RootFile::parentageIDLookup_
std::vector< ParentageID > parentageIDLookup_
Definition: RootFile.h:360
edm::RootFile::goToEvent
bool goToEvent(EventID const &eventID)
Definition: RootFile.cc:1392
EventProcessHistoryID.h
edm::RootTree::rewind
void rewind()
Definition: RootTree.h:132
edm::RootFile::lastEventEntryNumberRead_
IndexIntoFile::EntryNumber_t lastEventEntryNumberRead_
Definition: RootFile.h:342
edm::RootFile::indexIntoFileSharedPtr
std::shared_ptr< IndexIntoFile const > indexIntoFileSharedPtr() const
Definition: RootFile.h:257
Frameworkfwd.h
InputSource.h
EventAuxiliary.h
edm::RootFile::containsItem
bool containsItem(RunNumber_t run, LuminosityBlockNumber_t lumi, EventNumber_t event) const
Definition: RootFile.cc:797
edm::RootFile::productRegistry_
std::shared_ptr< ProductRegistry const > productRegistry_
Definition: RootFile.h:343
edm::RootFile::whyNotFastClonable
int whyNotFastClonable() const
Definition: RootFile.h:225
edm::RootFile::setEntryAtNextEventInLumi
bool setEntryAtNextEventInLumi(RunNumber_t run, LuminosityBlockNumber_t lumi)
Definition: RootFile.cc:1651
edm::RootFile::setSignals
void setSignals(signalslot::Signal< void(StreamContext const &, ModuleCallingContext const &)> const *preEventReadSource, signalslot::Signal< void(StreamContext const &, ModuleCallingContext const &)> const *postEventReadSource)
Definition: RootFile.cc:1822
edm::IndexIntoFile::EntryNumber_t
long long EntryNumber_t
Definition: IndexIntoFile.h:231
edm::RootFile::branchChildren
std::shared_ptr< BranchChildren > & branchChildren()
Definition: RootFile.h:304
edm::ProcessHistoryRegistry
Definition: ProcessHistoryRegistry.h:18
AlignmentPI::index
index
Definition: AlignmentPayloadInspectorHelper.h:46
edm::RootFile::newBranchToOldBranch_
std::map< std::string, std::string > newBranchToOldBranch_
Definition: RootFile.h:350
edm::BranchDescription
Definition: BranchDescription.h:32
DTskim_cfg.processingMode
processingMode
Definition: DTskim_cfg.py:82
edm::RootTree
Definition: RootTree.h:103
edm::RootFile::indexIntoFileBegin_
IndexIntoFile::IndexIntoFileItr indexIntoFileBegin_
Definition: RootFile.h:324
edm::RootFile::~RootFile
~RootFile()
Definition: RootFile.cc:585
edm::InputSource
Definition: InputSource.h:76
History.h
cmsCodeRulesChecker.rules
rules
Definition: cmsCodeRulesChecker.py:152
edm::RootFile::readRun_
void readRun_(RunPrincipal &runPrincipal)
Definition: RootFile.cc:1543
edm::RunPrincipal
Definition: RunPrincipal.h:34
edm::RootFile::branchListIndexesUnchanged_
bool branchListIndexesUnchanged_
Definition: RootFile.h:336
event
Definition: event.py:1
edm::EventID
Definition: EventID.h:31
hltrates_dqm_sourceclient-live_cfg.offset
offset
Definition: hltrates_dqm_sourceclient-live_cfg.py:78
edm::EventSelectionIDVector
std::vector< EventSelectionID > EventSelectionIDVector
Definition: EventSelectionID.h:16
get_underlying_safe.h
lumi
Definition: LumiSectionData.h:20
edm::RootFile::runTree_
RootTree runTree_
Definition: RootFile.h:340
edm::signalslot::Signal
Definition: DelayedReader.h:26
edm::RootTree::nextWithCache
bool nextWithCache()
Definition: RootTree.cc:194
edm::RootFile::eventProductProvenanceRetriever
std::shared_ptr< ProductProvenanceRetriever const > eventProductProvenanceRetriever(size_t index) const
Definition: RootFile.h:306
edm::RootFile::branchIDLists_
std::shared_ptr< BranchIDLists const > branchIDLists_
Definition: RootFile.h:344
edm::ProcessConfiguration
Definition: ProcessConfiguration.h:14
edm::RootFile::branchIDListHelper
std::shared_ptr< BranchIDListHelper const > branchIDListHelper() const
Definition: RootFile.h:253
edm::RootFile::duplicateChecker_
edm::propagate_const< std::shared_ptr< DuplicateChecker > > duplicateChecker_
Definition: RootFile.h:356
edm::MakeProvenanceReader::makeReader
virtual std::unique_ptr< ProvenanceReaderBase > makeReader(RootTree &eventTree, DaqProvenanceHelper const *daqProvenanceHelper) const =0
EventSelectionID.h
edm::RootFile::indexIntoFileIter
IndexIntoFile::IndexIntoFileItr indexIntoFileIter() const
Definition: RootFile.cc:736
edm::RootFile::fillLumiAuxiliary
std::shared_ptr< LuminosityBlockAuxiliary > fillLumiAuxiliary()
Definition: RootFile.cc:1293
edm::RootFile::wasFirstEventJustRead
bool wasFirstEventJustRead() const
Definition: RootFile.cc:852
edm::IndexIntoFile::EntryType
EntryType
Definition: IndexIntoFile.h:238
edm::RootFile::processConfiguration_
ProcessConfiguration const & processConfiguration_
Definition: RootFile.h:315
edm::ModuleCallingContext
Definition: ModuleCallingContext.h:29
edm::RootFile::fillThisEventAuxiliary
void fillThisEventAuxiliary()
Definition: RootFile.cc:1210
BranchChildren.h
edm::RootFile::file_
const std::string file_
Definition: RootFile.h:313