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

typedef std::array< AuxItem, NumBranchTypesAuxItemArray
 
enum  DropMetaData { DropNone, DropDroppedPrior, DropPrior, DropAll }
 
typedef std::vector< OutputItemOutputItemList
 
typedef std::array< OutputItemList, NumBranchTypesOutputItemListArray
 
- 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 const & basketSize () const
 
BranchChildren const & branchChildren () const
 
std::string const & catalog () const
 
std::string const & compressionAlgorithm () const
 
int const & compressionLevel () const
 
std::string const & currentFileName () const
 
DropMetaData const & dropMetaData () const
 
int eventAutoFlushSize () const
 
std::string const & fileName () const
 
int const & inputFileCount () const
 
std::string const & logicalFileName () const
 
unsigned int const & maxFileSize () const
 
std::string const & moduleLabel () const
 
PoolOutputModuleoperator= (PoolOutputModule const &)=delete
 
bool const & overrideInputFileSplitLevels () const
 
 PoolOutputModule (ParameterSet const &ps)
 
 PoolOutputModule (PoolOutputModule const &)=delete
 
OutputItemListArray const & selectedOutputItemList () const
 
int const & splitLevel () const
 
int const & treeMaxVirtualSize () const
 
int const & whyNotFastClonable () const
 
 ~PoolOutputModule () override
 
- Public Member Functions inherited from edm::one::OutputModule< WatchInputFiles >
 OutputModule (edm::ParameterSet const &iPSet)
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
- Public Member Functions inherited from edm::one::OutputModuleBase
BranchIDLists const * branchIDLists ()
 
SerialTaskQueueglobalLuminosityBlocksQueue ()
 
SerialTaskQueueglobalRunsQueue ()
 
std::array< bool, NumBranchTypes > const & hasNewlyDroppedBranch () const
 
SelectedProductsForBranchType const & keptProducts () const
 
int maxEvents () const
 
const ModuleDescriptionmoduleDescription () const
 
OutputModuleBaseoperator= (OutputModuleBase const &)=delete
 
 OutputModuleBase (ParameterSet const &pset)
 
 OutputModuleBase (OutputModuleBase const &)=delete
 
std::string const & processName () const
 
int remainingEvents () const
 
bool selected (BranchDescription const &desc) const
 
void selectProducts (ProductRegistry const &preg, ThinnedAssociationsHelper 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 const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
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::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
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)
 
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 doBeginJob ()
 
bool doBeginLuminosityBlock (LuminosityBlockPrincipal const &lbp, EventSetup const &c, ModuleCallingContext const *)
 
bool doBeginRun (RunPrincipal const &rp, EventSetup const &c, ModuleCallingContext const *)
 
void doEndJob ()
 
bool doEndLuminosityBlock (LuminosityBlockPrincipal const &lbp, EventSetup const &c, ModuleCallingContext const *)
 
bool doEndRun (RunPrincipal const &rp, EventSetup const &c, ModuleCallingContext const *)
 
bool doEvent (EventPrincipal const &ep, EventSetup const &c, ActivityRegistry *, ModuleCallingContext const *)
 
void doPreallocate (PreallocationConfiguration const &)
 
std::map< BranchID::value_type, BranchID::value_type > const & droppedBranchIDToKeptBranchID ()
 
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
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
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 ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 

Private Types

typedef std::map< BranchID, std::set< ParentageID > > BranchParents
 

Private Member Functions

void beginInputFile (FileBlock const &fb)
 
void beginJob () override
 
void fillDependencyGraph ()
 
void fillSelectedItemList (BranchType branchtype, TTree *theInputTree)
 
void finishEndFile ()
 
bool isFileOpen () const override
 
void openFile (FileBlock const &fb) override
 
