00001 #ifndef RecoParticleFlow_PFSimParticleProducer_h_ 00002 #define RecoParticleFlow_PFSimParticleProducer_h_ 00003 00004 // system include files 00005 #include <memory> 00006 #include <string> 00007 00008 // user include files 00009 #include "FWCore/Framework/interface/Frameworkfwd.h" 00010 #include "FWCore/Framework/interface/EDProducer.h" 00011 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00012 00013 #include "FWCore/Framework/interface/Event.h" 00014 #include "FWCore/Framework/interface/MakerMacros.h" 00015 00016 #include "RecoTracker/TrackProducer/interface/TrackProducerAlgorithm.h" 00017 #include "TrackingTools/TrajectoryState/interface/TrajectoryStateOnSurface.h" 00018 #include "TrackingTools/GeomPropagators/interface/Propagator.h" 00019 #include "RecoParticleFlow/PFBlockAlgo/interface/PFGeometry.h" 00020 00021 #include "DataFormats/ParticleFlowReco/interface/PFRecTrackFwd.h" 00022 00023 #include "RecoParticleFlow/PFBlockAlgo/interface/PFBlockAlgo.h" 00024 00025 00034 class FSimEvent; 00035 00036 00037 00038 class PFSimParticleProducer : public edm::EDProducer { 00039 public: 00040 00041 explicit PFSimParticleProducer(const edm::ParameterSet&); 00042 00043 ~PFSimParticleProducer(); 00044 00045 virtual void produce(edm::Event&, const edm::EventSetup&); 00046 00047 virtual void beginJob(const edm::EventSetup & c); 00048 00049 typedef edm::Handle<reco::PFRecTrackCollection> TrackHandle; 00050 void getSimIDs( const TrackHandle& trackh, 00051 std::vector<unsigned>& recTrackSimID ); 00052 00053 private: 00054 00055 00057 edm::InputTag inputTagSim_; 00058 00059 //MC Truth Matching 00060 //modif-beg 00061 bool mctruthMatchingInfo_; 00062 edm::InputTag inputTagFamosSimHits_; 00063 //modif-end 00064 00065 edm::InputTag inputTagRecTracks_; 00066 edm::InputTag inputTagEcalRecHitsEB_; 00067 edm::InputTag inputTagEcalRecHitsEE_; 00068 00069 // parameters for retrieving true particles information -- 00070 00071 edm::ParameterSet particleFilter_; 00072 FSimEvent* mySimEvent; 00073 00074 // flags for the various tasks --------------------------- 00075 00077 bool processParticles_; 00078 00080 bool verbose_; 00081 00082 }; 00083 00084 #endif