CMS 3D CMS Logo

OutputProcessBlockHelper.h
Go to the documentation of this file.
1 #ifndef FWCore_Common_OutputProcessBlockHelper_h
2 #define FWCore_Common_OutputProcessBlockHelper_h
3 
11 
12 #include <set>
13 #include <string>
14 #include <vector>
15 
16 namespace edm {
17 
18  class ProcessBlockHelperBase;
19 
21  public:
22  std::vector<std::string> const& processesWithProcessBlockProducts() const {
24  }
25 
26  void updateAfterProductSelection(std::set<std::string> const& processesWithKeptProcessBlockProducts,
27  ProcessBlockHelperBase const&);
28 
30 
32 
34 
35  private:
36  // The next two functions are intended to be used only for testing purposes
37  friend class TestOneOutput;
38  std::vector<unsigned int> const& translateFromStoredIndex() const { return translateFromStoredIndex_; }
39  unsigned int nAddedProcesses() const { return nAddedProcesses_; }
40 
41  void setStoredProcessOffset(unsigned int nInputProcesses,
42  std::vector<std::vector<unsigned int>> const& nEntries,
43  std::vector<unsigned int>& storedProcessOffset) const;
44 
45  void setProcessOffset(unsigned int iFile,
46  unsigned int nInputProcesses,
47  std::vector<std::vector<unsigned int>> const& nEntries,
48  std::vector<unsigned int>& processOffset) const;
49 
50  void setStoredFileInProcessOffset(unsigned int iFile,
51  unsigned int nInputProcesses,
52  std::vector<std::vector<unsigned int>> const& nEntries,
53  std::vector<unsigned int>& storedFileInProcessOffset) const;
54 
55  // Includes processes with at least one ProcessBlock branch present
56  // in the output file
57  std::vector<std::string> processesWithProcessBlockProducts_;
58 
59  // This will have the value of 0 or 1, except for the SubProcess case.
60  // This is incremented to 1 if the current process produces new
61  // ProcessBlock products and they are kept by the OutputModule.
62  unsigned int nAddedProcesses_ = 0;
63 
64  // Translate from the vector of process names in this class to
65  // the one in the ProcessBlockHelper
66  std::vector<unsigned int> translateFromStoredIndex_;
67 
68  // Points to the main ProcessBlockHelper owned by the EventProcessor
69  // or SubProcess
71 
72  bool productsFromInputKept_ = false;
73  };
74 } // namespace edm
75 #endif
ProvenanceFwd.h
edm::OutputProcessBlockHelper
Definition: OutputProcessBlockHelper.h:20
edm::OutputProcessBlockHelper::translateFromStoredIndex_
std::vector< unsigned int > translateFromStoredIndex_
Definition: OutputProcessBlockHelper.h:66
edm::OutputProcessBlockHelper::nAddedProcesses_
unsigned int nAddedProcesses_
Definition: OutputProcessBlockHelper.h:62
edm
HLT enums.
Definition: AlignableModifier.h:19
edm::OutputProcessBlockHelper::setProcessOffset
void setProcessOffset(unsigned int iFile, unsigned int nInputProcesses, std::vector< std::vector< unsigned int >> const &nEntries, std::vector< unsigned int > &processOffset) const
Definition: OutputProcessBlockHelper.cc:207
edm::OutputProcessBlockHelper::fillCacheIndices
void fillCacheIndices(StoredProcessBlockHelper &) const
Definition: OutputProcessBlockHelper.cc:54
edm::OutputProcessBlockHelper::processBlockHelper_
ProcessBlockHelperBase const * processBlockHelper_
Definition: OutputProcessBlockHelper.h:70
edm::OutputProcessBlockHelper::productsFromInputKept
bool productsFromInputKept() const
Definition: OutputProcessBlockHelper.h:31
edm::OutputProcessBlockHelper::setStoredFileInProcessOffset
void setStoredFileInProcessOffset(unsigned int iFile, unsigned int nInputProcesses, std::vector< std::vector< unsigned int >> const &nEntries, std::vector< unsigned int > &storedFileInProcessOffset) const
Definition: OutputProcessBlockHelper.cc:222
edm::OutputProcessBlockHelper::setStoredProcessOffset
void setStoredProcessOffset(unsigned int nInputProcesses, std::vector< std::vector< unsigned int >> const &nEntries, std::vector< unsigned int > &storedProcessOffset) const
Definition: OutputProcessBlockHelper.cc:188
edm::OutputProcessBlockHelper::processesWithProcessBlockProducts_
std::vector< std::string > processesWithProcessBlockProducts_
Definition: OutputProcessBlockHelper.h:57
edm::ProcessBlockHelperBase
Definition: ProcessBlockHelperBase.h:18
edm::OutputProcessBlockHelper::translateFromStoredIndex
std::vector< unsigned int > const & translateFromStoredIndex() const
Definition: OutputProcessBlockHelper.h:38
trackerHitRTTI::vector
Definition: trackerHitRTTI.h:21
edm::StoredProcessBlockHelper
Definition: StoredProcessBlockHelper.h:25
edm::OutputProcessBlockHelper::TestOneOutput
friend class TestOneOutput
Definition: OutputProcessBlockHelper.h:37
edm::OutputProcessBlockHelper::updateAfterProductSelection
void updateAfterProductSelection(std::set< std::string > const &processesWithKeptProcessBlockProducts, ProcessBlockHelperBase const &)
Definition: OutputProcessBlockHelper.cc:12
edm::OutputProcessBlockHelper::productsFromInputKept_
bool productsFromInputKept_
Definition: OutputProcessBlockHelper.h:72
edm::OutputProcessBlockHelper::processesWithProcessBlockProducts
std::vector< std::string > const & processesWithProcessBlockProducts() const
Definition: OutputProcessBlockHelper.h:22
edm::OutputProcessBlockHelper::processBlockHelper
ProcessBlockHelperBase const * processBlockHelper() const
Definition: OutputProcessBlockHelper.h:33
edm::OutputProcessBlockHelper::nAddedProcesses
unsigned int nAddedProcesses() const
Definition: OutputProcessBlockHelper.h:39