CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_1_8_patch9/src/EventFilter/SiStripRawToDigi/plugins/SiStripRawToClustersRoI.h

Go to the documentation of this file.
00001 #ifndef EventFilter_SiStripRawToDigi_SiStripRawToClustersRoI_H
00002 #define EventFilter_SiStripRawToDigi_SiStripRawToClustersRoI_H
00003 
00004 #include "CalibFormats/SiStripObjects/interface/SiStripRegionCabling.h"
00005 #include "DataFormats/Common/interface/Handle.h"
00006 #include "DataFormats/Common/interface/RefGetter.h"
00007 #include "DataFormats/EgammaReco/interface/SuperCluster.h"
00008 #include "DataFormats/EgammaReco/interface/SuperClusterFwd.h"
00009 #include "DataFormats/JetReco/interface/CaloJetCollection.h"
00010 #include "DataFormats/JetReco/interface/CaloJet.h"
00011 #include "DataFormats/SiStripCluster/interface/SiStripCluster.h"
00012 #include "DataFormats/TrackReco/interface/Track.h"
00013 #include "DataFormats/TrackReco/interface/TrackFwd.h"
00014 #include "FWCore/Framework/interface/EDProducer.h"
00015 #include "FWCore/Framework/interface/ESHandle.h"
00016 #include "FWCore/Framework/interface/Event.h"
00017 #include "FWCore/Framework/interface/EventSetup.h"
00018 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00019 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00020 #include <string>
00021 #include <memory>
00022 #include "boost/bind.hpp"
00023 
00030 class SiStripRawToClustersRoI : public edm::EDProducer {
00031   
00032  public:
00033 
00034   typedef edm::LazyGetter<SiStripCluster> LazyGetter;
00035   typedef edm::RefGetter<SiStripCluster> RefGetter;
00036   typedef SiStripRegionCabling::Position Position;
00037   typedef SiStripRegionCabling::SubDet SubDet;
00038 
00039   SiStripRawToClustersRoI( const edm::ParameterSet& );
00040   ~SiStripRawToClustersRoI();
00041   
00042   virtual void beginRun( edm::Run&, const edm::EventSetup& );
00043   virtual void produce( edm::Event&, const edm::EventSetup& );
00044   
00045  private: 
00046 
00047   void updateCabling( const edm::EventSetup& setup );
00048 
00050   bool physicalLayer( SubDet&, uint32_t& ) const;
00051 
00053   void random(RefGetter&, edm::Handle<LazyGetter>&) const;
00054   
00056   void electrons(const reco::SuperClusterCollection&, RefGetter&, edm::Handle<LazyGetter>&) const;
00057 
00059   void muons(const reco::TrackCollection&, RefGetter&, edm::Handle<LazyGetter>&) const;
00060 
00062   void taujets(const reco::CaloJetCollection&, RefGetter&, edm::Handle<LazyGetter>&) const;
00063 
00065   void bjets(const reco::CaloJetCollection&, RefGetter&, edm::Handle<LazyGetter>&) const;
00066 
00068   const SiStripRegionCabling* cabling_;
00069   
00070   uint32_t cacheId_;
00071   
00073   std::vector<uint32_t> allregions_;
00074 
00076   int nlayers_;
00077 
00079   bool global_;
00080   bool random_;
00081   bool electrons_;
00082   bool muons_;
00083   bool taujets_;
00084   bool bjets_;
00085 
00087   edm::InputTag siStripLazyGetter_;
00088   edm::InputTag electronBarrelL2_;
00089   edm::InputTag electronEndcapL2_;
00090   edm::InputTag muonL2_;
00091   edm::InputTag taujetL2_;
00092   edm::InputTag bjetL2_;
00093 
00095   double electrondeta_;
00096   double electrondphi_;
00097   double muondeta_;
00098   double muondphi_;
00099   double taujetdeta_;
00100   double taujetdphi_;
00101   double bjetdeta_;
00102   double bjetdphi_;
00103 };
00104 
00105 #endif 
00106