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