CMS 3D CMS Logo

List of all members | Classes | Public Types | Public Member Functions | Static Public Attributes | Private Member Functions | Private Attributes
edm::BranchDescription Class Reference

#include <BranchDescription.h>

Classes

struct  Transients
 

Public Types

enum  MatchMode { Strict = 0, Permissive }
 

Public Member Functions

BranchID const & aliasForBranchID () const
 
bool availableOnlyAtEndTransition () const
 
int basketSize () const
 
std::set< std::string > const & branchAliases () const
 
 BranchDescription ()
 
 BranchDescription (BranchDescription const &aliasForBranch, std::string const &moduleLabelAlias, std::string const &poruductInstanceAlias)
 
 BranchDescription (BranchType const &branchType, std::string const &moduleLabel, std::string const &processName, std::string const &className, std::string const &friendlyClassName, std::string const &productInstanceName, std::string const &moduleName, ParameterSetID const &parameterSetID, TypeWithDict const &theTypeWithDict, bool produced=true, bool availableOnlyAtEndTransition=false, std::set< std::string > const &aliases=std::set< std::string >())
 
BranchID const & branchID () const
 
std::string const & branchName () const
 
BranchType const & branchType () const
 
std::string const & className () const
 
void clearBranchName ()
 
bool dropped () const
 
std::string const & friendlyClassName () const
 
std::string const & fullClassName () const
 
void init ()
 
void initBranchName ()
 
void initFromDictionary ()
 
void initializeTransients ()
 
void insertBranchAlias (std::string const &alias)
 
bool isAlias () const
 
bool isAnyAlias () const
 
bool isMergeable () const
 
bool isProvenanceSetOnRead () const noexcept
 
bool isSwitchAlias () const
 
void merge (BranchDescription const &other)
 
std::string const & moduleLabel () const
 
std::string const & moduleName () const
 
bool onDemand () const
 
BranchID const & originalBranchID () const
 
ParameterSetID const & parameterSetID () const
 
bool present () const
 
std::string const & processName () const
 
bool produced () const
 
std::string const & productInstanceName () const
 
void setBasketSize (int size)
 
void setDropped (bool isDropped)
 
void setIsMergeable (bool v)
 
void setIsProvenanceSetOnRead (bool value=true) noexcept
 
void setOnDemand (bool isOnDemand)
 
void setProduced (bool isProduced)
 
void setSplitLevel (int level)
 
void setSwitchAliasForBranch (BranchDescription const &aliasForBranch)
 
void setSwitchAliasModuleLabel (std::string label)
 
void setTransient (bool isTransient)
 
void setUnwrappedType (TypeWithDict const &type)
 
void setWrappedName (std::string const &name)
 
void setWrappedType (TypeWithDict const &type)
 
int splitLevel () const
 
BranchID const & switchAliasForBranchID () const
 
std::string const & switchAliasModuleLabel () const
 
bool transient () const
 
TypeWithDict const & unwrappedType () const
 
TypeID unwrappedTypeID () const
 
void updateFriendlyClassName ()
 
std::string const & wrappedName () const
 
TypeWithDict const & wrappedType () const
 
TypeID wrappedTypeID () const
 
void write (std::ostream &os) const
 
 ~BranchDescription ()
 

Static Public Attributes

static const int invalidBasketSize = 0
 
static const int invalidSplitLevel = -1
 

Private Member Functions

void throwIfInvalid_ () const
 

Private Attributes

BranchID aliasForBranchID_
 
std::set< std::string > branchAliases_
 
BranchID branchID_
 
BranchType branchType_
 
std::string friendlyClassName_
 
std::string fullClassName_
 
std::string moduleLabel_
 
std::string processName_
 
std::string productInstanceName_
 
Transients transient_
 

Detailed Description

Definition at line 32 of file BranchDescription.h.

Member Enumeration Documentation

◆ MatchMode

Enumerator
Strict 
Permissive 

Definition at line 36 of file BranchDescription.h.

36 { Strict = 0, Permissive };

Constructor & Destructor Documentation

◆ BranchDescription() [1/3]

edm::BranchDescription::BranchDescription ( )

Definition at line 37 of file BranchDescription.cc.

39  moduleLabel_(),
40  processName_(),
41  branchID_(),
47  transient_() {
48  // do not call init here! It will result in an exception throw.
49  }

◆ BranchDescription() [2/3]

edm::BranchDescription::BranchDescription ( BranchType const &  branchType,
std::string const &  moduleLabel,
std::string const &  processName,
std::string const &  className,
std::string const &  friendlyClassName,
std::string const &  productInstanceName,
std::string const &  moduleName,
ParameterSetID const &  parameterSetID,
TypeWithDict const &  theTypeWithDict,
bool  produced = true,
bool  availableOnlyAtEndTransition = false,
std::set< std::string > const &  aliases = std::set<std::string>() 
)

◆ BranchDescription() [3/3]

edm::BranchDescription::BranchDescription ( BranchDescription const &  aliasForBranch,
std::string const &  moduleLabelAlias,
std::string const &  poruductInstanceAlias 
)

