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  // IndexIntoFile::EntryNumber_t const& entryNumber() const {return indexIntoFileIter().entry();}
217  // LuminosityBlockNumber_t const& luminosityBlockNumber() const {return indexIntoFileIter().lumi();}
218  // RunNumber_t const& runNumber() const {return indexIntoFileIter().run();}
219  RootTree const& eventTree() const { return eventTree_; }
220  RootTree const& lumiTree() const { return lumiTree_; }
221  RootTree const& runTree() const { return runTree_; }
223  int whyNotFastClonable() const { return whyNotFastClonable_; }
224  std::array<bool, NumBranchTypes> const& hasNewlyDroppedBranch() const { return hasNewlyDroppedBranch_; }
226  bool modifiedIDs() const { return daqProvenanceHelper_.get() != nullptr; }
227  std::unique_ptr<FileBlock> createFileBlock() const;
230  }
237 
238  void rewind() {
240  eventTree_.rewind();
241  lumiTree_.rewind();
242  runTree_.rewind();
243  }
245 
246  bool skipEntries(unsigned int& offset) { return eventTree_.skipEntries(offset); }
247  bool skipEvents(int& offset);
248  bool goToEvent(EventID const& eventID);
251  std::shared_ptr<BranchIDListHelper const> branchIDListHelper() const {
253  }
254  std::shared_ptr<BranchIDListHelper>& branchIDListHelper() { return get_underlying_safe(branchIDListHelper_); }
255  std::shared_ptr<IndexIntoFile const> indexIntoFileSharedPtr() const {
257  }
258  std::shared_ptr<IndexIntoFile>& indexIntoFileSharedPtr() { return get_underlying_safe(indexIntoFileSharedPtr_); }
259  bool wasLastEventJustRead() const;
260  bool wasFirstEventJustRead() const;
263  void initAssociationsFromSecondary(std::vector<BranchID> const&);
264 
265  void setSignals(
266  signalslot::Signal<void(StreamContext const&, ModuleCallingContext const&)> const* preEventReadSource,
267  signalslot::Signal<void(StreamContext const&, ModuleCallingContext const&)> const* postEventReadSource);
268 
269  private:
271  bool skipThisEntry();
272  void setIfFastClonable(int remainingEvents, int remainingLumis);
273  void validateFile(InputType inputType, bool usingGoToEvent);
274  void fillIndexIntoFile();
277  void fillEventHistory(EventAuxiliary& evtAux,
278  EventSelectionIDVector& eventSelectionIDs,
279  BranchListIndexes& branchListIndexes);
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_;
337  EventAuxiliary eventAuxCache_; //Should only be used by fillThisEventAuxiliary()
342  //Should only be used by fillThisEventAuxiliary()
344  std::shared_ptr<ProductRegistry const> productRegistry_;
345  std::shared_ptr<BranchIDLists const> branchIDLists_;
351  std::map<std::string, std::string> newBranchToOldBranch_;
358  std::vector<edm::propagate_const<std::shared_ptr<ProductProvenanceRetriever>>> eventProductProvenanceRetrievers_;
359  std::vector<ParentageID> parentageIDLookup_;
363  }; // class RootFile
364 
365 } // namespace edm
366 #endif
edm::RootFile::nextEventEntry
bool nextEventEntry()
Definition: RootFile.h:249
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:358
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:1869
edm::RootFile::setToLastEntry
void setToLastEntry()
Definition: RootFile.h:244
funct::false
false
Definition: Factorize.h:29
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:360
edm::RootFile::runHelper_
edm::propagate_const< RunHelperBase * > runHelper_
Definition: RootFile.h:350
edm::RootFile::readParentageTree
void readParentageTree(InputType inputType)
Definition: RootFile.cc:648
edm::RootFile::eventHistoryTree_
edm::propagate_const< TTree * > eventHistoryTree_
Definition: RootFile.h:352
edm::RootFile::reportOpened
void reportOpened(std::string const &inputType)
Definition: RootFile.cc:1208
edm::RootFile::readLuminosityBlock_
void readLuminosityBlock_(LuminosityBlockPrincipal &lumiPrincipal)
Definition: RootFile.cc:1628
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:225
edm::RootFile::close
void close()
Definition: RootFile.cc:1215
edm::RootFile::setEntryAtItem
bool setEntryAtItem(RunNumber_t run, LuminosityBlockNumber_t lumi, EventNumber_t event)
Definition: RootFile.h:228
MicroEventContent_cff.branch
branch
Definition: MicroEventContent_cff.py:169
edm::RootFile::runTree
RootTree const & runTree() const
Definition: RootFile.h:221
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:220
edm::RootFile::eventTree
RootTree const & eventTree() const
Definition: RootFile.h:219
edm::RootFile::indexIntoFileIter_
IndexIntoFile::IndexIntoFileItr indexIntoFileIter_
Definition: RootFile.h:326
edm::RootFile::readRunAuxiliary_
std::shared_ptr< RunAuxiliary > readRunAuxiliary_()
Definition: RootFile.cc:1497
edm::RootFile::indexIntoFileSharedPtr
std::shared_ptr< IndexIntoFile > & indexIntoFileSharedPtr()
Definition: RootFile.h:258
edm::RootFile::readCurrentEvent
bool readCurrentEvent(EventPrincipal &cache)
Definition: RootFile.cc:1457
edm::DaqProvenanceHelper
Definition: DaqProvenanceHelper.h:27
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:346
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:602
edm::get_underlying_safe
constexpr std::shared_ptr< T > & get_underlying_safe(propagate_const< std::shared_ptr< T >> &iP)
Definition: get_underlying_safe.h:41
MillePedeFileConverter_cfg.fileName
fileName
Definition: MillePedeFileConverter_cfg.py:32
edm::RootFile::isDuplicateEvent
bool isDuplicateEvent()
Definition: RootFile.cc:799
edm::RootFile::enforceGUIDInFileName_
bool enforceGUIDInFileName_
Definition: RootFile.h:333
edm::RootFile::skipThisEntry
bool skipThisEntry()
Definition: RootFile.cc:762
edm::FileID
Definition: FileID.h:14
edm::RootFile::fileFormatVersion
FileFormatVersion fileFormatVersion() const
Definition: RootFile.h:222
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:211
runTheMatrix.nStreams
nStreams
Definition: runTheMatrix.py:371
edm::RootFile::setEntryAtLumi
bool setEntryAtLumi(RunNumber_t run, LuminosityBlockNumber_t lumi)
Definition: RootFile.cc:1655
edm::RootFile::dropOnInput
void dropOnInput(ProductRegistry &reg, ProductSelectorRules const &rules, bool dropDescendants, InputType inputType)
Definition: RootFile.cc:1723
edm::RootFile::file
std::string const & file() const
Definition: RootFile.h:214
edm::ProductRegistry
Definition: ProductRegistry.h:37
edm::RootFile::setEntryAtRun
bool setEntryAtRun(RunNumber_t run)
Definition: RootFile.cc:1663
edm::RootFile::inputType_
InputType inputType_
Definition: RootFile.h:362
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:347
edm::RootFile::setAtEventEntry
void setAtEventEntry(IndexIntoFile::EntryNumber_t entry)
Definition: RootFile.cc:1495
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::eventAuxCache_
EventAuxiliary eventAuxCache_
Definition: RootFile.h:337
edm::StreamContext
Definition: StreamContext.h:31
edm::RootFile::provenanceAdaptor_
edm::propagate_const< std::unique_ptr< ProvenanceAdaptor > > provenanceAdaptor_
Definition: RootFile.h:356
edm::RootFile::skipEvents
bool skipEvents(int &offset)
Definition: RootFile.cc:1354
edm::RootFile::modifiedIDs
bool modifiedIDs() const
Definition: RootFile.h:226
edm::RootFile::fillRunAuxiliary
std::shared_ptr< RunAuxiliary > fillRunAuxiliary()
Definition: RootFile.cc:1334
edm::RootFile::branchChildren_
edm::propagate_const< std::shared_ptr< BranchChildren > > branchChildren_
Definition: RootFile.h:354
BranchListIndex.h
edm::RootFile::wasLastEventJustRead
bool wasLastEventJustRead() const
Definition: RootFile.cc:861
edm::RootFile::operator=
RootFile & operator=(RootFile const &)=delete
edm::RootFile::getNextItemType
IndexIntoFile::EntryType getNextItemType(RunNumber_t &run, LuminosityBlockNumber_t &lumi, EventNumber_t &event)
Definition: RootFile.cc:816
edm::RootFile::fillEventAuxiliary
EventAuxiliary fillEventAuxiliary(IndexIntoFile::EntryNumber_t entry)
Definition: RootFile.cc:1249
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:348
edm::RootFile::setPosition
void setPosition(IndexIntoFile::IndexIntoFileItr const &position)
Definition: RootFile.cc:753
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:238
edm::RootFile::hasNewlyDroppedBranch
std::array< bool, NumBranchTypes > const & hasNewlyDroppedBranch() const
Definition: RootFile.h:224
edm::RootFile::fillIndexIntoFile
void fillIndexIntoFile()
Definition: RootFile.cc:928
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:254
edm::RootFile::readEvent
void readEvent(EventPrincipal &cache)
Definition: RootFile.cc:1443
edm::RootFile::newBranchToOldBranch
std::string const & newBranchToOldBranch(std::string const &newBranch) const
Definition: RootFile.cc:743
edm::RootFile::fid_
FileID fid_
Definition: RootFile.h:320
edm::RootFile::orderedProcessHistoryIDs_
std::vector< ProcessHistoryID > & orderedProcessHistoryIDs_
Definition: RootFile.h:323
edm::InputSource::ProcessingMode
ProcessingMode
Definition: InputSource.h:80
edm::ThinnedAssociationsHelper
Definition: ThinnedAssociationsHelper.h:37
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:1853
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:1647
edm::RootFile::setIfFastClonable
void setIfFastClonable(int remainingEvents, int remainingLumis)
Definition: RootFile.cc:683
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:1699
edm::RootFile::processingMode_
InputSource::ProcessingMode processingMode_
Definition: RootFile.h:349
edm::MakeProvenanceReader::~MakeProvenanceReader
virtual ~MakeProvenanceReader()=default
FileFormatVersion.h
edm::RootFile::validateFile
void validateFile(InputType inputType, bool usingGoToEvent)
Definition: RootFile.cc:1153
edm::RootFile::skipEntries
bool skipEntries(unsigned int &offset)
Definition: RootFile.h:246
edm::RootFile::markBranchToBeDropped
void markBranchToBeDropped(bool dropDescendants, BranchDescription const &branch, std::set< BranchID > &branchesToDrop, std::map< BranchID, BranchID > const &droppedToKeptAlias) const
Definition: RootFile.cc:1712
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:1590
edm::MakeProvenanceReader
Definition: RootFile.h:56
edm::RootFile::readFakeRun_
void readFakeRun_(RunPrincipal &runPrincipal)
edm::RootFile::fillEventHistory
void fillEventHistory(EventAuxiliary &evtAux, EventSelectionIDVector &eventSelectionIDs, BranchListIndexes &branchListIndexes)
Definition: RootFile.cc:1254
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
trackerHitRTTI::vector
Definition: trackerHitRTTI.h:21
edm::RootFile::skipAnyEvents_
bool skipAnyEvents_
Definition: RootFile.h:331
edm::RootFile::edProductClass_
edm::propagate_const< TClass * > edProductClass_
Definition: RootFile.h:361
edm::RootFile::fileFormatVersion_
FileFormatVersion fileFormatVersion_
Definition: RootFile.h:319
edm::RootFile::readEventHistoryTree
void readEventHistoryTree()
Definition: RootFile.cc:1688
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:757
edm::RootFile::treePointers
RootTreePtrArray & treePointers()
Definition: RootFile.h:270
edm::RootFile::history_
edm::propagate_const< std::unique_ptr< History > > history_
Definition: RootFile.h:353
edm::RootFile::noEventSort_
bool noEventSort_
Definition: RootFile.h:332
EventEntryDescription.h
edm::RootFile::createFileBlock
std::unique_ptr< FileBlock > createFileBlock() const
Definition: RootFile.cc:727
edm::RootFile::provenanceReaderMaker_
edm::propagate_const< std::unique_ptr< MakeProvenanceReader > > provenanceReaderMaker_
Definition: RootFile.h:357
writedatasetfile.run
run
Definition: writedatasetfile.py:27
edm::RootFile::parentageIDLookup_
std::vector< ParentageID > parentageIDLookup_
Definition: RootFile.h:359
edm::RootFile::goToEvent
bool goToEvent(EventID const &eventID)
Definition: RootFile.cc:1410
EventProcessHistoryID.h
edm::RootTree::rewind
void rewind()
Definition: RootTree.h:132
edm::RootFile::lastEventEntryNumberRead_
IndexIntoFile::EntryNumber_t lastEventEntryNumberRead_
Definition: RootFile.h:343
edm::RootFile::indexIntoFileSharedPtr
std::shared_ptr< IndexIntoFile const > indexIntoFileSharedPtr() const
Definition: RootFile.h:255
Frameworkfwd.h
InputSource.h
EventAuxiliary.h
edm::RootFile::containsItem
bool containsItem(RunNumber_t run, LuminosityBlockNumber_t lumi, EventNumber_t event) const
Definition: RootFile.cc:812
edm::RootFile::productRegistry_
std::shared_ptr< ProductRegistry const > productRegistry_
Definition: RootFile.h:344
edm::RootFile::whyNotFastClonable
int whyNotFastClonable() const
Definition: RootFile.h:223
edm::RootFile::setEntryAtNextEventInLumi
bool setEntryAtNextEventInLumi(RunNumber_t run, LuminosityBlockNumber_t lumi)
Definition: RootFile.cc:1671
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:1847
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:351
edm::BranchDescription
Definition: BranchDescription.h:32
DTskim_cfg.processingMode
processingMode
Definition: DTskim_cfg.py:82
edm::RootTree
Definition: RootTree.h:103
edm::RootFile::fillThisEventAuxiliary
EventAuxiliary const & fillThisEventAuxiliary()
Definition: RootFile.cc:1230
edm::RootFile::indexIntoFileBegin_
IndexIntoFile::IndexIntoFileItr indexIntoFileBegin_
Definition: RootFile.h:324
edm::RootFile::~RootFile
~RootFile()
Definition: RootFile.cc:600
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:1563
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:82
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:345
edm::ProcessConfiguration
Definition: ProcessConfiguration.h:14
edm::RootFile::branchIDListHelper
std::shared_ptr< BranchIDListHelper const > branchIDListHelper() const
Definition: RootFile.h:251
edm::RootFile::duplicateChecker_
edm::propagate_const< std::shared_ptr< DuplicateChecker > > duplicateChecker_
Definition: RootFile.h:355
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:751
edm::RootFile::fillLumiAuxiliary
std::shared_ptr< LuminosityBlockAuxiliary > fillLumiAuxiliary()
Definition: RootFile.cc:1311
edm::RootFile::wasFirstEventJustRead
bool wasFirstEventJustRead() const
Definition: RootFile.cc:867
edm::IndexIntoFile::EntryType
EntryType
Definition: IndexIntoFile.h:238
edm::RootFile::processConfiguration_
ProcessConfiguration const & processConfiguration_
Definition: RootFile.h:315
edm::ModuleCallingContext
Definition: ModuleCallingContext.h:29
BranchChildren.h
edm::RootFile::file_
const std::string file_
Definition: RootFile.h:313