Go to the documentation of this file. 1 #ifndef DataFormats_FWLite_MultiChainEvent_h
2 #define DataFormats_FWLite_MultiChainEvent_h
34 class ProductRegistry;
36 class BranchDescription;
47 class MultiProductGetter;
57 std::vector<std::string>
const& iFileNames2,
58 bool useSecFileMapSorted =
false);
64 bool to(Long64_t iIndex);
81 bool getByLabel(std::type_info
const&,
char const*,
char const*,
char const*,
void*)
const override;
85 operator bool()
const;
86 bool atEnd()
const override;
88 Long64_t
size()
const;
125 unsigned int key)
const;
128 std::vector<edm::WrapperBase const*>& foundContainers,
129 std::vector<unsigned int>&
keys)
const;
141 bool toSec(Long64_t iIndex);
152 std::shared_ptr<internal::MultiProductGetter const>
getter_;
std::vector< std::string > const & getProcessHistory() const
Long64_t eventIndex() const
const MultiChainEvent & operator++() override
Long64_t secondaryFileIndex() const override
bool atEnd() const override
std::shared_ptr< ChainEvent > event1_
static const std::string triggerResults
ChainEvent const * primary() const
unsigned int LuminosityBlockNumber_t
bool getByLabel(std::type_info const &, char const *, char const *, char const *, void *) const override
const std::string getBranchNameFor(std::type_info const &, char const *, char const *, char const *) const override
MultiChainEvent(std::vector< std::string > const &iFileNames1, std::vector< std::string > const &iFileNames2, bool useSecFileMapSorted=false)
bool useSecFileMapSorted_
virtual bool getByLabel(std::type_info const &, char const *, char const *, char const *, void *) const =0
unsigned long long EventNumber_t
static void throwProductNotFoundException(std::type_info const &, char const *, char const *, char const *)
void getThinnedProducts(edm::ProductID const &pid, std::vector< edm::WrapperBase const * > &foundContainers, std::vector< unsigned int > &keys) const
edm::WrapperBase const * getByProductID(edm::ProductID const &) const override
std::vector< edm::BranchDescription > const & getBranchDescriptions() const
std::shared_ptr< internal::MultiProductGetter const > getter_
bool to(Long64_t iIndex)
Go to the event at index iIndex.
std::map< edm::EventID, Long64_t > sec_file_index_map
std::map< event_id_range, Long64_t > sec_file_range_index_map
const MultiChainEvent & operator=(Event const &)
edm::TriggerNames const & triggerNames(edm::TriggerResults const &triggerResults) const override
Long64_t eventIndexSec() const
ChainEvent const * secondary() const
fwlite::Run const & getRun()
edm::TriggerResultsByName triggerResultsByName(edm::TriggerResults const &triggerResults) const override
std::variant< unsigned int, detail::GetThinnedKeyFromExceptionFactory, std::monostate > OptionalThinnedKey
edm::ParameterSet const * parameterSet(edm::ParameterSetID const &psID) const override
bool toSec(Long64_t iIndex)
Go to the event from secondary files at index iIndex.
const MultiChainEvent & toBegin() override
edm::OptionalThinnedKey getThinnedKeyFrom(edm::ProductID const &parent, unsigned int key, edm::ProductID const &thinned) const
std::shared_ptr< ChainEvent > event2_
Long64_t fileIndex() const override
fwlite::LuminosityBlock const & getLuminosityBlock()
sec_file_range_index_map secFileMapSorted_
std::pair< edm::EventID, edm::EventID > event_id_range
~MultiChainEvent() override
TFile * getTFileSec() const
std::optional< std::tuple< edm::WrapperBase const *, unsigned int > > getThinnedProduct(edm::ProductID const &pid, unsigned int key) const
edm::ProcessHistory const & processHistory() const override
edm::EventAuxiliary const & eventAuxiliary() const override