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 (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 (BranchDescription const &aliasForBranch, std::string const &moduleLabelAlias, std::string const &poruductInstanceAlias)
 
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 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 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 int const invalidBasketSize = 0
 
static int const 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

Enumerator
Strict 
Permissive 

Definition at line 36 of file BranchDescription.h.

Constructor & Destructor Documentation

edm::BranchDescription::BranchDescription ( )

Definition at line 41 of file BranchDescription.cc.

41  :
43  moduleLabel_(),
44  processName_(),
45  branchID_(),
51  transient_(){
52  // do not call init here! It will result in an exception throw.
53  }
std::set< std::string > branchAliases_
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>() 
)

Definition at line 55 of file BranchDescription.cc.

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

67  :
71  branchID_(),
75  branchAliases_(aliases),
76  transient_() {
77  setDropped(false);
79  setOnDemand(false);
83  setUnwrappedType(theTypeWithDict);
84  init();
85  }
BranchType const & branchType() const
void setOnDemand(bool isOnDemand)
std::string const & processName() const
std::string const & className() const
std::string const & moduleLabel() const
std::string const & productInstanceName() const
std::string const & friendlyClassName() const
void setDropped(bool isDropped)
std::string const & moduleName() const
ParameterSetID const & parameterSetID() const
std::set< std::string > branchAliases_
bool availableOnlyAtEndTransition() const
void setUnwrappedType(TypeWithDict const &type)
void setProduced(bool isProduced)
edm::BranchDescription::BranchDescription ( BranchDescription const &  aliasForBranch,
std::string const &  moduleLabelAlias,
std::string const &  poruductInstanceAlias 
)

Definition at line 87 of file BranchDescription.cc.

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().

90  :
91  branchType_(aliasForBranch.branchType()),
92  moduleLabel_(moduleLabelAlias),
93  processName_(aliasForBranch.processName()),
94  branchID_(),
95  fullClassName_(aliasForBranch.className()),
96  friendlyClassName_(aliasForBranch.friendlyClassName()),
97  productInstanceName_(productInstanceAlias),
98  branchAliases_(aliasForBranch.branchAliases()),
99  aliasForBranchID_(aliasForBranch.branchID()),
100  transient_() {
101  setDropped(false);
102  setProduced(aliasForBranch.produced());
103  setOnDemand(false); // will be re-set externally to the aliasForBranch.onDemand() after that one has been set
104  transient_.availableOnlyAtEndTransition_=aliasForBranch.availableOnlyAtEndTransition();
105  transient_.moduleName_ = aliasForBranch.moduleName();
106  transient_.parameterSetID_ = aliasForBranch.parameterSetID();
107  setUnwrappedType(aliasForBranch.unwrappedType());
108  init();
109  }
void setOnDemand(bool isOnDemand)
void setDropped(bool isDropped)
std::set< std::string > branchAliases_
void setUnwrappedType(TypeWithDict const &type)
void setProduced(bool isProduced)
edm::BranchDescription::~BranchDescription ( )
inline

Definition at line 58 of file BranchDescription.h.

58 {}

Member Function Documentation

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

Definition at line 76 of file BranchDescription.h.

References aliasForBranchID_.

76 {return aliasForBranchID_;}
bool edm::BranchDescription::availableOnlyAtEndTransition ( ) const
inline
int edm::BranchDescription::basketSize ( ) const
inline
std::set<std::string> const& edm::BranchDescription::branchAliases ( ) const
inline
BranchID const& edm::BranchDescription::branchID ( ) const
inline

Definition at line 75 of file BranchDescription.h.

References branchID_.

