Go to the documentation of this file.00001 #ifndef TrackAssociation_ParametersDefinerForTP_h
00002 #define TrackAssociation_ParametersDefinerForTP_h
00003
00010 #include <SimDataFormats/TrackingAnalysis/interface/TrackingParticle.h>
00011 #include "SimGeneral/TrackingAnalysis/interface/SimHitTPAssociationProducer.h"
00012 #include "DataFormats/Candidate/interface/Candidate.h"
00013 #include "FWCore/Framework/interface/Event.h"
00014 #include "FWCore/Framework/interface/ESHandle.h"
00015 #include "FWCore/Framework/interface/EventSetup.h"
00016
00017 class ParametersDefinerForTP {
00018
00019 public:
00020 ParametersDefinerForTP(){};
00021 virtual ~ParametersDefinerForTP() {};
00022
00023 typedef int Charge;
00024 typedef math::XYZPointD Point;
00025 typedef math::XYZTLorentzVectorD LorentzVector;
00026
00027 virtual TrackingParticle::Vector momentum(const edm::Event& iEvent, const edm::EventSetup& iSetup,
00028 const Charge ch, const Point & vtx, const LorentzVector& lv) const;
00029
00030 virtual TrackingParticle::Vector momentum(const edm::Event& iEvent, const edm::EventSetup& iSetup, const TrackingParticleRef tpr) const{
00031 return momentum(iEvent, iSetup, tpr->charge(),tpr->vertex(),tpr->p4());
00032 }
00033
00034 virtual TrackingParticle::Vector momentum(const edm::Event& iEvent, const edm::EventSetup& iSetup, const reco::Candidate& tp) const {
00035 return momentum(iEvent, iSetup, tp.charge(),tp.vertex(),tp.p4());
00036 }
00037
00038 virtual TrackingParticle::Point vertex(const edm::Event& iEvent, const edm::EventSetup& iSetup,
00039 const Charge ch, const Point & vtx, const LorentzVector& lv) const;
00040
00041 virtual TrackingParticle::Point vertex(const edm::Event& iEvent, const edm::EventSetup& iSetup, const TrackingParticleRef& tpr) const{
00042 return vertex(iEvent, iSetup, tpr->charge(),tpr->vertex(),tpr->p4());
00043 }
00044
00045 virtual TrackingParticle::Point vertex(const edm::Event& iEvent, const edm::EventSetup& iSetup, const reco::Candidate& tp) const {
00046 return vertex(iEvent, iSetup, tp.charge(),tp.vertex(),tp.p4());
00047 }
00048
00049 virtual void initEvent(edm::Handle<SimHitTPAssociationProducer::SimHitTPAssociationList> simHitsTPAssocToSet) const { }
00050
00051 };
00052
00053
00054 #endif