void preActionBeforeRunEventAsync (WaitingTask *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 startEndFile ()
 
void updateBranchParents (EventForOutput const &e)
 
void updateBranchParentsForOneBranch (ProductProvenanceRetriever const *provRetriever, BranchID const &branchID)
 
void writeBranchIDListRegistry ()
 
void writeFileFormatVersion ()
 
void writeFileIdentifier ()
 
void writeIndexIntoFile ()
 
void writeLuminosityBlock (LuminosityBlockForOutput const &lb) override
 
void writeParameterSetRegistry ()
 
void writeParentageRegistry ()
 
void writeProcessHistoryRegistry ()
 
void writeProductDependencies ()
 
void writeProductDescriptionRegistry ()
 
void writeRun (RunForOutput const &r) override
 
void writeThinnedAssociationsHelper ()
 

Private Attributes

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

Detailed Description

Definition at line 39 of file PoolOutputModule.h.

Member Typedef Documentation

Definition at line 75 of file PoolOutputModule.h.

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

Definition at line 147 of file PoolOutputModule.h.

Definition at line 107 of file PoolOutputModule.h.

Definition at line 109 of file PoolOutputModule.h.

Member Enumeration Documentation

Constructor & Destructor Documentation

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

Definition at line 37 of file PoolOutputModule.cc.

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

37  :
39  one::OutputModule<WatchInputFiles>(pset),
41  auxItems_(),
43  fileName_(pset.getUntrackedParameter<std::string>("fileName")),
44  logicalFileName_(pset.getUntrackedParameter<std::string>("logicalFileName")),
45  catalog_(pset.getUntrackedParameter<std::string>("catalog")),
46  maxFileSize_(pset.getUntrackedParameter<int>("maxSize")),
47  compressionLevel_(pset.getUntrackedParameter<int>("compressionLevel")),
48  compressionAlgorithm_(pset.getUntrackedParameter<std::string>("compressionAlgorithm")),
49  basketSize_(pset.getUntrackedParameter<int>("basketSize")),
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 : FileBlock::DisabledInConfigFile),
56  moduleLabel_(pset.getParameter<std::string>("@module_label")),
57  initializedFromInput_(false),
59  inputFileCount_(0),
60  childIndex_(0U),
64  overrideInputFileSplitLevels_(pset.getUntrackedParameter<bool>("overrideInputFileSplitLevels")),
66  statusFileName_() {
67 
68  if (pset.getUntrackedParameter<bool>("writeStatusFile")) {
69  std::ostringstream statusfilename;
70  statusfilename << moduleLabel_ << '_' << getpid();
71  statusFileName_ = statusfilename.str();
72  }
73 
74  std::string dropMetaData(pset.getUntrackedParameter<std::string>("dropMetaData"));
75  if(dropMetaData.empty()) dropMetaData_ = DropNone;
76  else if(dropMetaData == std::string("NONE")) dropMetaData_ = DropNone;
77  else if(dropMetaData == std::string("DROPPED")) dropMetaData_ = DropDroppedPrior;
78  else if(dropMetaData == std::string("PRIOR")) dropMetaData_ = DropPrior;
79  else if(dropMetaData == std::string("ALL")) dropMetaData_ = DropAll;
80  else {
81  throw edm::Exception(errors::Configuration, "Illegal dropMetaData parameter value: ")
82  << dropMetaData << ".\n"
83  << "Legal values are 'NONE', 'DROPPED', 'PRIOR', and 'ALL'.\n";
84  }
85 
86  if (!wantAllEvents()) {
88  }
89 
90  auto const& specialSplit {pset.getUntrackedParameterSetVector("overrideBranchesSplitLevel")};
91 
92  specialSplitLevelForBranches_.reserve(specialSplit.size());
93  for(auto const& s: specialSplit) {
94  specialSplitLevelForBranches_.emplace_back(s.getUntrackedParameter<std::string>("branch"),
95  s.getUntrackedParameter<int>("splitLevel"));
96  }
97 
98  // We don't use this next parameter, but we read it anyway because it is part
99  // of the configuration of this module. An external parser creates the
100  // configuration by reading this source code.
101  pset.getUntrackedParameterSet("dataset");
102  }
std::string const compressionAlgorithm_
edm::propagate_const< std::unique_ptr< RootOutputFile > > rootOutputFile_
std::string const catalog_
std::vector< SpecialSplitLevelForBranch > specialSplitLevelForBranches_
DropMetaData const & dropMetaData() const
BranchChildren branchChildren_
std::string const moduleLabel_
OutputItemListArray selectedOutputItemList_
BranchParents branchParents_
unsigned int numberOfDigitsInIndex_
OutputModuleBase(ParameterSet const &pset)
unsigned int const maxFileSize_
std::string const fileName_
std::string const logicalFileName_
RootServiceChecker rootServiceChecker_
edm::PoolOutputModule::~PoolOutputModule ( )
override

Definition at line 265 of file PoolOutputModule.cc.

265  {
266  }
edm::PoolOutputModule::PoolOutputModule ( PoolOutputModule const &  )
delete

Member Function Documentation

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

Definition at line 76 of file PoolOutputModule.h.

References auxItems_.

76 {return auxItems_;}
std::string const& edm::PoolOutputModule::basketOrder ( ) const
inline

Definition at line 53 of file PoolOutputModule.h.

References basketOrder_.

53 {return basketOrder_;}
int const& edm::PoolOutputModule::basketSize ( ) const
inline

Definition at line 50 of file PoolOutputModule.h.

References basketSize_.

Referenced by fillSelectedItemList().

50 {return basketSize_;}
void edm::PoolOutputModule::beginInputFile ( FileBlock const &  fb)
private

Definition at line 225 of file PoolOutputModule.cc.

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

Referenced by openFile(), and respondToOpenInputFile().

225  {
226  if(isFileOpen()) {
227  //Faster to read ChildrenBranches directly from input
228  // file than to build it every event
229  auto const& branchToChildMap = fb.branchChildren().childLookup();
230  for (auto const& parentToChildren : branchToChildMap) {
231  for (auto const& child : parentToChildren.second) {
232  branchChildren_.insertChild(parentToChildren.first, child);
233  }
234  }
235  rootOutputFile_->beginInputFile(fb, remainingEvents());
236  }
237  }
edm::propagate_const< std::unique_ptr< RootOutputFile > > rootOutputFile_
BranchChildren branchChildren_
void insertChild(BranchID parent, BranchID child)
bool isFileOpen() const override
void edm::PoolOutputModule::beginJob ( void  )
overrideprivatevirtual

Reimplemented from edm::one::OutputModuleBase.

Definition at line 104 of file PoolOutputModule.cc.

References edm::BranchDescription::branchID(), edm::BranchDescription::branchType(), edm::InEvent, edm::BranchDescription::isAlias(), parseEventContent::prod, edm::BranchDescription::produced(), and producedBranches_.

Referenced by branchChildren().

