CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
TrackingDataPrint.h
Go to the documentation of this file.
1 #ifndef SimDataFormats_TrackingDataPrint_h
2 #define SimDataFormats_TrackingDataPrint_h
3 
10 #include <iostream>
11 
12 std::ostream& operator<< (std::ostream& s, const TrackingParticle & tp)
13 {
14 
15  // Compare momenta from sources
16  s << "T.P. Track Momentum, q , ID, & Event # "
17  << tp.p4() << " " << tp.charge() << " "
18  << tp.pdgId() << " "
19  << tp.eventId().bunchCrossing() << "." << tp.eventId().event()
20  << std::endl;
21  s << " Hits for this track: " << tp.trackPSimHit().size()
22  << std::endl;
23 
25  hepT != tp.genParticle_end(); ++hepT)
26  {
27  s << " HepMC Track Momentum " << (*hepT)->momentum().mag() << std::endl;
28  }
30  g4T != tp.g4Track_end(); ++g4T)
31  {
32  s << " Geant Track Momentum " << g4T->momentum() << std::endl;
33  s << " Geant Track ID & type " << g4T->trackId() << " "
34  << g4T->type() << std::endl;
35  if (g4T->type() != tp.pdgId())
36  {
37  s << " Mismatch b/t TrackingParticle and Geant types"
38  << std::endl;
39  }
40  }
41  return s;
42 }
43 
44 #endif // SimDataFormats_TrackingDataPrint_H
genp_iterator genParticle_begin() const
iterators
int event() const
get the contents of the subdetector field (should be protected?)
int charge() const
electric charge
Definition: ParticleBase.h:54
const std::vector< PSimHit > & trackPSimHit() const
g4t_iterator g4Track_begin() const
int pdgId() const
PDG id, signal source, crossing number.
std::ostream & operator<<(std::ostream &out, const ALILine &li)
Definition: ALILine.cc:187
int bunchCrossing() const
get the detector field from this detid
const LorentzVector & p4() const
four-momentum Lorentz vector
Definition: ParticleBase.h:74
std::vector< SimTrack >::const_iterator g4t_iterator
genp_iterator genParticle_end() const
EncodedEventId eventId() const
g4t_iterator g4Track_end() const