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
 
virtual ~PoolOutputModule ()
 
- Public Member Functions inherited from edm::one::OutputModule< WatchInputFiles >
 OutputModule (edm::ParameterSet const &iPSet)
 
- 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 (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 &)
 
SubProcessParentageHelper const * subProcessParentageHelper () const
 
ThinnedAssociationsHelper const * thinnedAssociationsHelper () const
 
bool wantAllEvents () const
 
virtual ~OutputModuleBase ()
 
- 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
 
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 ()
 
virtual bool shouldWeCloseFile () const override
 allow inheriting classes to override but still be able to call this method in the overridden version More...
 
virtual 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)
 
virtual void beginJob () override
 
void fillDependencyGraph ()
 
void fillSelectedItemList (BranchType branchtype, TTree *theInputTree)
 
void finishEndFile ()
 
virtual bool isFileOpen () const override
 
virtual void openFile (FileBlock const &fb) override
 
virtual void postForkReacquireResources (unsigned int iChildIndex, unsigned int iNumberOfChildren) override
 
virtual void preActionBeforeRunEventAsync (WaitingTask *iTask, ModuleCallingContext const &iModuleCallingContext, Principal const &iPrincipal) const override
 
virtual void reallyCloseFile () override
 
virtual void reallyOpenFile () override
 
virtual void respondToCloseInputFile (FileBlock const &fb) override
 
virtual 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 ()
 
virtual void writeLuminosityBlock (LuminosityBlockForOutput const &lb) override
 
void writeParameterSetRegistry ()
 
void writeParentageRegistry ()
 
void writeProcessHistoryRegistry ()
 
void writeProductDependencies ()
 
void writeProductDescriptionRegistry ()
 
virtual 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 148 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 ( )
virtual

Definition at line 276 of file PoolOutputModule.cc.

276  {
277  }
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)
virtual 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 332 of file PoolOutputModule.cc.

Referenced by branchChildren(), and reallyCloseFile().

332 {}
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 421 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().

421  {
422  for(auto const& branchParent : branchParents_) {
423  BranchID const& child = branchParent.first;
424  std::set<ParentageID> const& eIds = branchParent.second;
425  for(auto const& eId : eIds) {
426  Parentage entryDesc;
427  ParentageRegistry::instance()->getMapped(eId, entryDesc);
428  std::vector<BranchID> const& parents = entryDesc.parents();
429  for(auto const& parent : parents) {
431  }
432  }
433  }
434  }
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 437 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 fillDescriptions(), and whyNotFastClonable().

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

Definition at line 494 of file PoolOutputModule.cc.

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

Referenced by whyNotFastClonable().

494  {
497  descriptions.add("edmOutput", desc);
498  }
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()) : 0);
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 331 of file PoolOutputModule.cc.

References rootOutputFile_.

Referenced by reallyCloseFile().

331 { 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 333 of file PoolOutputModule.cc.

References rootOutputFile_.

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

333 { 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  }
virtual void reallyOpenFile() override
virtual 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 337 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().

337  {
338  if(inputFileCount_ == 0) {
340  << "Attempt to open output file before input file. "
341  << "Please report this to the core framework developers.\n";
342  }
343  std::string suffix(".root");
345  bool ext = (offset == fileName().size() - suffix.size());
346  if(!ext) suffix.clear();
347  std::string fileBase(ext ? fileName().substr(0, offset) : fileName());
348  std::ostringstream ofilename;
349  std::ostringstream lfilename;
350  ofilename << fileBase;
351  lfilename << logicalFileName();
353  ofilename << '_' << std::setw(numberOfDigitsInIndex_) << std::setfill('0') << childIndex_;
354  if(!logicalFileName().empty()) {
355  lfilename << '_' << std::setw(numberOfDigitsInIndex_) << std::setfill('0') << childIndex_;
356  }
357  }
358  if(outputFileCount_) {
359  ofilename << std::setw(3) << std::setfill('0') << outputFileCount_;
360  if(!logicalFileName().empty()) {
361  lfilename << std::setw(3) << std::setfill('0') << outputFileCount_;
362  }
363  }
364  ofilename << suffix;
366 
367  return std::make_pair(ofilename.str(), lfilename.str());
368  }
std::string const & fileName() const
uint16_t size_type
std::string const & logicalFileName() const
unsigned int numberOfDigitsInIndex_
Definition: memstream.h:15
void edm::PoolOutputModule::postForkReacquireResources ( unsigned int  iChildIndex,
unsigned int  iNumberOfChildren 
)
overrideprivatevirtual