104  {
106  for(auto const& prod : reg->productList()) {
107  BranchDescription const& desc = prod.second;
108  if (desc.produced() && desc.branchType() == InEvent && !desc.isAlias()) {
109  producedBranches_.emplace_back(desc.branchID());
110  }
111  }
112  }
std::vector< BranchID > producedBranches_
BranchChildren const& edm::PoolOutputModule::branchChildren ( ) const
inline
std::string const& edm::PoolOutputModule::catalog ( ) const
inline

Definition at line 57 of file PoolOutputModule.h.

References catalog_.

57 {return catalog_;}
std::string const catalog_
std::string const& edm::PoolOutputModule::compressionAlgorithm ( ) const
inline

Definition at line 49 of file PoolOutputModule.h.

References compressionAlgorithm_.

49 {return compressionAlgorithm_;}
std::string const compressionAlgorithm_
int const& edm::PoolOutputModule::compressionLevel ( ) const
inline

Definition at line 48 of file PoolOutputModule.h.

References compressionLevel_.

48 {return compressionLevel_;}
std::string const & edm::PoolOutputModule::currentFileName ( ) const

Definition at line 114 of file PoolOutputModule.cc.

References rootOutputFile_.

Referenced by edm::TimeoutPoolOutputModule::shouldWeCloseFile(), and whyNotFastClonable().

114  {
115  return rootOutputFile_->fileName();
116  }
edm::propagate_const< std::unique_ptr< RootOutputFile > > rootOutputFile_
void edm::PoolOutputModule::doExtrasAfterCloseFile ( )
protectedvirtual

Reimplemented in dqmservices::JsonWritingTimeoutPoolOutputModule.

Definition at line 321 of file PoolOutputModule.cc.

Referenced by branchChildren(), and reallyCloseFile().

321 {}
DropMetaData const& edm::PoolOutputModule::dropMetaData ( ) const
inline

Definition at line 56 of file PoolOutputModule.h.

References dropMetaData_.

Referenced by PoolOutputModule().

56 {return dropMetaData_;}
int edm::PoolOutputModule::eventAutoFlushSize ( ) const
inline

Definition at line 51 of file PoolOutputModule.h.

References eventAutoFlushSize_.

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

51 {return eventAutoFlushSize_;}
std::string const& edm::PoolOutputModule::fileName ( ) const
inline

Definition at line 46 of file PoolOutputModule.h.

References fileName_.

Referenced by physicalAndLogicalNameForNewFile().

46 {return fileName_;}
std::string const fileName_
void edm::PoolOutputModule::fillDependencyGraph ( )
private

Definition at line 410 of file PoolOutputModule.cc.

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

Referenced by reallyCloseFile().

410  {
411  for(auto const& branchParent : branchParents_) {
412  BranchID const& child = branchParent.first;
413  std::set<ParentageID> const& eIds = branchParent.second;
414  for(auto const& eId : eIds) {
415  Parentage entryDesc;
416  ParentageRegistry::instance()->getMapped(eId, entryDesc);
417  std::vector<BranchID> const& parents = entryDesc.parents();
418  for(auto const& parent : parents) {
420  }
421  }
422  }
423  }
TPRegexp parents
Definition: eve_filter.cc:21
BranchChildren branchChildren_
void insertChild(BranchID parent, BranchID child)
bool getMapped(key_type const &k, value_type &result) const
BranchParents branchParents_
static ParentageRegistry * instance()
void edm::PoolOutputModule::fillDescription ( ParameterSetDescription desc)
static

Definition at line 426 of file PoolOutputModule.cc.

References edm::ParameterSetDescription::addUntracked(), edm::ParameterSetDescription::addVPSetUntracked(), edm::OutputModule::fillDescription(), edm::ParameterSetDescription::setAllowAnything(), edm::ParameterSetDescription::setComment(), and AlCaHLTBitMon_QueryRunRegistry::string.

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