Referenced by edm::RootTree::addBranch(), edm::ProductRegistry::addLabelAlias(), edm::Principal::addProduct_(), edm::Principal::adjustIndexesAfterProductRegistryAddition(), edm::BranchChildren::appendToDescendants(), edm::PoolOutputModule::beginJob(), edm::StableProvenance::branchID(), edm::StreamedProduct::branchID(), edm::check(), edm::combinable(), edm::RootFile::dropOnInput(), edm::ProductSelector::fillDroppedToKept(), edm::ProvenanceAdaptor::fixProcessHistory(), fwlite::DataGetterHelper::getByBranchDescription(), edm::Principal::getExistingProduct(), edm::OutputModule::keepThisBranch(), edm::SubProcess::keepThisBranch(), edm::one::OutputModuleBase::keepThisBranch(), edm::global::OutputModuleBase::keepThisBranch(), edm::limited::OutputModuleBase::keepThisBranch(), edm::RootFile::markBranchToBeDropped(), edm::match(), edm::operator<(), edm::SubProcess::propagateProducts(), edm::EventPrincipal::put(), edm::EventPrincipal::putOnRead(), edm::Principal::putOrMerge(), edm::ThinningProducer< Collection, Selector >::registerThinnedAssociations(), edm::DaqProvenanceHelper::saveInfo(), edm::ScheduleItems::ScheduleItems(), edm::SubProcessParentageHelper::update(), fwlite::internal::BranchMapReaderStrategyV8::updateFile(), fwlite::internal::BranchMapReaderStrategyV11::updateFile(), fwlite::internal::BranchMapReaderStrategyV17::updateFile(), fwlite::internal::BranchMapReaderStrategyV1::updateMap(), edm::ProvenanceCheckerOutputModule::write(), and write().

75 {return branchID_;}
std::string const& edm::BranchDescription::branchName ( ) const
inline
BranchType const& edm::BranchDescription::branchType ( ) const
inline

Definition at line 121 of file BranchDescription.h.

References branchType_.

Referenced by edm::ProductRegistry::addProduct(), edm::Principal::adjustIndexesAfterProductRegistryAddition(), edm::Principal::adjustToNewProductRegistry(), edm::PoolOutputModule::beginJob(), edm::combinable(), edm::ConcurrentHadronizerFilter< HAD, DEC >::ConcurrentHadronizerFilter(), edm::RootFile::dropOnInput(), edm::ProvenanceAdaptor::fixProcessHistory(), edm::HadronizerFilter< HAD, DEC >::HadronizerFilter(), edm::insertSelectedProcesses(), edm::OutputModule::keepThisBranch(), edm::SubProcess::keepThisBranch(), edm::one::OutputModuleBase::keepThisBranch(), edm::global::OutputModuleBase::keepThisBranch(), edm::limited::OutputModuleBase::keepThisBranch(), edm::LogErrorHarvester::LogErrorHarvester(), edm::match(), edm::DataManagingProductResolver::mergeProduct(), edm::WillGetIfMatch< T >::operator()(), l1t::L1TGlobalUtilHelper::operator()(), L1GtUtilsHelper::operator()(), edm::GetterOfProducts< trigger::HLTPrescaleTable >::operator()(), edm::operator<(), edm::Principal::Principal(), edm::InputProductResolver::retrieveAndMerge_(), edm::RootFile::RootFile(), edm::OutputModule::selectProducts(), edm::global::OutputModuleBase::selectProducts(), edm::limited::OutputModuleBase::selectProducts(), edm::one::OutputModuleBase::selectProducts(), edm::setIsMergeable(), edm::MergeableRunProductProcesses::setProcessesWithMergeableRunProducts(), setSwitchAliasForBranch(), TFWLiteSelectorBasic::setupNewFile(), edm::SwitchProducer::SwitchProducer(), edm::SubProcessParentageHelper::update(), fwlite::internal::BranchMapReaderStrategyV8::updateFile(), fwlite::internal::BranchMapReaderStrategyV11::updateFile(), fwlite::internal::BranchMapReaderStrategyV17::updateFile(), fwlite::internal::BranchMapReaderStrategyV1::updateMap(), and write().

121 {return branchType_;}
std::string const& edm::BranchDescription::className ( ) const
inline
void edm::BranchDescription::clearBranchName ( )
inline
bool edm::BranchDescription::dropped ( ) const
inline
std::string const& edm::BranchDescription::friendlyClassName ( ) const
inline
std::string const& edm::BranchDescription::fullClassName ( ) const
inline
void edm::BranchDescription::init ( void  )
inline
void edm::BranchDescription::initBranchName ( )

Definition at line 112 of file BranchDescription.cc.

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

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

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

Definition at line 161 of file BranchDescription.cc.

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(), edm::wrappedClassName(), wrappedName(), and wrappedType().

Referenced by init().

