CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Attributes
TrackHistory Class Reference

This class traces the simulated and generated history of a given track. More...

#include <TrackHistory.h>

Inheritance diagram for TrackHistory:
HistoryBase

Public Member Functions

bool evaluate (TrackingParticleRef tpr)
 Evaluate track history using a TrackingParticleRef. More...
 
bool evaluate (reco::TrackBaseRef)
 Evaluate reco::Track history using a given association. More...
 
void newEvent (const edm::Event &, const edm::EventSetup &)
 Pre-process event information (for accessing reconstruction information) More...
 
double quality () const
 
const reco::TrackBaseRefrecoTrack () const
 Return a reference to the reconstructed track. More...
 
 TrackHistory (const edm::ParameterSet &)
 Constructor by pset. More...
 
- Public Member Functions inherited from HistoryBase
void depth (int d)
 Set the depth of the history. More...
 
const HepMC::GenParticle * genParticle () const
 Returns a pointer to most primitive status 1 or 2 particle. More...
 
GenParticleTrail const & genParticleTrail () const
 Return all generated particle in the history. More...
 
GenVertexTrail const & genVertexTrail () const
 Return all generated vertex in the history. More...
 
 HistoryBase ()
 
const TrackingParticleRefsimParticle () const
 Return the initial tracking particle from the history. More...
 
SimParticleTrail const & simParticleTrail () const
 Return all the simulated particle in the history. More...
 
const TrackingVertexRefsimVertex () const
 Return the initial tracking vertex from the history. More...
 
SimVertexTrail const & simVertexTrail () const
 Return all the simulated vertices in the history. More...
 

Private Attributes

bool bestMatchByMaxValue_
 
bool enableRecoToSim_
 
bool enableSimToReco_
 
bool newEvent_
 
double quality_
 
reco::RecoToSimCollection recoToSim_
 
reco::TrackBaseRef recotrack_
 
reco::SimToRecoCollection simToReco_
 
std::string trackAssociator_
 
edm::InputTag trackingTruth_
 
edm::InputTag trackProducer_
 

Additional Inherited Members

- Public Types inherited from HistoryBase
typedef std::vector< const
HepMC::GenParticle * > 
GenParticleTrail
 GenParticle trail type. More...
 
typedef std::vector< const
HepMC::GenVertex * > 
GenVertexTrail
 GenVertex trail type. More...
 
typedef std::set< const
HepMC::GenVertex * > 
GenVertexTrailHelper
 GenVertex trail helper type. More...
 
typedef std::vector
< TrackingParticleRef
SimParticleTrail
 SimParticle trail type. More...
 
typedef std::vector
< TrackingVertexRef
SimVertexTrail
 SimVertex trail type. More...
 
- Protected Member Functions inherited from HistoryBase
bool evaluate (TrackingParticleRef tpr)
 Evaluate track history using a TrackingParticleRef. More...
 
bool evaluate (TrackingVertexRef tvr)
 Evaluate track history using a TrackingParticleRef. More...
 
- Protected Attributes inherited from HistoryBase
GenParticleTrail genParticleTrail_
 
GenVertexTrail genVertexTrail_
 
GenVertexTrailHelper genVertexTrailHelper_
 
SimParticleTrail simParticleTrail_
 
SimVertexTrail simVertexTrail_
 

Detailed Description

This class traces the simulated and generated history of a given track.

Definition at line 16 of file TrackHistory.h.

Constructor & Destructor Documentation

TrackHistory::TrackHistory ( const edm::ParameterSet config)

Constructor by pset.

Definition at line 6 of file TrackHistory.cc.

References bestMatchByMaxValue_, enableRecoToSim_, enableSimToReco_, edm::ParameterSet::getUntrackedParameter(), quality_, trackAssociator_, trackingTruth_, and trackProducer_.