Reimplemented from edm::one::OutputModuleBase.

Definition at line 265 of file PoolOutputModule.cc.

References childIndex_, and numberOfDigitsInIndex_.

Referenced by branchChildren().

265  {
266  childIndex_ = iChildIndex;
267  while (iNumberOfChildren != 0) {
269  iNumberOfChildren /= 10;
270  }
271  if (numberOfDigitsInIndex_ == 0) {
272  numberOfDigitsInIndex_ = 3; // Protect against zero iNumberOfChildren
273  }
274  }
unsigned int numberOfDigitsInIndex_
void edm::PoolOutputModule::preActionBeforeRunEventAsync ( WaitingTask iTask,
ModuleCallingContext const &  iModuleCallingContext,
Principal const &  iPrincipal 
) const
overrideprivatevirtual

Reimplemented from edm::one::OutputModuleBase.

Definition at line 407 of file PoolOutputModule.cc.

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

Referenced by branchChildren().

407  {
408  if(DropAll != dropMetaData_ ) {
409  auto const* ep = dynamic_cast<EventPrincipal const*>(&iPrincipal);
410  if(ep)
411  {
412  auto pr = ep->productProvenanceRetrieverPtr();
413  if(pr) {
414  pr->readProvenanceAsync(iTask,&iModuleCallingContext);
415  }
416  }
417  }
418  }
void edm::PoolOutputModule::reallyCloseFile ( )
overrideprivatevirtual

Reimplemented from edm::one::OutputModuleBase.

Definition at line 297 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().

297  {
299  branchParents_.clear();
300  startEndFile();
310  writeProductDependencies(); //branchChildren used here
312  finishEndFile();
313 
315  }
BranchChildren branchChildren_
virtual void doExtrasAfterCloseFile()
BranchParents branchParents_
void edm::PoolOutputModule::reallyOpenFile ( )
overrideprivatevirtual

Reimplemented from edm::one::OutputModuleBase.

Definition at line 370 of file PoolOutputModule.cc.

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

Referenced by branchChildren(), and openFile().

370  {
372  rootOutputFile_ = std::make_unique<RootOutputFile>(this, names.first, names.second); // propagate_const<T> has no reset() function
373  }
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)
overrideprivatevirtual

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)
overrideprivatevirtual

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 334 of file PoolOutputModule.cc.

References rootOutputFile_.

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