426  {
427  std::string defaultString;
428 
429  desc.setComment("Writes runs, lumis, and events into EDM/ROOT files.");
430  desc.addUntracked<std::string>("fileName")
431  ->setComment("Name of output file.");
432  desc.addUntracked<std::string>("logicalFileName", defaultString)
433  ->setComment("Passed to job report. Otherwise unused by module.");
434  desc.addUntracked<std::string>("catalog", defaultString)
435  ->setComment("Passed to job report. Otherwise unused by module.");
436  desc.addUntracked<int>("maxSize", 0x7f000000)
437  ->setComment("Maximum output file size, in kB.\n"
438  "If over maximum, new output file will be started at next input file transition.");
439  desc.addUntracked<int>("compressionLevel", 9)
440  ->setComment("ROOT compression level of output file.");
441  desc.addUntracked<std::string>("compressionAlgorithm", "ZLIB")
442  ->setComment("Algorithm used to compress data in the ROOT output file, allowed values are ZLIB and LZMA");
443  desc.addUntracked<int>("basketSize", 16384)
444  ->setComment("Default ROOT basket size in output file.");
445  desc.addUntracked<int>("eventAutoFlushCompressedSize",20*1024*1024)
446  ->setComment("Set ROOT auto flush stored data size (in bytes) for event TTree. The value sets how large the compressed buffer is allowed to get. The uncompressed buffer can be quite a bit larger than this depending on the average compression ratio. The value of -1 just uses ROOT's default value. The value of 0 turns off this feature.");
447  desc.addUntracked<int>("splitLevel", 99)
448  ->setComment("Default ROOT branch split level in output file.");
449  desc.addUntracked<std::string>("sortBaskets", std::string("sortbasketsbyoffset"))
450  ->setComment("Legal values: 'sortbasketsbyoffset', 'sortbasketsbybranch', 'sortbasketsbyentry'.\n"
451  "Used by ROOT when fast copying. Affects performance.");
452  desc.addUntracked<int>("treeMaxVirtualSize", -1)
453  ->setComment("Size of ROOT TTree TBasket cache. Affects performance.");
454  desc.addUntracked<bool>("fastCloning", true)
455  ->setComment("True: Allow fast copying, if possible.\n"
456  "False: Disable fast copying.");
457  desc.addUntracked<bool>("overrideInputFileSplitLevels", false)
458  ->setComment("False: Use branch split levels and basket sizes from input file, if possible.\n"
459  "True: Always use specified or default split levels and basket sizes.");
460  desc.addUntracked<bool>("writeStatusFile", false)
461  ->setComment("Write a status file. Intended for use by workflow management.");
462  desc.addUntracked<std::string>("dropMetaData", defaultString)
463  ->setComment("Determines handling of per product per event metadata. Options are:\n"
464  "'NONE': Keep all of it.\n"
465  "'DROPPED': Keep it for products produced in current process and all kept products. Drop it for dropped products produced in prior processes.\n"
466  "'PRIOR': Keep it for products produced in current process. Drop it for products produced in prior processes.\n"
467  "'ALL': Drop all of it.");
468  {
469  ParameterSetDescription dataSet;
470  dataSet.setAllowAnything();
471  desc.addUntracked<ParameterSetDescription>("dataset", dataSet)
472  ->setComment("PSet is only used by Data Operations and not by this module.");
473  }
474  {
475  ParameterSetDescription specialSplit;
476  specialSplit.addUntracked<std::string>("branch")->setComment("Name of branch needing a special split level. The name can contain wildcards '*' and '?'");
477  specialSplit.addUntracked<int>("splitLevel")->setComment("The special split level for the branch");
478  desc.addVPSetUntracked("overrideBranchesSplitLevel",specialSplit, std::vector<ParameterSet>());
479  }
481  }
static void fillDescription(ParameterSetDescription &desc, std::vector< std::string > const &iDefaultOutputCommands=ProductSelectorRules::defaultSelectionStrings())
void edm::PoolOutputModule::fillDescriptions ( ConfigurationDescriptions descriptions)
static

Definition at line 484 of file PoolOutputModule.cc.

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

Referenced by whyNotFastClonable().

484  {
487  descriptions.add("edmOutput", desc);
488  }
static void fillDescription(ParameterSetDescription &desc)
void edm::PoolOutputModule::fillSelectedItemList ( BranchType  branchtype,
TTree *  theInputTree 
)
private

Definition at line 179 of file PoolOutputModule.cc.

References auxItems_, b, basketSize(), edm::BranchDescription::basketSize(), edm::PoolOutputModule::AuxItem::basketSize_, edm::PoolOutputModule::OutputItem::basketSize_, edm::BranchDescription::branchName(), revisionDML::branchType(), edm::BranchTypeToAuxiliaryBranchName(), edm::BranchDescription::invalidBasketSize, edm::BranchDescription::invalidSplitLevel, edm::one::OutputModuleBase::keptProducts(), overrideInputFileSplitLevels_, parseEventContent::prod, edm::BranchDescription::produced(), selectedOutputItemList_, edm::sort_all(), specialSplitLevelForBranches_, splitLevel(), edm::BranchDescription::splitLevel(), and edm::PoolOutputModule::OutputItem::splitLevel_.

Referenced by respondToOpenInputFile().

179  {
180 
181  SelectedProducts const& keptVector = keptProducts()[branchType];
183  AuxItem& auxItem = auxItems_[branchType];
184 
185  // Fill AuxItem
186  if (theInputTree != nullptr && !overrideInputFileSplitLevels_) {
187  TBranch* auxBranch = theInputTree->GetBranch(BranchTypeToAuxiliaryBranchName(branchType).c_str());
188  if (auxBranch) {
189  auxItem.basketSize_ = auxBranch->GetBasketSize();
190  } else {
191  auxItem.basketSize_ = basketSize_;
192  }
193  } else {
194  auxItem.basketSize_ = basketSize_;
195  }
196 
197  // Fill outputItemList with an entry for each branch.
198  for(auto const& kept : keptVector) {
201 
202  BranchDescription const& prod = *kept.first;
203  TBranch* theBranch = ((!prod.produced() && theInputTree != nullptr && !overrideInputFileSplitLevels_) ? theInputTree->GetBranch(prod.branchName().c_str()) : nullptr);
204 
205  if(theBranch != nullptr) {
206  splitLevel = theBranch->GetSplitLevel();
207  basketSize = theBranch->GetBasketSize();
208  } else {
209  splitLevel = (prod.splitLevel() == BranchDescription::invalidSplitLevel ? splitLevel_ : prod.splitLevel());
210  for(auto const& b: specialSplitLevelForBranches_) {
211  if(b.match(prod.branchName())) {
212  splitLevel =b.splitLevel_;
213  }
214  }
215  basketSize = (prod.basketSize() == BranchDescription::invalidBasketSize ? basketSize_ : prod.basketSize());
216  }
217  outputItemList.emplace_back(&prod, kept.second, splitLevel, basketSize);
218  }
219 
220  // Sort outputItemList to allow fast copying.
221  // The branches in outputItemList must be in the same order as in the input tree, with all new branches at the end.
222  sort_all(outputItemList, OutputItem::Sorter(theInputTree));
223  }
std::string const & BranchTypeToAuxiliaryBranchName(BranchType const &branchType)
Definition: BranchType.cc:115
int const & basketSize() const
static int const invalidSplitLevel
std::vector< SpecialSplitLevelForBranch > specialSplitLevelForBranches_
static int const invalidBasketSize
std::vector< OutputItem > OutputItemList
std::vector< std::pair< BranchDescription const *, EDGetToken > > SelectedProducts
OutputItemListArray selectedOutputItemList_
SelectedProductsForBranchType const & keptProducts() const
int const & splitLevel() const
void sort_all(RandomAccessSequence &s)
wrappers for std::sort
Definition: Algorithms.h:120
double b
Definition: hdecay.h:120
def branchType(schema, name)
Definition: revisionDML.py:112
void edm::PoolOutputModule::finishEndFile ( )
private