8  : HistoryBase()
9 {
10  // Name of the track collection
11  trackProducer_ = config.getUntrackedParameter<edm::InputTag> ( "trackProducer" );
12 
13  // Name of the traking pariticle collection
14  trackingTruth_ = config.getUntrackedParameter<edm::InputTag> ( "trackingTruth" );
15 
16  // Track association record
17  trackAssociator_ = config.getUntrackedParameter<std::string> ( "trackAssociator" );
18 
19  // Association by max. value
20  bestMatchByMaxValue_ = config.getUntrackedParameter<bool> ( "bestMatchByMaxValue" );
21 
22  // Enable RecoToSim association
23  enableRecoToSim_ = config.getUntrackedParameter<bool> ( "enableRecoToSim" );
24 
25  // Enable SimToReco association
26  enableSimToReco_ = config.getUntrackedParameter<bool> ( "enableSimToReco" );
27 
28  quality_ = 0.;
29 }
T getUntrackedParameter(std::string const &, T const &) const
bool enableSimToReco_
Definition: TrackHistory.h:76
edm::InputTag trackProducer_
Definition: TrackHistory.h:80
bool enableRecoToSim_
Definition: TrackHistory.h:76
double quality_
Definition: TrackHistory.h:78
bool bestMatchByMaxValue_
Definition: TrackHistory.h:74
edm::InputTag trackingTruth_
Definition: TrackHistory.h:82
std::string trackAssociator_
Definition: TrackHistory.h:84

Member Function Documentation

bool TrackHistory::evaluate ( TrackingParticleRef  tpr)
inline

Evaluate track history using a TrackingParticleRef.

Definition at line 39 of file TrackHistory.h.

References bestMatchByMaxValue_, enableSimToReco_, HistoryBase::evaluate(), match(), quality_, recotrack_, query::result, and simToReco_.

Referenced by TrackClassifier::evaluate(), and GenTrackMatcher::produce().

40  {
41  if ( enableSimToReco_ )
42  {
43  std::pair<reco::TrackBaseRef, double> result = match(tpr, simToReco_, bestMatchByMaxValue_);
44  recotrack_ = result.first;
45  quality_ = result.second;
46  }
47  return HistoryBase::evaluate(tpr);
48  }
bool enableSimToReco_
Definition: TrackHistory.h:76
reco::SimToRecoCollection simToReco_
Definition: TrackHistory.h:90
tuple result
Definition: query.py:137
double quality_
Definition: TrackHistory.h:78
bool evaluate(TrackingParticleRef tpr)
Evaluate track history using a TrackingParticleRef.
Definition: HistoryBase.h:114
bool bestMatchByMaxValue_
Definition: TrackHistory.h:74
std::pair< typename Association::data_type::first_type, double > match(Reference key, Association association, bool bestMatchByMaxValue)
Generic matching function.
Definition: Utils.h:6
reco::TrackBaseRef recotrack_
Definition: TrackHistory.h:86
bool TrackHistory::evaluate ( reco::TrackBaseRef  tr)

Evaluate reco::Track history using a given association.

Definition at line 59 of file TrackHistory.cc.

References bestMatchByMaxValue_, enableRecoToSim_, HistoryBase::evaluate(), edm::Ref< C, T, F >::isNull(), match(), quality_, recoToSim_, recotrack_, and query::result.

60 {
61  if ( !enableRecoToSim_ ) return false;
62 
63  std::pair<TrackingParticleRef, double> result = match(tr, recoToSim_, bestMatchByMaxValue_);
64 
65  TrackingParticleRef tpr( result.first );
66  quality_ = result.second;
67 
68  if ( !tpr.isNull() )
69  {
71 
72  recotrack_ = tr;
73 
74  return true;
75  }
76 
77  return false;
78 }
tuple result
Definition: query.py:137
reco::RecoToSimCollection recoToSim_
Definition: TrackHistory.h:88
bool enableRecoToSim_
Definition: TrackHistory.h:76
double quality_
Definition: TrackHistory.h:78
bool evaluate(TrackingParticleRef tpr)
Evaluate track history using a TrackingParticleRef.
Definition: HistoryBase.h:114
bool bestMatchByMaxValue_
Definition: TrackHistory.h:74
std::pair< typename Association::data_type::first_type, double > match(Reference key, Association association, bool bestMatchByMaxValue)
Generic matching function.
Definition: Utils.h:6
reco::TrackBaseRef recotrack_
Definition: TrackHistory.h:86
void TrackHistory::newEvent ( const edm::Event event,
const edm::EventSetup setup 
)

