Monte Carlo truth information used for tracking validation. More...
#include <TrackingParticle.h>
Public Types | |
typedef int | Charge |
electric charge type More... | |
typedef std::vector< SimTrack >::const_iterator | g4t_iterator |
typedef reco::GenParticleRefVector::iterator | genp_iterator |
reference to reco::GenParticle More... | |
typedef math::XYZTLorentzVectorD | LorentzVector |
Lorentz vector. More... | |
typedef math::XYZPointD | Point |
point in the space More... | |
typedef math::PtEtaPhiMLorentzVector | PolarLorentzVector |
Lorentz vector. More... | |
typedef math::XYZVectorD | Vector |
point in the space More... | |
Public Member Functions | |
void | addDecayVertex (const TrackingVertexRef &ref) |
void | addG4Track (const SimTrack &t) |
void | addGenParticle (const reco::GenParticleRef &ref) |
Vector | boostToCM () const |
Vector to boost to the particle centre of mass frame. More... | |
float | charge () const |
Electric charge. Note this is taken from the first SimTrack only. More... | |
void | clearDecayVertices () |
void | clearParentVertex () |
double | d0 () const |
dxy parameter in perigee convention (d0 = -dxy) More... | |
const TrackingVertexRefVector & | decayVertices () const |
tv_iterator | decayVertices_begin () const |
tv_iterator | decayVertices_end () const |
double | dxy () const |
dxy parameter. More... | |
double | dz () const |
dz parameter (= dsz/cos(lambda)). This is the track z0 w.r.t (0,0,0) only if the refPoint is close to (0,0,0). More... | |
double | energy () const |
Energy. Note this is taken from the first SimTrack only. More... | |
double | et () const |
Transverse energy. Note this is taken from the first SimTrack only. More... | |
double | eta () const |
Momentum pseudorapidity. Note this is taken from the first SimTrack only. More... | |
EncodedEventId | eventId () const |
Signal source, crossing number. More... | |
g4t_iterator | g4Track_begin () const |
g4t_iterator | g4Track_end () const |
const std::vector< SimTrack > & | g4Tracks () const |
genp_iterator | genParticle_begin () const |
iterators More... | |
genp_iterator | genParticle_end () const |
const reco::GenParticleRefVector & | genParticles () const |
double | lambda () const |
Lambda angle. Note this is taken from the first SimTrack only. More... | |
bool | longLived () const |
is long lived? More... | |
double | mass () const |
Mass. Note this is taken from the first SimTrack only. More... | |
double | massSqr () const |
Mass squared. Note this is taken from the first SimTrack only. More... | |
int | matchedHit () const |
Vector | momentum () const |
spatial momentum vector More... | |
double | mt () const |
Transverse mass. Note this is taken from the first SimTrack only. More... | |
double | mtSqr () const |
Transverse mass squared. Note this is taken from the first SimTrack only. More... | |
int | numberOfHits () const |
Gives the total number of hits, including muon hits. Hits on overlaps in the same layer count separately. More... | |
int | numberOfTrackerHits () const |
The number of hits in the tracker. Hits on overlaps in the same layer count separately. More... | |
int | numberOfTrackerLayers () const |
The number of tracker layers with a hit. More... | |
double | p () const |
Magnitude of momentum vector. Note this is taken from the first SimTrack only. More... | |
const LorentzVector & | p4 () const |
Four-momentum Lorentz vector. Note this is taken from the first SimTrack only. More... | |
const TrackingVertexRef & | parentVertex () const |
int | pdgId () const |
PDG ID. More... | |
double | phi () const |
Momentum azimuthal angle. Note this is taken from the first SimTrack only. More... | |
double | pt () const |
Transverse momentum. Note this is taken from the first SimTrack only. More... | |
double | px () const |
x coordinate of momentum vector. Note this is taken from the first SimTrack only. More... | |
double | py () const |
y coordinate of momentum vector. Note this is taken from the first SimTrack only. More... | |
double | pz () const |
z coordinate of momentum vector. Note this is taken from the first SimTrack only. More... | |
double | qoverp () const |
Quotient of the electric charge over the magnitude of the momentum vector. Note this is taken from the first SimTrack only. More... | |
double | rapidity () const |
Rapidity. Note this is taken from the first SimTrack only. More... | |
void | setNumberOfHits (int numberOfHits) |
void | setNumberOfTrackerHits (int numberOfTrackerHits) |
void | setNumberOfTrackerLayers (const int numberOfTrackerLayers) |
void | setParentVertex (const TrackingVertexRef &ref) |
int | status () const |
Status word. More... | |
double | tanl () const |
tangent of the lambda angle. Note this is taken from the first SimTrack only. More... | |
double | theta () const |
Momentum polar angle. Note this is taken from the first SimTrack only. More... | |
int | threeCharge () const |
Gives charge in unit of quark charge (should be 3 times "charge()") More... | |
TrackingParticle () | |
Default constructor. Note that the object will be useless until it is provided with a SimTrack and parent TrackingVertex. More... | |
TrackingParticle (const SimTrack &simtrk, const TrackingVertexRef &parentVertex) | |
Point | vertex () const |
Parent vertex position. More... | |
double | vx () const |
x coordinate of parent vertex position More... | |
double | vy () const |
y coordinate of parent vertex position More... | |
double | vz () const |
z coordinate of parent vertex position More... | |
double | y () const |
Same as rapidity(). More... | |
double | z0 () const |
z0 parameter More... | |
~TrackingParticle () | |
Static Public Attributes | |
static const unsigned int | longLivedTag = 65536 |
long lived flag More... | |
Private Attributes | |
TrackingVertexRefVector | decayVertices_ |
std::vector< SimTrack > | g4Tracks_ |
references to G4 and reco::GenParticle tracks More... | |
reco::GenParticleRefVector | genParticles_ |
int | numberOfHits_ |
The total number of hits. More... | |
int | numberOfTrackerHits_ |
The number of tracker only hits. More... | |
int | numberOfTrackerLayers_ |
The number of tracker layers with hits. Equivalent to the old matchedHit. More... | |
TrackingVertexRef | parentVertex_ |
Friends | |
std::ostream & | operator<< (std::ostream &s, TrackingParticle const &tp) |
Monte Carlo truth information used for tracking validation.
Object with references to the original SimTrack and parent and daughter TrackingVertices. Simulation with high (~100) pileup was taking too much memory so the class was slimmed down and copies of the SimHits were removed.
Definition at line 29 of file TrackingParticle.h.
typedef int TrackingParticle::Charge |
electric charge type
Definition at line 33 of file TrackingParticle.h.
typedef std::vector<SimTrack>::const_iterator TrackingParticle::g4t_iterator |
Definition at line 41 of file TrackingParticle.h.
reference to reco::GenParticle
Definition at line 40 of file TrackingParticle.h.
Lorentz vector.
Definition at line 34 of file TrackingParticle.h.
point in the space
Definition at line 36 of file TrackingParticle.h.
Lorentz vector.
Definition at line 35 of file TrackingParticle.h.
point in the space
Definition at line 37 of file TrackingParticle.h.
TrackingParticle::TrackingParticle | ( | ) |
Default constructor. Note that the object will be useless until it is provided with a SimTrack and parent TrackingVertex.
Most of the methods assume there is a SimTrack and parent TrackingVertex set, so will either crash or give undefined results if this isn't true. This constructor should only be used to create a placeholder until setParentVertex() and addG4Track() can be called.
Definition at line 10 of file TrackingParticle.cc.
TrackingParticle::TrackingParticle | ( | const SimTrack & | simtrk, |
const TrackingVertexRef & | parentVertex | ||
) |
Definition at line 14 of file TrackingParticle.cc.
References addG4Track(), parentVertex(), and setParentVertex().
TrackingParticle::~TrackingParticle | ( | ) |
Definition at line 19 of file TrackingParticle.cc.
void TrackingParticle::addDecayVertex | ( | const TrackingVertexRef & | ref | ) |
Definition at line 35 of file TrackingParticle.cc.
References decayVertices_, and edm::RefVector< C, T, F >::push_back().
void TrackingParticle::addG4Track | ( | const SimTrack & | t | ) |
Definition at line 23 of file TrackingParticle.cc.
References g4Tracks_, and submitPVValidationJobs::t.
Referenced by TrackingParticle().
void TrackingParticle::addGenParticle | ( | const reco::GenParticleRef & | ref | ) |
Definition at line 21 of file TrackingParticle.cc.
References genParticles_, and edm::RefVector< C, T, F >::push_back().
|
inline |
Vector to boost to the particle centre of mass frame.
Definition at line 109 of file TrackingParticle.h.
References p4().
|
inline |
Electric charge. Note this is taken from the first SimTrack only.
Definition at line 98 of file TrackingParticle.h.
References g4Tracks_.
Referenced by OuterTrackerMonitorTrackingParticles::analyze(), L1TrackObjectNtupleMaker::analyze(), FWTrackingParticleProxyBuilder::build(), FWTrackingParticleProxyBuilderFullFramework::build(), RecoMuonValidator::MuonME::fill(), ShallowSimTracksProducer::produce(), qoverp(), RecoTracktoTP::s_qoverp(), TPtoRecoTrack::s_qoverp(), threeCharge(), and track_associator::trackAssociationChi2().
void TrackingParticle::clearDecayVertices | ( | ) |
Definition at line 39 of file TrackingParticle.cc.
References edm::RefVector< C, T, F >::clear(), and decayVertices_.
void TrackingParticle::clearParentVertex | ( | ) |
|
inline |
dxy parameter in perigee convention (d0 = -dxy)
Definition at line 196 of file TrackingParticle.h.
References dxy().
|
inline |
|
inline |
Definition at line 94 of file TrackingParticle.h.
References edm::RefVector< C, T, F >::begin(), and decayVertices_.
|
inline |
Definition at line 95 of file TrackingParticle.h.
References decayVertices_, and edm::RefVector< C, T, F >::end().
|
inline |
|
inline |
|
inline |
Energy. Note this is taken from the first SimTrack only.
Definition at line 118 of file TrackingParticle.h.
References p4().
Referenced by Jet.Jet::rawEnergy().
|
inline |
Transverse energy. Note this is taken from the first SimTrack only.
Definition at line 121 of file TrackingParticle.h.
References p4().
|
inline |
Momentum pseudorapidity. Note this is taken from the first SimTrack only.
Definition at line 154 of file TrackingParticle.h.
References p4().
Referenced by Particle.Particle::__str__(), RecoMuonValidator::MuonME::fill(), Jet.Jet::jetID(), ShallowSimTracksProducer::produce(), and Jet.Jet::puJetId().
|
inline |
Signal source, crossing number.
Note this is taken from the first SimTrack only, but there shouldn't be any SimTracks from different crossings in the TrackingParticle.
Definition at line 72 of file TrackingParticle.h.
References g4Tracks_.
Referenced by L1TrackObjectNtupleMaker::analyze(), MultiTrackValidator::dqmAnalyze(), ntupleDataFormat.Event::eventIdStr(), and TTClusterAssociator< T >::produce().
TrackingParticle::g4t_iterator TrackingParticle::g4Track_begin | ( | ) | const |
Definition at line 29 of file TrackingParticle.cc.
References g4Tracks_.
Referenced by QuickTrackAssociatorByHitsImpl::trackingParticleContainsIdentifier().
TrackingParticle::g4t_iterator TrackingParticle::g4Track_end | ( | ) | const |
Definition at line 31 of file TrackingParticle.cc.
References g4Tracks_.
Referenced by QuickTrackAssociatorByHitsImpl::trackingParticleContainsIdentifier().
|
inline |
Definition at line 89 of file TrackingParticle.h.
References g4Tracks_.
Referenced by TTClusterAssociator< T >::produce(), l1tVertexFinder::TP::TP(), and tmtt::TP::TP().
TrackingParticle::genp_iterator TrackingParticle::genParticle_begin | ( | ) | const |
iterators
Definition at line 25 of file TrackingParticle.cc.
References edm::RefVector< C, T, F >::begin(), and genParticles_.
TrackingParticle::genp_iterator TrackingParticle::genParticle_end | ( | ) | const |
Definition at line 27 of file TrackingParticle.cc.
References edm::RefVector< C, T, F >::end(), and genParticles_.
|
inline |
|
inline |
|
inline |
is long lived?
Definition at line 212 of file TrackingParticle.h.
References longLivedTag, and status().
|
inline |
Mass. Note this is taken from the first SimTrack only.
Definition at line 124 of file TrackingParticle.h.
References p4().
Referenced by Particle.Particle::__str__(), DiObject.DiMuon::__str__(), and massSqr().
|
inline |
Mass squared. Note this is taken from the first SimTrack only.
Definition at line 127 of file TrackingParticle.h.
References mass(), and funct::pow().
int TrackingParticle::matchedHit | ( | ) | const |
|
inline |
spatial momentum vector
Definition at line 106 of file TrackingParticle.h.
References p4().
Referenced by L1TrackObjectNtupleMaker::analyze(), RecoMuonValidator::MuonME::fill(), and track_associator::trackAssociationChi2().
|
inline |
Transverse mass. Note this is taken from the first SimTrack only.
Definition at line 130 of file TrackingParticle.h.
References p4().
|
inline |
Transverse mass squared. Note this is taken from the first SimTrack only.
Definition at line 133 of file TrackingParticle.h.
References p4().
|
inline |
Gives the total number of hits, including muon hits. Hits on overlaps in the same layer count separately.
Equivalent to trackPSimHit().size() in the old TrackingParticle implementation.
Definition at line 217 of file TrackingParticle.h.
References numberOfHits_.
Referenced by setNumberOfHits().
|
inline |
The number of hits in the tracker. Hits on overlaps in the same layer count separately.
Equivalent to trackPSimHit(DetId::Tracker).size() in the old TrackingParticle implementation.
Definition at line 222 of file TrackingParticle.h.
References numberOfTrackerHits_.
Referenced by setNumberOfTrackerHits().
|
inline |
The number of tracker layers with a hit.
Different from numberOfTrackerHits because this method counts multiple hits on overlaps in the layer as one hit.
Definition at line 231 of file TrackingParticle.h.
References numberOfTrackerLayers_.
Referenced by setNumberOfTrackerLayers().
|
inline |
Magnitude of momentum vector. Note this is taken from the first SimTrack only.
Definition at line 112 of file TrackingParticle.h.
References p4().
Referenced by RecoMuonValidator::MuonME::fill(), ShallowSimTracksProducer::produce(), Electron.Electron::ptErr(), qoverp(), and vertex().
|
inline |
Four-momentum Lorentz vector. Note this is taken from the first SimTrack only.
Definition at line 103 of file TrackingParticle.h.
References g4Tracks_.
Referenced by OuterTrackerMonitorTrackingParticles::analyze(), L1TrackObjectNtupleMaker::analyze(), boostToCM(), Tau.Tau::dxy_approx(), Tau.Tau::dz(), dz(), energy(), et(), eta(), TTClusterAssociationMap< T >::isGenuine(), mass(), momentum(), mt(), mtSqr(), p(), Lepton.Lepton::p4WithFSR(), phi(), pt(), px(), py(), pz(), rapidity(), and theta().
|
inline |
Definition at line 90 of file TrackingParticle.h.
References parentVertex_.
Referenced by RecoTracktoTP::numTPMothers(), TPtoRecoTrack::numTPMothers(), RecoTracktoTP::numTPSourceTracks(), TPtoRecoTrack::numTPSourceTracks(), ShallowSimTracksProducer::produce(), RecoTracktoTP::TPMother(), TPtoRecoTrack::TPMother(), and TrackingParticle().
|
inline |
PDG ID.
Returns the PDG ID of the first associated gen particle. If there are no gen particles associated then it returns type() from the first SimTrack.
Definition at line 61 of file TrackingParticle.h.
References edm::RefVector< C, T, F >::begin(), edm::RefVector< C, T, F >::empty(), g4Tracks_, and genParticles_.
Referenced by Particle.Particle::__str__(), OuterTrackerMonitorTrackingParticles::analyze(), L1TrackObjectNtupleMaker::analyze(), and ShallowSimTracksProducer::produce().
|
inline |
Momentum azimuthal angle. Note this is taken from the first SimTrack only.
Definition at line 148 of file TrackingParticle.h.
References p4().
Referenced by Particle.Particle::__str__(), RecoMuonValidator::MuonME::fill(), ntupleDataFormat.Track::phiPull(), and ShallowSimTracksProducer::produce().
|
inline |
Transverse momentum. Note this is taken from the first SimTrack only.
Definition at line 145 of file TrackingParticle.h.
References p4().
Referenced by Particle.Particle::__str__(), DiObject.DiMuon::__str__(), Photon.Photon::calScaledIsoValueExp(), Photon.Photon::calScaledIsoValueLin(), Photon.Photon::calScaledIsoValueQuadr(), dxy(), RecoMuonValidator::MuonME::fill(), Electron.Electron::mvaIDLoose(), Electron.Electron::mvaIDRun2(), Electron.Electron::mvaIDTight(), ShallowSimTracksProducer::produce(), Electron.Electron::ptErr(), ntupleDataFormat.Track::ptPull(), Lepton.Lepton::relIso(), Lepton.Lepton::relIsoFromEA(), Lepton.Lepton::relIsoR(), and Jet.Jet::setCorrP4().
|
inline |
x coordinate of momentum vector. Note this is taken from the first SimTrack only.
Definition at line 136 of file TrackingParticle.h.
References p4().
Referenced by FWTrackingParticleProxyBuilder::build(), FWTrackingParticleProxyBuilderFullFramework::build(), dxy(), and dz().
|
inline |
y coordinate of momentum vector. Note this is taken from the first SimTrack only.
Definition at line 139 of file TrackingParticle.h.
References p4().
Referenced by FWTrackingParticleProxyBuilder::build(), FWTrackingParticleProxyBuilderFullFramework::build(), dxy(), and dz().
|
inline |
z coordinate of momentum vector. Note this is taken from the first SimTrack only.
Definition at line 142 of file TrackingParticle.h.
References p4().
Referenced by FWTrackingParticleProxyBuilder::build(), FWTrackingParticleProxyBuilderFullFramework::build(), and dz().
|
inline |
|
inline |
void TrackingParticle::setNumberOfHits | ( | int | numberOfHits | ) |
void TrackingParticle::setNumberOfTrackerHits | ( | int | numberOfTrackerHits | ) |
Definition at line 49 of file TrackingParticle.cc.
References numberOfTrackerHits(), and numberOfTrackerHits_.
void TrackingParticle::setNumberOfTrackerLayers | ( | const int | numberOfTrackerLayers | ) |
Definition at line 51 of file TrackingParticle.cc.
References numberOfTrackerLayers(), and numberOfTrackerLayers_.
void TrackingParticle::setParentVertex | ( | const TrackingVertexRef & | ref | ) |
Definition at line 33 of file TrackingParticle.cc.
References parentVertex_.
Referenced by TrackingParticle().
|
inline |
Status word.
Returns status() from the first gen particle, or -99 if there are no gen particles attached.
Definition at line 207 of file TrackingParticle.h.
References edm::RefVector< C, T, F >::empty(), genParticles_, and status().
Referenced by longLived(), and status().
|
inline |
tangent of the lambda angle. Note this is taken from the first SimTrack only.
Definition at line 160 of file TrackingParticle.h.
References lambda(), and funct::tan().
|
inline |
Momentum polar angle. Note this is taken from the first SimTrack only.
Definition at line 151 of file TrackingParticle.h.
References p4().
Referenced by lambda(), ShallowSimTracksProducer::produce(), and Tau.Tau::zImpact().
|
inline |
|
inline |
Parent vertex position.
Definition at line 169 of file TrackingParticle.h.
References p().
Referenced by L1TrackObjectNtupleMaker::analyze(), Tau.Tau::dxy(), RecoMuonValidator::MuonME::fill(), and track_associator::trackAssociationChi2().
|
inline |
x coordinate of parent vertex position
Definition at line 175 of file TrackingParticle.h.
References alignCSCRings::r.
Referenced by FWTrackingParticleProxyBuilder::build(), FWTrackingParticleProxyBuilderFullFramework::build(), dxy(), and dz().
|
inline |
y coordinate of parent vertex position
Definition at line 181 of file TrackingParticle.h.
References alignCSCRings::r.
Referenced by FWTrackingParticleProxyBuilder::build(), FWTrackingParticleProxyBuilderFullFramework::build(), dxy(), and dz().
|
inline |
z coordinate of parent vertex position
Definition at line 187 of file TrackingParticle.h.
References alignCSCRings::r.
Referenced by FWTrackingParticleProxyBuilder::build(), FWTrackingParticleProxyBuilderFullFramework::build(), and dz().
|
inline |
Same as rapidity().
Definition at line 166 of file TrackingParticle.h.
References rapidity().
Referenced by svgfig.Ellipse::__repr__(), geometryXMLparser.Alignable::pos(), ntupleDataFormat._HitObject::r(), and ntupleDataFormat._HitObject::r3D().
|
inline |
|
friend |
Definition at line 55 of file TrackingParticle.cc.
|
private |
Definition at line 248 of file TrackingParticle.h.
Referenced by addDecayVertex(), clearDecayVertices(), decayVertices(), decayVertices_begin(), and decayVertices_end().
|
private |
references to G4 and reco::GenParticle tracks
Definition at line 243 of file TrackingParticle.h.
Referenced by addG4Track(), charge(), eventId(), g4Track_begin(), g4Track_end(), g4Tracks(), p4(), and pdgId().
|
private |
Definition at line 244 of file TrackingParticle.h.
Referenced by addGenParticle(), genParticle_begin(), genParticle_end(), genParticles(), pdgId(), and status().
|
static |
|
private |
The total number of hits.
Definition at line 238 of file TrackingParticle.h.
Referenced by numberOfHits(), and setNumberOfHits().
|
private |
The number of tracker only hits.
Definition at line 239 of file TrackingParticle.h.
Referenced by numberOfTrackerHits(), and setNumberOfTrackerHits().
|
private |
The number of tracker layers with hits. Equivalent to the old matchedHit.
Definition at line 240 of file TrackingParticle.h.
Referenced by matchedHit(), numberOfTrackerLayers(), and setNumberOfTrackerLayers().
|
private |
Definition at line 247 of file TrackingParticle.h.
Referenced by clearParentVertex(), parentVertex(), and setParentVertex().