161  {
162  if(bool(wrappedType())) {
163  return; // already initialized;
164  }
165 
166  throwIfInvalid_();
167 
168  try {
170  // unwrapped type.
172  if(!bool(unwrappedType())) {
175  setTransient(false);
176  return;
177  }
178  } catch( edm::Exception& caughtException) {
179  caughtException.addContext(std::string{"While initializing meta data for branch: "}+branchName());
180  throw;
181  }
182 
184  try {
185  setWrappedType(wrType);
186  if(!bool(wrappedType())) {
189  return;
190  }
191  } catch( edm::Exception& caughtException) {
192  caughtException.addContext(std::string{"While initializing meta data for branch: "}+branchName());
193  throw;
194  }
195 
196  setTransient(false);
199  TDictAttributeMap* wp = wrappedType().getClass()->GetAttributeMap();
200  if (wp && wp->HasKey("persistent") && !strcmp(wp->GetPropertyAsString("persistent"), "false")) {
201  // Set transient if persistent == "false".
202  setTransient(true);
203  return;
204  } else {
205  // Module labels of persistent products cannot contain underscores,
206  // but for non-persistent products it is allowed because path names
207  // are used as module labels for path status products and there
208  // are many path names that include underscores.
209  char const underscore('_');
210  if(moduleLabel_.find(underscore) != std::string::npos) {
211  throw cms::Exception("IllegalCharacter") << "Module label '" << moduleLabel()
212  << "' contains an underscore ('_'), which is illegal in a module label.\n";
213  }
214  }
215 
216  if (wp && wp->HasKey("splitLevel")) {
217  setSplitLevel(strtol(wp->GetPropertyAsString("splitLevel"), nullptr, 0));
218  if (splitLevel() < 0) {
219  throw cms::Exception("IllegalSplitLevel") << "' An illegal ROOT split level of " <<
220  splitLevel() << " is specified for class " << wrappedName() << ".'\n";
221  }
222  setSplitLevel(splitLevel() + 1); //Compensate for wrapper
223  }
224  if (wp && wp->HasKey("basketSize")) {
225  setBasketSize(strtol(wp->GetPropertyAsString("basketSize"), nullptr, 0));
226  if (basketSize() <= 0) {
227  throw cms::Exception("IllegalBasketSize") << "' An illegal ROOT basket size of " <<
228  basketSize() << " is specified for class " << wrappedName() << "'.\n";
229  }
230  }
231  }
std::string const & branchName() const
static int const invalidSplitLevel
static int const invalidBasketSize
void setWrappedType(TypeWithDict const &type)
static TypeWithDict byName(std::string const &name)
Definition: TypeWithDict.cc:74
void setTransient(bool isTransient)
TClass * getClass() const
std::string const & moduleLabel() const
void setWrappedName(std::string const &name)
void setSplitLevel(int level)
TypeWithDict const & unwrappedType() const
std::string const & fullClassName() const
std::string wrappedClassName(std::string const &iFullName)
void addContext(std::string const &context)
Definition: Exception.cc:165
void setUnwrappedType(TypeWithDict const &type)
void setBasketSize(int size)
std::string const & wrappedName() const
TypeWithDict const & wrappedType() const
void edm::BranchDescription::initializeTransients ( )
inline
void edm::BranchDescription::insertBranchAlias ( std::string const &  alias)
inline

Definition at line 116 of file BranchDescription.h.

References branchAliases_.

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

Definition at line 110 of file BranchDescription.h.

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

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

110 {return isAlias() or isSwitchAlias();}
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
bool edm::BranchDescription::isMergeable ( ) const
inline
bool edm::BranchDescription::isSwitchAlias ( ) const
inline
void edm::BranchDescription::merge ( BranchDescription const &  other)

Definition at line 234 of file BranchDescription.cc.

References basketSize(), branchAliases(), branchAliases_, invalidBasketSize, invalidSplitLevel, setBasketSize(), setSplitLevel(), and splitLevel().

Referenced by init().

234  {
235  branchAliases_.insert(other.branchAliases().begin(), other.branchAliases().end());
236  if(splitLevel() == invalidSplitLevel) setSplitLevel(other.splitLevel());
237  if(basketSize() == invalidBasketSize) setBasketSize(other.basketSize());
238  }
static int const invalidSplitLevel
static int const invalidBasketSize
void setSplitLevel(int level)
std::set< std::string > branchAliases_
void setBasketSize(int size)
std::string const& edm::BranchDescription::moduleLabel ( ) const
inline

