CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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  class DaqProvenanceHelper;
43  class DuplicateChecker;
44  class EventSkipperByID;
45  class ProcessHistoryRegistry;
46  class ProductSelectorRules;
47  class InputFile;
48  class ProvenanceReaderBase;
49  class ProvenanceAdaptor;
50  class RunHelperBase;
52 
53  typedef std::map<EntryDescriptionID, EventEntryDescription> EntryDescriptionMap;
54 
56  public:
57  virtual std::unique_ptr<ProvenanceReaderBase> makeReader(RootTree& eventTree, DaqProvenanceHelper const* daqProvenanceHelper) const = 0;
58  };
59 
60  class RootFile {
61  public:
62  typedef std::array<RootTree*, NumBranchTypes> RootTreePtrArray;
65  std::string const& logicalFileName,
66  std::shared_ptr<InputFile> filePtr,
67  std::shared_ptr<EventSkipperByID> eventSkipperByID,
68  bool skipAnyEvents,
69  int remainingEvents,
70  int remainingLumis,
71  unsigned int nStreams,
72  unsigned int treeCacheSize,
73  int treeMaxVirtualSize,
75  RunHelperBase* runHelper,
76  bool noEventSort,
77  ProductSelectorRules const& productSelectorRules,
78  InputType inputType,
79  std::shared_ptr<BranchIDListHelper> branchIDListHelper,
80  std::shared_ptr<ThinnedAssociationsHelper> thinnedAssociationsHelper,
81  std::vector<BranchID> const* associationsFromSecondary,
82  std::shared_ptr<DuplicateChecker> duplicateChecker,
83  bool dropDescendantsOfDroppedProducts,
84  ProcessHistoryRegistry& processHistoryRegistry,
85  std::vector<std::shared_ptr<IndexIntoFile> > const& indexesIntoFiles,
86  std::vector<std::shared_ptr<IndexIntoFile> >::size_type currentIndexIntoFile,
87  std::vector<ProcessHistoryID>& orderedProcessHistoryIDs,
88  bool bypassVersionCheck,
89  bool labelRawDataLikeMC,
90  bool usingGoToEvent,
91  bool enablePrefetching,
92  bool enforceGUIDInFileName);
93 
96  std::string const& logicalFileName,
97  std::shared_ptr<InputFile> filePtr,
98  unsigned int nStreams,
99  int treeMaxVirtualSize,
101  RunHelperBase* runHelper,
102  ProductSelectorRules const& productSelectorRules,
103  InputType inputType,
104  std::shared_ptr<BranchIDListHelper> branchIDListHelper,
105  std::shared_ptr<ThinnedAssociationsHelper> thinnedAssociationsHelper,
106  std::vector<BranchID> const* associationsFromSecondary,
107  bool dropDescendantsOfDroppedProducts,
108  ProcessHistoryRegistry& processHistoryRegistry,
109  std::vector<std::shared_ptr<IndexIntoFile> > const& indexesIntoFiles,
110  std::vector<std::shared_ptr<IndexIntoFile> >::size_type currentIndexIntoFile,
111  std::vector<ProcessHistoryID>& orderedProcessHistoryIDs,
112  bool bypassVersionCheck,
113  bool labelRawDataLikeMC,
114  bool enablePrefetching,
115  bool enforceGUIDInFileName) : RootFile(
116  fileName, processConfiguration, logicalFileName, filePtr,
117  nullptr, false, -1, -1, nStreams, 0U, treeMaxVirtualSize,
118  processingMode, runHelper,
119  false, productSelectorRules, inputType, branchIDListHelper,
120  thinnedAssociationsHelper, associationsFromSecondary,
121  nullptr, dropDescendantsOfDroppedProducts, processHistoryRegistry,
122  indexesIntoFiles, currentIndexIntoFile, orderedProcessHistoryIDs,
123  bypassVersionCheck, labelRawDataLikeMC,
124  false, enablePrefetching, enforceGUIDInFileName) {}
125 
128  std::string const& logicalFileName,
129  std::shared_ptr<InputFile> filePtr,
130  unsigned int nStreams,
131  int treeMaxVirtualSize,
132  RunHelperBase* runHelper,
133  ProductSelectorRules const& productSelectorRules,
134  InputType inputType,
135  ProcessHistoryRegistry& processHistoryRegistry,
136  std::vector<std::shared_ptr<IndexIntoFile> > const& indexesIntoFiles,
137  std::vector<std::shared_ptr<IndexIntoFile> >::size_type currentIndexIntoFile,
138  std::vector<ProcessHistoryID>& orderedProcessHistoryIDs,
139  bool bypassVersionCheck,
140  bool enablePrefetching,
141  bool enforceGUIDInFileName) : RootFile(
142  fileName, processConfiguration, logicalFileName, filePtr,
143  nullptr, false, -1, -1, nStreams, 0U, treeMaxVirtualSize,
144  InputSource::RunsLumisAndEvents, runHelper,
145  false, productSelectorRules, inputType, nullptr, nullptr,
146  nullptr, nullptr, false, processHistoryRegistry,
147  indexesIntoFiles, currentIndexIntoFile, orderedProcessHistoryIDs,
148  bypassVersionCheck, false,
149  false, enablePrefetching, enforceGUIDInFileName) {}
150 
151  ~RootFile();
152 
153  RootFile(RootFile const&) = delete; // Disallow copying and moving
154  RootFile& operator=(RootFile const&) = delete; // Disallow copying and moving
155 
156  void reportOpened(std::string const& inputType);
157  void close();
158  bool readCurrentEvent(EventPrincipal& cache);
159  void readEvent(EventPrincipal& cache);
160 
161  std::shared_ptr<LuminosityBlockAuxiliary> readLuminosityBlockAuxiliary_();
162  std::shared_ptr<RunAuxiliary> readRunAuxiliary_();
163  std::shared_ptr<RunAuxiliary> readFakeRunAuxiliary_();
164  void readRun_(RunPrincipal& runPrincipal);
165  void readFakeRun_(RunPrincipal& runPrincipal);
166  void readLuminosityBlock_(LuminosityBlockPrincipal& lumiPrincipal);
167  std::string const& file() const {return file_;}
168  std::shared_ptr<ProductRegistry const> productRegistry() const {return productRegistry_;}
169  EventAuxiliary const& eventAux() const {return eventAux_;}
170  // IndexIntoFile::EntryNumber_t const& entryNumber() const {return indexIntoFileIter().entry();}
171  // LuminosityBlockNumber_t const& luminosityBlockNumber() const {return indexIntoFileIter().lumi();}
172  // RunNumber_t const& runNumber() const {return indexIntoFileIter().run();}
173  EventID const& eventID() const {return eventAux().id();}
174  RootTree const& eventTree() const {return eventTree_;}
175  RootTree const& lumiTree() const {return lumiTree_;}
176  RootTree const& runTree() const {return runTree_;}
179  std::array<bool, NumBranchTypes> const& hasNewlyDroppedBranch() const {return hasNewlyDroppedBranch_;}
181  bool modifiedIDs() const {return daqProvenanceHelper_.get() != 0;}
182  std::unique_ptr<FileBlock> createFileBlock() const;
184  return (event != 0) ? setEntryAtEvent(run, lumi, event) : (lumi ? setEntryAtLumi(run, lumi) : setEntryAtRun(run));
185  }
192 
193  void rewind() {
195  eventTree_.rewind();
196  lumiTree_.rewind();
197  runTree_.rewind();
198  }
199  void setToLastEntry() {
201  }
202 
203  bool skipEntries(unsigned int& offset) {return eventTree_.skipEntries(offset);}
204  bool skipEvents(int& offset);
205  bool goToEvent(EventID const& eventID);
206  bool nextEventEntry() {return eventTree_.next();}
208  std::shared_ptr<BranchIDListHelper const> branchIDListHelper() const {return get_underlying_safe(branchIDListHelper_);}
209  std::shared_ptr<BranchIDListHelper>& branchIDListHelper() {return get_underlying_safe(branchIDListHelper_);}
210  std::shared_ptr<IndexIntoFile const> indexIntoFileSharedPtr() const {return get_underlying_safe(indexIntoFileSharedPtr_);}
211  std::shared_ptr<IndexIntoFile>& indexIntoFileSharedPtr() {return get_underlying_safe(indexIntoFileSharedPtr_);}
212  bool wasLastEventJustRead() const;
213  bool wasFirstEventJustRead() const;
216  void initAssociationsFromSecondary(std::vector<BranchID> const&);
217 
218  private:
220  bool skipThisEntry();
221  void setIfFastClonable(int remainingEvents, int remainingLumis);
222  void validateFile(InputType inputType, bool usingGoToEvent);
223  void fillIndexIntoFile();
225  void fillThisEventAuxiliary();
226  void fillEventHistory();
227  std::shared_ptr<LuminosityBlockAuxiliary> fillLumiAuxiliary();
228  std::shared_ptr<RunAuxiliary> fillRunAuxiliary();
229  std::string const& newBranchToOldBranch(std::string const& newBranch) const;
230  void markBranchToBeDropped(bool dropDescendants, BranchID const& branchID, std::set<BranchID>& branchesToDrop) const;
231  void dropOnInput(ProductRegistry& reg, ProductSelectorRules const& rules, bool dropDescendants, InputType inputType);
232  void readParentageTree(InputType inputType);
233  void readEntryDescriptionTree(EntryDescriptionMap& entryDescriptionMap, InputType inputType); // backward compatibility
234  void readEventHistoryTree();
235  bool isDuplicateEvent();
236 
237  void initializeDuplicateChecker(std::vector<std::shared_ptr<IndexIntoFile> > const& indexesIntoFiles,
238  std::vector<std::shared_ptr<IndexIntoFile> >::size_type currentIndexIntoFile);
239 
240  std::unique_ptr<MakeProvenanceReader> makeProvenanceReaderMaker(InputType inputType);
241  std::shared_ptr<ProductProvenanceRetriever> makeProductProvenanceRetriever(unsigned int iStreamIndex);
242 
243  std::shared_ptr<RunAuxiliary const> savedRunAuxiliary() const {return get_underlying_safe(savedRunAuxiliary_);}
244  std::shared_ptr<RunAuxiliary>& savedRunAuxiliary() {return get_underlying_safe(savedRunAuxiliary_);}
245 
246  std::shared_ptr<BranchChildren const> branchChildren() const {return get_underlying_safe(branchChildren_);}
247  std::shared_ptr<BranchChildren>& branchChildren() {return get_underlying_safe(branchChildren_);}
248 
249  std::shared_ptr<ProductProvenanceRetriever const> eventProductProvenanceRetriever(size_t index) const {return get_underlying_safe(eventProductProvenanceRetrievers_[index]);}
250  std::shared_ptr<ProductProvenanceRetriever>& eventProductProvenanceRetriever(size_t index) {return get_underlying_safe(eventProductProvenanceRetrievers_[index]);}
251 
262  std::vector<ProcessHistoryID>& orderedProcessHistoryIDs_;
266  std::vector<EventProcessHistoryID> eventProcessHistoryIDs_; // backward compatibility
267  std::vector<EventProcessHistoryID>::const_iterator eventProcessHistoryIter_; // backward compatibility
273  std::array<bool, NumBranchTypes> hasNewlyDroppedBranch_;
281  std::shared_ptr<ProductRegistry const> productRegistry_;
282  std::shared_ptr<BranchIDLists const> branchIDLists_;
288  std::map<std::string, std::string> newBranchToOldBranch_;
297  std::vector<edm::propagate_const<std::shared_ptr<ProductProvenanceRetriever>>> eventProductProvenanceRetrievers_;
298  std::vector<ParentageID> parentageIDLookup_;
301  }; // class RootFile
302 
303 }
304 #endif
void dropOnInput(ProductRegistry &reg, ProductSelectorRules const &rules, bool dropDescendants, InputType inputType)
Definition: RootFile.cc:1677
EventID const & eventID() const
Definition: RootFile.h:173
bool setEntryAtItem(RunNumber_t run, LuminosityBlockNumber_t lumi, EventNumber_t event)
Definition: RootFile.h:183
edm::propagate_const< std::unique_ptr< ThinnedAssociationsHelper > > fileThinnedAssociationsHelper_
Definition: RootFile.h:284
InputType
Definition: InputType.h:5
RootTree const & lumiTree() const
Definition: RootFile.h:175
std::shared_ptr< BranchIDLists const > branchIDLists_
Definition: RootFile.h:282
bool skipEvents(int &offset)
Definition: RootFile.cc:1303
edm::propagate_const< std::shared_ptr< DuplicateChecker > > duplicateChecker_
Definition: RootFile.h:294
std::shared_ptr< BranchIDListHelper const > branchIDListHelper() const
Definition: RootFile.h:208
FileFormatVersion fileFormatVersion() const
Definition: RootFile.h:177
std::shared_ptr< LuminosityBlockAuxiliary > fillLumiAuxiliary()
Definition: RootFile.cc:1258
RootFile & operator=(RootFile const &)=delete
void readEntryDescriptionTree(EntryDescriptionMap &entryDescriptionMap, InputType inputType)
Definition: RootFile.cc:520
bool branchListIndexesUnchanged() const
Definition: RootFile.h:180
bool nextEventEntry()
Definition: RootFile.h:206
bool setEntryAtNextEventInLumi(RunNumber_t run, LuminosityBlockNumber_t lumi)
Definition: RootFile.cc:1626
bool enforceGUIDInFileName_
Definition: RootFile.h:271
RootFile(std::string const &fileName, ProcessConfiguration const &processConfiguration, std::string const &logicalFileName, std::shared_ptr< InputFile > filePtr, unsigned int nStreams, 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:126
int whyNotFastClonable_
Definition: RootFile.h:272
edm::propagate_const< std::shared_ptr< EventSkipperByID > > eventSkipperByID_
Definition: RootFile.h:257
edm::propagate_const< std::shared_ptr< ThinnedAssociationsHelper > > thinnedAssociationsHelper_
Definition: RootFile.h:285
tuple lumi
Definition: fjr2json.py:35
std::map< std::string, std::string > newBranchToOldBranch_
Definition: RootFile.h:288
edm::propagate_const< std::shared_ptr< IndexIntoFile > > indexIntoFileSharedPtr_
Definition: RootFile.h:260
bool setEntryAtRun(RunNumber_t run)
Definition: RootFile.cc:1618
void readRun_(RunPrincipal &runPrincipal)
Definition: RootFile.cc:1527
RootTree lumiTree_
Definition: RootFile.h:277
edm::propagate_const< ProcessHistoryRegistry * > processHistoryRegistry_
Definition: RootFile.h:255
edm::propagate_const< std::unique_ptr< DaqProvenanceHelper > > daqProvenanceHelper_
Definition: RootFile.h:299
edm::propagate_const< std::shared_ptr< RunAuxiliary > > savedRunAuxiliary_
Definition: RootFile.h:268
unsigned long long EventNumber_t
processConfiguration
Definition: Schedule.cc:374
InputSource::ProcessingMode processingMode_
Definition: RootFile.h:286
IndexIntoFile::IndexIntoFileItr indexIntoFileIter_
Definition: RootFile.h:265
std::shared_ptr< ProductProvenanceRetriever const > eventProductProvenanceRetriever(size_t index) const
Definition: RootFile.h:249
bool skipEntries(unsigned int &offset)
Definition: RootFile.h:203
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:94
#define nullptr
std::unique_ptr< FileBlock > createFileBlock() const
Definition: RootFile.cc:648
std::shared_ptr< IndexIntoFile > & indexIntoFileSharedPtr()
Definition: RootFile.h:211
bool readCurrentEvent(EventPrincipal &cache)
Definition: RootFile.cc:1428
std::shared_ptr< ProductRegistry const > productRegistry() const
Definition: RootFile.h:168
uint16_t size_type
unsigned int LuminosityBlockNumber_t
long long EntryNumber_t
bool fillEventAuxiliary(IndexIntoFile::EntryNumber_t entry)
Definition: RootFile.cc:1190
std::vector< EventSelectionID > EventSelectionIDVector
edm::propagate_const< TClass * > edProductClass_
Definition: RootFile.h:300
FileFormatVersion fileFormatVersion_
Definition: RootFile.h:258
void setPosition(IndexIntoFile::IndexIntoFileItr const &position)
Definition: RootFile.cc:679
void rewind()
Definition: RootFile.h:193
std::vector< edm::propagate_const< std::shared_ptr< ProductProvenanceRetriever > > > eventProductProvenanceRetrievers_
Definition: RootFile.h:297
std::vector< EventProcessHistoryID >::const_iterator eventProcessHistoryIter_
Definition: RootFile.h:267
void setToLastEntry()
Definition: RootFile.h:199
bool skipThisEntry()
Definition: RootFile.cc:689
FileID fid_
Definition: RootFile.h:259
bool containsItem(RunNumber_t run, LuminosityBlockNumber_t lumi, EventNumber_t event) const
Definition: RootFile.cc:744
std::string const logicalFile_
Definition: RootFile.h:253
std::vector< BranchListIndex > BranchListIndexes
IndexIntoFile::IndexIntoFileItr indexIntoFileEnd_
Definition: RootFile.h:264
void readParentageTree(InputType inputType)
Definition: RootFile.cc:566
bool next()
Definition: RootTree.h:87
bool noEventSort_
Definition: RootFile.h:270
bool wasLastEventJustRead() const
Definition: RootFile.cc:795
bool setEntryAtLumi(RunNumber_t run, LuminosityBlockNumber_t lumi)
Definition: RootFile.cc:1610
void close()
Definition: RootFile.cc:1159
virtual std::unique_ptr< ProvenanceReaderBase > makeReader(RootTree &eventTree, DaqProvenanceHelper const *daqProvenanceHelper) const =0
RootTree const & runTree() const
Definition: RootFile.h:176
bool modifiedIDs() const
Definition: RootFile.h:181
IndexIntoFile::EntryNumber_t lastEventEntryNumberRead_
Definition: RootFile.h:280
std::shared_ptr< RunAuxiliary > readFakeRunAuxiliary_()
std::shared_ptr< RunAuxiliary > readRunAuxiliary_()
Definition: RootFile.cc:1461
EventAuxiliary const & eventAux() const
Definition: RootFile.h:169
EventSelectionIDVector eventSelectionIDs_
Definition: RootFile.h:290
std::shared_ptr< LuminosityBlockAuxiliary > readLuminosityBlockAuxiliary_()
Definition: RootFile.cc:1546
int whyNotFastClonable() const
Definition: RootFile.h:178
edm::propagate_const< std::unique_ptr< ProvenanceAdaptor > > provenanceAdaptor_
Definition: RootFile.h:295
std::shared_ptr< ProductProvenanceRetriever > & eventProductProvenanceRetriever(size_t index)
Definition: RootFile.h:250
std::shared_ptr< RunAuxiliary > fillRunAuxiliary()
Definition: RootFile.cc:1282
bool skipAnyEvents_
Definition: RootFile.h:269
RootTree eventTree_
Definition: RootFile.h:276
std::array< bool, NumBranchTypes > const & hasNewlyDroppedBranch() const
Definition: RootFile.h:179
IndexIntoFile::EntryType getNextItemType(RunNumber_t &run, LuminosityBlockNumber_t &lumi, EventNumber_t &event)
Definition: RootFile.cc:749
BranchListIndexes branchListIndexes_
Definition: RootFile.h:291
std::shared_ptr< T > & get_underlying_safe(propagate_const< std::shared_ptr< T >> &iP)
bool isDuplicateEvent()
Definition: RootFile.cc:733
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:126
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger but the state exists so we define the behavior If all triggers are the negative crieriion will lead to accepting the event(this again matches the behavior of"!*"before the partial wildcard feature was incorporated).The per-event"cost"of each negative criterion with multiple relevant triggers is about the same as!*was in the past
bool wasFirstEventJustRead() const
Definition: RootFile.cc:802
edm::propagate_const< std::unique_ptr< History > > history_
Definition: RootFile.h:292
IndexIntoFile & indexIntoFile_
Definition: RootFile.h:261
std::shared_ptr< BranchIDListHelper > & branchIDListHelper()
Definition: RootFile.h:209
void readEvent(EventPrincipal &cache)
Definition: RootFile.cc:1405
RootTree runTree_
Definition: RootFile.h:278
edm::propagate_const< std::unique_ptr< MakeProvenanceReader > > provenanceReaderMaker_
Definition: RootFile.h:296
bool goToEvent(EventID const &eventID)
Definition: RootFile.cc:1371
std::shared_ptr< RunAuxiliary const > savedRunAuxiliary() const
Definition: RootFile.h:243
void setAtEventEntry(IndexIntoFile::EntryNumber_t entry)
Definition: RootFile.cc:1456
std::array< bool, NumBranchTypes > hasNewlyDroppedBranch_
Definition: RootFile.h:273
std::shared_ptr< RunAuxiliary > & savedRunAuxiliary()
Definition: RootFile.h:244
ProcessConfiguration const & processConfiguration_
Definition: RootFile.h:254
std::shared_ptr< ProductRegistry const > productRegistry_
Definition: RootFile.h:281
void setIfFastClonable(int remainingEvents, int remainingLumis)
Definition: RootFile.cc:602
std::map< EntryDescriptionID, EventEntryDescription > EntryDescriptionMap
Definition: RootFile.h:51
edm::propagate_const< std::shared_ptr< BranchChildren > > branchChildren_
Definition: RootFile.h:293
edm::propagate_const< std::shared_ptr< InputFile > > filePtr_
Definition: RootFile.h:256
std::shared_ptr< BranchChildren const > branchChildren() const
Definition: RootFile.h:246
std::shared_ptr< BranchChildren > & branchChildren()
Definition: RootFile.h:247
void fillEventHistory()
Definition: RootFile.cc:1200
std::shared_ptr< ProductProvenanceRetriever > makeProductProvenanceRetriever(unsigned int iStreamIndex)
Definition: RootFile.cc:1809
std::string const & file() const
Definition: RootFile.h:167
IndexIntoFile::IndexIntoFileItr indexIntoFileBegin_
Definition: RootFile.h:263
EventID const & id() const
std::array< RootTree *, NumBranchTypes > RootTreePtrArray
Definition: RootFile.h:62
edm::propagate_const< RunHelperBase * > runHelper_
Definition: RootFile.h:287
bool branchListIndexesUnchanged_
Definition: RootFile.h:274
void fillIndexIntoFile()
Definition: RootFile.cc:864
edm::propagate_const< TTree * > eventHistoryTree_
Definition: RootFile.h:289
void readLuminosityBlock_(LuminosityBlockPrincipal &lumiPrincipal)
Definition: RootFile.cc:1584
RootTreePtrArray treePointers_
Definition: RootFile.h:279
static int position[264][3]
Definition: ReadPGInfo.cc:509
void initializeDuplicateChecker(std::vector< std::shared_ptr< IndexIntoFile > > const &indexesIntoFiles, std::vector< std::shared_ptr< IndexIntoFile > >::size_type currentIndexIntoFile)
Definition: RootFile.cc:1652
bool skipEntries(unsigned int &offset)
Definition: RootTree.cc:372
std::vector< ProcessHistoryID > & orderedProcessHistoryIDs_
Definition: RootFile.h:262
void initAssociationsFromSecondary(std::vector< BranchID > const &)
Definition: RootFile.cc:684
RootTreePtrArray & treePointers()
Definition: RootFile.h:219
list entry
Definition: mps_splice.py:62
std::shared_ptr< IndexIntoFile const > indexIntoFileSharedPtr() const
Definition: RootFile.h:210
std::unique_ptr< MakeProvenanceReader > makeProvenanceReaderMaker(InputType inputType)
Definition: RootFile.cc:1792
unsigned int RunNumber_t
std::vector< ParentageID > parentageIDLookup_
Definition: RootFile.h:298
EventAuxiliary eventAux_
Definition: RootFile.h:275
void fillThisEventAuxiliary()
Definition: RootFile.cc:1171
bool setEntryAtEvent(RunNumber_t run, LuminosityBlockNumber_t lumi, EventNumber_t event)
Definition: RootFile.cc:1602
volatile std::atomic< bool > shutdown_flag false
void markBranchToBeDropped(bool dropDescendants, BranchID const &branchID, std::set< BranchID > &branchesToDrop) const
Definition: RootFile.cc:1668
void rewind()
Definition: RootTree.h:91
RootTree const & eventTree() const
Definition: RootFile.h:174
edm::propagate_const< std::shared_ptr< BranchIDListHelper > > branchIDListHelper_
Definition: RootFile.h:283
void validateFile(InputType inputType, bool usingGoToEvent)
Definition: RootFile.cc:1090
IndexIntoFile::IndexIntoFileItr indexIntoFileIter() const
Definition: RootFile.cc:674
std::string const & newBranchToOldBranch(std::string const &newBranch) const
Definition: RootFile.cc:665
void readFakeRun_(RunPrincipal &runPrincipal)
std::string const file_
Definition: RootFile.h:252
std::vector< EventProcessHistoryID > eventProcessHistoryIDs_
Definition: RootFile.h:266
void readEventHistoryTree()
Definition: RootFile.cc:1639
void reportOpened(std::string const &inputType)
Definition: RootFile.cc:1145