Definition at line 82 of file BranchDescription.cc.

85  : branchType_(aliasForBranch.branchType()),
86  moduleLabel_(moduleLabelAlias),
87  processName_(aliasForBranch.processName()),
88  branchID_(),
89  fullClassName_(aliasForBranch.className()),
90  friendlyClassName_(aliasForBranch.friendlyClassName()),
91  productInstanceName_(productInstanceAlias),
92  branchAliases_(aliasForBranch.branchAliases()),
93  aliasForBranchID_(aliasForBranch.branchID()),
94  transient_() {
95  setDropped(false);
96  setProduced(aliasForBranch.produced());
97  setOnDemand(false); // will be re-set externally to the aliasForBranch.onDemand() after that one has been set
98  transient_.availableOnlyAtEndTransition_ = aliasForBranch.availableOnlyAtEndTransition();
99  transient_.moduleName_ = aliasForBranch.moduleName();
100  transient_.parameterSetID_ = aliasForBranch.parameterSetID();
101  setUnwrappedType(aliasForBranch.unwrappedType());
102  init();
103  }

References availableOnlyAtEndTransition(), edm::BranchDescription::Transients::availableOnlyAtEndTransition_, init(), moduleName(), edm::BranchDescription::Transients::moduleName_, parameterSetID(), edm::BranchDescription::Transients::parameterSetID_, produced(), setDropped(), setOnDemand(), setProduced(), setUnwrappedType(), transient_, and unwrappedType().

◆ ~BranchDescription()

edm::BranchDescription::~BranchDescription ( )
inline

Definition at line 57 of file BranchDescription.h.

57 {}

Member Function Documentation

◆ aliasForBranchID()

BranchID const& edm::BranchDescription::aliasForBranchID ( ) const
inline

Definition at line 75 of file BranchDescription.h.

75 { return aliasForBranchID_; }

References aliasForBranchID_.

◆ availableOnlyAtEndTransition()

bool edm::BranchDescription::availableOnlyAtEndTransition ( ) const
inline

◆ basketSize()

int edm::BranchDescription::basketSize ( ) const
inline

Definition at line 100 of file BranchDescription.h.

100 { return transient_.basketSize_; }

References edm::BranchDescription::Transients::basketSize_, and transient_.

Referenced by initFromDictionary(), and merge().

◆ branchAliases()

std::set<std::string> const& edm::BranchDescription::branchAliases ( ) const
inline

◆ branchID()

BranchID const& edm::BranchDescription::branchID ( ) const
inline

◆ branchName()

std::string const& edm::BranchDescription::branchName ( ) const
inline

◆ branchType()

BranchType const& edm::BranchDescription::branchType ( ) const
inline

◆ className()

std::string const& edm::BranchDescription::className ( ) const
inline

◆ clearBranchName()

void edm::BranchDescription::clearBranchName ( )
inline

Definition at line 120 of file BranchDescription.h.

120 { transient_.branchName_.clear(); }

References edm::BranchDescription::Transients::branchName_, and transient_.

Referenced by updateFriendlyClassName().

◆ dropped()

bool edm::BranchDescription::dropped ( ) const
inline

◆ friendlyClassName()

std::string const& edm::BranchDescription::friendlyClassName ( ) const
inline

◆ fullClassName()

std::string const& edm::BranchDescription::fullClassName ( ) const
inline

◆ init()

void edm::BranchDescription::init ( void  )
inline

◆ initBranchName()

void edm::BranchDescription::initBranchName ( )

Definition at line 105 of file BranchDescription.cc.

105  {
106  if (!branchName().empty()) {
107  return; // already called
108  }
109  throwIfInvalid_();
110 
111  char const underscore('_');
112  char const period('.');
113 
114  if (friendlyClassName_.find(underscore) != std::string::npos) {
115  throw cms::Exception("IllegalCharacter")
116  << "Class name '" << friendlyClassName()
117  << "' contains an underscore ('_'), which is illegal in the name of a product.\n";
118  }
119 
120  // Module labels of non-persistent products are allowed to contain
121  // underscores. For module labels of persistent products, the module
122  // label is checked for underscores in the function initFromDictionary
123  // after we determine whether the product is persistent or not.
124 
125  if (productInstanceName_.find(underscore) != std::string::npos) {
126  throw cms::Exception("IllegalCharacter")
127  << "Product instance name '" << productInstanceName()
128  << "' contains an underscore ('_'), which is illegal in a product instance name.\n";
129  }
130 
131  if (processName_.find(underscore) != std::string::npos) {
132  throw cms::Exception("IllegalCharacter")
133  << "Process name '" << processName()
134  << "' contains an underscore ('_'), which is illegal in a process name.\n";
135  }
136 
138  brName.reserve(friendlyClassName().size() + moduleLabel().size() + productInstanceName().size() +
139  processName().size() + 4);
140  brName += friendlyClassName();
141  brName += underscore;
142  brName += moduleLabel();
143  brName += underscore;
144  brName += productInstanceName();
145  brName += underscore;
146  brName += processName();
147  brName += period;
148 
149  if (!branchID_.isValid()) {
150  branchID_.setID(brName);
151  }
152  }