Definition at line 320 of file PoolOutputModule.cc.

References rootOutputFile_.

Referenced by reallyCloseFile().

320 { rootOutputFile_->finishEndFile(); rootOutputFile_ = nullptr; } // propagate_const<T> has no reset() function
edm::propagate_const< std::unique_ptr< RootOutputFile > > rootOutputFile_
int const& edm::PoolOutputModule::inputFileCount ( ) const
inline

Definition at line 60 of file PoolOutputModule.h.

References inputFileCount_.

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

Reimplemented from edm::one::OutputModuleBase.

Definition at line 322 of file PoolOutputModule.cc.

References rootOutputFile_.

Referenced by beginInputFile(), branchChildren(), and openFile().

322 { return rootOutputFile_.get() != nullptr; }
edm::propagate_const< std::unique_ptr< RootOutputFile > > rootOutputFile_
std::string const& edm::PoolOutputModule::logicalFileName ( ) const
inline

Definition at line 47 of file PoolOutputModule.h.

References logicalFileName_.

Referenced by physicalAndLogicalNameForNewFile().

47 {return logicalFileName_;}
std::string const logicalFileName_
unsigned int const& edm::PoolOutputModule::maxFileSize ( ) const
inline

Definition at line 59 of file PoolOutputModule.h.

References maxFileSize_.

59 {return maxFileSize_;}
unsigned int const maxFileSize_
std::string const& edm::PoolOutputModule::moduleLabel ( ) const
inline

Definition at line 58 of file PoolOutputModule.h.

References moduleLabel_.

58 {return moduleLabel_;}
std::string const moduleLabel_
void edm::PoolOutputModule::openFile ( FileBlock const &  fb)
overrideprivatevirtual

Reimplemented from edm::one::OutputModuleBase.

Definition at line 239 of file PoolOutputModule.cc.

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

Referenced by branchChildren().

239  {
240  if(!isFileOpen()) {
241  reallyOpenFile();
243  }
244  }
bool isFileOpen() const override
void beginInputFile(FileBlock const &fb)
PoolOutputModule& edm::PoolOutputModule::operator= ( PoolOutputModule const &  )
delete
bool const& edm::PoolOutputModule::overrideInputFileSplitLevels ( ) const
inline

Definition at line 55 of file PoolOutputModule.h.

References overrideInputFileSplitLevels_.

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

Reimplemented in dqmservices::JsonWritingTimeoutPoolOutputModule.

Definition at line 326 of file PoolOutputModule.cc.

References childIndex_, relativeConstraints::empty, Exception, fileName(), inputFileCount_, logicalFileName(), edm::errors::LogicError, numberOfDigitsInIndex_, PFRecoTauDiscriminationByIsolation_cfi::offset, outputFileCount_, AlCaHLTBitMon_QueryRunRegistry::string, and createPayload::suffix.

Referenced by branchChildren(), and reallyOpenFile().

326  {
327  if(inputFileCount_ == 0) {
329  << "Attempt to open output file before input file. "
330  << "Please report this to the core framework developers.\n";
331  }
332  std::string suffix(".root");
334  bool ext = (offset == fileName().size() - suffix.size());
335  if(!ext) suffix.clear();
336  std::string fileBase(ext ? fileName().substr(0, offset) : fileName());
337  std::ostringstream ofilename;
338  std::ostringstream lfilename;
339  ofilename << fileBase;
340  lfilename << logicalFileName();
342  ofilename << '_' << std::setw(numberOfDigitsInIndex_) << std::setfill('0') << childIndex_;
343  if(!logicalFileName().empty()) {
344  lfilename << '_' << std::setw(numberOfDigitsInIndex_) << std::setfill('0') << childIndex_;
345  }
346  }
347  if(outputFileCount_) {
348  ofilename << std::setw(3) << std::setfill('0') << outputFileCount_;
349  if(!logicalFileName().empty()) {
350  lfilename << std::setw(3) << std::setfill('0') << outputFileCount_;
351  }
352  }
353  ofilename << suffix;
355 
356  return std::make_pair(ofilename.str(), lfilename.str());
357  }
std::string const & fileName() const
uint16_t size_type
std::string const & logicalFileName() const
unsigned int numberOfDigitsInIndex_
Definition: memstream.h:15
void edm::PoolOutputModule::preActionBeforeRunEventAsync ( WaitingTask iTask,
ModuleCallingContext const &  iModuleCallingContext,
Principal const &  iPrincipal 
) const
overrideprivatevirtual

Reimplemented from edm::one::OutputModuleBase.

