CMS 3D CMS Logo

List of all members | Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Types | Private Member Functions | Private Attributes
edm::PoolOutputModule Class Reference

#include <PoolOutputModule.h>

Inheritance diagram for edm::PoolOutputModule:
edm::one::OutputModule< WatchInputFiles > edm::one::OutputModuleBase edm::EDConsumerBase edm::TimeoutPoolOutputModule dqmservices::JsonWritingTimeoutPoolOutputModule

Classes

struct  AuxItem
 
struct  OutputItem
 
struct  SpecialSplitLevelForBranch
 

Public Types

using AuxItemArray = std::array< AuxItem, numberOfRunLumiEventProductTrees >
 
enum  DropMetaData { DropNone, DropDroppedPrior, DropPrior, DropAll }
 
using OutputItemList = std::vector< OutputItem >
 
- Public Types inherited from edm::one::OutputModuleBase
typedef OutputModuleBase ModuleType
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 

Public Member Functions

AuxItemArray const & auxItems () const
 
std::string const & basketOrder () const
 
int basketSize () const
 
BranchChildren const & branchChildren () const
 
std::string const & catalog () const
 
bool compactEventAuxiliary () const
 
std::string const & compressionAlgorithm () const
 
int compressionLevel () const
 
std::string const & currentFileName () const
 
DropMetaData const & dropMetaData () const
 
int eventAutoFlushSize () const
 
int eventAuxiliaryBasketSize () const
 
std::string const & fileName () const
 
int inputFileCount () const
 
std::string const & logicalFileName () const
 
unsigned int maxFileSize () const
 
std::string const & moduleLabel () const
 
PoolOutputModuleoperator= (PoolOutputModule const &)=delete
 
bool overrideInputFileSplitLevels () const
 
 PoolOutputModule (ParameterSet const &ps)
 
 PoolOutputModule (PoolOutputModule const &)=delete
 
std::vector< OutputItemList > & selectedOutputItemList ()
 
std::vector< OutputItemList > const & selectedOutputItemList () const
 
int splitLevel () const
 
int treeMaxVirtualSize () const
 
int whyNotFastClonable () const
 
 ~PoolOutputModule () override
 
- Public Member Functions inherited from edm::one::OutputModule< WatchInputFiles >
SerialTaskQueueglobalLuminosityBlocksQueue () final
 
SerialTaskQueueglobalRunsQueue () final
 
const OutputModuleoperator= (const OutputModule &)=delete
 
 OutputModule (const OutputModule &)=delete
 
 OutputModule (edm::ParameterSet const &iPSet)
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
bool wantsInputProcessBlocks () const final
 
bool wantsProcessBlocks () const final
 
- Public Member Functions inherited from edm::one::OutputModuleBase
BranchIDLists const * branchIDLists ()
 
std::array< bool, NumBranchTypes > const & hasNewlyDroppedBranch () const
 
SelectedProductsForBranchType const & keptProducts () const
 
int maxEvents () const
 
const ModuleDescriptionmoduleDescription () const
 
OutputModuleBaseoperator= (OutputModuleBase const &)=delete
 
 OutputModuleBase (OutputModuleBase const &)=delete
 
 OutputModuleBase (ParameterSet const &pset)
 
OutputProcessBlockHelper const & outputProcessBlockHelper () const
 
std::string const & processName () const
 
int remainingEvents () const
 
bool selected (BranchDescription const &desc) const
 
void selectProducts (ProductRegistry const &preg, ThinnedAssociationsHelper const &, ProcessBlockHelperBase const &)
 
SharedResourcesAcquirersharedResourcesAcquirer ()
 
SubProcessParentageHelper const * subProcessParentageHelper () const
 
ThinnedAssociationsHelper const * thinnedAssociationsHelper () const
 
bool wantAllEvents () const
 
bool wantsStreamLuminosityBlocks () const
 
bool wantsStreamRuns () const
 
 ~OutputModuleBase () override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase &&)=default
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
ESProxyIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
std::vector< ESProxyIndex > const & esGetTokenIndicesVector (edm::Transition iTrans) const
 
std::vector< ESRecordIndex > const & esGetTokenRecordIndicesVector (edm::Transition iTrans) const
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::array< std::vector< ModuleDescription const * > *, NumBranchTypes > &modulesAll, std::vector< ModuleProcessName > &modulesInPreviousProcesses, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void selectInputProcessBlocks (ProductRegistry const &productRegistry, ProcessBlockHelperBase const &processBlockHelperBase)
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Static Public Member Functions

static void fillDescription (ParameterSetDescription &desc)
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
- Static Public Member Functions inherited from edm::one::OutputModuleBase
static const std::string & baseType ()
 
static void fillDescription (ParameterSetDescription &desc, std::vector< std::string > const &iDefaultOutputCommands=ProductSelectorRules::defaultSelectionStrings())
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &)
 

Protected Member Functions

virtual void doExtrasAfterCloseFile ()
 
virtual std::pair< std::string, std::string > physicalAndLogicalNameForNewFile ()
 
bool shouldWeCloseFile () const override
 allow inheriting classes to override but still be able to call this method in the overridden version More...
 
void write (EventForOutput const &e) override
 
- Protected Member Functions inherited from edm::one::OutputModuleBase
void configure (OutputModuleDescription const &desc)
 
ModuleDescription const & description () const
 
void doAccessInputProcessBlock (ProcessBlockPrincipal const &, ModuleCallingContext const *)
 
void doBeginJob ()
 
bool doBeginLuminosityBlock (LumiTransitionInfo const &, ModuleCallingContext const *)
 
void doBeginProcessBlock (ProcessBlockPrincipal const &, ModuleCallingContext const *)
 
bool doBeginRun (RunTransitionInfo const &, ModuleCallingContext const *)
 
void doEndJob ()
 
bool doEndLuminosityBlock (LumiTransitionInfo const &, ModuleCallingContext const *)
 
void doEndProcessBlock (ProcessBlockPrincipal const &, ModuleCallingContext const *)
 
bool doEndRun (RunTransitionInfo const &, ModuleCallingContext const *)
 
bool doEvent (EventTransitionInfo const &, ActivityRegistry *, ModuleCallingContext const *)
 
void doPreallocate (PreallocationConfiguration const &)
 
std::map< BranchID::value_type, BranchID::value_type > const & droppedBranchIDToKeptBranchID ()
 
virtual void preallocLumis (unsigned int)
 
ParameterSetID selectorConfig () const
 
void setEventSelectionInfo (std::map< std::string, std::vector< std::pair< std::string, int >>> const &outputModulePathPositions, bool anyProductProduced)
 
- Protected Member Functions inherited from edm::EDConsumerBase
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
template<BranchType B = InEvent>
EDConsumerBaseAdaptor< B > consumes (edm::InputTag tag) noexcept
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<Transition Tr = Transition::Event>
constexpr auto esConsumes () noexcept
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<Transition Tr = Transition::Event>
auto esConsumes (ESInputTag tag) noexcept
 
template<Transition Tr = Transition::Event>
ESGetTokenGeneric esConsumes (eventsetup::EventSetupRecordKey const &iRecord, eventsetup::DataKey const &iKey)
 Used with EventSetupRecord::doGet. More...
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 

Private Types

using BranchParents = std::map< BranchID, std::set< ParentageID > >
 

Private Member Functions

void beginInputFile (FileBlock const &fb)
 
void beginJob () override
 
void fillDependencyGraph ()
 
void fillSelectedItemList (BranchType branchtype, std::string const &processName, TTree *theInputTree, OutputItemList &)
 
void finishEndFile ()
 
bool isFileOpen () const override
 
void openFile (FileBlock const &fb) override
 
void preActionBeforeRunEventAsync (WaitingTaskHolder iTask, ModuleCallingContext const &iModuleCallingContext, Principal const &iPrincipal) const override
 
void reallyCloseFile () override
 
void reallyOpenFile ()
 
void respondToCloseInputFile (FileBlock const &fb) override
 
void respondToOpenInputFile (FileBlock const &fb) override
 
void setProcessesWithSelectedMergeableRunProducts (std::set< std::string > const &) override
 
void startEndFile ()
 
void updateBranchParents (EventForOutput const &e)
 
void updateBranchParentsForOneBranch (ProductProvenanceRetriever const *provRetriever, BranchID const &branchID)
 
void writeBranchIDListRegistry ()
 
void writeEventAuxiliary ()
 