References branchID_, branchName(), edm::BranchDescription::Transients::branchName_, relativeConstraints::empty, Exception, friendlyClassName(), friendlyClassName_, edm::BranchID::isValid(), moduleLabel(), l1tstage2_dqm_sourceclient-live_cfg::period, processName(), processName_, productInstanceName(), productInstanceName_, edm::BranchID::setID(), findQualityFiles::size, AlCaHLTBitMon_QueryRunRegistry::string, throwIfInvalid_(), and transient_.

Referenced by init(), edm::StreamedProduct::StreamedProduct(), and updateFriendlyClassName().

◆ initFromDictionary()

void edm::BranchDescription::initFromDictionary ( )

Definition at line 154 of file BranchDescription.cc.

154  {
155  if (bool(wrappedType())) {
156  return; // already initialized;
157  }
158 
159  throwIfInvalid_();
160 
161  try {
163  // unwrapped type.
165  if (!bool(unwrappedType())) {
168  setTransient(false);
169  return;
170  }
171  } catch (edm::Exception& caughtException) {
172  caughtException.addContext(std::string{"While initializing meta data for branch: "} + branchName());
173  throw;
174  }
175 
177  try {
178  setWrappedType(wrType);
179  if (!bool(wrappedType())) {
182  return;
183  }
184  } catch (edm::Exception& caughtException) {
185  caughtException.addContext(std::string{"While initializing meta data for branch: "} + branchName());
186  throw;
187  }
188 
189  setTransient(false);
192  TDictAttributeMap* wp = wrappedType().getClass()->GetAttributeMap();
193  if (wp && wp->HasKey("persistent") && !strcmp(wp->GetPropertyAsString("persistent"), "false")) {
194  // Set transient if persistent == "false".
195  setTransient(true);
196  return;
197  } else {
198  // Module labels of persistent products cannot contain underscores,
199  // but for non-persistent products it is allowed because path names
200  // are used as module labels for path status products and there
201  // are many path names that include underscores.
202  char const underscore('_');
203  if (moduleLabel_.find(underscore) != std::string::npos) {
204  throw cms::Exception("IllegalCharacter")
205  << "Module label '" << moduleLabel()
206  << "' contains an underscore ('_'), which is illegal in a module label.\n";
207  }
208  }
209 
210  if (wp && wp->HasKey("splitLevel")) {
211  setSplitLevel(strtol(wp->GetPropertyAsString("splitLevel"), nullptr, 0));
212  if (splitLevel() < 0) {
213  throw cms::Exception("IllegalSplitLevel") << "' An illegal ROOT split level of " << splitLevel()
214  << " is specified for class " << wrappedName() << ".'\n";
215  }
216  setSplitLevel(splitLevel() + 1); //Compensate for wrapper
217  }
218  if (wp && wp->HasKey("basketSize")) {
219  setBasketSize(strtol(wp->GetPropertyAsString("basketSize"), nullptr, 0));
220  if (basketSize() <= 0) {
221  throw cms::Exception("IllegalBasketSize") << "' An illegal ROOT basket size of " << basketSize()
222  << " is specified for class " << wrappedName() << "'.\n";
223  }
224  }
225  }

References cms::Exception::addContext(), basketSize(), branchName(), edm::TypeWithDict::byName(), Exception, fullClassName(), edm::TypeWithDict::getClass(), invalidBasketSize, invalidSplitLevel, moduleLabel(), moduleLabel_, setBasketSize(), setSplitLevel(), setTransient(), setUnwrappedType(), setWrappedName(), setWrappedType(), splitLevel(), AlCaHLTBitMon_QueryRunRegistry::string, throwIfInvalid_(), unwrappedType(), pfClustersFromHGC3DClusters_cfi::wp, edm::wrappedClassName(), wrappedName(), and wrappedType().

Referenced by init().

◆ initializeTransients()

void edm::BranchDescription::initializeTransients ( )
inline

Definition at line 130 of file BranchDescription.h.

130 { transient_.reset(); }

References edm::BranchDescription::Transients::reset(), and transient_.

◆ insertBranchAlias()

void edm::BranchDescription::insertBranchAlias ( std::string const &  alias)
inline

Definition at line 118 of file BranchDescription.h.

118 { branchAliases_.insert(alias); }

References SiStripOfflineCRack_cfg::alias, and branchAliases_.

◆ isAlias()

bool edm::BranchDescription::isAlias ( ) const
inline

◆ isAnyAlias()

bool edm::BranchDescription::isAnyAlias ( ) const
inline

Definition at line 109 of file BranchDescription.h.

109 { return isAlias() or isSwitchAlias(); }

References isAlias(), isSwitchAlias(), and or.

Referenced by edm::Principal::findProducts().

◆ isMergeable()

bool edm::BranchDescription::isMergeable ( ) const
inline

Definition at line 125 of file BranchDescription.h.

125 { return transient_.isMergeable_; }

References edm::BranchDescription::Transients::isMergeable_, and transient_.

Referenced by edm::setIsMergeable().