Definition at line 396 of file PoolOutputModule.cc.

References DropAll, dropMetaData_, edm::EventPrincipal::productProvenanceRetrieverPtr(), and edm::ProductProvenanceRetriever::readProvenanceAsync().

Referenced by branchChildren().

396  {
397  if(DropAll != dropMetaData_ ) {
398  auto const* ep = dynamic_cast<EventPrincipal const*>(&iPrincipal);
399  if(ep)
400  {
401  auto pr = ep->productProvenanceRetrieverPtr();
402  if(pr) {
403  pr->readProvenanceAsync(iTask,&iModuleCallingContext);
404  }
405  }
406  }
407  }
void edm::PoolOutputModule::reallyCloseFile ( )
overrideprivatevirtual

Reimplemented from edm::one::OutputModuleBase.

Definition at line 286 of file PoolOutputModule.cc.

References branchChildren_, branchParents_, edm::BranchChildren::clear(), doExtrasAfterCloseFile(), fillDependencyGraph(), finishEndFile(), startEndFile(), writeBranchIDListRegistry(), writeFileFormatVersion(), writeFileIdentifier(), writeIndexIntoFile(), writeParameterSetRegistry(), writeParentageRegistry(), writeProcessHistoryRegistry(), writeProductDependencies(), writeProductDescriptionRegistry(), and writeThinnedAssociationsHelper().

Referenced by branchChildren().

286  {
288  branchParents_.clear();
289  startEndFile();
299  writeProductDependencies(); //branchChildren used here
301  finishEndFile();
302 
304  }
BranchChildren branchChildren_
virtual void doExtrasAfterCloseFile()
BranchParents branchParents_
void edm::PoolOutputModule::reallyOpenFile ( )
private

Definition at line 359 of file PoolOutputModule.cc.

References cscdqm::h::names, physicalAndLogicalNameForNewFile(), and rootOutputFile_.

Referenced by branchChildren(), and openFile().

359  {
361  rootOutputFile_ = std::make_unique<RootOutputFile>(this, names.first, names.second); // propagate_const<T> has no reset() function
362  }
virtual std::pair< std::string, std::string > physicalAndLogicalNameForNewFile()
static const HistoName names[]
edm::propagate_const< std::unique_ptr< RootOutputFile > > rootOutputFile_
void edm::PoolOutputModule::respondToCloseInputFile ( FileBlock const &  fb)
overrideprivate

Definition at line 261 of file PoolOutputModule.cc.

References rootOutputFile_.

Referenced by branchChildren().

261  {
262  if(rootOutputFile_) rootOutputFile_->respondToCloseInputFile(fb);
263  }
edm::propagate_const< std::unique_ptr< RootOutputFile > > rootOutputFile_
void edm::PoolOutputModule::respondToOpenInputFile ( FileBlock const &  fb)
overrideprivate

Definition at line 246 of file PoolOutputModule.cc.

References beginInputFile(), revisionDML::branchType(), fillSelectedItemList(), mps_fire::i, edm::InEvent, initializedFromInput_, edm::InLumi, inputFileCount_, edm::FileBlock::lumiTree(), edm::NumBranchTypes, edm::FileBlock::runTree(), and edm::FileBlock::tree().

Referenced by branchChildren().

246  {
247  if(!initializedFromInput_) {
248  for(int i = InEvent; i < NumBranchTypes; ++i) {
249  BranchType branchType = static_cast<BranchType>(i);
250  TTree* theInputTree = (branchType == InEvent ? fb.tree() :
251  (branchType == InLumi ? fb.lumiTree() :
252  fb.runTree()));
253  fillSelectedItemList(branchType, theInputTree);
254  }
255  initializedFromInput_ = true;
256  }
257  ++inputFileCount_;
259  }
BranchType
Definition: BranchType.h:11
void fillSelectedItemList(BranchType branchtype, TTree *theInputTree)
void beginInputFile(FileBlock const &fb)
def branchType(schema, name)
Definition: revisionDML.py:112
OutputItemListArray const& edm::PoolOutputModule::selectedOutputItemList ( ) const
inline

Definition at line 123 of file PoolOutputModule.h.

References selectedOutputItemList_.

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

123 {return selectedOutputItemList_;}
OutputItemListArray selectedOutputItemList_
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 323 of file PoolOutputModule.cc.

References rootOutputFile_.

Referenced by branchChildren(), and edm::TimeoutPoolOutputModule::shouldWeCloseFile().

323 { return rootOutputFile_->shouldWeCloseFile(); }
edm::propagate_const< std::unique_ptr< RootOutputFile > > rootOutputFile_
int const& edm::PoolOutputModule::splitLevel ( ) const
inline

Definition at line 52 of file PoolOutputModule.h.

References splitLevel_.

Referenced by fillSelectedItemList().

52 {return splitLevel_;}
void edm::PoolOutputModule::startEndFile ( )
private

Definition at line 308 of file PoolOutputModule.cc.

Referenced by reallyCloseFile().

308 { }
int const& edm::PoolOutputModule::treeMaxVirtualSize ( ) const
inline

Definition at line 54 of file PoolOutputModule.h.

References treeMaxVirtualSize_.

54 {return treeMaxVirtualSize_;}
void edm::PoolOutputModule::updateBranchParents ( EventForOutput const &  e)
private

Definition at line 381 of file PoolOutputModule.cc.