void writeFileFormatVersion ()
 
void writeFileIdentifier ()
 
void writeIndexIntoFile ()
 
void writeLuminosityBlock (LuminosityBlockForOutput const &) override
 
void writeParameterSetRegistry ()
 
void writeParentageRegistry ()
 
void writeProcessBlock (ProcessBlockForOutput const &) override
 
void writeProcessBlockHelper ()
 
void writeProcessHistoryRegistry ()
 
void writeProductDependencies ()
 
void writeProductDescriptionRegistry ()
 
void writeRun (RunForOutput const &) override
 
void writeStoredMergeableRunProductMetadata ()
 
void writeThinnedAssociationsHelper ()
 

Private Attributes

AuxItemArray auxItems_
 
std::string basketOrder_
 
const int basketSize_
 
BranchChildren branchChildren_
 
BranchParents branchParents_
 
const std::string catalog_
 
bool compactEventAuxiliary_
 
const std::string compressionAlgorithm_
 
const int compressionLevel_
 
DropMetaData dropMetaData_
 
const int eventAutoFlushSize_
 
const int eventAuxBasketSize_
 
const std::string fileName_
 
bool initializedFromInput_
 
int inputFileCount_
 
const std::string logicalFileName_
 
unsigned const int maxFileSize_
 
const std::string moduleLabel_
 
int outputFileCount_
 
bool overrideInputFileSplitLevels_
 
std::vector< std::string > processesWithSelectedMergeableRunProducts_
 
std::vector< BranchIDproducedBranches_
 
edm::propagate_const< std::unique_ptr< RootOutputFile > > rootOutputFile_
 
RootServiceChecker rootServiceChecker_
 
std::vector< OutputItemListselectedOutputItemList_
 
std::vector< SpecialSplitLevelForBranchspecialSplitLevelForBranches_
 
const int splitLevel_
 
std::string statusFileName_
 
const int treeMaxVirtualSize_
 
int whyNotFastClonable_
 

Detailed Description

Definition at line 41 of file PoolOutputModule.h.

Member Typedef Documentation

◆ AuxItemArray

Definition at line 79 of file PoolOutputModule.h.

◆ BranchParents

using edm::PoolOutputModule::BranchParents = std::map<BranchID, std::set<ParentageID> >
private

Definition at line 161 of file PoolOutputModule.h.

◆ OutputItemList

Definition at line 115 of file PoolOutputModule.h.

Member Enumeration Documentation

◆ DropMetaData

Enumerator
DropNone 
DropDroppedPrior 
DropPrior 
DropAll 

Definition at line 43 of file PoolOutputModule.h.

Constructor & Destructor Documentation

◆ PoolOutputModule() [1/2]

edm::PoolOutputModule::PoolOutputModule ( ParameterSet const &  ps)
explicit

Definition at line 36 of file PoolOutputModule.cc.