Pre-process event information (for accessing reconstruction information)

Definition at line 32 of file TrackHistory.cc.

References enableRecoToSim_, enableSimToReco_, edm::EventSetup::get(), recoToSim_, simToReco_, ecalTPGAnalyzer_cfg::TPCollection, trackAssociator_, trackingTruth_, and trackProducer_.

Referenced by TrackClassifier::newEvent(), and GenTrackMatcher::produce().

35 {
37  {
38  // Track collection
39  edm::Handle<edm::View<reco::Track> > trackCollection;
40  event.getByLabel(trackProducer_, trackCollection);
41 
42  // Tracking particle information
44  event.getByLabel(trackingTruth_, TPCollection);
45 
46  // Get the track associator
48  setup.get<TrackAssociatorRecord>().get(trackAssociator_, associator);
49 
50  // Calculate the map between recotracks -> tp
51  if ( enableRecoToSim_ ) recoToSim_ = associator->associateRecoToSim(trackCollection, TPCollection, &event, &setup);
52 
53  // Calculate the map between recotracks <- tp
54  if ( enableSimToReco_ ) simToReco_ = associator->associateSimToReco(trackCollection, TPCollection, &event, &setup);
55  }
56 }
bool enableSimToReco_
Definition: TrackHistory.h:76
reco::SimToRecoCollection simToReco_
Definition: TrackHistory.h:90
edm::InputTag trackProducer_
Definition: TrackHistory.h:80
reco::RecoToSimCollection recoToSim_
Definition: TrackHistory.h:88
bool enableRecoToSim_
Definition: TrackHistory.h:76
const T & get() const
Definition: EventSetup.h:55
edm::InputTag trackingTruth_
Definition: TrackHistory.h:82
std::string trackAssociator_
Definition: TrackHistory.h:84
double TrackHistory::quality ( void  ) const
inline

Definition at line 65 of file TrackHistory.h.

References quality_.

66  {
67  return quality_;
68  }
double quality_
Definition: TrackHistory.h:78
const reco::TrackBaseRef& TrackHistory::recoTrack ( ) const
inline

Return a reference to the reconstructed track.

Definition at line 60 of file TrackHistory.h.

References recotrack_.

Referenced by TrackClassifier::evaluate().

61  {
62  return recotrack_;
63  }
reco::TrackBaseRef recotrack_
Definition: TrackHistory.h:86

Member Data Documentation

bool TrackHistory::bestMatchByMaxValue_
private

Definition at line 74 of file TrackHistory.h.

Referenced by evaluate(), and TrackHistory().

bool TrackHistory::enableRecoToSim_
private

Definition at line 76 of file TrackHistory.h.

Referenced by evaluate(), newEvent(), and TrackHistory().

bool TrackHistory::enableSimToReco_
private

Definition at line 76 of file TrackHistory.h.

Referenced by evaluate(), newEvent(), and TrackHistory().

bool TrackHistory::newEvent_
private

Definition at line 72 of file TrackHistory.h.

double TrackHistory::quality_
private

Definition at line 78 of file TrackHistory.h.

Referenced by evaluate(), quality(), and TrackHistory().

reco::RecoToSimCollection TrackHistory::recoToSim_
private

Definition at line 88 of file TrackHistory.h.

Referenced by evaluate(), and newEvent().

reco::TrackBaseRef TrackHistory::recotrack_
private

Definition at line 86 of file TrackHistory.h.

Referenced by evaluate(), and recoTrack().

reco::SimToRecoCollection TrackHistory::simToReco_
private

Definition at line 90 of file TrackHistory.h.

Referenced by evaluate(), and newEvent().

std::string TrackHistory::trackAssociator_
private

Definition at line 84 of file TrackHistory.h.

Referenced by newEvent(), and TrackHistory().

edm::InputTag TrackHistory::trackingTruth_
private

Definition at line 82 of file TrackHistory.h.

Referenced by newEvent(), and TrackHistory().

edm::InputTag TrackHistory::trackProducer_
private

Definition at line 80 of file TrackHistory.h.

Referenced by newEvent(), and TrackHistory().