References producedBranches_, edm::EventForOutput::productProvenanceRetrieverPtr(), edm::one::OutputModuleBase::subProcessParentageHelper(), and updateBranchParentsForOneBranch().

Referenced by write().

381  {
382 
383  ProductProvenanceRetriever const* provRetriever = e.productProvenanceRetrieverPtr();
384  for (auto const& bid : producedBranches_) {
385  updateBranchParentsForOneBranch(provRetriever, bid);
386  }
387  SubProcessParentageHelper const* helper = subProcessParentageHelper();
388  if (helper) {
389  for (auto const& bid : subProcessParentageHelper()->producedProducts()) {
390  updateBranchParentsForOneBranch(provRetriever, bid);
391  }
392  }
393  }
SubProcessParentageHelper const * subProcessParentageHelper() const
Definition: helper.py:1
void updateBranchParentsForOneBranch(ProductProvenanceRetriever const *provRetriever, BranchID const &branchID)
std::vector< BranchID > producedBranches_
void edm::PoolOutputModule::updateBranchParentsForOneBranch ( ProductProvenanceRetriever const *  provRetriever,
BranchID const &  branchID 
)
private

Definition at line 365 of file PoolOutputModule.cc.

References edm::ProductProvenanceRetriever::branchIDToProvenanceForProducedOnly(), branchParents_, and edm::ProductProvenance::parentageID().

Referenced by updateBranchParents().

367  {
368 
369  ProductProvenance const* provenance = provRetriever->branchIDToProvenanceForProducedOnly(branchID);
370  if (provenance != nullptr) {
371  BranchParents::iterator it = branchParents_.find(branchID);
372  if (it == branchParents_.end()) {
373  it = branchParents_.insert(std::make_pair(branchID,
374  std::set<ParentageID>())).first;
375  }
376  it->second.insert(provenance->parentageID());
377  }
378  }
BranchParents branchParents_
int const& edm::PoolOutputModule::whyNotFastClonable ( ) const
inline
void edm::PoolOutputModule::write ( EventForOutput const &  e)
overrideprotectedvirtual

Implements edm::one::OutputModuleBase.

Reimplemented in edm::TimeoutPoolOutputModule.

Definition at line 268 of file PoolOutputModule.cc.

References edm::EventForOutput::id(), rootOutputFile_, statusFileName_, and updateBranchParents().

Referenced by branchChildren(), and edm::TimeoutPoolOutputModule::write().

268  {
270  rootOutputFile_->writeOne(e);
271  if (!statusFileName_.empty()) {
272  std::ofstream statusFile(statusFileName_.c_str());
273  statusFile << e.id() << " time: " << std::setprecision(3) << TimeOfDay() << '\n';
274  statusFile.close();
275  }
276  }
edm::propagate_const< std::unique_ptr< RootOutputFile > > rootOutputFile_
void updateBranchParents(EventForOutput const &e)
void edm::PoolOutputModule::writeBranchIDListRegistry ( )
private

Definition at line 317 of file PoolOutputModule.cc.

References rootOutputFile_.

Referenced by reallyCloseFile().

317 { rootOutputFile_->writeBranchIDListRegistry(); }
edm::propagate_const< std::unique_ptr< RootOutputFile > > rootOutputFile_
void edm::PoolOutputModule::writeFileFormatVersion ( )
private

Definition at line 310 of file PoolOutputModule.cc.

References rootOutputFile_.

Referenced by reallyCloseFile().

310 { rootOutputFile_->writeFileFormatVersion(); }
edm::propagate_const< std::unique_ptr< RootOutputFile > > rootOutputFile_
void edm::PoolOutputModule::writeFileIdentifier ( )
private

Definition at line 311 of file PoolOutputModule.cc.

References rootOutputFile_.

Referenced by reallyCloseFile().

311 { rootOutputFile_->writeFileIdentifier(); }
edm::propagate_const< std::unique_ptr< RootOutputFile > > rootOutputFile_
void edm::PoolOutputModule::writeIndexIntoFile ( )
private

Definition at line 312 of file PoolOutputModule.cc.

References rootOutputFile_.

Referenced by reallyCloseFile().

312 { rootOutputFile_->writeIndexIntoFile(); }
edm::propagate_const< std::unique_ptr< RootOutputFile > > rootOutputFile_
void edm::PoolOutputModule::writeLuminosityBlock ( LuminosityBlockForOutput const &  lb)
overrideprivatevirtual

Implements edm::one::OutputModuleBase.

Definition at line 278 of file PoolOutputModule.cc.

References rootOutputFile_.

Referenced by branchChildren().

278  {
279  rootOutputFile_->writeLuminosityBlock(lb);
280  }
edm::propagate_const< std::unique_ptr< RootOutputFile > > rootOutputFile_
void edm::PoolOutputModule::writeParameterSetRegistry ( )
private

Definition at line 314 of file PoolOutputModule.cc.

References rootOutputFile_.

Referenced by reallyCloseFile().

314 { rootOutputFile_->writeParameterSetRegistry(); }
edm::propagate_const< std::unique_ptr< RootOutputFile > > rootOutputFile_
void edm::PoolOutputModule::writeParentageRegistry ( )
private

Definition at line 316 of file PoolOutputModule.cc.

References rootOutputFile_.

Referenced by reallyCloseFile().

316 { rootOutputFile_->writeParentageRegistry(); }
edm::propagate_const< std::unique_ptr< RootOutputFile > > rootOutputFile_
void edm::PoolOutputModule::writeProcessHistoryRegistry ( )
private

