54 <<
"' contains no processing history" 55 " and therefore should have no accessible data.\n";
65 TTree* eventsTree =
dynamic_cast<TTree*
>(
const_cast<TFile*
>(
file)->Get(
"Events"));
68 std::set<std::string> branchNamesInFile;
69 TIter nextBranch(eventsTree->GetListOfBranches());
70 while (TBranch*
branch = static_cast<TBranch*>(nextBranch()))
71 branchNamesInFile.insert(
branch->GetName());
73 typedef std::set<std::string> Purposes;
77 for (
size_t bi = 0,
be = descriptions.size(); bi !=
be; ++bi) {
80 if (!
desc.present() || branchNamesInFile.end() == branchNamesInFile.find(
desc.branchName()))
101 for (
size_t ii = 0, ei =
infos.size();
ii != ei; ++
ii) {
105 if (
infos[
ii].requiresFF() ==
false) {
110 if (purposes.empty())
111 purposes.insert(
"Table");
113 for (Purposes::const_iterator itPurpose = purposes.begin(), itEnd = purposes.end(); itPurpose != itEnd;
119 TClass* theClass = TClass::GetClass(
desc.fullClassName().c_str());
124 if (!theClass->GetTypeInfo())
127 const static bool debug =
false;
131 fwLog(
fwlog::kDebug) << theClass->GetName() <<
" will not be displayed in table." << std::endl;
135 d.type_ =
desc.fullClassName();
136 d.purpose_ = *itPurpose;
137 d.moduleLabel_ =
desc.moduleLabel();
138 d.productInstanceLabel_ =
desc.productInstanceName();
139 d.processName_ =
desc.processName();
142 fwLog(
fwlog::kDebug) <<
"Add collection will display " <<
d.type_ <<
" " <<
d.moduleLabel_ <<
" " 143 <<
d.productInstanceLabel_ <<
" " <<
d.processName_ << std::endl;
static bool classAccessedAsCollection(const TClass *)
const std::vector< FWRepresentationInfo > & representationsForType(const std::string &iTypeName) const
std::vector< edm::BranchDescription > const & getBranchDescriptions() const
std::vector< std::string > const & getProcessHistory() const