forked from cms-sw/cmssw
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fix BranchChildren/Parentage problems that occur with SubProcess and …
…EDAlias Also adds unit tests to cover these cases.
- Loading branch information
Showing
40 changed files
with
1,209 additions
and
93 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
36 changes: 36 additions & 0 deletions
36
DataFormats/Provenance/interface/SubProcessParentageHelper.h
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
#ifndef DataFormats_Provenance_SubProcessParentageHelper_h | ||
#define DataFormats_Provenance_SubProcessParentageHelper_h | ||
|
||
// This class is used to properly fill Parentage in SubProcesses. | ||
// In particular it helps filling the BranchChildren container | ||
// that is used when dropping descendants of products that | ||
// have been dropped on input. | ||
// | ||
// This class is only filled for SubProcesses. Its data member | ||
// only has entries for products produced in a prior SubProcess | ||
// or the top level Process in the same overall process. | ||
|
||
#include "DataFormats/Provenance/interface/BranchID.h" | ||
|
||
#include <vector> | ||
|
||
namespace edm { | ||
|
||
class ProductRegistry; | ||
|
||
class SubProcessParentageHelper { | ||
public: | ||
|
||
void update(SubProcessParentageHelper const& parentSubProcessParentageHelper, | ||
ProductRegistry const& parentProductRegistry); | ||
|
||
std::vector<BranchID> const& producedProducts() const { | ||
return producedProducts_; | ||
} | ||
|
||
private: | ||
|
||
std::vector<BranchID> producedProducts_; | ||
}; | ||
} | ||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
#include "DataFormats/Provenance/interface/SubProcessParentageHelper.h" | ||
|
||
#include "DataFormats/Provenance/interface/BranchDescription.h" | ||
#include "DataFormats/Provenance/interface/ProductRegistry.h" | ||
#include "FWCore/Utilities/interface/BranchType.h" | ||
|
||
namespace edm { | ||
|
||
void SubProcessParentageHelper:: | ||
update(SubProcessParentageHelper const& parentSubProcessParentageHelper, | ||
ProductRegistry const& parentProductRegistry) { | ||
|
||
*this = parentSubProcessParentageHelper; | ||
|
||
for(auto const& prod : parentProductRegistry.productList()) { | ||
BranchDescription const& desc = prod.second; | ||
if (desc.produced() && desc.branchType() == InEvent && !desc.isAlias()) { | ||
producedProducts_.push_back(desc.branchID()); | ||
} | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.