Definition at line 73 of file BranchDescription.h.

References moduleLabel_.

Referenced by edm::SignallingProductRegistry::addCalled(), edm::ProductRegistry::addLabelAlias(), edm::Principal::addProduct_(), edm::Principal::addProductOrThrow(), edm::ProductSelectorRules::Rule::appliesTo(), edm::check(), edm::combinable(), 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::OutputModule::keepThisBranch(), edm::SubProcess::keepThisBranch(), edm::one::OutputModuleBase::keepThisBranch(), edm::global::OutputModuleBase::keepThisBranch(), edm::limited::OutputModuleBase::keepThisBranch(), L3TkMuonProducer::L3TkMuonProducer(), edm::LogErrorHarvester::LogErrorHarvester(), edm::StableProvenance::moduleLabel(), edm::ProductResolverBase::moduleLabel(), edm::ModuleLabelMatch::operator()(), edm::InputTagMatch::operator()(), edm::WillGetIfMatch< T >::operator()(), l1t::L1TGlobalUtilHelper::operator()(), L1GtUtilsHelper::operator()(), edm::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().

73 {return moduleLabel_;}
std::string const& edm::BranchDescription::moduleName ( ) const
inline
bool edm::BranchDescription::onDemand ( ) const
inline
BranchID const& edm::BranchDescription::originalBranchID ( ) const
inline
ParameterSetID const& edm::BranchDescription::parameterSetID ( ) const
inline
bool edm::BranchDescription::present ( ) const
inline
std::string const& edm::BranchDescription::processName ( ) const
inline

Definition at line 74 of file BranchDescription.h.

References processName_.

Referenced by edm::ProductRegistry::addProduct(), edm::Principal::addProduct_(), edm::Principal::addProductOrThrow(), edm::ProductSelectorRules::Rule::appliesTo(), edm::check(), edm::ProductRegistry::checkForDuplicateProcessName(), edm::combinable(), edm::ConcurrentHadronizerFilter< HAD, DEC >::ConcurrentHadronizerFilter(), edm::DaqProvenanceHelper::daqInit(), edm::DaqProvenanceHelper::DaqProvenanceHelper(), FWLiteJobMetadataManager::doUpdate(), FWFFMetadataManager::doUpdate(), edm::EventContentAnalyzer::EventContentAnalyzer(), edm::LHEProvenanceHelper::fillCommonProcessParameterSet(), edm::Principal::findProducts(), edm::ProvenanceAdaptor::fixProcessHistory(), fwlite::DataGetterHelper::getByBranchDescription(), edm::HadronizerFilter< HAD, DEC >::HadronizerFilter(), initBranchName(), edm::insertSelectedProcesses(), edm::OutputModule::keepThisBranch(), edm::SubProcess::keepThisBranch(), edm::one::OutputModuleBase::keepThisBranch(), edm::global::OutputModuleBase::keepThisBranch(), edm::limited::OutputModuleBase::keepThisBranch(), L3TkMuonProducer::L3TkMuonProducer(), edm::LHEProvenanceHelper::lheInit(), edm::LogErrorHarvester::LogErrorHarvester(), edm::DaqProvenanceHelper::matchProcesses(), edm::DataManagingProductResolver::mergeProduct(), edm::ProcessMatch::operator()(), edm::InputTagMatch::operator()(), edm::WillGetIfMatch< T >::operator()(), l1t::L1TGlobalUtilHelper::operator()(), L1GtUtilsHelper::operator()(), edm::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().

74 {return processName_;}
bool edm::BranchDescription::produced ( ) const
inline

Definition at line 83 of file BranchDescription.h.

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