◆ isProvenanceSetOnRead()

bool edm::BranchDescription::isProvenanceSetOnRead ( ) const
inlinenoexcept

◆ isSwitchAlias()

bool edm::BranchDescription::isSwitchAlias ( ) const
inline

◆ merge()

void edm::BranchDescription::merge ( BranchDescription const &  other)

Definition at line 227 of file BranchDescription.cc.

227  {
228  branchAliases_.insert(other.branchAliases().begin(), other.branchAliases().end());
229  if (splitLevel() == invalidSplitLevel)
230  setSplitLevel(other.splitLevel());
231  if (basketSize() == invalidBasketSize)
232  setBasketSize(other.basketSize());
233  }

References basketSize(), branchAliases_, invalidBasketSize, invalidSplitLevel, trackingPlots::other, setBasketSize(), setSplitLevel(), and splitLevel().

◆ moduleLabel()

std::string const& edm::BranchDescription::moduleLabel ( ) const
inline

Definition at line 72 of file BranchDescription.h.

72 { return moduleLabel_; }

References moduleLabel_.

Referenced by edm::SignallingProductRegistry::addCalled(), edm::ProductRegistry::addLabelAlias(), edm::Principal::addProduct_(), edm::Principal::addProductOrThrow(), edm::check(), edm::ConcurrentHadronizerFilter< HAD, DEC >::ConcurrentHadronizerFilter(), edm::DaqProvenanceHelper::DaqProvenanceHelper(), FWLiteJobMetadataManager::doUpdate(), FWFFMetadataManager::doUpdate(), ShallowTree::eat(), EcalDeadCellTriggerPrimitiveFilter::EcalDeadCellTriggerPrimitiveFilter(), edm::EventContentAnalyzer::EventContentAnalyzer(), edm::LHEProvenanceHelper::fillCommonProcessParameterSet(), fwlite::DataGetterHelper::getByBranchDescription(), edm::HadronizerFilter< HAD, DEC >::HadronizerFilter(), FWFFMetadataManager::hasModuleLabel(), initBranchName(), initFromDictionary(), edm::one::OutputModuleBase::keepThisBranch(), edm::SubProcess::keepThisBranch(), edm::global::OutputModuleBase::keepThisBranch(), edm::limited::OutputModuleBase::keepThisBranch(), L3TkMuonProducer::L3TkMuonProducer(), edm::StableProvenance::moduleLabel(), edm::ProductResolverBase::moduleLabel(), edm::ModuleLabelMatch::operator()(), edm::InputTagMatch::operator()(), edm::WillGetIfMatch< T >::operator()(), l1t::L1TGlobalUtilHelper::operator()(), L1GtUtilsHelper::operator()(), edm::Principal::Principal(), edm::ThinningProducer< Collection, Selector >::registerThinnedAssociations(), edm::RootOutputFile::RootOutputFile(), edm::RootOutputFile::setBranchAliases(), edm::SwitchProducer::SwitchProducer(), edm::HiMixingModule::verifyRegistry(), edm::AsciiOutputModule::write(), and write().

◆ moduleName()

std::string const& edm::BranchDescription::moduleName ( ) const
inline

◆ onDemand()

bool edm::BranchDescription::onDemand ( ) const
inline

Definition at line 87 of file BranchDescription.h.

87 { return transient_.onDemand_; }

References edm::BranchDescription::Transients::onDemand_, and transient_.

Referenced by edm::Principal::Principal().

◆ originalBranchID()

BranchID const& edm::BranchDescription::originalBranchID ( ) const
inline

◆ parameterSetID()

ParameterSetID const& edm::BranchDescription::parameterSetID ( ) const
inline

◆ present()

bool edm::BranchDescription::present ( ) const
inline

◆ processName()

std::string const& edm::BranchDescription::processName ( ) const
inline

Definition at line 73 of file BranchDescription.h.

73 { return processName_; }

References processName_.

Referenced by edm::ProductRegistry::addProduct(), edm::Principal::addProduct_(), edm::Principal::addProductOrThrow(), edm::check(), edm::ProductRegistry::checkForDuplicateProcessName(), edm::ConcurrentHadronizerFilter< HAD, DEC >::ConcurrentHadronizerFilter(), edm::DaqProvenanceHelper::daqInit(), edm::DaqProvenanceHelper::DaqProvenanceHelper(), FWLiteJobMetadataManager::doUpdate(), FWFFMetadataManager::doUpdate(), edm::EventContentAnalyzer::EventContentAnalyzer(), edm::LHEProvenanceHelper::fillCommonProcessParameterSet(), edm::Principal::findProducts(), fwlite::DataGetterHelper::getByBranchDescription(), edm::HadronizerFilter< HAD, DEC >::HadronizerFilter(), initBranchName(), edm::insertSelectedProcesses(), edm::one::OutputModuleBase::keepThisBranch(), edm::SubProcess::keepThisBranch(), edm::global::OutputModuleBase::keepThisBranch(), edm::limited::OutputModuleBase::keepThisBranch(), L3TkMuonProducer::L3TkMuonProducer(), edm::LHEProvenanceHelper::lheInit(), edm::DataManagingProductResolver::mergeProduct(), edm::ProcessMatch::operator()(), edm::InputTagMatch::operator()(), edm::WillGetIfMatch< T >::operator()(), l1t::L1TGlobalUtilHelper::operator()(), L1GtUtilsHelper::operator()(), pat::PATTriggerEventProducer::PATTriggerEventProducer(), pat::PATTriggerProducer::PATTriggerProducer(), edm::Principal::Principal(), edm::StableProvenance::processName(), edm::ProductResolverBase::processName(), edm::ThinningProducer< Collection, Selector >::registerThinnedAssociations(), edm::RootOutputFile::RootOutputFile(), edm::DaqProvenanceHelper::saveInfo(), edm::MergeableRunProductProcesses::setProcessesWithMergeableRunProducts(), edm::SwitchProducer::SwitchProducer(), edm::AsciiOutputModule::write(), and write().

