32 s <<
"CP momentum, q, ID, & Event #: " << tp.
p4() <<
" " << tp.
charge() <<
" " << tp.
pdgId() <<
" " 36 s <<
" HepMC Track Momentum " << (*hepT)->momentum().rho() << std::endl;
40 s <<
" Geant Track Momentum " << g4T->momentum() << std::endl;
41 s <<
" Geant Track ID & type " << g4T->trackId() <<
" " << g4T->type() << std::endl;
42 if (g4T->type() != tp.
pdgId()) {
43 s <<
" Mismatch b/t SimCluster and Geant types" << std::endl;
46 s <<
" # of cells = " << tp.
hits_.size()
47 <<
", effective cells = " << std::accumulate(tp.
fractions_.begin(), tp.
fractions_.end(), 0.f) << std::endl;
EncodedEventId eventId() const
int event() const
get the contents of the subdetector field (should be protected?)
void addG4Track(const SimTrack &t)
int pdgId() const
PDG ID.
friend std::ostream & operator<<(std::ostream &s, SimCluster const &tp)
std::vector< SimTrack >::const_iterator g4t_iterator
EncodedEventId eventId() const
Signal source, crossing number.
genp_iterator genParticle_end() const
std::vector< uint32_t > hits_
Monte Carlo truth information used for tracking validation.
int bunchCrossing() const
get the detector field from this detid
std::vector< float > fractions_
float charge() const
Electric charge. Note this is taken from the first SimTrack only.
unsigned int trackId() const
const math::XYZTLorentzVectorD & momentum() const
g4t_iterator g4Track_begin() const
const math::XYZTLorentzVectorF & p4() const
Four-momentum Lorentz vector. Note this is taken from the first SimTrack only.
genp_iterator genParticle_begin() const
iterators
g4t_iterator g4Track_end() const
static const unsigned int longLivedTag
long lived flag
math::XYZTLorentzVectorF theMomentum_