CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes
TFWLiteSelectorBasic Class Referenceabstract

#include <FWCore/FWLite/interface/TFWLiteSelectorBasic.h>

Inheritance diagram for TFWLiteSelectorBasic:
TFWLiteSelector< TWorker > TFWLiteSelector< __class__Worker > TFWLiteSelector< ThingsWorker > TFWLiteSelector< TrackAnalysisAlgorithm > tfwliteselectortest::ThingsTSelector __class__< T > tfwliteselectortest::ThingsTSelector2 examples::TrackTSelector

Public Member Functions

virtual void begin (TList *&in)=0
 
virtual void postProcessing (TList &out)=0
 
virtual void preProcessing (const TList *in, TList &out)=0
 
virtual void process (const edm::Event &event)=0
 
virtual void terminate (TList &out)=0
 
 TFWLiteSelectorBasic ()
 
 ~TFWLiteSelectorBasic () override
 

Private Member Functions

void Begin (TTree *) override
 
void Init (TTree *) override
 
Bool_t Notify () override
 
const TFWLiteSelectorBasicoperator= (const TFWLiteSelectorBasic &)
 
Bool_t Process (Long64_t) override
 
void setupNewFile (TFile &)
 
void SlaveBegin (TTree *) override
 
void SlaveTerminate () override
 
void Terminate () override
 
 TFWLiteSelectorBasic (const TFWLiteSelectorBasic &)
 
Int_t Version () const override
 

Private Attributes

bool everythingOK_
 
edm::propagate_const< std::shared_ptr< edm::root::TFWLiteSelectorMembers > > m_
 

Detailed Description

Description: A ROOT TSelector which accesses data using an edm::Event

Usage: By inheriting from this class one can make a TSelector for ROOT which works with PROOF and which allows you to access data using an edm::Event.

Definition at line 42 of file TFWLiteSelectorBasic.h.

Constructor & Destructor Documentation

◆ TFWLiteSelectorBasic() [1/2]

TFWLiteSelectorBasic::TFWLiteSelectorBasic ( )

Definition at line 212 of file TFWLiteSelectorBasic.cc.

◆ ~TFWLiteSelectorBasic()

TFWLiteSelectorBasic::~TFWLiteSelectorBasic ( )
override

Definition at line 219 of file TFWLiteSelectorBasic.cc.

219 {}

◆ TFWLiteSelectorBasic() [2/2]

TFWLiteSelectorBasic::TFWLiteSelectorBasic ( const TFWLiteSelectorBasic )
private

Member Function Documentation

◆ begin()

virtual void TFWLiteSelectorBasic::begin ( TList *&  in)
pure virtual

Called each time the 'client' begins processing (remote 'slaves' do not see this message)

Parameters
inan assignable pointer to a list of objects you want passed to 'preProcessing'. This list is used to communicate with remote slaves. NOTE: you are responsible for deleting this TList and its content once you are done with it.

Implemented in tfwliteselectortest::ThingsTSelector2, examples::TrackTSelector, tfwliteselectortest::ThingsTSelector, and __class__< T >.

Referenced by Begin().

◆ Begin()

void TFWLiteSelectorBasic::Begin ( TTree *  iTree)
overrideprivate

Definition at line 236 of file TFWLiteSelectorBasic.cc.

236  {
237  Init(iTree);
238  begin(fInput);
239 }

References begin(), and Init().

◆ Init()

void TFWLiteSelectorBasic::Init ( TTree *  iTree)
overrideprivate

Definition at line 246 of file TFWLiteSelectorBasic.cc.

246  {
247  if (iTree == nullptr)
248  return;
249  m_->setTree(iTree);
250 }

References m_.

Referenced by Begin(), and SlaveBegin().

◆ Notify()

Bool_t TFWLiteSelectorBasic::Notify ( )
overrideprivate

Definition at line 252 of file TFWLiteSelectorBasic.cc.

252  {
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 }

References gather_cfg::cout, everythingOK_, FrontierConditions_GlobalTag_cff::file, m_, and setupNewFile().

◆ operator=()

const TFWLiteSelectorBasic& TFWLiteSelectorBasic::operator= ( const TFWLiteSelectorBasic )
private

◆ postProcessing()

virtual void TFWLiteSelectorBasic::postProcessing ( TList &  out)
pure virtual

Called each time the 'slave' has seen all the events

Parameters
outthe list of objects that will be sent to 'terminate'. You can Add() additional objects to 'out' at this point as well.

Implemented in TFWLiteSelector< TWorker >, TFWLiteSelector< ThingsWorker >, TFWLiteSelector< __class__Worker >, TFWLiteSelector< TrackAnalysisAlgorithm >, and tfwliteselectortest::ThingsTSelector.

Referenced by SlaveTerminate().

◆ preProcessing()

virtual void TFWLiteSelectorBasic::preProcessing ( const TList *  in,
TList &  out 
)
pure virtual

Called each time the 'slave' is about to start processing