◆ produced()

bool edm::BranchDescription::produced ( ) const
inline

◆ productInstanceName()

std::string const& edm::BranchDescription::productInstanceName ( ) const
inline

◆ setBasketSize()

void edm::BranchDescription::setBasketSize ( int  size)
inline

◆ setDropped()

void edm::BranchDescription::setDropped ( bool  isDropped)
inline

Definition at line 86 of file BranchDescription.h.

86 { transient_.dropped_ = isDropped; }

References edm::BranchDescription::Transients::dropped_, and transient_.

Referenced by BranchDescription().

◆ setIsMergeable()

void edm::BranchDescription::setIsMergeable ( bool  v)
inline

◆ setIsProvenanceSetOnRead()

void edm::BranchDescription::setIsProvenanceSetOnRead ( bool  value = true)
inlinenoexcept

◆ setOnDemand()

void edm::BranchDescription::setOnDemand ( bool  isOnDemand)
inline

Definition at line 88 of file BranchDescription.h.

88 { transient_.onDemand_ = isOnDemand; }

References edm::BranchDescription::Transients::onDemand_, and transient_.

Referenced by BranchDescription().

◆ setProduced()

void edm::BranchDescription::setProduced ( bool  isProduced)
inline

Definition at line 83 of file BranchDescription.h.

83 { transient_.produced_ = isProduced; }

References edm::BranchDescription::Transients::produced_, and transient_.

Referenced by BranchDescription().

◆ setSplitLevel()

void edm::BranchDescription::setSplitLevel ( int  level)
inline

◆ setSwitchAliasForBranch()

void edm::BranchDescription::setSwitchAliasForBranch ( BranchDescription const &  aliasForBranch)

Definition at line 235 of file BranchDescription.cc.

235  {
236  if (branchType_ != aliasForBranch.branchType()) {
237  throw Exception(errors::LogicError) << "BranchDescription::setSwitchAliasForBranch: branchType (" << branchType_
238  << ") differs from aliasForBranch (" << aliasForBranch.branchType()
239  << ").\nPlease report this error to the FWCore developers";
240  }
241  if (produced() != aliasForBranch.produced()) {
242  throw Exception(errors::LogicError) << "BranchDescription::setSwitchAliasForBranch: produced differs from "
243  "aliasForBranch.\nPlease report this error to the FWCore developers";
244  }
245  if (unwrappedTypeID().typeInfo() != aliasForBranch.unwrappedType().typeInfo()) {
247  << "BranchDescription::setSwitchAliasForBranch: unwrapped type info (" << unwrappedTypeID().name()
248  << ") differs from aliasForBranch (" << aliasForBranch.unwrappedType().typeInfo().name()
249  << ").\nPlease report this error to the FWCore developers";
250  }
251 
252  branchAliases_ = aliasForBranch.branchAliases();
253  transient_.switchAliasForBranchID_ = aliasForBranch.originalBranchID();
254  transient_.availableOnlyAtEndTransition_ = aliasForBranch.availableOnlyAtEndTransition();
255  }

References availableOnlyAtEndTransition(), edm::BranchDescription::Transients::availableOnlyAtEndTransition_, branchAliases(), branchAliases_, branchType(), branchType_, Exception, edm::errors::LogicError, edm::TypeID::name(), originalBranchID(), produced(), edm::BranchDescription::Transients::switchAliasForBranchID_, transient_, edm::TypeWithDict::typeInfo(), unwrappedType(), and unwrappedTypeID().

◆ setSwitchAliasModuleLabel()

void edm::BranchDescription::setSwitchAliasModuleLabel ( std::string  label)
inline

◆ setTransient()

void edm::BranchDescription::setTransient ( bool  isTransient)
inline

Definition at line 91 of file BranchDescription.h.

91 { transient_.transient_ = isTransient; }

References edm::BranchDescription::Transients::transient_, and transient_.

Referenced by initFromDictionary().

◆ setUnwrappedType()

void edm::BranchDescription::setUnwrappedType ( TypeWithDict const &  type)
inline

◆ setWrappedName()

void edm::BranchDescription::setWrappedName ( std::string const &  name)
inline

◆ setWrappedType()

