CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_7/src/SimTracker/TrackAssociation/interface/ParametersDefinerForTP.h

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