CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_9_patch3/src/RecoMuon/MuonIdentification/plugins/MuonProducer.h

Go to the documentation of this file.
00001 #ifndef RecoMuon_MuonIdentification_MuonProducer_H
00002 #define RecoMuon_MuonIdentification_MuonProducer_H
00003 
00016 #include "FWCore/Framework/interface/EDProducer.h"
00017 #include "FWCore/Utilities/interface/InputTag.h"
00018 
00019 #include "DataFormats/MuonReco/interface/MuonFwd.h"
00020 #include "DataFormats/MuonReco/interface/MuonTimeExtra.h"
00021 
00022 namespace reco {class Track;}
00023 #include "FWCore/Framework/interface/ESHandle.h"
00024 #include "Geometry/CommonDetUnit/interface/GlobalTrackingGeometry.h"
00025 
00026 class MuPFIsoHelper;
00027 
00028 
00029 class MuonProducer : public edm::EDProducer {
00030 public:
00031 
00033   MuonProducer(const edm::ParameterSet&);
00034 
00036   virtual ~MuonProducer();
00037 
00039   virtual void produce(edm::Event&, const edm::EventSetup&);
00040 
00041 
00042   typedef std::vector<edm::InputTag> InputTags;
00043 
00044 protected:
00045 
00046 private:
00047   template<typename TYPE>
00048     void fillMuonMap(edm::Event& event,
00049                      const edm::OrphanHandle<reco::MuonCollection>& muonHandle,
00050                      const std::vector<TYPE>& muonExtra,
00051                      const std::string& label);
00052   
00053   std::string theAlias;
00054 
00055   void setAlias( std::string alias ){
00056     alias.erase( alias.size() - 1, alias.size() );
00057     theAlias=alias;
00058   }
00059 
00060   std::string labelOrInstance(const edm::InputTag &) const;
00061 
00062 private:
00063   bool debug_;
00064   bool fastLabelling_;
00065   
00066   edm::InputTag theMuonsCollectionLabel;
00067   edm::InputTag thePFCandLabel;
00068 
00069   bool fillIsolation_;
00070   bool writeIsoDeposits_;
00071   bool fillSelectors_;
00072   bool fillCosmicsIdMap_;
00073   bool fillPFMomentum_;
00074   bool fillPFIsolation_;
00075   bool fillDetectorBasedIsolation_;
00076   bool fillShoweringInfo_;
00077   bool fillTimingInfo_;
00078 
00079   edm::InputTag theTrackDepositName;
00080   edm::InputTag theEcalDepositName;
00081   edm::InputTag theHcalDepositName;
00082   edm::InputTag theHoDepositName;
00083   edm::InputTag theJetDepositName;
00084 
00085   InputTags theSelectorMapNames;
00086 
00087   edm::InputTag theShowerMapName;
00088   edm::InputTag theCosmicCompMapName;
00089 
00090   std::string theMuToMuMapName;
00091 
00092   MuPFIsoHelper *thePFIsoHelper;
00093   
00094   std::map<std::string,edm::InputTag> theIsoPF03MapNames;
00095   std::map<std::string,edm::InputTag> theIsoPF04MapNames;
00096 
00097 };
00098 #endif
00099 
00100 
00101