void edm::BranchDescription::setWrappedType ( TypeWithDict const &  type)
inline

◆ splitLevel()

int edm::BranchDescription::splitLevel ( ) const
inline

Definition at line 98 of file BranchDescription.h.

98 { return transient_.splitLevel_; }

References edm::BranchDescription::Transients::splitLevel_, and transient_.

Referenced by initFromDictionary(), and merge().

◆ switchAliasForBranchID()

BranchID const& edm::BranchDescription::switchAliasForBranchID ( ) const
inline

◆ switchAliasModuleLabel()

std::string const& edm::BranchDescription::switchAliasModuleLabel ( ) const
inline

◆ throwIfInvalid_()

void edm::BranchDescription::throwIfInvalid_ ( ) const
private

Definition at line 274 of file BranchDescription.cc.

274  {
276  throwExceptionWithText("Illegal BranchType detected");
277 
278  if (moduleLabel_.empty())
279  throwExceptionWithText("Module label is not allowed to be empty");
280 
281  if (processName_.empty())
282  throwExceptionWithText("Process name is not allowed to be empty");
283 
284  if (fullClassName_.empty())
285  throwExceptionWithText("Full class name is not allowed to be empty");
286 
287  if (friendlyClassName_.empty())
288  throwExceptionWithText("Friendly class name is not allowed to be empty");
289 
290  if (produced() && !parameterSetID().isValid())
291  throwExceptionWithText("Invalid ParameterSetID detected");
292  }

References branchType_, friendlyClassName_, fullClassName_, edm::Hash< I >::isValid(), moduleLabel_, edm::NumBranchTypes, parameterSetID(), processName_, produced(), and edm::throwExceptionWithText().

Referenced by initBranchName(), and initFromDictionary().

◆ transient()

bool edm::BranchDescription::transient ( ) const
inline

◆ unwrappedType()

TypeWithDict const& edm::BranchDescription::unwrappedType ( ) const
inline

◆ unwrappedTypeID()

TypeID edm::BranchDescription::unwrappedTypeID ( ) const
inline

◆ updateFriendlyClassName()

void edm::BranchDescription::updateFriendlyClassName ( )

◆ wrappedName()

std::string const& edm::BranchDescription::wrappedName ( ) const
inline

◆ wrappedType()

TypeWithDict const& edm::BranchDescription::wrappedType ( ) const
inline

◆ wrappedTypeID()

TypeID edm::BranchDescription::wrappedTypeID ( ) const
inline

◆ write()

void edm::BranchDescription::write ( std::ostream &  os) const

Definition at line 257 of file BranchDescription.cc.

257  {
258  os << "Branch Type = " << branchType() << std::endl;
259  os << "Process Name = " << processName() << std::endl;
260  os << "ModuleLabel = " << moduleLabel() << std::endl;
261  os << "Branch ID = " << branchID() << '\n';
262  os << "Class Name = " << fullClassName() << '\n';
263  os << "Friendly Class Name = " << friendlyClassName() << '\n';
264  os << "Product Instance Name = " << productInstanceName() << std::endl;
265  }

References branchID(), branchType(), friendlyClassName(), fullClassName(), moduleLabel(), processName(), and productInstanceName().

Referenced by pkg.AbstractPkg::generate(), and edm::StableProvenance::write().

Member Data Documentation

◆ aliasForBranchID_

BranchID edm::BranchDescription::aliasForBranchID_
private

Definition at line 232 of file BranchDescription.h.

Referenced by aliasForBranchID(), isAlias(), and originalBranchID().

◆ branchAliases_

std::set<std::string> edm::BranchDescription::branchAliases_
private

◆ branchID_

BranchID edm::BranchDescription::branchID_
private

Definition at line 214 of file BranchDescription.h.

Referenced by branchID(), initBranchName(), and originalBranchID().

◆ branchType_

BranchType edm::BranchDescription::branchType_
private

Definition at line 204 of file BranchDescription.h.

Referenced by branchType(), setSwitchAliasForBranch(), and throwIfInvalid_().

◆ friendlyClassName_

std::string edm::BranchDescription::friendlyClassName_
private

◆ fullClassName_

std::string edm::BranchDescription::fullClassName_
private

Definition at line 217 of file BranchDescription.h.

Referenced by fullClassName(), and throwIfInvalid_().

◆ invalidBasketSize

const int edm::BranchDescription::invalidBasketSize = 0
static

◆ invalidSplitLevel

const int edm::BranchDescription::invalidSplitLevel = -1
static

◆ moduleLabel_

std::string edm::BranchDescription::moduleLabel_
private

◆ processName_

std::string edm::BranchDescription::processName_
private

Definition at line 211 of file BranchDescription.h.

Referenced by initBranchName(), processName(), and throwIfInvalid_().

◆ productInstanceName_

std::string edm::BranchDescription::productInstanceName_
private

Definition at line 224 of file BranchDescription.h.

Referenced by initBranchName(), and productInstanceName().

◆ transient_