Parameters
ina pointer to the list of objects created in 'begin()'. The pointer can be 0
outa list of objects that are the result of processing (e.g. histograms). You should call 'Add()' for each object you want sent to the 'terminate' method.

Implemented in TFWLiteSelector< TWorker >, TFWLiteSelector< ThingsWorker >, TFWLiteSelector< __class__Worker >, TFWLiteSelector< TrackAnalysisAlgorithm >, and tfwliteselectortest::ThingsTSelector.

Referenced by SlaveBegin().

◆ process()

virtual void TFWLiteSelectorBasic::process ( const edm::Event event)
pure virtual

Call each time the 'slave' gets a new Event

Parameters
eventa standard edm::Event which works just like it does in cmsRun

Implemented in TFWLiteSelector< TWorker >, TFWLiteSelector< ThingsWorker >, TFWLiteSelector< __class__Worker >, TFWLiteSelector< TrackAnalysisAlgorithm >, and tfwliteselectortest::ThingsTSelector.

Referenced by Process().

◆ Process()

Bool_t TFWLiteSelectorBasic::Process ( Long64_t  iEntry)
overrideprivate

Definition at line 289 of file TFWLiteSelectorBasic.cc.

289  {
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 }

References printConversionInfo::aux, MicroEventContent_cff::branch, edm::poolNames::branchListIndexesBranchName(), edm::BranchTypeToAuxiliaryBranchName(), gather_cfg::cout, event(), edm::poolNames::eventSelectionsBranchName(), everythingOK_, cppFunctionSkipper::exception, Exception, edm::errors::FatalRootError, edm::propagate_const< T >::get(), edm::InEvent, m_, eostools::move(), and process().

◆ setupNewFile()

void TFWLiteSelectorBasic::setupNewFile ( TFile &  iFile)
private

Definition at line 362 of file TFWLiteSelectorBasic.cc.

362  {
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 }

References edm::poolNames::branchIDListBranchName(), gather_cfg::cout, mps_splice::entry, everythingOK_, Exception, edm::poolNames::fileFormatVersionBranchName(), edm::errors::FileReadError, edm::friendlyname::friendlyName(), mps_fire::i, edm::poolNames::idToParameterSetBlobsBranchName(), edm::InEvent, edm::pset::Registry::insertMapped(), edm::pset::Registry::instance(), B2GTnPMonitor_cfi::item, m_, edm::poolNames::metaDataTreeName(), AlCaHLTBitMon_ParallelJobs::p, edm::poolNames::parameterSetMapBranchName(), edm::poolNames::parameterSetsTreeName(), edm::poolNames::processConfigurationBranchName(), edm::poolNames::processHistoryBranchName(), dumpMFGeometry_cfg::prod, edm::poolNames::productDescriptionBranchName(), muonDTDigis_cfi::pset, edm::setIsMergeable(), AlCaHLTBitMon_QueryRunRegistry::string, groupFilesInBlocks::temp, edm::errors::UnimplementedFeature, and edm::BranchDescription::updateFriendlyClassName().

Referenced by Notify().

◆ SlaveBegin()

void TFWLiteSelectorBasic::SlaveBegin ( TTree *  iTree)
overrideprivate

Definition at line 241 of file TFWLiteSelectorBasic.cc.

241  {
242  Init(iTree);
243  preProcessing(fInput, *fOutput);
244 }

References Init(), and preProcessing().

◆ SlaveTerminate()

void TFWLiteSelectorBasic::SlaveTerminate ( )
overrideprivate

Definition at line 358 of file TFWLiteSelectorBasic.cc.

358 { postProcessing(*fOutput); }

References postProcessing().

◆ Terminate()

void TFWLiteSelectorBasic::Terminate ( )
overrideprivate

Definition at line 360 of file TFWLiteSelectorBasic.cc.

360 { terminate(*fOutput); }

References terminate().

◆ terminate()

virtual void TFWLiteSelectorBasic::terminate ( TList &  out)
pure virtual

Called each time the 'client' has finished processing.

Parameters
outcontains the accumulated output of all slaves.

Implemented in tfwliteselectortest::ThingsTSelector2, examples::TrackTSelector, tfwliteselectortest::ThingsTSelector, and __class__< T >.

Referenced by Terminate().

◆ Version()

Int_t TFWLiteSelectorBasic::Version ( ) const
inlineoverrideprivate

Definition at line 94 of file TFWLiteSelectorBasic.h.

94 { return 1; }

Member Data Documentation

◆ everythingOK_

bool TFWLiteSelectorBasic::everythingOK_
private

Definition at line 99 of file TFWLiteSelectorBasic.h.

Referenced by Notify(), Process(), and setupNewFile().

◆ m_

edm::propagate_const<std::shared_ptr<edm::root::TFWLiteSelectorMembers> > TFWLiteSelectorBasic::m_
private

Definition at line 98 of file TFWLiteSelectorBasic.h.

Referenced by Init(), Notify(), Process(), and setupNewFile().