38  one::OutputModule<WatchInputFiles>(pset),
40  auxItems_(),
42  fileName_(pset.getUntrackedParameter<std::string>("fileName")),
43  logicalFileName_(pset.getUntrackedParameter<std::string>("logicalFileName")),
44  catalog_(pset.getUntrackedParameter<std::string>("catalog")),
45  maxFileSize_(pset.getUntrackedParameter<int>("maxSize")),
46  compressionLevel_(pset.getUntrackedParameter<int>("compressionLevel")),
47  compressionAlgorithm_(pset.getUntrackedParameter<std::string>("compressionAlgorithm")),
48  basketSize_(pset.getUntrackedParameter<int>("basketSize")),
49  eventAuxBasketSize_(pset.getUntrackedParameter<int>("eventAuxiliaryBasketSize")),
50  eventAutoFlushSize_(pset.getUntrackedParameter<int>("eventAutoFlushCompressedSize")),
51  splitLevel_(std::min<int>(pset.getUntrackedParameter<int>("splitLevel") + 1, 99)),
52  basketOrder_(pset.getUntrackedParameter<std::string>("sortBaskets")),
53  treeMaxVirtualSize_(pset.getUntrackedParameter<int>("treeMaxVirtualSize")),
54  whyNotFastClonable_(pset.getUntrackedParameter<bool>("fastCloning") ? FileBlock::CanFastClone
57  moduleLabel_(pset.getParameter<std::string>("@module_label")),
58  initializedFromInput_(false),
60  inputFileCount_(0),
63  overrideInputFileSplitLevels_(pset.getUntrackedParameter<bool>("overrideInputFileSplitLevels")),
64  compactEventAuxiliary_(pset.getUntrackedParameter<bool>("compactEventAuxiliary")),
66  statusFileName_() {
67  if (pset.getUntrackedParameter<bool>("writeStatusFile")) {
68  std::ostringstream statusfilename;
69  statusfilename << moduleLabel_ << '_' << getpid();
70  statusFileName_ = statusfilename.str();
71  }
72 
73  std::string dropMetaData(pset.getUntrackedParameter<std::string>("dropMetaData"));
74  if (dropMetaData.empty())
76  else if (dropMetaData == std::string("NONE"))
78  else if (dropMetaData == std::string("DROPPED"))
80  else if (dropMetaData == std::string("PRIOR"))
82  else if (dropMetaData == std::string("ALL"))
84  else {
85  throw edm::Exception(errors::Configuration, "Illegal dropMetaData parameter value: ")
86  << dropMetaData << ".\n"
87  << "Legal values are 'NONE', 'DROPPED', 'PRIOR', and 'ALL'.\n";
88  }
89 
90  if (!wantAllEvents()) {
92  }
93 
94  auto const& specialSplit{pset.getUntrackedParameterSetVector("overrideBranchesSplitLevel")};
95 
96  specialSplitLevelForBranches_.reserve(specialSplit.size());
97  for (auto const& s : specialSplit) {
98  specialSplitLevelForBranches_.emplace_back(s.getUntrackedParameter<std::string>("branch"),
99  s.getUntrackedParameter<int>("splitLevel"));
100  }
101 
102  // We don't use this next parameter, but we read it anyway because it is part
103  // of the configuration of this module. An external parser creates the
104  // configuration by reading this source code.
105  pset.getUntrackedParameterSet("dataset");
106  }

References edm::errors::Configuration, DropAll, DropDroppedPrior, dropMetaData(), dropMetaData_, DropNone, DropPrior, edm::FileBlock::EventSelectionUsed, Exception, moduleLabel_, muonDTDigis_cfi::pset, alignCSCRings::s, specialSplitLevelForBranches_, statusFileName_, AlCaHLTBitMon_QueryRunRegistry::string, edm::one::OutputModuleBase::wantAllEvents(), and whyNotFastClonable_.

◆ ~PoolOutputModule()

edm::PoolOutputModule::~PoolOutputModule ( )
override

Definition at line 290 of file PoolOutputModule.cc.

290 {}

◆ PoolOutputModule() [2/2]

edm::PoolOutputModule::PoolOutputModule ( PoolOutputModule const &  )
delete

Member Function Documentation

◆ auxItems()

AuxItemArray const& edm::PoolOutputModule::auxItems ( ) const
inline

Definition at line 80 of file PoolOutputModule.h.

80 { return auxItems_; }

References auxItems_.

◆ basketOrder()

std::string const& edm::PoolOutputModule::basketOrder ( ) const
inline

Definition at line 56 of file PoolOutputModule.h.

56 { return basketOrder_; }

References basketOrder_.

◆ basketSize()

int edm::PoolOutputModule::basketSize ( ) const
inline

Definition at line 52 of file PoolOutputModule.h.

52 { return basketSize_; }

References basketSize_.

◆ beginInputFile()

void edm::PoolOutputModule::beginInputFile ( FileBlock const &  fb)
private

Definition at line 228 of file PoolOutputModule.cc.

228  {
229  if (isFileOpen()) {
230  //Faster to read ChildrenBranches directly from input
231  // file than to build it every event
232  auto const& branchToChildMap = fb.branchChildren().childLookup();
233  for (auto const& parentToChildren : branchToChildMap) {
234  for (auto const& child : parentToChildren.second) {
235  branchChildren_.insertChild(parentToChildren.first, child);
236  }
237  }
238  rootOutputFile_->beginInputFile(fb, remainingEvents());
239  }
240  }

References edm::FileBlock::branchChildren(), branchChildren_, edm::BranchChildren::childLookup(), edm::BranchChildren::insertChild(), isFileOpen(), edm::one::OutputModuleBase::remainingEvents(), and rootOutputFile_.

Referenced by openFile(), and respondToOpenInputFile().

◆ beginJob()

void edm::PoolOutputModule::beginJob ( void  )
overrideprivatevirtual

Reimplemented from edm::one::OutputModuleBase.

Definition at line 108 of file PoolOutputModule.cc.

108  {
110  for (auto const& prod : reg->productList()) {
111  BranchDescription const& desc = prod.second;
112  if (desc.produced() && desc.branchType() == InEvent && !desc.isAlias()) {
113  producedBranches_.emplace_back(desc.branchID());
114  }
115  }
116  }

References submitPVResolutionJobs::desc, edm::InEvent, dumpMFGeometry_cfg::prod, and producedBranches_.

◆ branchChildren()

BranchChildren const& edm::PoolOutputModule::branchChildren ( ) const
inline

Definition at line 133 of file PoolOutputModule.h.

133 { return branchChildren_; }

References branchChildren_.

◆ catalog()

std::string const& edm::PoolOutputModule::catalog ( ) const
inline

Definition at line 61 of file PoolOutputModule.h.

61 { return catalog_; }

References catalog_.

◆ compactEventAuxiliary()

bool edm::PoolOutputModule::compactEventAuxiliary ( ) const
inline

Definition at line 59 of file PoolOutputModule.h.

59 { return compactEventAuxiliary_; }

References compactEventAuxiliary_.

◆ compressionAlgorithm()

std::string const& edm::PoolOutputModule::compressionAlgorithm ( ) const
inline

Definition at line 51 of file PoolOutputModule.h.

51 { return compressionAlgorithm_; }

References compressionAlgorithm_.

◆ compressionLevel()

int edm::PoolOutputModule::compressionLevel ( ) const
inline

Definition at line 50 of file PoolOutputModule.h.

50 { return compressionLevel_; }

References compressionLevel_.

◆ currentFileName()

std::string const & edm::PoolOutputModule::currentFileName ( ) const

Definition at line 118 of file PoolOutputModule.cc.

118 { return rootOutputFile_->fileName(); }

References rootOutputFile_.

Referenced by edm::TimeoutPoolOutputModule::shouldWeCloseFile().

◆ doExtrasAfterCloseFile()

void edm::PoolOutputModule::doExtrasAfterCloseFile ( )
protectedvirtual

Reimplemented in dqmservices::JsonWritingTimeoutPoolOutputModule.

Definition at line 355 of file PoolOutputModule.cc.

355 {}

Referenced by reallyCloseFile().

◆ dropMetaData()

DropMetaData const& edm::PoolOutputModule::dropMetaData ( ) const
inline

Definition at line 60 of file PoolOutputModule.h.

60 { return dropMetaData_; }

References dropMetaData_.

Referenced by PoolOutputModule().

◆ eventAutoFlushSize()

int edm::PoolOutputModule::eventAutoFlushSize ( ) const
inline

Definition at line 54 of file PoolOutputModule.h.

54 { return eventAutoFlushSize_; }

References eventAutoFlushSize_.

Referenced by edm::RootOutputFile::RootOutputFile().

◆ eventAuxiliaryBasketSize()

int edm::PoolOutputModule::eventAuxiliaryBasketSize ( ) const
inline

Definition at line 53 of file PoolOutputModule.h.

53 { return eventAuxBasketSize_; }

References eventAuxBasketSize_.

◆ fileName()

std::string const& edm::PoolOutputModule::fileName ( ) const
inline

Definition at line 48 of file PoolOutputModule.h.

48 { return fileName_; }

References fileName_.

Referenced by physicalAndLogicalNameForNewFile().

◆ fillDependencyGraph()

void edm::PoolOutputModule::fillDependencyGraph ( )
private

Definition at line 434 of file PoolOutputModule.cc.

434  {
435  for (auto const& branchParent : branchParents_) {
436  BranchID const& child = branchParent.first;
437  std::set<ParentageID> const& eIds = branchParent.second;
438  for (auto const& eId : eIds) {
439  Parentage entryDesc;
440  ParentageRegistry::instance()->getMapped(eId, entryDesc);
441  std::vector<BranchID> const& parents = entryDesc.parents();
442  for (auto const& parent : parents) {
444  }
445  }
446  }
447  }

References branchChildren_, branchParents_, edm::ParentageRegistry::getMapped(), edm::BranchChildren::insertChild(), edm::ParentageRegistry::instance(), class-composition::parent, parents, and edm::Parentage::parents().

Referenced by reallyCloseFile().

◆ fillDescription()

void edm::PoolOutputModule::fillDescription ( ParameterSetDescription desc)
static

Definition at line 449 of file PoolOutputModule.cc.

449  {
450  std::string defaultString;
451 
452  desc.setComment("Writes runs, lumis, and events into EDM/ROOT files.");
453  desc.addUntracked<std::string>("fileName")->setComment("Name of output file.");
454  desc.addUntracked<std::string>("logicalFileName", defaultString)
455  ->setComment("Passed to job report. Otherwise unused by module.");
456  desc.addUntracked<std::string>("catalog", defaultString)
457  ->setComment("Passed to job report. Otherwise unused by module.");
458  desc.addUntracked<int>("maxSize", 0x7f000000)
459  ->setComment(
460  "Maximum output file size, in kB.\n"
461  "If over maximum, new output file will be started at next input file transition.");
462  desc.addUntracked<int>("compressionLevel", 9)->setComment("ROOT compression level of output file.");
463  desc.addUntracked<std::string>("compressionAlgorithm", "ZLIB")
464  ->setComment(
465  "Algorithm used to compress data in the ROOT output file, allowed values are ZLIB, LZMA, and ZSTD");
466  desc.addUntracked<int>("basketSize", 16384)->setComment("Default ROOT basket size in output file.");
467  desc.addUntracked<int>("eventAuxiliaryBasketSize", 16384)
468  ->setComment("Default ROOT basket size in output file for EventAuxiliary branch.");
469  desc.addUntracked<int>("eventAutoFlushCompressedSize", 20 * 1024 * 1024)
470  ->setComment(
471  "Set ROOT auto flush stored data size (in bytes) for event TTree. The value sets how large the compressed "
472  "buffer is allowed to get. The uncompressed buffer can be quite a bit larger than this depending on the "
473  "average compression ratio. The value of -1 just uses ROOT's default value. The value of 0 turns off this "
474  "feature.");
475  desc.addUntracked<int>("splitLevel", 99)->setComment("Default ROOT branch split level in output file.");
476  desc.addUntracked<std::string>("sortBaskets", std::string("sortbasketsbyoffset"))
477  ->setComment(
478  "Legal values: 'sortbasketsbyoffset', 'sortbasketsbybranch', 'sortbasketsbyentry'.\n"
479  "Used by ROOT when fast copying. Affects performance.");
480  desc.addUntracked<int>("treeMaxVirtualSize", -1)
481  ->setComment("Size of ROOT TTree TBasket cache. Affects performance.");
482  desc.addUntracked<bool>("fastCloning", true)
483  ->setComment(
484  "True: Allow fast copying, if possible.\n"
485  "False: Disable fast copying.");
486  desc.addUntracked<bool>("compactEventAuxiliary", false)
487  ->setComment(
488  "False: Write EventAuxiliary as we go like any other event metadata branch.\n"
489  "True: Optimize the file layout be deferring writing the EventAuxiliary branch until the output file is "
490  "closed.");
491  desc.addUntracked<bool>("overrideInputFileSplitLevels", false)
492  ->setComment(
493  "False: Use branch split levels and basket sizes from input file, if possible.\n"
494  "True: Always use specified or default split levels and basket sizes.");
495  desc.addUntracked<bool>("writeStatusFile", false)
496  ->setComment("Write a status file. Intended for use by workflow management.");
497  desc.addUntracked<std::string>("dropMetaData", defaultString)
498  ->setComment(
499  "Determines handling of per product per event metadata. Options are:\n"
500  "'NONE': Keep all of it.\n"
501  "'DROPPED': Keep it for products produced in current process and all kept products. Drop it for dropped "
502  "products produced in prior processes.\n"
503  "'PRIOR': Keep it for products produced in current process. Drop it for products produced in prior "
504  "processes.\n"
505  "'ALL': Drop all of it.");
506  {
508  dataSet.setAllowAnything();
509  desc.addUntracked<ParameterSetDescription>("dataset", dataSet)
510  ->setComment("PSet is only used by Data Operations and not by this module.");
511  }
512  {
513  ParameterSetDescription specialSplit;
514  specialSplit.addUntracked<std::string>("branch")->setComment(
515  "Name of branch needing a special split level. The name can contain wildcards '*' and '?'");
516  specialSplit.addUntracked<int>("splitLevel")->setComment("The special split level for the branch");
517  desc.addVPSetUntracked("overrideBranchesSplitLevel", specialSplit, std::vector<ParameterSet>());
518  }
519  OutputModule::fillDescription(desc);
520  }

References edm::ParameterSetDescription::addUntracked(), EgammaPostProcessor_cfi::dataSet, submitPVResolutionJobs::desc, and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by edm::TimeoutPoolOutputModule::fillDescriptions(), and fillDescriptions().

◆ fillDescriptions()

void edm::PoolOutputModule::fillDescriptions ( ConfigurationDescriptions descriptions)
static

Definition at line 522 of file PoolOutputModule.cc.

522  {
525  descriptions.add("edmOutput", desc);
526  }

References edm::ConfigurationDescriptions::add(), submitPVResolutionJobs::desc, and fillDescription().

◆ fillSelectedItemList()

void edm::PoolOutputModule::fillSelectedItemList ( BranchType  branchtype,
std::string const &  processName,
TTree *  theInputTree,
OutputItemList outputItemList 
)
private

Definition at line 171 of file PoolOutputModule.cc.

174  {
175  SelectedProducts const& keptVector = keptProducts()[branchType];
176 
177  if (branchType != InProcess) {
178  AuxItem& auxItem = auxItems_[branchType];
179 
180  auto basketSize = (InEvent == branchType) ? eventAuxBasketSize_ : basketSize_;
181 
182  // Fill AuxItem
183  if (theInputTree != nullptr && !overrideInputFileSplitLevels_) {
184  TBranch* auxBranch = theInputTree->GetBranch(BranchTypeToAuxiliaryBranchName(branchType).c_str());
185  if (auxBranch) {
186  auxItem.basketSize_ = auxBranch->GetBasketSize();
187  } else {
188  auxItem.basketSize_ = basketSize;
189  }
190  } else {
191  auxItem.basketSize_ = basketSize;
192  }
193  }
194 
195  // Fill outputItemList with an entry for each branch.
196  for (auto const& kept : keptVector) {
199 
200  BranchDescription const& prod = *kept.first;
201  if (branchType == InProcess && processName != prod.processName()) {
202  continue;
203  }
204  TBranch* theBranch = ((!prod.produced() && theInputTree != nullptr && !overrideInputFileSplitLevels_)
205  ? theInputTree->GetBranch(prod.branchName().c_str())
206  : nullptr);
207 
208  if (theBranch != nullptr) {
209  splitLevel = theBranch->GetSplitLevel();
210  basketSize = theBranch->GetBasketSize();
211  } else {
212  splitLevel = (prod.splitLevel() == BranchDescription::invalidSplitLevel ? splitLevel_ : prod.splitLevel());
213  for (auto const& b : specialSplitLevelForBranches_) {
214  if (b.match(prod.branchName())) {
215  splitLevel = b.splitLevel_;
216  }
217  }
218  basketSize = (prod.basketSize() == BranchDescription::invalidBasketSize ? basketSize_ : prod.basketSize());
219  }
220  outputItemList.emplace_back(&prod, kept.second, splitLevel, basketSize);
221  }
222 
223  // Sort outputItemList to allow fast copying.
224  // The branches in outputItemList must be in the same order as in the input tree, with all new branches at the end.
225  sort_all(outputItemList, OutputItem::Sorter(theInputTree));
226  }

References auxItems_, b, edm::PoolOutputModule::OutputItem::basketSize(), edm::PoolOutputModule::AuxItem::basketSize_, edm::PoolOutputModule::OutputItem::basketSize_, edm::BranchTypeToAuxiliaryBranchName(), eventAuxBasketSize_, edm::InEvent, edm::InProcess, edm::BranchDescription::invalidBasketSize, edm::BranchDescription::invalidSplitLevel, edm::one::OutputModuleBase::keptProducts(), overrideInputFileSplitLevels_, edm::one::OutputModuleBase::processName(), dumpMFGeometry_cfg::prod, edm::sort_all(), specialSplitLevelForBranches_, edm::PoolOutputModule::OutputItem::splitLevel(), and edm::PoolOutputModule::OutputItem::splitLevel_.

Referenced by respondToOpenInputFile().

◆ finishEndFile()

void edm::PoolOutputModule::finishEndFile ( )
private

Definition at line 351 of file PoolOutputModule.cc.

351  {
352  rootOutputFile_->finishEndFile();
353  rootOutputFile_ = nullptr;
354  } // propagate_const<T> has no reset() function

References rootOutputFile_.

Referenced by reallyCloseFile().

◆ inputFileCount()

int edm::PoolOutputModule::inputFileCount ( ) const
inline

Definition at line 64 of file PoolOutputModule.h.

64 { return inputFileCount_; }

References inputFileCount_.

◆ isFileOpen()

bool edm::PoolOutputModule::isFileOpen ( ) const
overrideprivatevirtual

Reimplemented from edm::one::OutputModuleBase.

Definition at line 356 of file PoolOutputModule.cc.

356 { return rootOutputFile_.get() != nullptr; }

References rootOutputFile_.

Referenced by beginInputFile(), and openFile().

◆ logicalFileName()

std::string const& edm::PoolOutputModule::logicalFileName ( ) const
inline

Definition at line 49 of file PoolOutputModule.h.

49 { return logicalFileName_; }

References logicalFileName_.

Referenced by physicalAndLogicalNameForNewFile().

◆ maxFileSize()

unsigned int edm::PoolOutputModule::maxFileSize ( ) const
inline

Definition at line 63 of file PoolOutputModule.h.

63 { return maxFileSize_; }

References maxFileSize_.

◆ moduleLabel()

std::string const& edm::PoolOutputModule::moduleLabel ( ) const
inline

Definition at line 62 of file PoolOutputModule.h.

62 { return moduleLabel_; }

References moduleLabel_.

◆ openFile()

void edm::PoolOutputModule::openFile ( FileBlock const &  fb)
overrideprivatevirtual

Reimplemented from edm::one::OutputModuleBase.

Definition at line 242 of file PoolOutputModule.cc.

242  {
243  if (!isFileOpen()) {
244  reallyOpenFile();
245  beginInputFile(fb);
246  }
247  }

References beginInputFile(), isFileOpen(), and reallyOpenFile().

◆ operator=()

PoolOutputModule& edm::PoolOutputModule::operator= ( PoolOutputModule const &  )
delete

◆ overrideInputFileSplitLevels()

bool edm::PoolOutputModule::overrideInputFileSplitLevels ( ) const
inline

Definition at line 58 of file PoolOutputModule.h.

References overrideInputFileSplitLevels_.

◆ physicalAndLogicalNameForNewFile()

std::pair< std::string, std::string > edm::PoolOutputModule::physicalAndLogicalNameForNewFile ( )
protectedvirtual

Reimplemented in dqmservices::JsonWritingTimeoutPoolOutputModule.

Definition at line 359 of file PoolOutputModule.cc.

359  {
360  if (inputFileCount_ == 0) {
361  throw edm::Exception(errors::LogicError) << "Attempt to open output file before input file. "
362  << "Please report this to the core framework developers.\n";
363  }
364  std::string suffix(".root");
366  bool ext = (offset == fileName().size() - suffix.size());
367  if (!ext)
368  suffix.clear();
369  std::string fileBase(ext ? fileName().substr(0, offset) : fileName());
370  std::ostringstream ofilename;
371  std::ostringstream lfilename;
372  ofilename << fileBase;
373  lfilename << logicalFileName();
374  if (outputFileCount_) {
375  ofilename << std::setw(3) << std::setfill('0') << outputFileCount_;
376  if (!logicalFileName().empty()) {
377  lfilename << std::setw(3) << std::setfill('0') << outputFileCount_;
378  }
379  }
380  ofilename << suffix;
382 
383  return std::make_pair(ofilename.str(), lfilename.str());
384  }

References relativeConstraints::empty, Exception, fileName(), inputFileCount_, logicalFileName(), edm::errors::LogicError, hltrates_dqm_sourceclient-live_cfg::offset, outputFileCount_, AlCaHLTBitMon_QueryRunRegistry::string, and createPayload::suffix.

Referenced by reallyOpenFile().

◆ preActionBeforeRunEventAsync()

void edm::PoolOutputModule::preActionBeforeRunEventAsync ( WaitingTaskHolder  iTask,
ModuleCallingContext const &  iModuleCallingContext,
Principal const &  iPrincipal 
) const
overrideprivatevirtual

Reimplemented from edm::one::OutputModuleBase.

Definition at line 420 of file PoolOutputModule.cc.

422  {
423  if (DropAll != dropMetaData_) {
424  auto const* ep = dynamic_cast<EventPrincipal const*>(&iPrincipal);
425  if (ep) {
426  auto pr = ep->productProvenanceRetrieverPtr();
427  if (pr) {
428  pr->readProvenanceAsync(iTask, &iModuleCallingContext);
429  }
430  }
431  }
432  }

References DropAll, dropMetaData_, and SiStripBadComponentsDQMServiceTemplate_cfg::ep.

◆ reallyCloseFile()

void edm::PoolOutputModule::reallyCloseFile ( )
overrideprivatevirtual

◆ reallyOpenFile()

void edm::PoolOutputModule::reallyOpenFile ( )
private

Definition at line 386 of file PoolOutputModule.cc.

386  {
388  rootOutputFile_ = std::make_unique<RootOutputFile>(
389  this,
390  names.first,
391  names.second,
392  processesWithSelectedMergeableRunProducts_); // propagate_const<T> has no reset() function
393  }

References names, physicalAndLogicalNameForNewFile(), processesWithSelectedMergeableRunProducts_, and rootOutputFile_.

Referenced by openFile().

◆ respondToCloseInputFile()

void edm::PoolOutputModule::respondToCloseInputFile ( FileBlock const &  fb)
overrideprivate

Definition at line 281 of file PoolOutputModule.cc.

281  {
282  if (rootOutputFile_)
283  rootOutputFile_->respondToCloseInputFile(fb);
284  }

References rootOutputFile_.

◆ respondToOpenInputFile()

void edm::PoolOutputModule::respondToOpenInputFile ( FileBlock const &  fb)
overrideprivate

Definition at line 249 of file PoolOutputModule.cc.

249  {
250  if (!initializedFromInput_) {
251  std::vector<std::string> const& processesWithProcessBlockProducts =
253  unsigned int numberOfProcessesWithProcessBlockProducts = processesWithProcessBlockProducts.size();
254  unsigned int numberOfTTrees = numberOfRunLumiEventProductTrees + numberOfProcessesWithProcessBlockProducts;
255  selectedOutputItemList_.resize(numberOfTTrees);
256 
257  for (unsigned int i = InEvent; i < NumBranchTypes; ++i) {
258  BranchType branchType = static_cast<BranchType>(i);
259  if (branchType != InProcess) {
261  TTree* theInputTree =
262  (branchType == InEvent ? fb.tree() : (branchType == InLumi ? fb.lumiTree() : fb.runTree()));
263  OutputItemList& outputItemList = selectedOutputItemList_[branchType];
264  fillSelectedItemList(branchType, processName, theInputTree, outputItemList);
265  } else {
266  // Handle output items in ProcessBlocks
267  for (unsigned int k = InProcess; k < numberOfTTrees; ++k) {
268  OutputItemList& outputItemList = selectedOutputItemList_[k];
269  std::string const& processName = processesWithProcessBlockProducts[k - InProcess];
270  TTree* theInputTree = fb.processBlockTree(processName);
271  fillSelectedItemList(branchType, processName, theInputTree, outputItemList);
272  }
273  }
274  }
275  initializedFromInput_ = true;
276  }
277  ++inputFileCount_;
278  beginInputFile(fb);
279  }

References beginInputFile(), fillSelectedItemList(), mps_fire::i, edm::InEvent, initializedFromInput_, edm::InLumi, edm::InProcess, inputFileCount_, dqmdumpme::k, edm::FileBlock::lumiTree(), edm::numberOfRunLumiEventProductTrees, edm::NumBranchTypes, edm::one::OutputModuleBase::outputProcessBlockHelper(), edm::FileBlock::processBlockTree(), edm::OutputProcessBlockHelper::processesWithProcessBlockProducts(), edm::one::OutputModuleBase::processName(), edm::FileBlock::runTree(), selectedOutputItemList_, AlCaHLTBitMon_QueryRunRegistry::string, and edm::FileBlock::tree().

◆ selectedOutputItemList() [1/2]

std::vector<OutputItemList>& edm::PoolOutputModule::selectedOutputItemList ( )
inline

Definition at line 131 of file PoolOutputModule.h.

131 { return selectedOutputItemList_; }

References selectedOutputItemList_.

◆ selectedOutputItemList() [2/2]

std::vector<OutputItemList> const& edm::PoolOutputModule::selectedOutputItemList ( ) const
inline

Definition at line 129 of file PoolOutputModule.h.

129 { return selectedOutputItemList_; }

References selectedOutputItemList_.

Referenced by edm::RootOutputFile::RootOutputFile().

◆ setProcessesWithSelectedMergeableRunProducts()

void edm::PoolOutputModule::setProcessesWithSelectedMergeableRunProducts ( std::set< std::string > const &  processes)
overrideprivatevirtual

Reimplemented from edm::one::OutputModuleBase.

Definition at line 286 of file PoolOutputModule.cc.

286  {
288  }

References dqmiodatasetharvest::processes, and processesWithSelectedMergeableRunProducts_.

◆ shouldWeCloseFile()

bool edm::PoolOutputModule::shouldWeCloseFile ( ) const
overrideprotectedvirtual

allow inheriting classes to override but still be able to call this method in the overridden version

Reimplemented from edm::one::OutputModuleBase.

Reimplemented in edm::TimeoutPoolOutputModule.

Definition at line 357 of file PoolOutputModule.cc.

357 { return rootOutputFile_->shouldWeCloseFile(); }

References rootOutputFile_.

Referenced by edm::TimeoutPoolOutputModule::shouldWeCloseFile().

◆ splitLevel()

int edm::PoolOutputModule::splitLevel ( ) const
inline

Definition at line 55 of file PoolOutputModule.h.

55 { return splitLevel_; }

References splitLevel_.

◆ startEndFile()

void edm::PoolOutputModule::startEndFile ( )
private

Definition at line 334 of file PoolOutputModule.cc.

334 {}

Referenced by reallyCloseFile().

◆ treeMaxVirtualSize()

int edm::PoolOutputModule::treeMaxVirtualSize ( ) const
inline

Definition at line 57 of file PoolOutputModule.h.

57 { return treeMaxVirtualSize_; }

References treeMaxVirtualSize_.

◆ updateBranchParents()

void edm::PoolOutputModule::updateBranchParents ( EventForOutput const &  e)
private

Definition at line 407 of file PoolOutputModule.cc.

407  {
408  ProductProvenanceRetriever const* provRetriever = e.productProvenanceRetrieverPtr();
409  for (auto const& bid : producedBranches_) {
410  updateBranchParentsForOneBranch(provRetriever, bid);
411  }
412  SubProcessParentageHelper const* helper = subProcessParentageHelper();
413  if (helper) {
414  for (auto const& bid : subProcessParentageHelper()->producedProducts()) {
415  updateBranchParentsForOneBranch(provRetriever, bid);
416  }
417  }
418  }

References MillePedeFileConverter_cfg::e, producedBranches_, edm::one::OutputModuleBase::subProcessParentageHelper(), and updateBranchParentsForOneBranch().

Referenced by write().

◆ updateBranchParentsForOneBranch()

void edm::PoolOutputModule::updateBranchParentsForOneBranch ( ProductProvenanceRetriever const *  provRetriever,
BranchID const &  branchID 
)
private

Definition at line 395 of file PoolOutputModule.cc.

396  {
397  ProductProvenance const* provenance = provRetriever->branchIDToProvenanceForProducedOnly(branchID);
398  if (provenance != nullptr) {
399  BranchParents::iterator it = branchParents_.find(branchID);
400  if (it == branchParents_.end()) {
401  it = branchParents_.insert(std::make_pair(branchID, std::set<ParentageID>())).first;
402  }
403  it->second.insert(provenance->parentageID());
404  }
405  }

References edm::PoolOutputModule::OutputItem::branchID(), edm::ProductProvenanceLookup::branchIDToProvenanceForProducedOnly(), branchParents_, and edm::ProductProvenance::parentageID().

Referenced by updateBranchParents().

◆ whyNotFastClonable()

int edm::PoolOutputModule::whyNotFastClonable ( ) const
inline

Definition at line 65 of file PoolOutputModule.h.

65 { return whyNotFastClonable_; }

References whyNotFastClonable_.

◆ write()

void edm::PoolOutputModule::write ( EventForOutput const &  e)
overrideprotectedvirtual

Implements edm::one::OutputModuleBase.

Reimplemented in edm::TimeoutPoolOutputModule.

Definition at line 292 of file PoolOutputModule.cc.

292  {
294  rootOutputFile_->writeOne(e);
295  if (!statusFileName_.empty()) {
296  std::ofstream statusFile(statusFileName_.c_str());
297  statusFile << e.id() << " time: " << std::setprecision(3) << TimeOfDay() << '\n';
298  statusFile.close();
299  }
300  }

References MillePedeFileConverter_cfg::e, rootOutputFile_, statusFileName_, and updateBranchParents().

Referenced by edm::TimeoutPoolOutputModule::write().

◆ writeBranchIDListRegistry()

void edm::PoolOutputModule::writeBranchIDListRegistry ( )
private

Definition at line 346 of file PoolOutputModule.cc.

346 { rootOutputFile_->writeBranchIDListRegistry(); }

References rootOutputFile_.

Referenced by reallyCloseFile().

◆ writeEventAuxiliary()

void edm::PoolOutputModule::writeEventAuxiliary ( )
private

Definition at line 349 of file PoolOutputModule.cc.

349 { rootOutputFile_->writeEventAuxiliary(); }

References rootOutputFile_.

Referenced by reallyCloseFile().

◆ writeFileFormatVersion()

void edm::PoolOutputModule::writeFileFormatVersion ( )
private

Definition at line 336 of file PoolOutputModule.cc.

336 { rootOutputFile_->writeFileFormatVersion(); }

References rootOutputFile_.

Referenced by reallyCloseFile().

◆ writeFileIdentifier()

void edm::PoolOutputModule::writeFileIdentifier ( )
private

Definition at line 337 of file PoolOutputModule.cc.

337 { rootOutputFile_->writeFileIdentifier(); }

References rootOutputFile_.

Referenced by reallyCloseFile().

◆ writeIndexIntoFile()

void edm::PoolOutputModule::writeIndexIntoFile ( )
private

Definition at line 338 of file PoolOutputModule.cc.

338 { rootOutputFile_->writeIndexIntoFile(); }

References rootOutputFile_.

Referenced by reallyCloseFile().

◆ writeLuminosityBlock()

void edm::PoolOutputModule::writeLuminosityBlock ( LuminosityBlockForOutput const &  lb)
overrideprivatevirtual

Implements edm::one::OutputModuleBase.

Definition at line 302 of file PoolOutputModule.cc.

302  {
303  rootOutputFile_->writeLuminosityBlock(lb);
304  }

References rootOutputFile_.

◆ writeParameterSetRegistry()

void edm::PoolOutputModule::writeParameterSetRegistry ( )
private

Definition at line 343 of file PoolOutputModule.cc.

343 { rootOutputFile_->writeParameterSetRegistry(); }

References rootOutputFile_.

Referenced by reallyCloseFile().

◆ writeParentageRegistry()

void edm::PoolOutputModule::writeParentageRegistry ( )
private

Definition at line 345 of file PoolOutputModule.cc.

345 { rootOutputFile_->writeParentageRegistry(); }

References rootOutputFile_.

Referenced by reallyCloseFile().

◆ writeProcessBlock()

void edm::PoolOutputModule::writeProcessBlock ( ProcessBlockForOutput const &  pb)
overrideprivatevirtual

Reimplemented from edm::one::OutputModuleBase.

Definition at line 308 of file PoolOutputModule.cc.

308 { rootOutputFile_->writeProcessBlock(pb); }

References rootOutputFile_.

◆ writeProcessBlockHelper()

void edm::PoolOutputModule::writeProcessBlockHelper ( )
private

Definition at line 350 of file PoolOutputModule.cc.

350 { rootOutputFile_->writeProcessBlockHelper(); }

References rootOutputFile_.

Referenced by reallyCloseFile().

◆ writeProcessHistoryRegistry()

void edm::PoolOutputModule::writeProcessHistoryRegistry ( )
private

Definition at line 342 of file PoolOutputModule.cc.

342 { rootOutputFile_->writeProcessHistoryRegistry(); }

References rootOutputFile_.

Referenced by reallyCloseFile().

◆ writeProductDependencies()

void edm::PoolOutputModule::writeProductDependencies ( )
private

Definition at line 348 of file PoolOutputModule.cc.

348 { rootOutputFile_->writeProductDependencies(); }

References rootOutputFile_.

Referenced by reallyCloseFile().

◆ writeProductDescriptionRegistry()

void edm::PoolOutputModule::writeProductDescriptionRegistry ( )
private

Definition at line 344 of file PoolOutputModule.cc.

344 { rootOutputFile_->writeProductDescriptionRegistry(); }

References rootOutputFile_.

Referenced by reallyCloseFile().

◆ writeRun()

void edm::PoolOutputModule::writeRun ( RunForOutput const &  r)
overrideprivatevirtual

Implements edm::one::OutputModuleBase.

Definition at line 306 of file PoolOutputModule.cc.

306 { rootOutputFile_->writeRun(r); }

References alignCSCRings::r, and rootOutputFile_.

◆ writeStoredMergeableRunProductMetadata()

void edm::PoolOutputModule::writeStoredMergeableRunProductMetadata ( )
private

Definition at line 339 of file PoolOutputModule.cc.

339  {
340  rootOutputFile_->writeStoredMergeableRunProductMetadata();
341  }

References rootOutputFile_.

Referenced by reallyCloseFile().

◆ writeThinnedAssociationsHelper()

void edm::PoolOutputModule::writeThinnedAssociationsHelper ( )
private

Definition at line 347 of file PoolOutputModule.cc.

347 { rootOutputFile_->writeThinnedAssociationsHelper(); }

References rootOutputFile_.

Referenced by reallyCloseFile().

Member Data Documentation

◆ auxItems_

AuxItemArray edm::PoolOutputModule::auxItems_
private

Definition at line 189 of file PoolOutputModule.h.

Referenced by auxItems(), and fillSelectedItemList().

◆ basketOrder_

std::string edm::PoolOutputModule::basketOrder_
private

Definition at line 202 of file PoolOutputModule.h.

Referenced by basketOrder().

◆ basketSize_

const int edm::PoolOutputModule::basketSize_
private

Definition at line 198 of file PoolOutputModule.h.

Referenced by basketSize().

◆ branchChildren_

BranchChildren edm::PoolOutputModule::branchChildren_
private

◆ branchParents_

BranchParents edm::PoolOutputModule::branchParents_
private

◆ catalog_

const std::string edm::PoolOutputModule::catalog_
private

Definition at line 194 of file PoolOutputModule.h.

Referenced by catalog().

◆ compactEventAuxiliary_

bool edm::PoolOutputModule::compactEventAuxiliary_
private

Definition at line 214 of file PoolOutputModule.h.

Referenced by compactEventAuxiliary().

◆ compressionAlgorithm_

const std::string edm::PoolOutputModule::compressionAlgorithm_
private

Definition at line 197 of file PoolOutputModule.h.

Referenced by compressionAlgorithm().

◆ compressionLevel_

const int edm::PoolOutputModule::compressionLevel_
private

Definition at line 196 of file PoolOutputModule.h.

Referenced by compressionLevel().

◆ dropMetaData_

DropMetaData edm::PoolOutputModule::dropMetaData_
private

◆ eventAutoFlushSize_

const int edm::PoolOutputModule::eventAutoFlushSize_
private

Definition at line 200 of file PoolOutputModule.h.

Referenced by eventAutoFlushSize().

◆ eventAuxBasketSize_

const int edm::PoolOutputModule::eventAuxBasketSize_
private

Definition at line 199 of file PoolOutputModule.h.

Referenced by eventAuxiliaryBasketSize(), and fillSelectedItemList().

◆ fileName_

const std::string edm::PoolOutputModule::fileName_
private

Definition at line 192 of file PoolOutputModule.h.

Referenced by fileName().

◆ initializedFromInput_

bool edm::PoolOutputModule::initializedFromInput_
private

Definition at line 207 of file PoolOutputModule.h.

Referenced by respondToOpenInputFile().

◆ inputFileCount_

int edm::PoolOutputModule::inputFileCount_
private

◆ logicalFileName_

const std::string edm::PoolOutputModule::logicalFileName_
private

Definition at line 193 of file PoolOutputModule.h.

Referenced by logicalFileName().

◆ maxFileSize_

unsigned const int edm::PoolOutputModule::maxFileSize_
private

Definition at line 195 of file PoolOutputModule.h.

Referenced by maxFileSize().

◆ moduleLabel_

const std::string edm::PoolOutputModule::moduleLabel_
private

◆ outputFileCount_

int edm::PoolOutputModule::outputFileCount_
private

Definition at line 208 of file PoolOutputModule.h.

Referenced by physicalAndLogicalNameForNewFile().

◆ overrideInputFileSplitLevels_

bool edm::PoolOutputModule::overrideInputFileSplitLevels_
private

Definition at line 213 of file PoolOutputModule.h.

Referenced by fillSelectedItemList(), and overrideInputFileSplitLevels().

◆ processesWithSelectedMergeableRunProducts_

std::vector<std::string> edm::PoolOutputModule::processesWithSelectedMergeableRunProducts_
private

◆ producedBranches_

std::vector<BranchID> edm::PoolOutputModule::producedBranches_
private

Definition at line 212 of file PoolOutputModule.h.

Referenced by beginJob(), and updateBranchParents().

◆ rootOutputFile_

edm::propagate_const<std::unique_ptr<RootOutputFile> > edm::PoolOutputModule::rootOutputFile_
private

◆ rootServiceChecker_

RootServiceChecker edm::PoolOutputModule::rootServiceChecker_
private

Definition at line 188 of file PoolOutputModule.h.

◆ selectedOutputItemList_

std::vector<OutputItemList> edm::PoolOutputModule::selectedOutputItemList_
private

Definition at line 190 of file PoolOutputModule.h.

Referenced by respondToOpenInputFile(), and selectedOutputItemList().

◆ specialSplitLevelForBranches_

std::vector<SpecialSplitLevelForBranch> edm::PoolOutputModule::specialSplitLevelForBranches_
private

Definition at line 191 of file PoolOutputModule.h.

Referenced by fillSelectedItemList(), and PoolOutputModule().

◆ splitLevel_

const int edm::PoolOutputModule::splitLevel_
private

Definition at line 201 of file PoolOutputModule.h.

Referenced by splitLevel().

◆ statusFileName_

std::string edm::PoolOutputModule::statusFileName_
private

Definition at line 216 of file PoolOutputModule.h.

Referenced by PoolOutputModule(), and write().

◆ treeMaxVirtualSize_

const int edm::PoolOutputModule::treeMaxVirtualSize_
private

Definition at line 203 of file PoolOutputModule.h.

Referenced by treeMaxVirtualSize().

◆ whyNotFastClonable_

int edm::PoolOutputModule::whyNotFastClonable_
private

Definition at line 204 of file PoolOutputModule.h.

Referenced by PoolOutputModule(), and whyNotFastClonable().

edm::one::OutputModuleBase::remainingEvents
int remainingEvents() const
Definition: OutputModuleBase.h:91
edm::PoolOutputModule::updateBranchParents
void updateBranchParents(EventForOutput const &e)
Definition: PoolOutputModule.cc:407
ext
Definition: memstream.h:15
edm::PoolOutputModule::branchChildren_
BranchChildren branchChildren_
Definition: PoolOutputModule.h:211
mps_fire.i
i
Definition: mps_fire.py:428
edm::one::OutputModuleBase::subProcessParentageHelper
SubProcessParentageHelper const * subProcessParentageHelper() const
Definition: OutputModuleBase.h:127
edm::PoolOutputModule::fileName_
const std::string fileName_
Definition: PoolOutputModule.h:192
edm::PoolOutputModule::maxFileSize_
unsigned const int maxFileSize_
Definition: PoolOutputModule.h:195
edm::PoolOutputModule::processesWithSelectedMergeableRunProducts_
std::vector< std::string > processesWithSelectedMergeableRunProducts_
Definition: PoolOutputModule.h:217
edm::sort_all
void sort_all(RandomAccessSequence &s)
wrappers for std::sort
Definition: Algorithms.h:92
edm::errors::LogicError
Definition: EDMException.h:37
edm::PoolOutputModule::splitLevel
int splitLevel() const
Definition: PoolOutputModule.h:55
edm::PoolOutputModule::rootOutputFile_
edm::propagate_const< std::unique_ptr< RootOutputFile > > rootOutputFile_
Definition: PoolOutputModule.h:215
edm::PoolOutputModule::writeParameterSetRegistry
void writeParameterSetRegistry()
Definition: PoolOutputModule.cc:343
edm::ParentageRegistry::instance
static ParentageRegistry * instance()
Definition: ParentageRegistry.cc:5
EgammaPostProcessor_cfi.dataSet
dataSet
Definition: EgammaPostProcessor_cfi.py:6
edm::PoolOutputModule::initializedFromInput_
bool initializedFromInput_
Definition: PoolOutputModule.h:207
edm::PoolOutputModule::whyNotFastClonable_
int whyNotFastClonable_
Definition: PoolOutputModule.h:204
edm::BranchChildren::clear
void clear()
Definition: BranchChildren.cc:36
edm::PoolOutputModule::writeProcessBlockHelper
void writeProcessBlockHelper()
Definition: PoolOutputModule.cc:350
edm::PoolOutputModule::updateBranchParentsForOneBranch
void updateBranchParentsForOneBranch(ProductProvenanceRetriever const *provRetriever, BranchID const &branchID)
Definition: PoolOutputModule.cc:395
edm::PoolOutputModule::doExtrasAfterCloseFile
virtual void doExtrasAfterCloseFile()
Definition: PoolOutputModule.cc:355
edm::PoolOutputModule::inputFileCount_
int inputFileCount_
Definition: PoolOutputModule.h:209
edm::BranchType
BranchType
Definition: BranchType.h:11
edm::BranchTypeToAuxiliaryBranchName
std::string const & BranchTypeToAuxiliaryBranchName(BranchType const &branchType)
Definition: BranchType.cc:116
edm::PoolOutputModule::compactEventAuxiliary_
bool compactEventAuxiliary_
Definition: PoolOutputModule.h:214
edm::one::OutputModuleBase::OutputModuleBase
OutputModuleBase(ParameterSet const &pset)
Definition: OutputModuleBase.cc:46
edm::PoolOutputModule::selectedOutputItemList_
std::vector< OutputItemList > selectedOutputItemList_
Definition: PoolOutputModule.h:190
createPayload.suffix
suffix
Definition: createPayload.py:281
edm::NumBranchTypes
Definition: BranchType.h:11
edm::PoolOutputModule::specialSplitLevelForBranches_
std::vector< SpecialSplitLevelForBranch > specialSplitLevelForBranches_
Definition: PoolOutputModule.h:191
edm::SelectedProducts
std::vector< std::pair< BranchDescription const *, EDGetToken > > SelectedProducts
Definition: SelectedProducts.h:11
edm::numberOfRunLumiEventProductTrees
constexpr unsigned int numberOfRunLumiEventProductTrees
Definition: BranchType.h:15
edm::InProcess
Definition: BranchType.h:11
alignCSCRings.s
s
Definition: alignCSCRings.py:92
edm::FileBlock::CanFastClone
Definition: FileBlock.h:26
edm::PoolOutputModule::basketSize_
const int basketSize_
Definition: PoolOutputModule.h:198
trigger::size_type
uint16_t size_type
Definition: TriggerTypeDefs.h:18
edm::PoolOutputModule::moduleLabel_
const std::string moduleLabel_
Definition: PoolOutputModule.h:206
edm::PoolOutputModule::writeFileFormatVersion
void writeFileFormatVersion()
Definition: PoolOutputModule.cc:336
names
const std::string names[nVars_]
Definition: PhotonIDValueMapProducer.cc:124
edm::PoolOutputModule::splitLevel_
const int splitLevel_
Definition: PoolOutputModule.h:201
edm::PoolOutputModule::producedBranches_
std::vector< BranchID > producedBranches_
Definition: PoolOutputModule.h:212
edm::PoolOutputModule::branchParents_
BranchParents branchParents_
Definition: PoolOutputModule.h:210
edm::BranchDescription::invalidSplitLevel
static const int invalidSplitLevel
Definition: BranchDescription.h:34
edm::PoolOutputModule::dropMetaData
DropMetaData const & dropMetaData() const
Definition: PoolOutputModule.h:60
dumpMFGeometry_cfg.prod
prod
Definition: dumpMFGeometry_cfg.py:24
edm::PoolOutputModule::eventAutoFlushSize_
const int eventAutoFlushSize_
Definition: PoolOutputModule.h:200
Service
edm::one::OutputModuleBase::wantAllEvents
bool wantAllEvents() const
Definition: OutputModuleBase.h:119
edm::InEvent
Definition: BranchType.h:11
edm::PoolOutputModule::overrideInputFileSplitLevels_
bool overrideInputFileSplitLevels_
Definition: PoolOutputModule.h:213
edm::PoolOutputModule::writeThinnedAssociationsHelper
void writeThinnedAssociationsHelper()
Definition: PoolOutputModule.cc:347
dqmdumpme.k
k
Definition: dqmdumpme.py:60
edm::PoolOutputModule::writeEventAuxiliary
void writeEventAuxiliary()
Definition: PoolOutputModule.cc:349
b
double b
Definition: hdecay.h:118
edm::PoolOutputModule::auxItems_
AuxItemArray auxItems_
Definition: PoolOutputModule.h:189
edm::PoolOutputModule::compressionAlgorithm_
const std::string compressionAlgorithm_
Definition: PoolOutputModule.h:197
edm::PoolOutputModule::reallyOpenFile
void reallyOpenFile()
Definition: PoolOutputModule.cc:386
edm::PoolOutputModule::writeIndexIntoFile
void writeIndexIntoFile()
Definition: PoolOutputModule.cc:338
sipixeldigitoraw
Definition: SiPixelDigiToRaw.cc:32
edm::InLumi
Definition: BranchType.h:11
edm::ParentageRegistry::getMapped
bool getMapped(key_type const &k, value_type &result) const
Definition: ParentageRegistry.cc:10
edm::one::OutputModuleBase::keptProducts
SelectedProductsForBranchType const & keptProducts() const
Definition: OutputModuleBase.h:97
helper
Definition: helper.py:1
edm::PoolOutputModule::writeProductDependencies
void writeProductDependencies()
Definition: PoolOutputModule.cc:348
edm::PoolOutputModule::DropDroppedPrior
Definition: PoolOutputModule.h:43
edm::PoolOutputModule::isFileOpen
bool isFileOpen() const override
Definition: PoolOutputModule.cc:356
edm::PoolOutputModule::logicalFileName_
const std::string logicalFileName_
Definition: PoolOutputModule.h:193
edm::PoolOutputModule::writeStoredMergeableRunProductMetadata
void writeStoredMergeableRunProductMetadata()
Definition: PoolOutputModule.cc:339
AlCaHLTBitMon_QueryRunRegistry.string
string string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
edm::one::OutputModuleBase::processName
std::string const & processName() const
Definition: OutputModuleBase.h:96
edm::PoolOutputModule::outputFileCount_
int outputFileCount_
Definition: PoolOutputModule.h:208
edm::PoolOutputModule::beginInputFile
void beginInputFile(FileBlock const &fb)
Definition: PoolOutputModule.cc:228
alignCSCRings.r
r
Definition: alignCSCRings.py:93
edm::PoolOutputModule::DropPrior
Definition: PoolOutputModule.h:43
edm::PoolOutputModule::fileName
std::string const & fileName() const
Definition: PoolOutputModule.h:48
edm::PoolOutputModule::writeProductDescriptionRegistry
void writeProductDescriptionRegistry()
Definition: PoolOutputModule.cc:344
submitPVResolutionJobs.desc
string desc
Definition: submitPVResolutionJobs.py:251
edm::PoolOutputModule::writeBranchIDListRegistry
void writeBranchIDListRegistry()
Definition: PoolOutputModule.cc:346
edm::FileBlock::EventSelectionUsed
Definition: FileBlock.h:51
edm::PoolOutputModule::fillDependencyGraph
void fillDependencyGraph()
Definition: PoolOutputModule.cc:434
edm::FileBlock::DisabledInConfigFile
Definition: FileBlock.h:50
edm::OutputProcessBlockHelper::processesWithProcessBlockProducts
std::vector< std::string > const & processesWithProcessBlockProducts() const
Definition: OutputProcessBlockHelper.h:22
edm::PoolOutputModule::statusFileName_
std::string statusFileName_
Definition: PoolOutputModule.h:216
edm::PoolOutputModule::logicalFileName
std::string const & logicalFileName() const
Definition: PoolOutputModule.h:49
relativeConstraints.empty
bool empty
Definition: relativeConstraints.py:46
edm::PoolOutputModule::rootServiceChecker_
RootServiceChecker rootServiceChecker_
Definition: PoolOutputModule.h:188
Exception
Definition: hltDiff.cc:245
edm::PoolOutputModule::startEndFile
void startEndFile()
Definition: PoolOutputModule.cc:334
edm::BranchDescription::invalidBasketSize
static const int invalidBasketSize
Definition: BranchDescription.h:35
edm::one::OutputModuleBase::outputProcessBlockHelper
OutputProcessBlockHelper const & outputProcessBlockHelper() const
Definition: OutputModuleBase.h:123
ParameterSetDescription
dqmiodatasetharvest.processes
processes
Definition: dqmiodatasetharvest.py:190
edm::PoolOutputModule::DropNone
Definition: PoolOutputModule.h:43
edm::PoolOutputModule::writeProcessHistoryRegistry
void writeProcessHistoryRegistry()
Definition: PoolOutputModule.cc:342
edm::PoolOutputModule::catalog_
const std::string catalog_
Definition: PoolOutputModule.h:194
edm::PoolOutputModule::dropMetaData_
DropMetaData dropMetaData_
Definition: PoolOutputModule.h:205
edm::PoolOutputModule::compressionLevel_
const int compressionLevel_
Definition: PoolOutputModule.h:196
edm::PoolOutputModule::treeMaxVirtualSize_
const int treeMaxVirtualSize_
Definition: PoolOutputModule.h:203
parents
TPRegexp parents
Definition: eve_filter.cc:21
hltrates_dqm_sourceclient-live_cfg.offset
offset
Definition: hltrates_dqm_sourceclient-live_cfg.py:82
edm::PoolOutputModule::writeFileIdentifier
void writeFileIdentifier()
Definition: PoolOutputModule.cc:337
child
Definition: simpleInheritance.h:11
edm::PoolOutputModule::finishEndFile
void finishEndFile()
Definition: PoolOutputModule.cc:351
edm::PoolOutputModule::OutputItemList
std::vector< OutputItem > OutputItemList
Definition: PoolOutputModule.h:115
edm::PoolOutputModule::DropAll
Definition: PoolOutputModule.h:43
edm::errors::Configuration
Definition: EDMException.h:36
class-composition.parent
parent
Definition: class-composition.py:98
SiStripBadComponentsDQMServiceTemplate_cfg.ep
ep
Definition: SiStripBadComponentsDQMServiceTemplate_cfg.py:86
edm::PoolOutputModule::basketOrder_
std::string basketOrder_
Definition: PoolOutputModule.h:202
edm::PoolOutputModule::fillSelectedItemList
void fillSelectedItemList(BranchType branchtype, std::string const &processName, TTree *theInputTree, OutputItemList &)
Definition: PoolOutputModule.cc:171
edm::PoolOutputModule::writeParentageRegistry
void writeParentageRegistry()
Definition: PoolOutputModule.cc:345
edm::PoolOutputModule::fillDescription
static void fillDescription(ParameterSetDescription &desc)
Definition: PoolOutputModule.cc:449
edm::BranchChildren::insertChild
void insertChild(BranchID parent, BranchID child)
Definition: BranchChildren.cc:40
muonDTDigis_cfi.pset
pset
Definition: muonDTDigis_cfi.py:27
edm::PoolOutputModule::physicalAndLogicalNameForNewFile
virtual std::pair< std::string, std::string > physicalAndLogicalNameForNewFile()
Definition: PoolOutputModule.cc:359
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37
edm::PoolOutputModule::basketSize
int basketSize() const
Definition: PoolOutputModule.h:52
edm::PoolOutputModule::eventAuxBasketSize_
const int eventAuxBasketSize_
Definition: PoolOutputModule.h:199