29 orderedProcessHistoryIDs_(),
31 initialNumberOfEventsToSkip_(pset.getUntrackedParameter<unsigned
int>(
"skipEvents")),
32 noEventSort_(pset.getUntrackedParameter<
bool>(
"noEventSort")),
33 treeCacheSize_(noEventSort_ ? pset.getUntrackedParameter<unsigned
int>(
"cacheSize") : 0
U),
35 usingGoToEvent_(
false),
36 enablePrefetching_(
false),
37 enforceGUIDInFileName_(pset.getUntrackedParameter<
bool>(
"enforceGUIDInFileName")) {
76 std::unique_ptr<FileBlock>
90 return std::make_unique<FileBlock>();
92 return rootFile()->createFileBlock();
118 return std::make_shared<RootFile>(
142 currentIndexIntoFile,
164 if(!mergeInfo.empty()) {
184 if(!mergeInfo.empty()) {
247 bool atEnd =
rootFile()->skipEvents(offset);
248 if((offset > 0 || atEnd) && !
nextFile()) {
272 bool closedOriginalFile =
false;
294 closedOriginalFile =
true;
303 if(closedOriginalFile) {
307 rootFile()->setPosition(originalPosition);
326 ->setComment(
"Skip the first 'skipEvents' events that otherwise would have been processed.");
328 ->setComment(
"True: Process runs, lumis and events in the order they appear in the file (but see notes 1 and 2).\n" 329 "False: Process runs, lumis and events in each file in numerical order (run#, lumi#, event#) (but see note 3).\n" 330 "Note 1: Events within the same lumi will always be processed contiguously.\n" 331 "Note 2: Lumis within the same run will always be processed contiguously.\n" 332 "Note 3: Any sorting occurs independently in each input file (no sorting across input files).");
334 ->setComment(
"Size of ROOT TTree prefetch cache. Affects performance.");
337 ->setComment(
"'strict': Branches in each input file must match those in the first file.\n" 338 "'permissive': Branches in each input file may be any subset of those in the first file.");
341 "True: file name part is required to be equal to the GUID of the file\n" 342 "False: file name can be anything");
351 if(!
rootFile()->wasLastEventJustRead()) {
366 if(!
rootFile()->wasFirstEventJustRead()) {
EventNumber_t event() const
T getUntrackedParameter(std::string const &, T const &) const
unsigned int treeCacheSize_
ParameterDescriptionBase * addUntracked(U const &iLabel, T const &value)
InputSource::ItemType getNextItemType(RunNumber_t &run, LuminosityBlockNumber_t &lumi, EventNumber_t &event)
void closeFile_() override
def create(alignables, pedeDump, additionalData, outputFile, config)
void initFile_(bool skipBadFiles) override
ProcessingController::ForwardState forwardState() const
bool skipEvents(int offset)
unsigned long long EventNumber_t
static void fillDescription(ParameterSetDescription &desc)
static void fillDescription(ParameterSetDescription &desc)
std::unique_ptr< FileBlock > readFile_()
LuminosityBlockNumber_t luminosityBlock() const
unsigned int const defaultCacheSize
int initialNumberOfEventsToSkip_
unsigned int LuminosityBlockNumber_t
static std::string const input
RunHelperBase * runHelper()
ProcessingController::ReverseState reverseState() const
bool goToEvent(EventID const &eventID)
static const StorageFactory * get(void)
void stagein(const std::string &url) const
RootFileSharedPtr makeRootFile(std::shared_ptr< InputFile > filePtr) override
std::vector< ProcessHistoryID > orderedProcessHistoryIDs_
RootPrimaryFileSequence(ParameterSet const &pset, PoolSource &input, InputFileCatalog const &catalog)
std::string merge(ProductRegistry const &other, std::string const &fileName, BranchDescription::MatchMode branchesMustMatch=BranchDescription::Permissive)
unsigned int nStreams() const
bool dropDescendants() const
bool bypassVersionCheck() const
~RootPrimaryFileSequence() override
int treeMaxVirtualSize() const
bool skipBadFiles() const
std::shared_ptr< EventSkipperByID const > eventSkipperByID() const
bool labelRawDataLikeMC() const
edm::propagate_const< std::shared_ptr< DuplicateChecker > > duplicateChecker_
BranchDescription::MatchMode branchesMustMatch_
bool enforceGUIDInFileName_
static void fillDescription(ParameterSetDescription &desc)
void updateFromInput(ProductList const &other)
int remainingEvents() const
std::shared_ptr< DuplicateChecker const > duplicateChecker() const
int remainingLuminosityBlocks() const
ProductSelectorRules const & productSelectorRules() const