Transients edm::BranchDescription::transient_
private
edm::BranchDescription::availableOnlyAtEndTransition
bool availableOnlyAtEndTransition() const
Definition: BranchDescription.h:89
personalPlayback.level
level
Definition: personalPlayback.py:22
edm::BranchDescription::fullClassName
std::string const & fullClassName() const
Definition: BranchDescription.h:78
edm::BranchDescription::branchID_
BranchID branchID_
Definition: BranchDescription.h:214
edm::BranchDescription::Transients::onDemand_
bool onDemand_
Definition: BranchDescription.h:178
edm::BranchDescription::Transients::splitLevel_
int splitLevel_
Definition: BranchDescription.h:167
edm::throwExceptionWithText
void throwExceptionWithText(char const *txt)
Definition: BranchDescription.cc:267
edm::TypeWithDict::byName
static TypeWithDict byName(std::string const &name)
Definition: TypeWithDict.cc:74
edm::BranchDescription::productInstanceName
std::string const & productInstanceName() const
Definition: BranchDescription.h:81
edm::BranchDescription::setBasketSize
void setBasketSize(int size)
Definition: BranchDescription.h:101
l1tstage2_dqm_sourceclient-live_cfg.period
period
Definition: l1tstage2_dqm_sourceclient-live_cfg.py:80
cms::Exception::addContext
void addContext(std::string const &context)
Definition: Exception.cc:165
edm::BranchDescription::setSplitLevel
void setSplitLevel(int level)
Definition: BranchDescription.h:99
edm::BranchDescription::Transients::availableOnlyAtEndTransition_
bool availableOnlyAtEndTransition_
Definition: BranchDescription.h:190
edm::BranchDescription::basketSize
int basketSize() const
Definition: BranchDescription.h:100
edm::BranchDescription::moduleLabel_
std::string moduleLabel_
Definition: BranchDescription.h:208
edm::errors::LogicError
Definition: EDMException.h:37
edm::BranchDescription::Transients::unwrappedType_
TypeWithDict unwrappedType_
Definition: BranchDescription.h:163
edm::BranchDescription::isSwitchAlias
bool isSwitchAlias() const
Definition: BranchDescription.h:103
edm::BranchDescription::unwrappedType
TypeWithDict const & unwrappedType() const
Definition: BranchDescription.h:94
pfClustersFromHGC3DClusters_cfi.wp
wp
Definition: pfClustersFromHGC3DClusters_cfi.py:20
edm::BranchDescription::setWrappedType
void setWrappedType(TypeWithDict const &type)
Definition: BranchDescription.h:93
edm::BranchDescription::wrappedType
TypeWithDict const & wrappedType() const
Definition: BranchDescription.h:92
edm::BranchDescription::splitLevel
int splitLevel() const
Definition: BranchDescription.h:98
edm::BranchDescription::Transients::produced_
bool produced_
Definition: BranchDescription.h:174
edm::BranchDescription::parameterSetID
ParameterSetID const & parameterSetID() const
Definition: BranchDescription.h:114
edm::BranchDescription::Strict
Definition: BranchDescription.h:36
findQualityFiles.v
v
Definition: findQualityFiles.py:179
edm::BranchDescription::branchAliases_
std::set< std::string > branchAliases_
Definition: BranchDescription.h:227
edm::BranchDescription::Transients::isMergeable_
bool isMergeable_
Definition: BranchDescription.h:194
edm::BranchDescription::clearBranchName
void clearBranchName()
Definition: BranchDescription.h:120
edm::BranchDescription::setWrappedName
void setWrappedName(std::string const &name)
Definition: BranchDescription.h:123
edm::NumBranchTypes
Definition: BranchType.h:11
edm::Exception
Definition: EDMException.h:77
edm::BranchDescription::friendlyClassName_
std::string friendlyClassName_
Definition: BranchDescription.h:220
edm::BranchDescription::Permissive
Definition: BranchDescription.h:36
edm::BranchDescription::setOnDemand
void setOnDemand(bool isOnDemand)
Definition: BranchDescription.h:88
edm::BranchDescription::setProduced
void setProduced(bool isProduced)
Definition: BranchDescription.h:83
edm::Hash::isValid
bool isValid() const
Definition: Hash.h:141
edm::BranchDescription::isAlias
bool isAlias() const
Definition: BranchDescription.h:76
edm::BranchDescription::Transients::switchAliasForBranchID_
BranchID switchAliasForBranchID_
Definition: BranchDescription.h:157
edm::BranchDescription::setDropped
void setDropped(bool isDropped)
Definition: BranchDescription.h:86
edm::BranchDescription::processName
std::string const & processName() const
Definition: BranchDescription.h:73
edm::BranchDescription::setUnwrappedType
void setUnwrappedType(TypeWithDict const &type)
Definition: BranchDescription.h:95
edm::BranchDescription::invalidSplitLevel
static const int invalidSplitLevel
Definition: BranchDescription.h:34
edm::BranchDescription::initBranchName
void initBranchName()
Definition: BranchDescription.cc:105
edm::BranchDescription::Transients::wrappedType_
TypeWithDict wrappedType_
Definition: BranchDescription.h:160
edm::BranchDescription::Transients::transient_
bool transient_
Definition: BranchDescription.h:187
edm::BranchDescription::wrappedName
std::string const & wrappedName() const
Definition: BranchDescription.h:122
edm::BranchDescription::unwrappedTypeID
TypeID unwrappedTypeID() const
Definition: BranchDescription.h:97
edm::BranchDescription::transient_
Transients transient_
Definition: BranchDescription.h:234
edm::BranchID::setID
void setID(std::string const &branchName)
Definition: BranchID.h:20
trackingPlots.other
other
Definition: trackingPlots.py:1465
edm::BranchDescription::friendlyClassName
std::string const & friendlyClassName() const
Definition: BranchDescription.h:80
edm::BranchDescription::Transients::wrappedName_
std::string wrappedName_
Definition: BranchDescription.h:149
edm::InEvent
Definition: BranchType.h:11
edm::TypeID::typeInfo
const std::type_info & typeInfo() const
Definition: TypeIDBase.h:50
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
edm::TypeWithDict
Definition: TypeWithDict.h:38
edm::BranchDescription::branchType_
BranchType branchType_
Definition: BranchDescription.h:204
edm::TypeWithDict::typeInfo
std::type_info const & typeInfo() const
Definition: TypeWithDict.cc:357
edm::BranchDescription::Transients::branchName_
std::string branchName_
Definition: BranchDescription.h:146
edm::friendlyname::friendlyName
std::string friendlyName(std::string const &iFullName)
Definition: FriendlyName.cc:233
edm::TypeID::name
const char * name() const
Definition: TypeIDBase.h:44
edm::BranchDescription::fullClassName_
std::string fullClassName_
Definition: BranchDescription.h:217
edm::BranchDescription::Transients::parameterSetID_
ParameterSetID parameterSetID_
Definition: BranchDescription.h:139
edm::BranchDescription::branchType
BranchType const & branchType() const
Definition: BranchDescription.h:121
edm::BranchDescription::branchName
std::string const & branchName() const
Definition: BranchDescription.h:119
edm::BranchDescription::Transients::basketSize_
int basketSize_
Definition: BranchDescription.h:171
edm::BranchDescription::initFromDictionary
void initFromDictionary()
Definition: BranchDescription.cc:154
edm::wrappedClassName
std::string wrappedClassName(std::string const &iFullName)
Definition: WrappedClassName.cc:4
edm::BranchDescription::produced
bool produced() const
Definition: BranchDescription.h:82
edm::BranchDescription::Transients::isProvenanceSetOnRead_
bool isProvenanceSetOnRead_
Definition: BranchDescription.h:197
edm::BranchDescription::moduleName
std::string const & moduleName() const
Definition: BranchDescription.h:115
edm::TypeWithDict::getClass
TClass * getClass() const
Definition: TypeWithDict.cc:380
edm::BranchDescription::productInstanceName_
std::string productInstanceName_
Definition: BranchDescription.h:224
edm::BranchDescription::processName_
std::string processName_
Definition: BranchDescription.h:211
type
type
Definition: HCALResponse.h:21
eostools.move
def move(src, dest)
Definition: eostools.py:511
edm::BranchDescription::Transients::moduleName_
std::string moduleName_
Definition: BranchDescription.h:143
edm::BranchDescription::Transients::switchAliasModuleLabel_
std::string switchAliasModuleLabel_
Definition: BranchDescription.h:152
edm::BranchDescription::moduleLabel
std::string const & moduleLabel() const
Definition: BranchDescription.h:72
relativeConstraints.value
value
Definition: relativeConstraints.py:53
SiStripOfflineCRack_cfg.alias
alias
Definition: SiStripOfflineCRack_cfg.py:129
relativeConstraints.empty
bool empty
Definition: relativeConstraints.py:46
edm::BranchDescription::setTransient
void setTransient(bool isTransient)
Definition: BranchDescription.h:91
Exception
Definition: hltDiff.cc:246
edm::BranchDescription::invalidBasketSize
static const int invalidBasketSize
Definition: BranchDescription.h:35
edm::BranchID::isValid
bool isValid() const
Definition: BranchID.h:22
Skims_PA_cff.name
name
Definition: Skims_PA_cff.py:17
or
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventID const &, edm::Timestamp const & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
edm::BranchDescription::init
void init()
Definition: BranchDescription.h:59
edm::BranchDescription::className
std::string const & className() const
Definition: BranchDescription.h:79
edm::BranchDescription::Transients::reset
void reset()
Definition: BranchDescription.cc:35
edm::BranchDescription::Transients::dropped_
bool dropped_
Definition: BranchDescription.h:183
edm::BranchDescription::aliasForBranchID_
BranchID aliasForBranchID_
Definition: BranchDescription.h:232
edm::BranchDescription::branchID
BranchID const & branchID() const
Definition: BranchDescription.h:74
label
const char * label
Definition: PFTauDecayModeTools.cc:11
edm::BranchDescription::throwIfInvalid_
void throwIfInvalid_() const
Definition: BranchDescription.cc:274
findQualityFiles.size
size
Write out results.
Definition: findQualityFiles.py:443