Referenced by edm::ProductRegistry::addLabelAlias(), edm::ProductRegistry::addProduct(), edm::Principal::adjustIndexesAfterProductRegistryAddition(), edm::Principal::adjustToNewProductRegistry(), edm::PoolOutputModule::beginJob(), BranchDescription(), edm::ProductSelector::checkForDuplicateKeptBranch(), edm::ProductRegistry::checkForDuplicateProcessName(), edm::ProductRegistry::copyProduct(), edm::ProductSelector::fillDroppedToKept(), edm::PoolOutputModule::fillSelectedItemList(), edm::insertSelectedProcesses(), isAlias(), edm::OutputModule::keepThisBranch(), edm::SubProcess::keepThisBranch(), edm::one::OutputModuleBase::keepThisBranch(), edm::global::OutputModuleBase::keepThisBranch(), edm::limited::OutputModuleBase::keepThisBranch(), edm::Principal::Principal(), edm::EventPrincipal::putOnRead(), edm::ThinningProducer< Collection, Selector >::registerThinnedAssociations(), edm::SubProcess::selectProducts(), edm::OutputModule::selectProducts(), edm::global::OutputModuleBase::selectProducts(), edm::limited::OutputModuleBase::selectProducts(), edm::one::OutputModuleBase::selectProducts(), edm::MergeableRunProductProcesses::setProcessesWithMergeableRunProducts(), setSwitchAliasForBranch(), throwIfInvalid_(), and edm::SubProcessParentageHelper::update().

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

Definition at line 82 of file BranchDescription.h.

References productInstanceName_.

Referenced by edm::SignallingProductRegistry::addCalled(), edm::Principal::addProductOrThrow(), edm::ProductSelectorRules::Rule::appliesTo(), edm::check(), edm::combinable(), edm::ConcurrentHadronizerFilter< HAD, DEC >::ConcurrentHadronizerFilter(), FWLiteJobMetadataManager::doUpdate(), FWFFMetadataManager::doUpdate(), ShallowTree::eat(), edm::EventContentAnalyzer::EventContentAnalyzer(), fwlite::DataGetterHelper::getByBranchDescription(), edm::HadronizerFilter< HAD, DEC >::HadronizerFilter(), initBranchName(), edm::OutputModule::keepThisBranch(), edm::SubProcess::keepThisBranch(), edm::one::OutputModuleBase::keepThisBranch(), edm::global::OutputModuleBase::keepThisBranch(), edm::limited::OutputModuleBase::keepThisBranch(), L3TkMuonProducer::L3TkMuonProducer(), edm::LogErrorHarvester::LogErrorHarvester(), edm::InputTagMatch::operator()(), edm::WillGetIfMatch< T >::operator()(), l1t::L1TGlobalUtilHelper::operator()(), L1GtUtilsHelper::operator()(), edm::operator<(), edm::StableProvenance::productInstanceName(), edm::ProductResolverBase::productInstanceName(), edm::ThinningProducer< Collection, Selector >::registerThinnedAssociations(), edm::RootOutputFile::RootOutputFile(), edm::RootOutputFile::setBranchAliases(), edm::SwitchProducer::SwitchProducer(), edm::HiMixingModule::verifyRegistry(), and write().

82 {return productInstanceName_;}
void edm::BranchDescription::setBasketSize ( int  size)
inline
void edm::BranchDescription::setDropped ( bool  isDropped)
inline
void edm::BranchDescription::setIsMergeable ( bool  v)
inline
void edm::BranchDescription::setOnDemand ( bool  isOnDemand)
inline
void edm::BranchDescription::setProduced ( bool  isProduced)
inline
void edm::BranchDescription::setSplitLevel ( int  level)
inline
void edm::BranchDescription::setSwitchAliasForBranch ( BranchDescription const &  aliasForBranch)

Definition at line 241 of file BranchDescription.cc.

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

Referenced by switchAliasForBranchID().

