CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_2_9/src/PhysicsTools/IsolationAlgos/plugins/CandIsoDepositProducer.h

Go to the documentation of this file.
00001 #ifndef MuonIsolationProducers_CandIsoDepositProducer_H
00002 #define MuonIsolationProducers_CandIsoDepositProducer_H
00003 
00004 #include "FWCore/Framework/interface/EDProducer.h"
00005 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00006 #include "DataFormats/Common/interface/AssociationVector.h"
00007 #include "DataFormats/Common/interface/RefToBaseProd.h"
00008 #include <DataFormats/RecoCandidate/interface/RecoCandidate.h>
00009 
00010 #include "DataFormats/RecoCandidate/interface/IsoDepositFwd.h"
00011 #include "DataFormats/RecoCandidate/interface/IsoDeposit.h"
00012 #include "PhysicsTools/IsolationAlgos/interface/IsoDepositExtractor.h"
00013 
00014 #include <string>
00015 
00016 namespace edm { class Event; }
00017 namespace edm { class EventSetup; }
00018 
00019 class CandIsoDepositProducer : public edm::EDProducer {
00020 
00021 public:
00022   CandIsoDepositProducer(const edm::ParameterSet&);
00023 
00024   virtual ~CandIsoDepositProducer();
00025 
00026   virtual void produce(edm::Event&, const edm::EventSetup&);
00027   
00028 private:
00029   inline const reco::Track *extractTrack(const reco::Candidate &cand, reco::Track *dummyStorage) const; 
00030   enum TrackType { FakeT, BestT, StandAloneMuonT, CombinedMuonT, TrackT, GsfT, CandidateT };
00031   edm::ParameterSet theConfig;
00032   edm::InputTag theCandCollectionTag;
00033   TrackType     theTrackType;
00034   std::vector<std::string> theDepositNames;
00035   bool theMultipleDepositsFlag;
00036   reco::isodeposit::IsoDepositExtractor * theExtractor;
00037 
00038 };
00039 #endif