CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_7/src/SimGeneral/TrackingAnalysis/interface/SimHitTPAssociationProducer.h

Go to the documentation of this file.
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