15 #include <boost/bind.hpp>
18 #include "TEveManager.h"
51 table(
"reco::GenParticle")
65 .
column(
"tr pt", 1,
"track().pt()")
69 .
column(
"d0", 3,
"track().d0()")
70 .
column(
"d0 / d0Err", 3,
"track().d0() / track().d0Error()");
72 table(
"reco::GsfElectron")
77 .
column(
"E/p", 3,
"eSuperClusterOverP")
78 .
column(
"H/E", 3,
"hadronicOverEm")
79 .
column(
"fbrem", 3,
"(trackMomentumAtVtx().R() - trackMomentumOut().R()) / trackMomentumAtVtx().R()")
80 .
column(
"dei", 3,
"deltaEtaSuperClusterTrackAtVtx()")
81 .
column(
"dpi", 3,
"deltaPhiSuperClusterTrackAtVtx()");
85 table(
"reco::CaloJet")
89 .
column(
"ECAL", 1,
"p4().E() * emEnergyFraction()")
90 .
column(
"HCAL", 1,
"p4().E() * energyFractionHadronic()")
91 .
column(
"emf", 3,
"emEnergyFraction()");
97 .
column(
"electronEnergyFraction", 3,
"electronEnergyFraction()")
98 .
column(
"muonEnergyFraction", 3,
"muonEnergyFraction()")
99 .
column(
"photonEnergyFraction", 3,
"photonEnergyFraction()");
109 .
column(
"d0Err", 5,
"d0Error")
111 .
column(
"dzErr", 5,
"dzError")
120 table(
"DTRecSegment4D")
121 .
column(
"wheel", 0,
"chamberId.wheel")
122 .
column(
"station", 0,
"chamberId.station")
123 .
column(
"sector", 0,
"chamberId.sector")
124 .
column(
"t0phi", 2,
"phiSegment.t0")
125 .
column(
"t0theta", 2,
"zSegment.t0")
126 .
column(
"hasPhi", -2,
"hasPhi")
127 .
column(
"hasZed", -2,
"hasZed")
128 .
column(
"chi2", 2,
"chi2")
129 .
column(
"dof", 0,
"degreesOfFreedom");
131 table(
"DTRecHit1DPair")
132 .
column(
"wheel", 0,
"wireId.wheel")
133 .
column(
"station", 0,
"wireId.station")
134 .
column(
"sector", 0,
"wireId.sector")
135 .
column(
"SL", 0,
"wireId.superlayer")
136 .
column(
"layer", 0,
"wireId.layer")
137 .
column(
"wire", 0,
"wireId.wire")
138 .
column(
"digiTime", 2,
"digiTime");
141 .
column(
"endcap", 0,
"cscDetId.endcap")
142 .
column(
"station", 0,
"cscDetId.station")
143 .
column(
"ring", 0,
"cscDetId.ring")
144 .
column(
"chamber", 0,
"cscDetId.chamber");
146 table(
"reco::Vertex")
165 table(
"reco::PFCandidate")
169 .
column(
"ecalEnergy", 3,
"ecalEnergy()")
170 .
column(
"hcalEnergy", 3,
"hcalEnergy()")
171 .
column(
"track pt", 3,
"trackRef().pt()");
173 table(
"reco::Electron")
177 .
column(
"E/p", 3,
"eSuperClusterOverP")
178 .
column(
"H/E", 3,
"hadronicOverEm")
179 .
column(
"fbrem", 3,
"(trackMomentumAtVtx().R() - trackMomentumOut().R()) / trackMomentumAtVtx().R()")
180 .
column(
"dei", 3,
"deltaEtaSuperClusterTrackAtVtx")
181 .
column(
"dpi", 3,
"deltaPhiSuperClusterTrackAtVtx()")
182 .
column(
"charge", 0,
"charge")
183 .
column(
"isPF", 0,
"isPF()")
184 .
column(
"sieie", 3,
"sigmaIetaIeta")
185 .
column(
"isNotConv", 1,
"passConversionVeto");
187 table(
"pat::PackedCandidate")
194 .
column(
"dzAssociatedPV", 3,
"dzAssociatedPV()");
234 const char *expression) {
254 for (
auto const &
base : bases) {
296 for (
auto const &member : functionMembers) {
298 if (
m.functionParameterSize())
304 if (
m.finalReturnType().name() == isint)
306 else if (
m.finalReturnType().name() == isbool)
308 else if (
m.finalReturnType().name() == isdouble)
309 handle.column(
m.name().c_str(), 5);
310 else if (
m.finalReturnType().name() == isfloat)
311 handle.column(
m.name().c_str(), 3);
314 for (
auto const &member : dataMembers) {
320 if (
m.typeOf().name() == isint)
322 else if (
m.typeOf().name() == isbool)
324 else if (
m.typeOf().name() == isdouble)
325 handle.column(
m.name().c_str(), 5);
326 else if (
m.typeOf().name() == isfloat)
327 handle.column(
m.name().c_str(), 3);
342 TEveManager::TRedrawDisabler disableRedraw(gEve);
343 auto view = std::make_shared<FWTableView>(iParent,
this);
351 for (Views::iterator it =
m_views.begin(), itEnd =
m_views.end(); it != itEnd; ++it) {
352 if (it->get() == iView) {
403 gEve->EnableRedraw();
450 for (
size_t ei = 0, ee = entries.size(); ei != ee; ++ei) {
454 columns.addValue((snprintf(prec, 100,
"%d",
entry.precision), prec));
474 iTypeEnd =
typeNames->stringValues()->end();
482 itEnd =
columns->stringValues()->end();
487 int prec = atoi(it->c_str());