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 
95  std::string const& logicalFileName,
96  std::shared_ptr<InputFile> filePtr,
97  unsigned int nStreams,
98  int treeMaxVirtualSize,
100  RunHelperBase* runHelper,
101  ProductSelectorRules const& productSelectorRules,
102  InputType inputType,
103  std::shared_ptr<BranchIDListHelper> branchIDListHelper,
104  std::shared_ptr<ThinnedAssociationsHelper> thinnedAssociationsHelper,
105  std::vector<BranchID> const* associationsFromSecondary,
106  bool dropDescendantsOfDroppedProducts,
107  ProcessHistoryRegistry& processHistoryRegistry,
108  std::vector<std::shared_ptr<IndexIntoFile> > const& indexesIntoFiles,
109  std::vector<std::shared_ptr<IndexIntoFile> >::size_type currentIndexIntoFile,
110  std::vector<ProcessHistoryID>& orderedProcessHistoryIDs,
111  bool bypassVersionCheck,
112  bool labelRawDataLikeMC,
113  bool enablePrefetching) : RootFile(
114  fileName, processConfiguration, logicalFileName, filePtr,
115  nullptr, false, -1, -1, nStreams, 0U, treeMaxVirtualSize,
116  processingMode, runHelper,
117  false, productSelectorRules, inputType, branchIDListHelper,
118  thinnedAssociationsHelper, associationsFromSecondary,
119  nullptr, dropDescendantsOfDroppedProducts, processHistoryRegistry,
120  indexesIntoFiles, currentIndexIntoFile, orderedProcessHistoryIDs,
121  bypassVersionCheck, labelRawDataLikeMC,
122  false, enablePrefetching) {}
123 
126  std::string const& logicalFileName,
127  std::shared_ptr<InputFile> filePtr,
128  unsigned int nStreams,
129  int treeMaxVirtualSize,
130  RunHelperBase* runHelper,
131  ProductSelectorRules const& productSelectorRules,
132  InputType inputType,
133  ProcessHistoryRegistry& processHistoryRegistry,
134  std::vector<std::shared_ptr<IndexIntoFile> > const& indexesIntoFiles,
135  std::vector<std::shared_ptr<IndexIntoFile> >::size_type currentIndexIntoFile,
136  std::vector<ProcessHistoryID>& orderedProcessHistoryIDs,
137  bool bypassVersionCheck,
138  bool enablePrefetching) : RootFile(
139  fileName, processConfiguration, logicalFileName, filePtr,
140  nullptr, false, -1, -1, nStreams, 0U, treeMaxVirtualSize,
141  InputSource::RunsLumisAndEvents, runHelper,
142  false, productSelectorRules, inputType, nullptr, nullptr,
143  nullptr, nullptr, false, processHistoryRegistry,
144  indexesIntoFiles, currentIndexIntoFile, orderedProcessHistoryIDs,
145  bypassVersionCheck, false,
146  false, enablePrefetching) {}
147 
148  ~RootFile();
149 
150  RootFile(RootFile const&) = delete; // Disallow copying and moving
151  RootFile& operator=(RootFile const&) = delete; // Disallow copying and moving
152 
153  void reportOpened(std::string const& inputType);
154  void close();
155  bool readCurrentEvent(EventPrincipal& cache);
156  void readEvent(EventPrincipal& cache);
157 
158  std::shared_ptr<LuminosityBlockAuxiliary> readLuminosityBlockAuxiliary_();
159  std::shared_ptr<RunAuxiliary> readRunAuxiliary_();
160  std::shared_ptr<RunAuxiliary> readFakeRunAuxiliary_();
161  void readRun_(RunPrincipal& runPrincipal);
162  void readFakeRun_(RunPrincipal& runPrincipal);
163  void readLuminosityBlock_(LuminosityBlockPrincipal& lumiPrincipal);
164  std::string const& file() const {return file_;}
165  std::shared_ptr<ProductRegistry const> productRegistry() const {return productRegistry_;}
166  EventAuxiliary const& eventAux() const {return eventAux_;}
167  // IndexIntoFile::EntryNumber_t const& entryNumber() const {return indexIntoFileIter().entry();}
168  // LuminosityBlockNumber_t const& luminosityBlockNumber() const {return indexIntoFileIter().lumi();}
169  // RunNumber_t const& runNumber() const {return indexIntoFileIter().run();}
170  EventID const& eventID() const {return eventAux().id();}
171  RootTree const& eventTree() const {return eventTree_;}
172  RootTree const& lumiTree() const {return lumiTree_;}
173  RootTree const& runTree() const {return runTree_;}
176  std::array<bool, NumBranchTypes> const& hasNewlyDroppedBranch() const {return hasNewlyDroppedBranch_;}
178  bool modifiedIDs() const {return daqProvenanceHelper_.get() != 0;}
179  std::unique_ptr<FileBlock> createFileBlock() const;
181  return (event != 0) ? setEntryAtEvent(run, lumi, event) : (lumi ? setEntryAtLumi(run, lumi) : setEntryAtRun(run));
182  }
189 
190  void rewind() {
192  eventTree_.rewind();
193  lumiTree_.rewind();
194  runTree_.rewind();
195  }
196  void setToLastEntry() {
198  }
199 
200  bool skipEntries(unsigned int& offset) {return eventTree_.skipEntries(offset);}
201  bool skipEvents(int& offset);
202  bool goToEvent(EventID const& eventID);
203  bool nextEventEntry() {return eventTree_.next();}
205  std::shared_ptr<BranchIDListHelper const> branchIDListHelper() const {return get_underlying_safe(branchIDListHelper_);}
206  std::shared_ptr<BranchIDListHelper>& branchIDListHelper() {return get_underlying_safe(branchIDListHelper_);}
207  std::shared_ptr<IndexIntoFile const> indexIntoFileSharedPtr() const {return get_underlying_safe(indexIntoFileSharedPtr_);}
208  std::shared_ptr<IndexIntoFile>& indexIntoFileSharedPtr() {return get_underlying_safe(indexIntoFileSharedPtr_);}
209  bool wasLastEventJustRead() const;
210  bool wasFirstEventJustRead() const;
213  void initAssociationsFromSecondary(std::vector<BranchID> const&);
214 
215  private:
217  bool skipThisEntry();
218  void setIfFastClonable(int remainingEvents, int remainingLumis);
219  void validateFile(InputType inputType, bool usingGoToEvent);
220  void fillIndexIntoFile();
222  void fillThisEventAuxiliary();
223  void fillEventHistory();
224  std::shared_ptr<LuminosityBlockAuxiliary> fillLumiAuxiliary();
225  std::shared_ptr<RunAuxiliary> fillRunAuxiliary();
226  std::string const& newBranchToOldBranch(std::string const& newBranch) const;
227  void markBranchToBeDropped(bool dropDescendants, BranchID const& branchID, std::set<BranchID>& branchesToDrop) const;
228  void dropOnInput(ProductRegistry& reg, ProductSelectorRules const& rules, bool dropDescendants, InputType inputType);
229  void readParentageTree(InputType inputType);
230  void readEntryDescriptionTree(EntryDescriptionMap& entryDescriptionMap, InputType inputType); // backward compatibility
231  void readEventHistoryTree();
232  bool isDuplicateEvent();
233 
234  void initializeDuplicateChecker(std::vector<std::shared_ptr<IndexIntoFile> > const& indexesIntoFiles,
235  std::vector<std::shared_ptr<IndexIntoFile> >::size_type currentIndexIntoFile);
236 
237  std::unique_ptr<MakeProvenanceReader> makeProvenanceReaderMaker(InputType inputType);
238  std::shared_ptr<ProductProvenanceRetriever> makeProductProvenanceRetriever(unsigned int iStreamIndex);
239 
240  std::shared_ptr<RunAuxiliary const> savedRunAuxiliary() const {return get_underlying_safe(savedRunAuxiliary_);}
241  std::shared_ptr<RunAuxiliary>& savedRunAuxiliary() {return get_underlying_safe(savedRunAuxiliary_);}
242 
243  std::shared_ptr<BranchChildren const> branchChildren() const {return get_underlying_safe(branchChildren_);}
244  std::shared_ptr<BranchChildren>& branchChildren() {return get_underlying_safe(branchChildren_);}
245 
246  std::shared_ptr<ProductProvenanceRetriever const> eventProductProvenanceRetriever(size_t index) const {return get_underlying_safe(eventProductProvenanceRetrievers_[index]);}
247  std::shared_ptr<ProductProvenanceRetriever>& eventProductProvenanceRetriever(size_t index) {return get_underlying_safe(eventProductProvenanceRetrievers_[index]);}
248 
259  std::vector<ProcessHistoryID>& orderedProcessHistoryIDs_;
263  std::vector<EventProcessHistoryID> eventProcessHistoryIDs_; // backward compatibility
264  std::vector<EventProcessHistoryID>::const_iterator eventProcessHistoryIter_; // backward compatibility
269  std::array<bool, NumBranchTypes> hasNewlyDroppedBranch_;
277  std::shared_ptr<ProductRegistry const> productRegistry_;
278  std::shared_ptr<BranchIDLists const> branchIDLists_;
284  std::map<std::string, std::string> newBranchToOldBranch_;
293  std::vector<edm::propagate_const<std::shared_ptr<ProductProvenanceRetriever>>> eventProductProvenanceRetrievers_;
294  std::vector<ParentageID> parentageIDLookup_;
297  }; // class RootFile
298 
299 }
300 #endif
void dropOnInput(ProductRegistry &reg, ProductSelectorRules const &rules, bool dropDescendants, InputType inputType)
Definition: RootFile.cc:1666
EventID const & eventID() const
Definition: RootFile.h:170
bool setEntryAtItem(RunNumber_t run, LuminosityBlockNumber_t lumi, EventNumber_t event)
Definition: RootFile.h:180
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)
Definition: RootFile.h:124
edm::propagate_const< std::unique_ptr< ThinnedAssociationsHelper > > fileThinnedAssociationsHelper_
Definition: RootFile.h:280
InputType
Definition: InputType.h:5
RootTree const & lumiTree() const
Definition: RootFile.h:172
std::shared_ptr< BranchIDLists const > branchIDLists_
Definition: RootFile.h:278
bool skipEvents(int &offset)
Definition: RootFile.cc:1292
edm::propagate_const< std::shared_ptr< DuplicateChecker > > duplicateChecker_
Definition: RootFile.h:290
std::shared_ptr< BranchIDListHelper const > branchIDListHelper() const
Definition: RootFile.h:205
FileFormatVersion fileFormatVersion() const
Definition: RootFile.h:174
std::shared_ptr< LuminosityBlockAuxiliary > fillLumiAuxiliary()
Definition: RootFile.cc:1247
RootFile & operator=(RootFile const &)=delete
void readEntryDescriptionTree(EntryDescriptionMap &entryDescriptionMap, InputType inputType)
Definition: RootFile.cc:517
bool branchListIndexesUnchanged() const
Definition: RootFile.h:177
bool nextEventEntry()
Definition: RootFile.h:203
bool setEntryAtNextEventInLumi(RunNumber_t run, LuminosityBlockNumber_t lumi)
Definition: RootFile.cc:1615
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)
Definition: RootFile.cc:125
int whyNotFastClonable_
Definition: RootFile.h:268
edm::propagate_const< std::shared_ptr< EventSkipperByID > > eventSkipperByID_
Definition: RootFile.h:254
edm::propagate_const< std::shared_ptr< ThinnedAssociationsHelper > > thinnedAssociationsHelper_
Definition: RootFile.h:281
tuple lumi
Definition: fjr2json.py:35
std::map< std::string, std::string > newBranchToOldBranch_
Definition: RootFile.h:284
edm::propagate_const< std::shared_ptr< IndexIntoFile > > indexIntoFileSharedPtr_
Definition: RootFile.h:257
bool setEntryAtRun(RunNumber_t run)
Definition: RootFile.cc:1607
void readRun_(RunPrincipal &runPrincipal)
Definition: RootFile.cc:1516
RootTree lumiTree_
Definition: RootFile.h:273
edm::propagate_const< ProcessHistoryRegistry * > processHistoryRegistry_
Definition: RootFile.h:252
edm::propagate_const< std::unique_ptr< DaqProvenanceHelper > > daqProvenanceHelper_
Definition: RootFile.h:295
edm::propagate_const< std::shared_ptr< RunAuxiliary > > savedRunAuxiliary_
Definition: RootFile.h:265
unsigned long long EventNumber_t
processConfiguration
Definition: Schedule.cc:374
InputSource::ProcessingMode processingMode_
Definition: RootFile.h:282
IndexIntoFile::IndexIntoFileItr indexIntoFileIter_
Definition: RootFile.h:262
std::shared_ptr< ProductProvenanceRetriever const > eventProductProvenanceRetriever(size_t index) const
Definition: RootFile.h:246
bool skipEntries(unsigned int &offset)
Definition: RootFile.h:200
#define nullptr
std::unique_ptr< FileBlock > createFileBlock() const
Definition: RootFile.cc:645
std::shared_ptr< IndexIntoFile > & indexIntoFileSharedPtr()
Definition: RootFile.h:208
bool readCurrentEvent(EventPrincipal &cache)
Definition: RootFile.cc:1417
std::shared_ptr< ProductRegistry const > productRegistry() const
Definition: RootFile.h:165
uint16_t size_type
unsigned int LuminosityBlockNumber_t
long long EntryNumber_t
bool fillEventAuxiliary(IndexIntoFile::EntryNumber_t entry)
Definition: RootFile.cc:1179
std::vector< EventSelectionID > EventSelectionIDVector
edm::propagate_const< TClass * > edProductClass_
Definition: RootFile.h:296
FileFormatVersion fileFormatVersion_
Definition: RootFile.h:255
void setPosition(IndexIntoFile::IndexIntoFileItr const &position)
Definition: RootFile.cc:676
void rewind()
Definition: RootFile.h:190
std::vector< edm::propagate_const< std::shared_ptr< ProductProvenanceRetriever > > > eventProductProvenanceRetrievers_
Definition: RootFile.h:293
std::vector< EventProcessHistoryID >::const_iterator eventProcessHistoryIter_
Definition: RootFile.h:264
void setToLastEntry()
Definition: RootFile.h:196
bool skipThisEntry()
Definition: RootFile.cc:686
FileID fid_
Definition: RootFile.h:256
bool containsItem(RunNumber_t run, LuminosityBlockNumber_t lumi, EventNumber_t event) const
Definition: RootFile.cc:741
std::string const logicalFile_
Definition: RootFile.h:250
std::vector< BranchListIndex > BranchListIndexes
IndexIntoFile::IndexIntoFileItr indexIntoFileEnd_
Definition: RootFile.h:261
void readParentageTree(InputType inputType)
Definition: RootFile.cc:563
bool next()
Definition: RootTree.h:87
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)
Definition: RootFile.h:93
bool noEventSort_
Definition: RootFile.h:267
bool wasLastEventJustRead() const
Definition: RootFile.cc:792
bool setEntryAtLumi(RunNumber_t run, LuminosityBlockNumber_t lumi)
Definition: RootFile.cc:1599
void close()
Definition: RootFile.cc:1148
virtual std::unique_ptr< ProvenanceReaderBase > makeReader(RootTree &eventTree, DaqProvenanceHelper const *daqProvenanceHelper) const =0
RootTree const & runTree() const
Definition: RootFile.h:173
bool modifiedIDs() const
Definition: RootFile.h:178
IndexIntoFile::EntryNumber_t lastEventEntryNumberRead_
Definition: RootFile.h:276
std::shared_ptr< RunAuxiliary > readFakeRunAuxiliary_()
std::shared_ptr< RunAuxiliary > readRunAuxiliary_()
Definition: RootFile.cc:1450
EventAuxiliary const & eventAux() const
Definition: RootFile.h:166
EventSelectionIDVector eventSelectionIDs_
Definition: RootFile.h:286
std::shared_ptr< LuminosityBlockAuxiliary > readLuminosityBlockAuxiliary_()
Definition: RootFile.cc:1535
int whyNotFastClonable() const
Definition: RootFile.h:175
edm::propagate_const< std::unique_ptr< ProvenanceAdaptor > > provenanceAdaptor_
Definition: RootFile.h:291
std::shared_ptr< ProductProvenanceRetriever > & eventProductProvenanceRetriever(size_t index)
Definition: RootFile.h:247
std::shared_ptr< RunAuxiliary > fillRunAuxiliary()
Definition: RootFile.cc:1271
bool skipAnyEvents_
Definition: RootFile.h:266
RootTree eventTree_
Definition: RootFile.h:272
std::array< bool, NumBranchTypes > const & hasNewlyDroppedBranch() const
Definition: RootFile.h:176
IndexIntoFile::EntryType getNextItemType(RunNumber_t &run, LuminosityBlockNumber_t &lumi, EventNumber_t &event)
Definition: RootFile.cc:746
BranchListIndexes branchListIndexes_
Definition: RootFile.h:287
std::shared_ptr< T > & get_underlying_safe(propagate_const< std::shared_ptr< T >> &iP)
bool isDuplicateEvent()
Definition: RootFile.cc:730
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:799
edm::propagate_const< std::unique_ptr< History > > history_
Definition: RootFile.h:288
IndexIntoFile & indexIntoFile_
Definition: RootFile.h:258
std::shared_ptr< BranchIDListHelper > & branchIDListHelper()
Definition: RootFile.h:206
void readEvent(EventPrincipal &cache)
Definition: RootFile.cc:1394
RootTree runTree_
Definition: RootFile.h:274
edm::propagate_const< std::unique_ptr< MakeProvenanceReader > > provenanceReaderMaker_
Definition: RootFile.h:292
bool goToEvent(EventID const &eventID)
Definition: RootFile.cc:1360
std::shared_ptr< RunAuxiliary const > savedRunAuxiliary() const
Definition: RootFile.h:240
void setAtEventEntry(IndexIntoFile::EntryNumber_t entry)
Definition: RootFile.cc:1445
std::array< bool, NumBranchTypes > hasNewlyDroppedBranch_
Definition: RootFile.h:269
std::shared_ptr< RunAuxiliary > & savedRunAuxiliary()
Definition: RootFile.h:241
ProcessConfiguration const & processConfiguration_
Definition: RootFile.h:251
std::shared_ptr< ProductRegistry const > productRegistry_
Definition: RootFile.h:277
void setIfFastClonable(int remainingEvents, int remainingLumis)
Definition: RootFile.cc:599
std::map< EntryDescriptionID, EventEntryDescription > EntryDescriptionMap
Definition: RootFile.h:51
edm::propagate_const< std::shared_ptr< BranchChildren > > branchChildren_
Definition: RootFile.h:289
edm::propagate_const< std::shared_ptr< InputFile > > filePtr_
Definition: RootFile.h:253
std::shared_ptr< BranchChildren const > branchChildren() const
Definition: RootFile.h:243
std::shared_ptr< BranchChildren > & branchChildren()
Definition: RootFile.h:244
void fillEventHistory()
Definition: RootFile.cc:1189
std::shared_ptr< ProductProvenanceRetriever > makeProductProvenanceRetriever(unsigned int iStreamIndex)
Definition: RootFile.cc:1798
std::string const & file() const
Definition: RootFile.h:164
IndexIntoFile::IndexIntoFileItr indexIntoFileBegin_
Definition: RootFile.h:260
EventID const & id() const
std::array< RootTree *, NumBranchTypes > RootTreePtrArray
Definition: RootFile.h:62
edm::propagate_const< RunHelperBase * > runHelper_
Definition: RootFile.h:283
bool branchListIndexesUnchanged_
Definition: RootFile.h:270
void fillIndexIntoFile()
Definition: RootFile.cc:861
edm::propagate_const< TTree * > eventHistoryTree_
Definition: RootFile.h:285
void readLuminosityBlock_(LuminosityBlockPrincipal &lumiPrincipal)
Definition: RootFile.cc:1573
RootTreePtrArray treePointers_
Definition: RootFile.h:275
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:1641
bool skipEntries(unsigned int &offset)
Definition: RootTree.cc:372
std::vector< ProcessHistoryID > & orderedProcessHistoryIDs_
Definition: RootFile.h:259
void initAssociationsFromSecondary(std::vector< BranchID > const &)
Definition: RootFile.cc:681
RootTreePtrArray & treePointers()
Definition: RootFile.h:216
list entry
Definition: mps_splice.py:62
std::shared_ptr< IndexIntoFile const > indexIntoFileSharedPtr() const
Definition: RootFile.h:207
std::unique_ptr< MakeProvenanceReader > makeProvenanceReaderMaker(InputType inputType)
Definition: RootFile.cc:1781
unsigned int RunNumber_t
std::vector< ParentageID > parentageIDLookup_
Definition: RootFile.h:294
EventAuxiliary eventAux_
Definition: RootFile.h:271
void fillThisEventAuxiliary()
Definition: RootFile.cc:1160
bool setEntryAtEvent(RunNumber_t run, LuminosityBlockNumber_t lumi, EventNumber_t event)
Definition: RootFile.cc:1591
volatile std::atomic< bool > shutdown_flag false
void markBranchToBeDropped(bool dropDescendants, BranchID const &branchID, std::set< BranchID > &branchesToDrop) const
Definition: RootFile.cc:1657
void rewind()
Definition: RootTree.h:91
RootTree const & eventTree() const
Definition: RootFile.h:171
edm::propagate_const< std::shared_ptr< BranchIDListHelper > > branchIDListHelper_
Definition: RootFile.h:279
void validateFile(InputType inputType, bool usingGoToEvent)
Definition: RootFile.cc:1087
IndexIntoFile::IndexIntoFileItr indexIntoFileIter() const
Definition: RootFile.cc:671
std::string const & newBranchToOldBranch(std::string const &newBranch) const
Definition: RootFile.cc:662
void readFakeRun_(RunPrincipal &runPrincipal)
std::string const file_
Definition: RootFile.h:249
std::vector< EventProcessHistoryID > eventProcessHistoryIDs_
Definition: RootFile.h:263
void readEventHistoryTree()
Definition: RootFile.cc:1628
void reportOpened(std::string const &inputType)
Definition: RootFile.cc:1134