Definition at line 313 of file PoolOutputModule.cc.

References rootOutputFile_.

Referenced by reallyCloseFile().

313 { rootOutputFile_->writeProcessHistoryRegistry(); }
edm::propagate_const< std::unique_ptr< RootOutputFile > > rootOutputFile_
void edm::PoolOutputModule::writeProductDependencies ( )
private

Definition at line 319 of file PoolOutputModule.cc.

References rootOutputFile_.

Referenced by reallyCloseFile().

319 { rootOutputFile_->writeProductDependencies(); }
edm::propagate_const< std::unique_ptr< RootOutputFile > > rootOutputFile_
void edm::PoolOutputModule::writeProductDescriptionRegistry ( )
private

Definition at line 315 of file PoolOutputModule.cc.

References rootOutputFile_.

Referenced by reallyCloseFile().

315 { rootOutputFile_->writeProductDescriptionRegistry(); }
edm::propagate_const< std::unique_ptr< RootOutputFile > > rootOutputFile_
void edm::PoolOutputModule::writeRun ( RunForOutput const &  r)
overrideprivatevirtual

Implements edm::one::OutputModuleBase.

Definition at line 282 of file PoolOutputModule.cc.

References rootOutputFile_.

Referenced by branchChildren().

282  {
283  rootOutputFile_->writeRun(r);
284  }
edm::propagate_const< std::unique_ptr< RootOutputFile > > rootOutputFile_
void edm::PoolOutputModule::writeThinnedAssociationsHelper ( )
private

Definition at line 318 of file PoolOutputModule.cc.

References rootOutputFile_.

Referenced by reallyCloseFile().

318 { rootOutputFile_->writeThinnedAssociationsHelper(); }
edm::propagate_const< std::unique_ptr< RootOutputFile > > rootOutputFile_

Member Data Documentation

AuxItemArray edm::PoolOutputModule::auxItems_
private

Definition at line 170 of file PoolOutputModule.h.

Referenced by auxItems(), and fillSelectedItemList().

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

Definition at line 182 of file PoolOutputModule.h.

Referenced by basketOrder().

int const edm::PoolOutputModule::basketSize_
private

Definition at line 179 of file PoolOutputModule.h.

Referenced by basketSize().

BranchChildren edm::PoolOutputModule::branchChildren_
private
BranchParents edm::PoolOutputModule::branchParents_
private
std::string const edm::PoolOutputModule::catalog_
private

Definition at line 175 of file PoolOutputModule.h.

Referenced by catalog().

unsigned int edm::PoolOutputModule::childIndex_
private

Definition at line 190 of file PoolOutputModule.h.

Referenced by physicalAndLogicalNameForNewFile().

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

Definition at line 178 of file PoolOutputModule.h.

Referenced by compressionAlgorithm().

int const edm::PoolOutputModule::compressionLevel_
private

Definition at line 177 of file PoolOutputModule.h.

Referenced by compressionLevel().

DropMetaData edm::PoolOutputModule::dropMetaData_
private
int const edm::PoolOutputModule::eventAutoFlushSize_
private

Definition at line 180 of file PoolOutputModule.h.

Referenced by eventAutoFlushSize().

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

Definition at line 173 of file PoolOutputModule.h.

Referenced by fileName().

bool edm::PoolOutputModule::initializedFromInput_
private

Definition at line 187 of file PoolOutputModule.h.

Referenced by respondToOpenInputFile().

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

Definition at line 174 of file PoolOutputModule.h.

Referenced by logicalFileName().

unsigned int const edm::PoolOutputModule::maxFileSize_
private

Definition at line 176 of file PoolOutputModule.h.

Referenced by maxFileSize().

std::string const edm::PoolOutputModule::moduleLabel_
private
unsigned int edm::PoolOutputModule::numberOfDigitsInIndex_
private

Definition at line 191 of file PoolOutputModule.h.

Referenced by physicalAndLogicalNameForNewFile().

int edm::PoolOutputModule::outputFileCount_
private

Definition at line 188 of file PoolOutputModule.h.

Referenced by physicalAndLogicalNameForNewFile().

bool edm::PoolOutputModule::overrideInputFileSplitLevels_
private

Definition at line 195 of file PoolOutputModule.h.

Referenced by fillSelectedItemList(), and overrideInputFileSplitLevels().

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

Definition at line 194 of file PoolOutputModule.h.

Referenced by beginJob(), and updateBranchParents().

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

Definition at line 169 of file PoolOutputModule.h.

OutputItemListArray edm::PoolOutputModule::selectedOutputItemList_
private

Definition at line 171 of file PoolOutputModule.h.

Referenced by fillSelectedItemList(), and selectedOutputItemList().

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

Definition at line 172 of file PoolOutputModule.h.

Referenced by fillSelectedItemList(), and PoolOutputModule().

int const edm::PoolOutputModule::splitLevel_
private

Definition at line 181 of file PoolOutputModule.h.

Referenced by splitLevel().

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

Definition at line 197 of file PoolOutputModule.h.

Referenced by PoolOutputModule(), and write().

int const edm::PoolOutputModule::treeMaxVirtualSize_
private

Definition at line 183 of file PoolOutputModule.h.

Referenced by treeMaxVirtualSize().

int edm::PoolOutputModule::whyNotFastClonable_
private

Definition at line 184 of file PoolOutputModule.h.

Referenced by PoolOutputModule(), and whyNotFastClonable().