334 { 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 319 of file PoolOutputModule.cc.

Referenced by reallyCloseFile().

319 { }
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 392 of file PoolOutputModule.cc.

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

Referenced by write().

392  {
393 
394  ProductProvenanceRetriever const* provRetriever = e.productProvenanceRetrieverPtr();
395  for (auto const& bid : producedBranches_) {
396  updateBranchParentsForOneBranch(provRetriever, bid);
397  }
398  SubProcessParentageHelper const* helper = subProcessParentageHelper();
399  if (helper) {
400  for (auto const& bid : subProcessParentageHelper()->producedProducts()) {
401  updateBranchParentsForOneBranch(provRetriever, bid);
402  }
403  }
404  }
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 376 of file PoolOutputModule.cc.

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

Referenced by updateBranchParents().

378  {
379 
380  ProductProvenance const* provenance = provRetriever->branchIDToProvenanceForProducedOnly(branchID);
381  if (provenance != nullptr) {
382  BranchParents::iterator it = branchParents_.find(branchID);
383  if (it == branchParents_.end()) {
384  it = branchParents_.insert(std::make_pair(branchID,
385  std::set<ParentageID>())).first;
386  }
387  it->second.insert(provenance->parentageID());
388  }
389  }
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 279 of file PoolOutputModule.cc.

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

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

279  {
281  rootOutputFile_->writeOne(e);
282  if (!statusFileName_.empty()) {
283  std::ofstream statusFile(statusFileName_.c_str());
284  statusFile << e.id() << " time: " << std::setprecision(3) << TimeOfDay() << '\n';
285  statusFile.close();
286  }
287  }
edm::propagate_const< std::unique_ptr< RootOutputFile > > rootOutputFile_
void updateBranchParents(EventForOutput const &e)
void edm::PoolOutputModule::writeBranchIDListRegistry ( )
private

Definition at line 328 of file PoolOutputModule.cc.

References rootOutputFile_.

Referenced by reallyCloseFile().

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

Definition at line 321 of file PoolOutputModule.cc.

References rootOutputFile_.

Referenced by reallyCloseFile().

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

Definition at line 322 of file PoolOutputModule.cc.

References rootOutputFile_.

Referenced by reallyCloseFile().

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

Definition at line 323 of file PoolOutputModule.cc.

References rootOutputFile_.

Referenced by reallyCloseFile().

323 { 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 289 of file PoolOutputModule.cc.

References rootOutputFile_.

Referenced by branchChildren().

289  {
290  rootOutputFile_->writeLuminosityBlock(lb);
291  }
edm::propagate_const< std::unique_ptr< RootOutputFile > > rootOutputFile_
void edm::PoolOutputModule::writeParameterSetRegistry ( )
private

Definition at line 325 of file PoolOutputModule.cc.

References rootOutputFile_.

Referenced by reallyCloseFile().

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

Definition at line 327 of file PoolOutputModule.cc.

References rootOutputFile_.

Referenced by reallyCloseFile().

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

Definition at line 324 of file PoolOutputModule.cc.

References rootOutputFile_.

Referenced by reallyCloseFile().

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

Definition at line 330 of file PoolOutputModule.cc.

References rootOutputFile_.

Referenced by reallyCloseFile().

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

Definition at line 326 of file PoolOutputModule.cc.

References rootOutputFile_.

Referenced by reallyCloseFile().

326 { 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 293 of file PoolOutputModule.cc.

References rootOutputFile_.

Referenced by branchChildren().

293  {
294  rootOutputFile_->writeRun(r);
295  }
edm::propagate_const< std::unique_ptr< RootOutputFile > > rootOutputFile_
void edm::PoolOutputModule::writeThinnedAssociationsHelper ( )
private

Definition at line 329 of file PoolOutputModule.cc.

References rootOutputFile_.

Referenced by reallyCloseFile().

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

Member Data Documentation

AuxItemArray edm::PoolOutputModule::auxItems_
private

Definition at line 171 of file PoolOutputModule.h.

Referenced by auxItems(), and fillSelectedItemList().

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

Definition at line 183 of file PoolOutputModule.h.

Referenced by basketOrder().

int const edm::PoolOutputModule::basketSize_
private

Definition at line 180 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 176 of file PoolOutputModule.h.

Referenced by catalog().

unsigned int edm::PoolOutputModule::childIndex_
private
std::string const edm::PoolOutputModule::compressionAlgorithm_
private

Definition at line 179 of file PoolOutputModule.h.

Referenced by compressionAlgorithm().

int const edm::PoolOutputModule::compressionLevel_
private

Definition at line 178 of file PoolOutputModule.h.

Referenced by compressionLevel().

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

Definition at line 181 of file PoolOutputModule.h.

Referenced by eventAutoFlushSize().

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

Definition at line 174 of file PoolOutputModule.h.

Referenced by fileName().

bool edm::PoolOutputModule::initializedFromInput_
private

Definition at line 188 of file PoolOutputModule.h.

Referenced by respondToOpenInputFile().

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

Definition at line 175 of file PoolOutputModule.h.

Referenced by logicalFileName().

unsigned int const edm::PoolOutputModule::maxFileSize_
private

Definition at line 177 of file PoolOutputModule.h.

Referenced by maxFileSize().

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

Definition at line 189 of file PoolOutputModule.h.

Referenced by physicalAndLogicalNameForNewFile().

bool edm::PoolOutputModule::overrideInputFileSplitLevels_
private

Definition at line 196 of file PoolOutputModule.h.

Referenced by fillSelectedItemList(), and overrideInputFileSplitLevels().

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

Definition at line 195 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 170 of file PoolOutputModule.h.

OutputItemListArray edm::PoolOutputModule::selectedOutputItemList_
private

Definition at line 172 of file PoolOutputModule.h.

Referenced by fillSelectedItemList(), and selectedOutputItemList().

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

Definition at line 173 of file PoolOutputModule.h.

Referenced by fillSelectedItemList(), and PoolOutputModule().

int const edm::PoolOutputModule::splitLevel_
private

Definition at line 182 of file PoolOutputModule.h.

Referenced by splitLevel().

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

Definition at line 198 of file PoolOutputModule.h.

Referenced by PoolOutputModule(), and write().

int const edm::PoolOutputModule::treeMaxVirtualSize_
private

Definition at line 184 of file PoolOutputModule.h.

Referenced by treeMaxVirtualSize().

int edm::PoolOutputModule::whyNotFastClonable_
private

Definition at line 185 of file PoolOutputModule.h.

Referenced by PoolOutputModule(), and whyNotFastClonable().