CMS 3D CMS Logo

TFWLiteSelectorBasic.cc
Go to the documentation of this file.
1 // -*- C++ -*-
2 
3 //
4 // Package: TFWLiteSelector
5 // Class : TFWLiteSelectorBasic
6 //
7 // Implementation:
8 // <Notes on implementation>
9 //
10 // Original Author: Chris Jones
11 // Created: Tue Jun 27 17:58:10 EDT 2006
12 //
13 
14 // user include files
16 
26 #include "DataFormats/Provenance/interface/EventEntryDescription.h" // kludge to allow compilation
50 
51 // system include files
52 #include "TBranch.h"
53 #include "TChain.h"
54 #include "TFile.h"
55 #include "TTree.h"
56 
57 #include <iostream>
58 #include <memory>
59 #include <string>
60 #include <vector>
61 #include <unordered_map>
62 
63 namespace edm {
64  namespace root {
66  public:
67  FWLiteDelayedReader() : entry_(-1), eventTree_(nullptr) {}
68  void setEntry(Long64_t iEntry) { entry_ = iEntry; }
69  void setTree(TTree* iTree) { eventTree_ = iTree; }
70  void set(std::shared_ptr<std::unordered_map<unsigned int, BranchDescription const*>> iMap) {
71  bidToDesc_ = std::move(iMap);
72  }
73 
74  private:
75  std::unique_ptr<WrapperBase> getTheProduct(BranchID const& k) const;
76  std::unique_ptr<WrapperBase> getProduct_(BranchID const& k, EDProductGetter const* ep) override;
77  virtual std::unique_ptr<EventEntryDescription> getProvenance_(BranchKey const&) const {
78  return std::unique_ptr<EventEntryDescription>();
79  }
80  void mergeReaders_(DelayedReader*) override {}
81  void reset_() override {}
82 
84  const override {
85  return nullptr;
86  }
88  const override {
89  return nullptr;
90  };
91 
92  Long64_t entry_;
93  TTree* eventTree_;
94  std::shared_ptr<std::unordered_map<unsigned int, BranchDescription const*>> bidToDesc_;
95  };
96 
97  std::unique_ptr<WrapperBase> FWLiteDelayedReader::getProduct_(BranchID const& k, EDProductGetter const* /*ep*/) {
98  return getTheProduct(k);
99  }
100 
101  std::unique_ptr<WrapperBase> FWLiteDelayedReader::getTheProduct(BranchID const& k) const {
102  auto itFind = bidToDesc_->find(k.id());
103  if (itFind == bidToDesc_->end()) {
104  throw Exception(errors::ProductNotFound) << "could not find entry for product " << k;
105  }
106  BranchDescription const& bDesc = *(itFind->second);
107 
108  TBranch* branch = eventTree_->GetBranch(bDesc.branchName().c_str());
109  if (nullptr == branch) {
110  throw cms::Exception("MissingBranch") << "could not find branch named '" << bDesc.branchName() << "'"
111  << "\n Perhaps the data being requested was not saved in this file?";
112  }
113  //find the class type
116  if (!bool(classType)) {
117  throw cms::Exception("MissingDictionary") << "could not find dictionary for type '" << fullName << "'"
118  << "\n Please make sure all the necessary libraries are available.";
119  }
120 
121  //create an instance of it
122  ObjectWithDict wrapperObj = classType.construct();
123  if (nullptr == wrapperObj.address()) {
124  throw cms::Exception("FailedToCreate") << "could not create an instance of '" << fullName << "'";
125  }
126  void* address = wrapperObj.address();
127  branch->SetAddress(&address);
128  ObjectWithDict edProdObj = wrapperObj.castObject(TypeWithDict::byName("edm::WrapperBase"));
129 
130  WrapperBase* prod = reinterpret_cast<WrapperBase*>(edProdObj.address());
131 
132  if (nullptr == prod) {
133  throw cms::Exception("FailedConversion") << "failed to convert a '" << fullName << "' to a edm::WrapperBase."
134  << "Please contact developers since something is very wrong.";
135  }
136  branch->GetEntry(entry_);
137  return std::unique_ptr<WrapperBase>(prod);
138  }
139 
142  : tree_(nullptr),
143  reg_(new ProductRegistry()),
144  bidToDesc_(std::make_shared<std::unordered_map<unsigned int, BranchDescription const*>>()),
147  // Note that thinned collections are not supported yet, the next
148  // line just makes it compile but when the Ref or Ptr tries to
149  // find the thinned collection it will report them not found.
150  // More work needed here if this is needed (we think no one
151  // is using TFWLiteSelector anymore and intend to implement
152  // this properly if it turns out we are wrong)
154  processNames_(),
156  prov_(),
160  }
161  void setTree(TTree* iTree) {
162  tree_ = iTree;
163  reader_->setTree(iTree);
164  }
165 
166  TTree const* tree() const { return get_underlying_safe(tree_); }
167  TTree*& tree() { return get_underlying_safe(tree_); }
168  std::shared_ptr<ProductRegistry const> reg() const { return get_underlying_safe(reg_); }
169  std::shared_ptr<ProductRegistry>& reg() { return get_underlying_safe(reg_); }
170  std::shared_ptr<BranchIDListHelper const> branchIDListHelper() const {
172  }
173  std::shared_ptr<BranchIDListHelper>& branchIDListHelper() { return get_underlying_safe(branchIDListHelper_); }
174  std::shared_ptr<ThinnedAssociationsHelper const> thinnedAssociationsHelper() const {
176  }
177  std::shared_ptr<ThinnedAssociationsHelper>& thinnedAssociationsHelper() {
179  }
180 
189  std::vector<EventEntryDescription> prov_;
190  std::vector<EventEntryDescription const*> pointerToBranchBuffer_;
192 
197  };
198  } // namespace root
199 } // namespace edm
200 
201 //
202 // constants, enums and typedefs
203 //
204 
205 //
206 // static data member definitions
207 //
208 
209 //
210 // constructors and destructor
211 //
212 TFWLiteSelectorBasic::TFWLiteSelectorBasic() : m_(new edm::root::TFWLiteSelectorMembers), everythingOK_(false) {}
213 
214 // TFWLiteSelectorBasic::TFWLiteSelectorBasic(TFWLiteSelectorBasic const& rhs)
215 // {
216 // // do actual copying here;
217 // }
218 
220 
221 //
222 // assignment operators
223 //
224 // TFWLiteSelectorBasic const& TFWLiteSelectorBasic::operator=(TFWLiteSelectorBasic const& rhs)
225 // {
226 // //An exception safe implementation is
227 // TFWLiteSelectorBasic temp(rhs);
228 // swap(rhs);
229 //
230 // return *this;
231 // }
232 
233 //
234 // member functions
235 //
236 void TFWLiteSelectorBasic::Begin(TTree* iTree) {
237  Init(iTree);
238  begin(fInput);
239 }
240 
242  Init(iTree);
243  preProcessing(fInput, *fOutput);
244 }
245 
246 void TFWLiteSelectorBasic::Init(TTree* iTree) {
247  if (iTree == nullptr)
248  return;
249  m_->setTree(iTree);
250 }
251 
253  //std::cout << "Notify start" << std::endl;
254  //we have switched to a new file
255  //get new file from Tree
256  if (nullptr == m_->tree_) {
257  std::cout << "No tree" << std::endl;
258  return kFALSE;
259  }
260  TFile* file = m_->tree_->GetCurrentFile();
261  if (nullptr == file) {
262  //When in Rome, do as the Romans
263  TChain* chain = dynamic_cast<TChain*>(m_->tree());
264  if (nullptr == chain) {
265  std::cout << "No file" << std::endl;
266  return kFALSE;
267  }
268  file = chain->GetFile();
269  if (nullptr == file) {
270  std::cout << "No file" << std::endl;
271  return kFALSE;
272  }
273  }
274  setupNewFile(*file);
275  return everythingOK_ ? kTRUE : kFALSE;
276 }
277 
278 namespace {
279  struct Operate {
280  Operate(edm::EDProductGetter const* iGetter) : old_(setRefCoreStreamer(iGetter)) {}
281 
282  ~Operate() { setRefCoreStreamer(old_); }
283 
284  private:
285  edm::EDProductGetter const* old_;
286  };
287 } // namespace
288 
289 Bool_t TFWLiteSelectorBasic::Process(Long64_t iEntry) {
290  //std::cout << "Process start" << std::endl;
291  if (everythingOK_) {
292  std::unique_ptr<edm::EventAuxiliary> eaux = std::make_unique<edm::EventAuxiliary>();
293  edm::EventAuxiliary& aux = *eaux;
294  edm::EventAuxiliary* pAux = eaux.get();
295  TBranch* branch = m_->tree_->GetBranch(edm::BranchTypeToAuxiliaryBranchName(edm::InEvent).c_str());
296 
297  branch->SetAddress(&pAux);
298  branch->GetEntry(iEntry);
299 
300  //NEW m_->processNames_ = aux.processHistory();
301 
302  // std::cout << "ProcessNames\n";
303  // for(auto const& name : m_->processNames_) {
304  // std::cout << " " << name << std::endl;
305  // }
306 
307  edm::EventSelectionIDVector eventSelectionIDs;
308  edm::EventSelectionIDVector* pEventSelectionIDVector = &eventSelectionIDs;
309  TBranch* eventSelectionsBranch = m_->tree_->GetBranch(edm::poolNames::eventSelectionsBranchName().c_str());
310  if (!eventSelectionsBranch) {
311  throw edm::Exception(edm::errors::FatalRootError) << "Failed to find event Selections branch in event tree";
312  }
313  eventSelectionsBranch->SetAddress(&pEventSelectionIDVector);
314  eventSelectionsBranch->GetEntry(iEntry);
315 
316  edm::BranchListIndexes branchListIndexes;
317  edm::BranchListIndexes* pBranchListIndexes = &branchListIndexes;
318  TBranch* branchListIndexBranch = m_->tree_->GetBranch(edm::poolNames::branchListIndexesBranchName().c_str());
319  if (!branchListIndexBranch) {
320  throw edm::Exception(edm::errors::FatalRootError) << "Failed to find branch list index branch in event tree";
321  }
322  branchListIndexBranch->SetAddress(&pBranchListIndexes);
323  branchListIndexBranch->GetEntry(iEntry);
324  m_->branchIDListHelper_->fixBranchListIndexes(branchListIndexes);
325 
326  try {
327  m_->reader_->setEntry(iEntry);
328  auto runAux = std::make_shared<edm::RunAuxiliary>(aux.run(), aux.time(), aux.time());
329  auto rp = std::make_shared<edm::RunPrincipal>(runAux, m_->reg(), m_->pc_, nullptr, 0);
330  auto lbp = std::make_shared<edm::LuminosityBlockPrincipal>(m_->reg(), m_->pc_, nullptr, 0);
331  lbp->setAux(edm::LuminosityBlockAuxiliary(rp->run(), 1, aux.time(), aux.time()));
332  auto history = m_->phreg_->getMapped(eaux->processHistoryID());
333  m_->ep_->fillEventPrincipal(*eaux,
334  history,
335  std::move(eventSelectionIDs),
336  std::move(branchListIndexes),
337  *(m_->provRetriever_),
338  m_->reader_.get());
339  lbp->setRunPrincipal(rp);
340  m_->ep_->setLuminosityBlockPrincipal(lbp.get());
341  m_->processNames_ = m_->ep_->processHistory();
342 
343  edm::Event event(*m_->ep_, m_->md_, nullptr);
344 
345  //Make the event principal accessible to edm::Ref's
346  Operate sentry(m_->ep_->prodGetter());
347  process(event);
348  } catch (std::exception const& iEx) {
349  std::cout << "While processing entry " << iEntry << " the following exception was caught \n"
350  << iEx.what() << std::endl;
351  } catch (...) {
352  std::cout << "While processing entry " << iEntry << " an unknown exception was caught" << std::endl;
353  }
354  }
355  return everythingOK_ ? kTRUE : kFALSE;
356 }
357 
359 
361 
363  //look up meta-data
364  //get product registry
365 
366  //std::vector<edm::EventProcessHistoryID> eventProcessHistoryIDs_;
367  TTree* metaDataTree = dynamic_cast<TTree*>(iFile.Get(edm::poolNames::metaDataTreeName().c_str()));
368  if (!metaDataTree) {
369  std::cout << "could not find TTree " << edm::poolNames::metaDataTreeName() << std::endl;
370  everythingOK_ = false;
371  return;
372  }
373  edm::FileFormatVersion* fftPtr = &(m_->fileFormatVersion_);
374  if (metaDataTree->FindBranch(edm::poolNames::fileFormatVersionBranchName().c_str()) != nullptr) {
375  metaDataTree->SetBranchAddress(edm::poolNames::fileFormatVersionBranchName().c_str(), &fftPtr);
376  }
377 
378  edm::ProductRegistry* pReg = &(*m_->reg_);
379  metaDataTree->SetBranchAddress(edm::poolNames::productDescriptionBranchName().c_str(), &(pReg));
380 
381  typedef std::map<edm::ParameterSetID, edm::ParameterSetBlob> PsetMap;
382  PsetMap psetMap;
383  PsetMap* psetMapPtr = &psetMap;
384  if (metaDataTree->FindBranch(edm::poolNames::parameterSetMapBranchName().c_str()) != nullptr) {
385  metaDataTree->SetBranchAddress(edm::poolNames::parameterSetMapBranchName().c_str(), &psetMapPtr);
386  } else {
387  TTree* psetTree = dynamic_cast<TTree*>(iFile.Get(edm::poolNames::parameterSetsTreeName().c_str()));
388  if (nullptr == psetTree) {
390  << "Could not find tree " << edm::poolNames::parameterSetsTreeName() << " in the input file.\n";
391  }
392  typedef std::pair<edm::ParameterSetID, edm::ParameterSetBlob> IdToBlobs;
393  IdToBlobs idToBlob;
394  IdToBlobs* pIdToBlob = &idToBlob;
395  psetTree->SetBranchAddress(edm::poolNames::idToParameterSetBlobsBranchName().c_str(), &pIdToBlob);
396  for (long long i = 0; i != psetTree->GetEntries(); ++i) {
397  psetTree->GetEntry(i);
398  psetMap.insert(idToBlob);
399  }
400  }
401 
403  edm::ProcessHistoryRegistry::vector_type* pHistVectorPtr = &pHistVector;
404  if (metaDataTree->FindBranch(edm::poolNames::processHistoryBranchName().c_str()) != nullptr) {
405  metaDataTree->SetBranchAddress(edm::poolNames::processHistoryBranchName().c_str(), &pHistVectorPtr);
406  }
407 
408  edm::ProcessConfigurationVector procConfigVector;
409  edm::ProcessConfigurationVector* procConfigVectorPtr = &procConfigVector;
410  if (metaDataTree->FindBranch(edm::poolNames::processConfigurationBranchName().c_str()) != nullptr) {
411  metaDataTree->SetBranchAddress(edm::poolNames::processConfigurationBranchName().c_str(), &procConfigVectorPtr);
412  }
413 
414  auto branchIDListsHelper = std::make_shared<edm::BranchIDListHelper>();
415  edm::BranchIDLists const* branchIDListsPtr = &branchIDListsHelper->branchIDLists();
416  if (metaDataTree->FindBranch(edm::poolNames::branchIDListBranchName().c_str()) != nullptr) {
417  metaDataTree->SetBranchAddress(edm::poolNames::branchIDListBranchName().c_str(), &branchIDListsPtr);
418  }
419 
420  metaDataTree->GetEntry(0);
421 
422  for (auto& prod : m_->reg_->productListUpdator()) {
423  prod.second.init();
424  setIsMergeable(prod.second);
425  }
426 
427  // Merge into the registries. For now, we do NOT merge the product registry.
429  for (auto const& entry : psetMap) {
430  edm::ParameterSet pset(entry.second.pset());
431  pset.setID(entry.first);
432  psetRegistry.insertMapped(pset);
433  }
434 
435  for (auto const& ph : pHistVector) {
436  m_->phreg_->registerProcessHistory(ph);
437  }
438 
439  m_->pointerToBranchBuffer_.erase(m_->pointerToBranchBuffer_.begin(), m_->pointerToBranchBuffer_.end());
440 
441  std::unique_ptr<edm::ProductRegistry> newReg = std::make_unique<edm::ProductRegistry>();
442 
443  edm::ProductRegistry::ProductList& prodList = m_->reg_->productListUpdator();
444  {
445  for (auto& item : prodList) {
446  edm::BranchDescription& prod = item.second;
447  //std::cout << "productname = " << item.second << " end " << std::endl;
448  std::string newFriendlyName = edm::friendlyname::friendlyName(prod.className());
449  if (newFriendlyName == prod.friendlyClassName()) {
450  newReg->copyProduct(prod);
451  } else {
452  if (m_->fileFormatVersion_.splitProductIDs()) {
454  << "Cannot change friendly class name algorithm without more development work\n"
455  << "to update BranchIDLists. Contact the framework group.\n";
456  }
458  newBD.updateFriendlyClassName();
459  newReg->copyProduct(newBD);
460  }
461  prod.init();
462  }
463 
464  m_->reg().reset(newReg.release());
465  }
466 
467  edm::ProductRegistry::ProductList& prodList2 = m_->reg_->productListUpdator();
468  std::vector<edm::EventEntryDescription> temp(prodList2.size(), edm::EventEntryDescription());
469  m_->prov_.swap(temp);
470  m_->pointerToBranchBuffer_.reserve(prodList2.size());
471 
472  for (auto& item : prodList2) {
473  edm::BranchDescription& prod = item.second;
474  if (prod.branchType() == edm::InEvent) {
475  prod.init();
476  //NEED to do this and check to see if branch exists
477  if (m_->tree_->GetBranch(prod.branchName().c_str()) == nullptr) {
478  prod.setDropped(true);
479  }
480 
481  //std::cout << "id " << it->first << " branch " << it->second << std::endl;
482  //m_->pointerToBranchBuffer_.push_back(&(*itB));
483  //void* tmp = &(m_->pointerToBranchBuffer_.back());
484  //edm::EventEntryDescription* tmp = &(*itB);
485  //CDJ need to fix provenance and be backwards compatible, for now just don't read the branch
486  //m_->metaTree_->SetBranchAddress(prod.branchName().c_str(), tmp);
487  }
488  }
489  m_->branchIDListHelper_->updateFromInput(*branchIDListsPtr);
490  m_->reg_->setFrozen();
491  m_->bidToDesc_->clear();
492  for (auto const& p : m_->reg_->productList()) {
493  m_->bidToDesc_->emplace(p.second.branchID().id(), &p.second);
494  }
495  m_->ep_ = std::make_shared<edm::EventPrincipal>(
496  m_->reg(), m_->branchIDListHelper(), m_->thinnedAssociationsHelper(), m_->pc_, nullptr);
497  everythingOK_ = true;
498 }
499 
500 //
501 // const member functions
502 //
503 
504 //
505 // static member functions
506 //
edm::poolNames::idToParameterSetBlobsBranchName
std::string const & idToParameterSetBlobsBranchName()
Definition: BranchType.cc:206
edm::pset::Registry::instance
static Registry * instance()
Definition: Registry.cc:12
TFWLiteSelectorBasic::Terminate
void Terminate() override
Definition: TFWLiteSelectorBasic.cc:360
ThinnedAssociationsHelper.h
TFWLiteSelectorBasic::terminate
virtual void terminate(TList &out)=0
FriendlyName.h
edm::TypeWithDict::byName
static TypeWithDict byName(std::string const &name)
Definition: TypeWithDict.cc:74
edm::poolNames::branchIDListBranchName
std::string const & branchIDListBranchName()
Definition: BranchType.cc:176
edm::root::TFWLiteSelectorMembers::fileFormatVersion_
FileFormatVersion fileFormatVersion_
Definition: TFWLiteSelectorBasic.cc:191
TFWLiteSelectorBasic::preProcessing
virtual void preProcessing(const TList *in, TList &out)=0
edm::EventEntryDescription
Definition: EventEntryDescription.h:28
mps_fire.i
i
Definition: mps_fire.py:428
edm::poolNames::fileFormatVersionBranchName
std::string const & fileFormatVersionBranchName()
Definition: BranchType.cc:182
TFWLiteSelectorBasic::postProcessing
virtual void postProcessing(TList &out)=0
funct::false
false
Definition: Factorize.h:29
edm::ObjectWithDict::address
void * address() const
Definition: ObjectWithDict.cc:27
edm::root::TFWLiteSelectorMembers::reader_
edm::propagate_const< std::shared_ptr< FWLiteDelayedReader > > reader_
Definition: TFWLiteSelectorBasic.cc:188
edm::setIsMergeable
void setIsMergeable(BranchDescription &)
Definition: setIsMergeable.cc:15
BranchIDListHelper.h
MicroEventContent_cff.branch
branch
Definition: MicroEventContent_cff.py:178
edm
HLT enums.
Definition: AlignableModifier.h:19
mps_splice.entry
entry
Definition: mps_splice.py:68
edm::root::FWLiteDelayedReader::getProvenance_
virtual std::unique_ptr< EventEntryDescription > getProvenance_(BranchKey const &) const
Definition: TFWLiteSelectorBasic.cc:77
AlCaHLTBitMon_ParallelJobs.p
p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
ParameterSetBlob.h
TFWLiteSelectorBasic::Process
Bool_t Process(Long64_t) override
Definition: TFWLiteSelectorBasic.cc:289
edm::root::TFWLiteSelectorMembers::bidToDesc_
edm::propagate_const< std::shared_ptr< std::unordered_map< unsigned int, BranchDescription const * > > > bidToDesc_
Definition: TFWLiteSelectorBasic.cc:183
edm::ObjectWithDict
Definition: ObjectWithDict.h:17
gather_cfg.cout
cout
Definition: gather_cfg.py:144
edm::root::TFWLiteSelectorMembers::ep_
edm::propagate_const< std::shared_ptr< edm::EventPrincipal > > ep_
Definition: TFWLiteSelectorBasic.cc:195
edm::root::FWLiteDelayedReader::setEntry
void setEntry(Long64_t iEntry)
Definition: TFWLiteSelectorBasic.cc:68
edm::root::TFWLiteSelectorMembers::thinnedAssociationsHelper
std::shared_ptr< ThinnedAssociationsHelper const > thinnedAssociationsHelper() const
Definition: TFWLiteSelectorBasic.cc:174
edm::ObjectWithDict::castObject
ObjectWithDict castObject(TypeWithDict const &) const
Definition: ObjectWithDict.cc:51
edm::poolNames::parameterSetsTreeName
std::string const & parameterSetsTreeName()
Definition: BranchType.cc:204
edm::root::FWLiteDelayedReader::set
void set(std::shared_ptr< std::unordered_map< unsigned int, BranchDescription const * >> iMap)
Definition: TFWLiteSelectorBasic.cc:70
edm::BranchListIndexes
std::vector< BranchListIndex > BranchListIndexes
Definition: BranchListIndex.h:18
edm::root::TFWLiteSelectorMembers::thinnedAssociationsHelper
std::shared_ptr< ThinnedAssociationsHelper > & thinnedAssociationsHelper()
Definition: TFWLiteSelectorBasic.cc:177
edm::propagate_const::get
constexpr element_type const * get() const
Definition: propagate_const.h:64
DelayedReader.h
ProcessHistoryRegistry.h
TypeWithDict.h
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
ProductRegistry.h
TFWLiteSelectorBasic::SlaveBegin
void SlaveBegin(TTree *) override
Definition: TFWLiteSelectorBasic.cc:241
edm::root::TFWLiteSelectorMembers::provRetriever_
edm::propagate_const< std::shared_ptr< edm::ProductProvenanceRetriever > > provRetriever_
Definition: TFWLiteSelectorBasic.cc:193
watchdog.const
const
Definition: watchdog.py:83
groupFilesInBlocks.temp
list temp
Definition: groupFilesInBlocks.py:142
edm::poolNames::branchListIndexesBranchName
std::string const & branchListIndexesBranchName()
Definition: BranchType.cc:202
TFWLiteSelectorBasic::Notify
Bool_t Notify() override
Definition: TFWLiteSelectorBasic.cc:252
edm::BranchTypeToAuxiliaryBranchName
std::string const & BranchTypeToAuxiliaryBranchName(BranchType const &branchType)
Definition: BranchType.cc:109
edm::ModuleDescription
Definition: ModuleDescription.h:21
TFWLiteSelectorBasic.h
edm::root::TFWLiteSelectorMembers::reg_
edm::propagate_const< std::shared_ptr< ProductRegistry > > reg_
Definition: TFWLiteSelectorBasic.cc:182
edm::root::FWLiteDelayedReader::bidToDesc_
std::shared_ptr< std::unordered_map< unsigned int, BranchDescription const * > > bidToDesc_
Definition: TFWLiteSelectorBasic.cc:94
edm::ProductRegistry
Definition: ProductRegistry.h:37
ModuleDescription.h
ObjectWithDict.h
edm::LuminosityBlockAuxiliary
Definition: LuminosityBlockAuxiliary.h:15
EDMException.h
edm::EDProductGetter
Definition: EDProductGetter.h:41
edm::errors::ProductNotFound
Definition: EDMException.h:33
edm::propagate_const< TTree * >
ProcessHistory.h
edm::root::TFWLiteSelectorMembers
Definition: TFWLiteSelectorBasic.cc:140
edm::StreamContext
Definition: StreamContext.h:31
ProcessConfiguration.h
edm::root::TFWLiteSelectorMembers::tree
TTree *& tree()
Definition: TFWLiteSelectorBasic.cc:167
RefCoreStreamer.h
edm::poolNames::processHistoryBranchName
std::string const & processHistoryBranchName()
Definition: BranchType.cc:170
edm::errors::FatalRootError
Definition: EDMException.h:51
EventPrincipal.h
edm::root::TFWLiteSelectorMembers::reg
std::shared_ptr< ProductRegistry > & reg()
Definition: TFWLiteSelectorBasic.cc:169
BranchListIndex.h
edm::BranchID
Definition: BranchID.h:14
dumpMFGeometry_cfg.prod
prod
Definition: dumpMFGeometry_cfg.py:24
TFWLiteSelectorBasic::process
virtual void process(const edm::Event &event)=0
edm::ProcessHistoryRegistry::vector_type
ProcessHistoryVector vector_type
Definition: ProcessHistoryRegistry.h:22
edm::InEvent
Definition: BranchType.h:11
edm::poolNames::parameterSetMapBranchName
std::string const & parameterSetMapBranchName()
Definition: BranchType.cc:161
dqmdumpme.k
k
Definition: dqmdumpme.py:60
edm::root::FWLiteDelayedReader::getProduct_
std::unique_ptr< WrapperBase > getProduct_(BranchID const &k, EDProductGetter const *ep) override
Definition: TFWLiteSelectorBasic.cc:97
TFWLiteSelectorBasic::everythingOK_
bool everythingOK_
Definition: TFWLiteSelectorBasic.h:99
edm::root::FWLiteDelayedReader::mergeReaders_
void mergeReaders_(DelayedReader *) override
Definition: TFWLiteSelectorBasic.cc:80
edm::BranchIDLists
std::vector< BranchIDList > BranchIDLists
Definition: BranchIDList.h:19
edm::EventAuxiliary
Definition: EventAuxiliary.h:14
TFWLiteSelectorBasic::m_
edm::propagate_const< std::shared_ptr< edm::root::TFWLiteSelectorMembers > > m_
Definition: TFWLiteSelectorBasic.h:98
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
newFWLiteAna.fullName
fullName
Definition: newFWLiteAna.py:122
edm::root::TFWLiteSelectorMembers::pc_
edm::ProcessConfiguration pc_
Definition: TFWLiteSelectorBasic.cc:194
edm::root::TFWLiteSelectorMembers::phreg_
edm::propagate_const< std::shared_ptr< ProcessHistoryRegistry > > phreg_
Definition: TFWLiteSelectorBasic.cc:184
edm::poolNames::eventSelectionsBranchName
std::string const & eventSelectionsBranchName()
Definition: BranchType.cc:200
cppFunctionSkipper.exception
exception
Definition: cppFunctionSkipper.py:10
LuminosityBlockAuxiliary.h
edm::ThinnedAssociationsHelper
Definition: ThinnedAssociationsHelper.h:37
edm::ProductRegistry::ProductList
std::map< BranchKey, BranchDescription > ProductList
Definition: ProductRegistry.h:39
BranchDescription.h
edm::TypeWithDict
Definition: TypeWithDict.h:38
edm::ParameterSet
Definition: ParameterSet.h:47
edm::FileFormatVersion
Definition: FileFormatVersion.h:7
edm::root::TFWLiteSelectorMembers::thinnedAssociationsHelper_
edm::propagate_const< std::shared_ptr< ThinnedAssociationsHelper > > thinnedAssociationsHelper_
Definition: TFWLiteSelectorBasic.cc:186
Event.h
TFWLiteSelectorBasic::SlaveTerminate
void SlaveTerminate() override
Definition: TFWLiteSelectorBasic.cc:358
edm::poolNames::productDescriptionBranchName
std::string const & productDescriptionBranchName()
Definition: BranchType.cc:155
TFWLiteSelectorBasic::TFWLiteSelectorBasic
TFWLiteSelectorBasic()
Definition: TFWLiteSelectorBasic.cc:212
edm::root::TFWLiteSelectorMembers::branchIDListHelper_
edm::propagate_const< std::shared_ptr< BranchIDListHelper > > branchIDListHelper_
Definition: TFWLiteSelectorBasic.cc:185
edm::root::FWLiteDelayedReader::reset_
void reset_() override
Definition: TFWLiteSelectorBasic.cc:81
edm::friendlyname::friendlyName
std::string friendlyName(std::string const &iFullName)
Definition: FriendlyName.cc:278
FileFormatVersion.h
edm::root::TFWLiteSelectorMembers::setTree
void setTree(TTree *iTree)
Definition: TFWLiteSelectorBasic.cc:161
edm::root::TFWLiteSelectorMembers::tree_
edm::propagate_const< TTree * > tree_
Definition: TFWLiteSelectorBasic.cc:181
RunPrincipal.h
edm::root::TFWLiteSelectorMembers::TFWLiteSelectorMembers
TFWLiteSelectorMembers()
Definition: TFWLiteSelectorBasic.cc:141
TFWLiteSelectorBasic::~TFWLiteSelectorBasic
~TFWLiteSelectorBasic() override
Definition: TFWLiteSelectorBasic.cc:219
edmPickEvents.event
event
Definition: edmPickEvents.py:273
edm::root::TFWLiteSelectorMembers::pointerToBranchBuffer_
std::vector< EventEntryDescription const * > pointerToBranchBuffer_
Definition: TFWLiteSelectorBasic.cc:190
edm::BranchIDListHelper
Definition: BranchIDListHelper.h:15
edm::ProcessConfigurationVector
std::vector< ProcessConfiguration > ProcessConfigurationVector
Definition: ProcessConfiguration.h:62
printConversionInfo.aux
aux
Definition: printConversionInfo.py:19
createfilelist.int
int
Definition: createfilelist.py:10
FrontierConditions_GlobalTag_cff.file
file
Definition: FrontierConditions_GlobalTag_cff.py:13
BranchType.h
root
Definition: RooFitFunction.h:10
edm::WrapperBase
Definition: WrapperBase.h:23
TFWLiteSelectorBasic::setupNewFile
void setupNewFile(TFile &)
Definition: TFWLiteSelectorBasic.cc:362
edm::root::TFWLiteSelectorMembers::md_
edm::ModuleDescription md_
Definition: TFWLiteSelectorBasic.cc:196
edm::BranchDescription::branchName
std::string const & branchName() const
Definition: BranchDescription.h:119
B2GTnPMonitor_cfi.item
item
Definition: B2GTnPMonitor_cfi.py:147
edm::root::FWLiteDelayedReader
Definition: TFWLiteSelectorBasic.cc:65
edm::root::FWLiteDelayedReader::postEventReadFromSourceSignal
signalslot::Signal< void(StreamContext const &, ModuleCallingContext const &)> const * postEventReadFromSourceSignal() const override
Definition: TFWLiteSelectorBasic.cc:87
BranchIDList.h
edm::root::TFWLiteSelectorMembers::reg
std::shared_ptr< ProductRegistry const > reg() const
Definition: TFWLiteSelectorBasic.cc:168
edm::wrappedClassName
std::string wrappedClassName(std::string const &iFullName)
Definition: WrappedClassName.cc:4
LuminosityBlockPrincipal.h
edm::pset::Registry::insertMapped
bool insertMapped(value_type const &v, bool forceUpdate=false)
Definition: Registry.cc:32
edm::BranchDescription::updateFriendlyClassName
void updateFriendlyClassName()
Definition: BranchDescription.cc:294
ProductProvenanceRetriever.h
TFWLiteSelectorBasic::Begin
void Begin(TTree *) override
Definition: TFWLiteSelectorBasic.cc:236
Registry.h
edm::root::FWLiteDelayedReader::FWLiteDelayedReader
FWLiteDelayedReader()
Definition: TFWLiteSelectorBasic.cc:67
edm::ProductProvenanceRetriever
Definition: ProductProvenanceRetriever.h:56
edm::root::FWLiteDelayedReader::eventTree_
TTree * eventTree_
Definition: TFWLiteSelectorBasic.cc:93
WrappedClassName.h
EventEntryDescription.h
eostools.move
def move(src, dest)
Definition: eostools.py:511
std
Definition: JetResolutionObject.h:76
edm::root::TFWLiteSelectorMembers::branchIDListHelper
std::shared_ptr< BranchIDListHelper const > branchIDListHelper() const
Definition: TFWLiteSelectorBasic.cc:170
edm::root::FWLiteDelayedReader::setTree
void setTree(TTree *iTree)
Definition: TFWLiteSelectorBasic.cc:69
edm::poolNames::metaDataTreeName
std::string const & metaDataTreeName()
Definition: BranchType.cc:152
setIsMergeable.h
EventAuxiliary.h
edm::root::FWLiteDelayedReader::preEventReadFromSourceSignal
signalslot::Signal< void(StreamContext const &, ModuleCallingContext const &)> const * preEventReadFromSourceSignal() const override
Definition: TFWLiteSelectorBasic.cc:83
Exception
Definition: hltDiff.cc:246
TFWLiteSelectorBasic::begin
virtual void begin(TList *&in)=0
RunAuxiliary.h
edm::root::TFWLiteSelectorMembers::branchIDListHelper
std::shared_ptr< BranchIDListHelper > & branchIDListHelper()
Definition: TFWLiteSelectorBasic.cc:173
edm::DelayedReader
Definition: DelayedReader.h:29
edm::setRefCoreStreamer
void setRefCoreStreamer(bool resetAll=false)
Definition: RefCoreStreamer.cc:83
edm::ProcessHistoryRegistry
Definition: ProcessHistoryRegistry.h:18
funct::void
TEMPL(T2) struct Divides void
Definition: Factorize.h:24
edm::root::TFWLiteSelectorMembers::prov_
std::vector< EventEntryDescription > prov_
Definition: TFWLiteSelectorBasic.cc:189
edm::BranchDescription
Definition: BranchDescription.h:32
edm::BranchDescription::className
std::string const & className() const
Definition: BranchDescription.h:79
edm::ProcessHistory
Definition: ProcessHistory.h:13
edm::root::TFWLiteSelectorMembers::tree
TTree const * tree() const
Definition: TFWLiteSelectorBasic.cc:166
event
Definition: event.py:1
edm::EventSelectionIDVector
std::vector< EventSelectionID > EventSelectionIDVector
Definition: EventSelectionID.h:16
edm::Event
Definition: Event.h:73
get_underlying_safe.h
edm::root::FWLiteDelayedReader::getTheProduct
std::unique_ptr< WrapperBase > getTheProduct(BranchID const &k) const
Definition: TFWLiteSelectorBasic.cc:101
TFWLiteSelectorBasic::Init
void Init(TTree *) override
Definition: TFWLiteSelectorBasic.cc:246
edm::errors::FileReadError
Definition: EDMException.h:50
edm::signalslot::Signal
Definition: DelayedReader.h:26
SiStripBadComponentsDQMServiceTemplate_cfg.ep
ep
Definition: SiStripBadComponentsDQMServiceTemplate_cfg.py:86
edm::root::TFWLiteSelectorMembers::processNames_
ProcessHistory processNames_
Definition: TFWLiteSelectorBasic.cc:187
edm::poolNames::processConfigurationBranchName
std::string const & processConfigurationBranchName()
Definition: BranchType.cc:173
edm::errors::UnimplementedFeature
Definition: EDMException.h:38
chain
Definition: chain.py:1
edm::ProcessConfiguration
Definition: ProcessConfiguration.h:14
edm::BranchKey
Definition: BranchKey.h:17
edm::pset::Registry
Definition: Registry.h:26
EventSelectionID.h
muonDTDigis_cfi.pset
pset
Definition: muonDTDigis_cfi.py:27
edm::ModuleCallingContext
Definition: ModuleCallingContext.h:29
edm::root::FWLiteDelayedReader::entry_
Long64_t entry_
Definition: TFWLiteSelectorBasic.cc:90