CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
CaloParticle.cc
Go to the documentation of this file.
2 
4 
6 
8 
9 const unsigned int CaloParticle::longLivedTag = 65536;
10 
12  // No operation
13 }
14 
16  addG4Track(simtrk);
17  event_ = simtrk.eventId();
18  particleId_ = simtrk.trackId();
19  theMomentum_.SetPxPyPzE(
20  simtrk.momentum().px(), simtrk.momentum().py(), simtrk.momentum().pz(), simtrk.momentum().E());
21 }
22 
23 CaloParticle::CaloParticle(EncodedEventId eventID, uint32_t particleID) {
24  event_ = eventID;
25  particleId_ = particleID;
26 }
27 
29 
30 std::ostream &operator<<(std::ostream &s, CaloParticle const &tp) {
31  s << "Calo Particle:" << std::endl;
32  s << "CP momentum, q, ID, & Event #: " << tp.p4() << " " << tp.charge() << " " << tp.pdgId() << " "
33  << tp.eventId().bunchCrossing() << "." << tp.eventId().event() << std::endl;
34 
35  for (CaloParticle::genp_iterator hepT = tp.genParticle_begin(); hepT != tp.genParticle_end(); ++hepT) {
36  s << " HepMC Track Momentum " << (*hepT)->momentum().rho() << std::endl;
37  }
38 
39  for (CaloParticle::g4t_iterator g4T = tp.g4Track_begin(); g4T != tp.g4Track_end(); ++g4T) {
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 CaloParticle and Geant types" << std::endl;
44  }
45  }
46  s << "SimClusters in this CaloParticle: " << std::endl;
47  for (auto itr = tp.simClusters_.begin(); itr != tp.simClusters_.end(); ++itr) {
48  s << **itr;
49  }
50  s << std::endl;
51  return s;
52 }
EncodedEventId eventId() const
Definition: CoreSimTrack.h:28
int event() const
get the contents of the subdetector field (should be protected?)
void addG4Track(const SimTrack &t)
Definition: CaloParticle.h:61
EncodedEventId eventId() const
Signal source, crossing number.
Definition: CaloParticle.h:54
float charge() const
Electric charge. Note this is taken from the first SimTrack only.
Definition: CaloParticle.h:79
EncodedEventId event_
Definition: CaloParticle.h:194
std::ostream & operator<<(std::ostream &out, const ALILine &li)
Definition: ALILine.cc:167
const_iterator end() const
Termination of iteration.
Definition: RefVector.h:228
SimClusterRefVector simClusters_
Definition: CaloParticle.h:207
std::vector< SimTrack >::const_iterator g4t_iterator
Definition: CaloParticle.h:28
genp_iterator genParticle_begin() const
iterators
Definition: CaloParticle.h:63
const_iterator begin() const
Initialize an iterator over the RefVector.
Definition: RefVector.h:223
math::XYZTLorentzVectorF theMomentum_
Definition: CaloParticle.h:201
const math::XYZTLorentzVectorF & p4() const
Four-momentum Lorentz vector. Note this is taken from the first SimTrack only.
Definition: CaloParticle.h:85
static const unsigned int longLivedTag
long lived flag
Definition: CaloParticle.h:157
uint32_t particleId_
Definition: CaloParticle.h:196
int bunchCrossing() const
get the detector field from this detid
unsigned int trackId() const
Definition: CoreSimTrack.h:31
int pdgId() const
PDG ID.
Definition: CaloParticle.h:43
g4t_iterator g4Track_end() const
Definition: CaloParticle.h:66
const math::XYZTLorentzVectorD & momentum() const
Definition: CoreSimTrack.h:19
g4t_iterator g4Track_begin() const
Definition: CaloParticle.h:65
genp_iterator genParticle_end() const
Definition: CaloParticle.h:64