7 #include "Reflex/Member.h"
33 wrapperInterfaceBase_(0),
58 std::string
const& moduleLabel,
59 std::string
const& processName,
61 std::string
const& friendlyClassName,
62 std::string
const& productInstanceName,
63 std::string
const& moduleName,
67 std::set<std::string>
const& aliases) :
68 branchType_(branchType),
69 moduleLabel_(moduleLabel),
70 processName_(processName),
72 fullClassName_(className),
73 friendlyClassName_(friendlyClassName),
74 productInstanceName_(productInstanceName),
75 branchAliases_(aliases),
93 char const underscore(
'_');
94 char const period(
'.');
98 <<
"' contains an underscore ('_'), which is illegal in the name of a product.\n";
101 if(
moduleLabel_.find(underscore) != std::string::npos) {
103 <<
"' contains an underscore ('_'), which is illegal in a module label.\n";
108 <<
"' contains an underscore ('_'), which is illegal in a product instance name.\n";
111 if(
processName_.find(underscore) != std::string::npos) {
113 <<
"' contains an underscore ('_'), which is illegal in a process name.\n";
160 Reflex::PropertyList wp =
type().Properties();
161 transient() = (wp.HasProperty(
"persistent") ? wp.PropertyAsString(
"persistent") == std::string(
"false") :
false);
167 if(wp.HasProperty(
"splitLevel")) {
168 splitLevel() = strtol(wp.PropertyAsString(
"splitLevel").c_str(), 0, 0);
170 throw cms::Exception(
"IllegalSplitLevel") <<
"' An illegal ROOT split level of " <<
177 if(wp.HasProperty(
"basketSize")) {
178 basketSize() = strtol(wp.PropertyAsString(
"basketSize").c_str(), 0, 0);
180 throw cms::Exception(
"IllegalBasketSize") <<
"' An illegal ROOT basket size of " <<
193 <<
"Your application requires all events on Branch '" <<
branchName()
194 <<
"'\n to have the same provenance. This file has events with mixed provenance\n"
195 <<
"on this branch. Use a different input file.\n";
211 os <<
"Branch Type = " <<
branchType() << std::endl;
212 os <<
"Process Name = " <<
processName() << std::endl;
213 os <<
"ModuleLabel = " <<
moduleLabel() << std::endl;
214 os <<
"Branch ID = " <<
branchID() <<
'\n';
222 e <<
"Problem using an incomplete BranchDescription\n"
224 <<
"\nPlease report this error to the FWCore developers";
308 std::ostringstream differences;
310 differences <<
"Branch name '" << b.
branchName() <<
"' does not match '" << a.
branchName() <<
"'.\n";
319 differences <<
" in file '" << fileName <<
"', but a(n) '" << a.
branchType() <<
"' branch in previous files.\n";
322 differences <<
"Branch '" << b.
branchName() <<
"' has a branch ID of '" << b.
branchID() <<
"'\n";
323 differences <<
" in file '" << fileName <<
"', but '" << a.
branchID() <<
"' in previous files.\n";
327 differences <<
" in file '" << fileName <<
"', but '" << a.
fullClassName() <<
"' in previous files.\n";
330 differences <<
"Branch '" << a.
branchName() <<
"' was dropped in the first input file but is present in '" << fileName <<
"'.\n";
334 differences <<
"Branch '" << b.
branchName() <<
"' uses more than one parameter set in file '" << fileName <<
"'.\n";
336 differences <<
"Branch '" << a.
branchName() <<
"' uses more than one parameter set in previous files.\n";
338 differences <<
"Branch '" << b.
branchName() <<
"' uses different parameter sets in file '" << fileName <<
"'.\n";
339 differences <<
" than in previous files.\n";
342 return differences.str();
345 WrapperInterfaceBase
const*
350 Reflex::Member getTheInterface = type.FunctionMemberByName(std::string(
"getInterface"));
bool operator<(DetSet< T > const &x, DetSet< T > const &y)
BranchType const & branchType() const
Reflex::Type & type() const
static int const invalidSplitLevel
std::string & branchName() const
static int const invalidBasketSize
std::map< ProcessConfigurationID, std::string > & moduleNames() const
std::string const & processName() const
std::string match(BranchDescription const &a, BranchDescription const &b, std::string const &fileName, BranchDescription::MatchMode m)
ParameterSetID const & psetID() const
void write(std::ostream &os) const
void initFromDictionary() const
void throwIfInvalid_() const
std::string friendlyName(std::string const &iFullName)
std::string const & moduleLabel() const
std::string const & productInstanceName() const
bool combinable(BranchDescription const &a, BranchDescription const &b)
std::string fullClassName_
bool operator==(debugging_allocator< X > const &, debugging_allocator< Y > const &)
WrapperInterfaceBase *& wrapperInterfaceBase() const
std::string productInstanceName_
std::string const & friendlyClassName() const
BranchID const & branchID() const
WrapperInterfaceBase const * getInterface() const
void updateFriendlyClassName()
std::string & wrappedName() const
std::string const & moduleName() const
void throwExceptionWithText(char const *txt)
std::string const & fullClassName() const
ParameterSetID const & parameterSetID() const
eventsetup::produce::Produce produced
void initBranchName() const
std::string wrappedClassName(std::string const &iFullName)
std::set< std::string > const & branchAliases() const
std::map< ProcessConfigurationID, ParameterSetID > & parameterSetIDs() const
std::set< std::string > branchAliases_
std::string friendlyClassName_
ParameterSetID parameterSetID_
tuple size
Write out results.
std::string className(const T &t)
void setID(std::string const &branchName)
void merge(BranchDescription const &other)