241  {
242  if(branchType_ != aliasForBranch.branchType()) {
243  throw Exception(errors::LogicError) << "BranchDescription::setSwitchAliasForBranch: branchType ("
244  << branchType_ << ") differs from aliasForBranch ("
245  << aliasForBranch.branchType() << ").\nPlease report this error to the FWCore developers";
246  }
247  if(produced() != aliasForBranch.produced()) {
248  throw Exception(errors::LogicError) << "BranchDescription::setSwitchAliasForBranch: produced differs from aliasForBranch.\nPlease report this error to the FWCore developers";
249  }
250  if(unwrappedTypeID().typeInfo() != aliasForBranch.unwrappedType().typeInfo()) {
251  throw Exception(errors::LogicError) << "BranchDescription::setSwitchAliasForBranch: unwrapped type info ("
252  << unwrappedTypeID().name() << ") differs from aliasForBranch ("
253  << aliasForBranch.unwrappedType().typeInfo().name() << ").\nPlease report this error to the FWCore developers";
254  }
255 
256  branchAliases_ = aliasForBranch.branchAliases();
257  transient_.switchAliasForBranchID_ = aliasForBranch.originalBranchID();
258  transient_.availableOnlyAtEndTransition_ = aliasForBranch.availableOnlyAtEndTransition();
259  }
const std::type_info & typeInfo() const
Definition: TypeIDBase.h:50
TypeID unwrappedTypeID() const
std::set< std::string > branchAliases_
const char * name() const
Definition: TypeIDBase.h:44
void edm::BranchDescription::setSwitchAliasModuleLabel ( std::string  label)
inline
void edm::BranchDescription::setTransient ( bool  isTransient)
inline
void edm::BranchDescription::setUnwrappedType ( TypeWithDict const &  type)
inline
void edm::BranchDescription::setWrappedName ( std::string const &  name)
inline
void edm::BranchDescription::setWrappedType ( TypeWithDict const &  type)
inline
int edm::BranchDescription::splitLevel ( ) const
inline
BranchID const& edm::BranchDescription::switchAliasForBranchID ( ) const
inline
std::string const& edm::BranchDescription::switchAliasModuleLabel ( ) const
inline
void edm::BranchDescription::throwIfInvalid_ ( ) const
private

Definition at line 281 of file BranchDescription.cc.

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

Referenced by initBranchName(), and initFromDictionary().

281  {
283  throwExceptionWithText("Illegal BranchType detected");
284 
285  if(moduleLabel_.empty())
286  throwExceptionWithText("Module label is not allowed to be empty");
287 
288  if(processName_.empty())
289  throwExceptionWithText("Process name is not allowed to be empty");
290 
291  if(fullClassName_.empty())
292  throwExceptionWithText("Full class name is not allowed to be empty");
293 
294  if(friendlyClassName_.empty())
295  throwExceptionWithText("Friendly class name is not allowed to be empty");
296 
297  if(produced() && !parameterSetID().isValid())
298  throwExceptionWithText("Invalid ParameterSetID detected");
299  }
void throwExceptionWithText(char const *txt)
ParameterSetID const & parameterSetID() const
bool isValid() const
Definition: Hash.h:154
bool edm::BranchDescription::transient ( ) const
inline
TypeWithDict const& edm::BranchDescription::unwrappedType ( ) const
inline
TypeID edm::BranchDescription::unwrappedTypeID ( ) const
inline
void edm::BranchDescription::updateFriendlyClassName ( )
std::string const& edm::BranchDescription::wrappedName ( ) const
inline
TypeWithDict const& edm::BranchDescription::wrappedType ( ) const
inline
TypeID edm::BranchDescription::wrappedTypeID ( ) const
inline
void edm::BranchDescription::write ( std::ostream &  os) const

Definition at line 262 of file BranchDescription.cc.

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

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

262  {
263  os << "Branch Type = " << branchType() << std::endl;
264  os << "Process Name = " << processName() << std::endl;
265  os << "ModuleLabel = " << moduleLabel() << std::endl;
266  os << "Branch ID = " << branchID() << '\n';
267  os << "Class Name = " << fullClassName() << '\n';
268  os << "Friendly Class Name = " << friendlyClassName() << '\n';
269  os << "Product Instance Name = " << productInstanceName() << std::endl;
270  }
BranchType const & branchType() const
std::string const & processName() const
std::string const & moduleLabel() const
std::string const & productInstanceName() const
std::string const & friendlyClassName() const
BranchID const & branchID() const
std::string const & fullClassName() const

Member Data Documentation

BranchID edm::BranchDescription::aliasForBranchID_
private

Definition at line 229 of file BranchDescription.h.

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

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

Definition at line 211 of file BranchDescription.h.

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

BranchType edm::BranchDescription::branchType_
private

Definition at line 201 of file BranchDescription.h.

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

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

Definition at line 214 of file BranchDescription.h.

Referenced by fullClassName(), and throwIfInvalid_().

int const edm::BranchDescription::invalidBasketSize = 0
static
int const edm::BranchDescription::invalidSplitLevel = -1
static
std::string edm::BranchDescription::moduleLabel_
private
std::string edm::BranchDescription::processName_
private

Definition at line 208 of file BranchDescription.h.

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

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

Definition at line 221 of file BranchDescription.h.

Referenced by initBranchName(), and productInstanceName().

Transients edm::BranchDescription::transient_
private