00001 #ifndef SimGeneral_TrackingAnalysis_SimHitTPAssociationProducer_h 00002 #define SimGeneral_TrackingAnalysis_SimHitTPAssociationProducer_h 00003 00004 #include "FWCore/Framework/interface/Frameworkfwd.h" 00005 #include "FWCore/Framework/interface/EDProducer.h" 00006 #include "FWCore/Framework/interface/Event.h" 00007 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00008 #include "FWCore/ParameterSet/interface/ParameterSetfwd.h" 00009 00010 #include "SimDataFormats/TrackingAnalysis/interface/TrackingParticle.h" 00011 #include "SimDataFormats/TrackingAnalysis/interface/TrackingParticleFwd.h" 00012 #include "SimDataFormats/TrackingHit/interface/PSimHitContainer.h" 00013 00014 class SimHitTPAssociationProducer : public edm::EDProducer 00015 { 00016 public: 00017 00018 typedef std::pair<TrackingParticleRef, TrackPSimHitRef> SimHitTPPair; 00019 typedef std::vector<SimHitTPPair> SimHitTPAssociationList; 00020 00021 explicit SimHitTPAssociationProducer(const edm::ParameterSet&); 00022 ~SimHitTPAssociationProducer(); 00023 00024 static bool simHitTPAssociationListGreater(SimHitTPPair i,SimHitTPPair j) { return (i.first.key()>j.first.key()); } 00025 00026 private: 00027 virtual void beginJob() {} 00028 virtual void produce(edm::Event&, const edm::EventSetup&); 00029 virtual void endJob() {} 00030 00031 std::vector<edm::InputTag> _simHitSrc; 00032 edm::InputTag _trackingParticleSrc; 00033 }; 00034 #endif