29 typedef std::vector<int>
vint;
38 std::vector<const reco::Candidate *>
cands_;
55 printP4_(cfg.getUntrackedParameter<bool>(
"printP4",
false)),
56 printPtEtaPhi_(cfg.getUntrackedParameter<bool>(
"printPtEtaPhi",
false)),
57 printVertex_(cfg.getUntrackedParameter<bool>(
"printVertex",
false)),
58 printStatus_(cfg.getUntrackedParameter<bool>(
"printStatus",
false)),
59 printIndex_(cfg.getUntrackedParameter<bool>(
"printIndex",
false)),
60 status_(cfg.getUntrackedParameter<
vint>(
"status",
vint())) {}
70 for (
size_t i = 0;
i < ndau; ++
i)
79 std::ostringstream
ss;
96 if (
p->mother() ==
nullptr) {
97 cout <<
"-- decay tree: --" << endl;
106 cout <<
" (" << c.
px() <<
", " << c.
py() <<
", " << c.
pz() <<
"; " << c.
energy() <<
")";
108 cout <<
" [" << c.
pt() <<
": " << c.
eta() <<
", " << c.
phi() <<
"]";
110 cout <<
" {" << c.
vx() <<
", " << c.
vy() <<
", " << c.
vz() <<
"}";
116 if (found !=
cands_.end()) {
117 idx = found -
cands_.begin();
118 cout <<
" <idx: " << idx <<
">";
129 for (
size_t i = 0;
i < ndau; ++
i)
135 bool lastLevel =
true;
136 for (
size_t i = 0;
i < ndau; ++
i) {
144 cout << pre <<
"+-> ";
146 for (
size_t i = 0;
i < ndau; ++
i) {
151 if (vd != validDau - 1)
160 for (
size_t i = 0;
i < ndau; ++
i) {
164 cout << pre <<
"+-> ";
virtual double energy() const =0
energy
virtual const Candidate * daughter(size_type i) const =0
return daughter at a given position, i = 0, ... numberOfDaughters() - 1 (read only mode) ...
const edm::EventSetup & c
uint16_t *__restrict__ id
void printInfo(const reco::Candidate &) const
print 4 momenta
HepPDT::ParticleDataTable ParticleDataTable
virtual double pt() const =0
transverse momentum
std::vector< const reco::Candidate * > cands_
pointer to collection
#define DEFINE_FWK_MODULE(type)
edm::ESHandle< ParticleDataTable > pdt_
std::string getParticleName(int id) const
edm::EDGetTokenT< edm::View< reco::Candidate > > srcToken_
virtual int status() const =0
status word
virtual double pz() const =0
z coordinate of momentum vector
virtual double vx() const =0
x coordinate of vertex position
edm::ESGetToken< ParticleDataTable, edm::DefaultRecord > pdtToken_
std::vector< int > vint
accepted status codes
void printDecay(const reco::Candidate &, const std::string &pre) const
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
virtual double vy() const =0
y coordinate of vertex position
void analyze(const edm::Event &, const edm::EventSetup &) override
virtual size_type numberOfDaughters() const =0
number of daughters
bool accept(const reco::Candidate &) const
accept candidate
ParticleTreeDrawer(const edm::ParameterSet &)
bool hasValidDaughters(const reco::Candidate &) const
has valid daughters in the chain
bool printP4_
print parameters
virtual double py() const =0
y coordinate of momentum vector
HepPDT::ParticleData ParticleData
std::vector< DeviationSensor2D * > vd
virtual double px() const =0
x coordinate of momentum vector
virtual int pdgId() const =0
PDG identifier.
virtual double vz() const =0
z coordinate of vertex position
boost::indirect_iterator< typename seq_t::const_iterator > const_iterator
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
virtual double phi() const =0
momentum azimuthal angle
virtual double eta() const =0
momentum pseudorapidity