edm::poolNames::idToParameterSetBlobsBranchName
std::string const & idToParameterSetBlobsBranchName()
Definition: BranchType.cc:216
edm::pset::Registry::instance
static Registry * instance()
Definition: Registry.cc:12
TFWLiteSelectorBasic::terminate
virtual void terminate(TList &out)=0
edm::poolNames::branchIDListBranchName
std::string const & branchIDListBranchName()
Definition: BranchType.cc:186
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:355
edm::poolNames::fileFormatVersionBranchName
std::string const & fileFormatVersionBranchName()
Definition: BranchType.cc:192
TFWLiteSelectorBasic::postProcessing
virtual void postProcessing(TList &out)=0
edm::setIsMergeable
void setIsMergeable(BranchDescription &)
Definition: setIsMergeable.cc:15
MicroEventContent_cff.branch
branch
Definition: MicroEventContent_cff.py:152
mps_splice.entry
entry
Definition: mps_splice.py:68
AlCaHLTBitMon_ParallelJobs.p
p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
gather_cfg.cout
cout
Definition: gather_cfg.py:144
edm::poolNames::parameterSetsTreeName
std::string const & parameterSetsTreeName()
Definition: BranchType.cc:214
edm::BranchListIndexes
std::vector< BranchListIndex > BranchListIndexes
Definition: BranchListIndex.h:18
groupFilesInBlocks.temp
list temp
Definition: groupFilesInBlocks.py:142
edm::poolNames::branchListIndexesBranchName
std::string const & branchListIndexesBranchName()
Definition: BranchType.cc:212
edm::BranchTypeToAuxiliaryBranchName
std::string const & BranchTypeToAuxiliaryBranchName(BranchType const &branchType)
Definition: BranchType.cc:115
edm::ProductRegistry
Definition: ProductRegistry.h:34
edm::LuminosityBlockAuxiliary
Definition: LuminosityBlockAuxiliary.h:15
edm::propagate_const::get
element_type const * get() const
Definition: propagate_const.h:64
edm::root::TFWLiteSelectorMembers
Definition: TFWLiteSelectorBasic.cc:140
edm::poolNames::processHistoryBranchName
std::string const & processHistoryBranchName()
Definition: BranchType.cc:180
edm::errors::FatalRootError
Definition: EDMException.h:51
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:171
TFWLiteSelectorBasic::everythingOK_
bool everythingOK_
Definition: TFWLiteSelectorBasic.h:99
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
edm::poolNames::eventSelectionsBranchName
std::string const & eventSelectionsBranchName()
Definition: BranchType.cc:210
cppFunctionSkipper.exception
exception
Definition: cppFunctionSkipper.py:10
edm::ProductRegistry::ProductList
std::map< BranchKey, BranchDescription > ProductList
Definition: ProductRegistry.h:36
edm::ParameterSet
Definition: ParameterSet.h:36
edm::FileFormatVersion
Definition: FileFormatVersion.h:7
edm::poolNames::productDescriptionBranchName
std::string const & productDescriptionBranchName()
Definition: BranchType.cc:165
edm::friendlyname::friendlyName
std::string friendlyName(std::string const &iFullName)
Definition: FriendlyName.cc:233
edm::ProcessConfigurationVector
std::vector< ProcessConfiguration > ProcessConfigurationVector
Definition: ProcessConfiguration.h:62
printConversionInfo.aux
aux
Definition: printConversionInfo.py:19
FrontierConditions_GlobalTag_cff.file
file
Definition: FrontierConditions_GlobalTag_cff.py:13
TFWLiteSelectorBasic::setupNewFile
void setupNewFile(TFile &)
Definition: TFWLiteSelectorBasic.cc:362
B2GTnPMonitor_cfi.item
item
Definition: B2GTnPMonitor_cfi.py:147
edm::pset::Registry::insertMapped
bool insertMapped(value_type const &v, bool forceUpdate=false)
Definition: Registry.cc:32
eostools.move
def move(src, dest)
Definition: eostools.py:511
edm::poolNames::metaDataTreeName
std::string const & metaDataTreeName()
Definition: BranchType.cc:162
Exception
Definition: hltDiff.cc:246
TFWLiteSelectorBasic::begin
virtual void begin(TList *&in)=0
edm::BranchDescription
Definition: BranchDescription.h:32
event
Definition: event.py:1
edm::EventSelectionIDVector
std::vector< EventSelectionID > EventSelectionIDVector
Definition: EventSelectionID.h:16
edm::Event
Definition: Event.h:73
TFWLiteSelectorBasic::Init
void Init(TTree *) override
Definition: TFWLiteSelectorBasic.cc:246
event
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
edm::errors::FileReadError
Definition: EDMException.h:50
edm::poolNames::processConfigurationBranchName
std::string const & processConfigurationBranchName()
Definition: BranchType.cc:183
edm::errors::UnimplementedFeature
Definition: EDMException.h:38
chain
Definition: chain.py:1
edm::pset::Registry
Definition: Registry.h:26
muonDTDigis_cfi.pset
pset
Definition: muonDTDigis_cfi.py:27