00001 #ifndef FastElectronSeedProducer_h 00002 #define FastElectronSeedProducer_h 00003 00004 // 00005 // Package: FastSimulation/EgammaElectronAlgos 00006 // Class: FastElectronSeedProducer 00007 // 00008 // Description: Calls FastElectronSeedGenerator 00009 // to find TrackingSeeds. 00010 00011 00012 class FastElectronSeedGenerator ; 00013 class EgammaHcalIsolation ; 00014 00015 namespace edm { 00016 class EventSetup; 00017 class Event; 00018 class ParameterSet; 00019 } 00020 00021 #include "RecoCaloTools/MetaCollections/interface/CaloRecHitMetaCollections.h" 00022 //#include "RecoEgamma/EgammaTools/interface/HoECalculator.h" 00023 //#include "RecoEgamma/EgammaIsolationAlgos/interface/EgammaHcalIsolation.h" 00024 #include "RecoCaloTools/Selectors/interface/CaloDualConeSelector.h" 00025 #include "Geometry/CaloGeometry/interface/CaloGeometry.h" 00026 #include "FWCore/Framework/interface/ESHandle.h" 00027 #include "FWCore/Framework/interface/EDProducer.h" 00028 #include "FWCore/Utilities/interface/InputTag.h" 00029 #include "DataFormats/EgammaReco/interface/SuperClusterFwd.h" 00030 #include "DataFormats/EgammaReco/interface/SuperCluster.h" 00031 #include "DataFormats/TrajectorySeed/interface/TrajectorySeedCollection.h" 00032 00033 class FastElectronSeedProducer : public edm::EDProducer 00034 { 00035 00036 public: 00037 00038 explicit FastElectronSeedProducer(const edm::ParameterSet& conf); 00039 00040 virtual ~FastElectronSeedProducer(); 00041 00042 virtual void beginRun(edm::Run const& run, const edm::EventSetup & es) override; 00043 virtual void produce(edm::Event& e, const edm::EventSetup& c) override; 00044 00045 private: 00046 00047 void filterClusters(const edm::Handle<reco::SuperClusterCollection>& superClusters, 00048 //HBHERecHitMetaCollection* mhbhe, 00049 reco::SuperClusterRefVector& sclRefs); 00050 00051 /* 00052 //UB added 00053 void filterSeeds(edm::Event& e, const edm::EventSetup& setup, reco::SuperClusterRefVector &sclRefs); 00054 */ 00055 00056 private: 00057 // Input Tags 00058 edm::InputTag clusters_[2]; 00059 edm::InputTag simTracks_; 00060 edm::InputTag trackerHits_; 00061 edm::InputTag hcalRecHits_; 00062 edm::InputTag initialSeeds_; 00063 00064 // Pixel Seed generator 00065 FastElectronSeedGenerator * matcher_ ; 00066 00067 // A few collections (seeds and hcal hits) 00068 const HBHERecHitCollection * hithbhe_ ; 00069 TrajectorySeedCollection * initialSeedColl_ ; 00070 00071 // H/E filtering 00072 //HoECalculator calc_ ; 00073 edm::ESHandle<CaloGeometry> caloGeom_ ; 00074 unsigned long long caloGeomCacheId_ ; 00075 EgammaHcalIsolation * hcalIso_ ; 00076 //CaloDualConeSelector * doubleConeSel_ ; 00077 HBHERecHitMetaCollection * mhbhe_ ; 00078 00079 // maximum H/E where H is the Hcal energy inside the cone centered on the seed cluster eta-phi position 00080 double maxHOverE_ ; 00081 double hOverEConeSize_ ; 00082 double hOverEHBMinE_ ; 00083 double hOverEHFMinE_ ; 00084 double SCEtCut_ ; 00085 00086 bool fromTrackerSeeds_ ; 00087 00088 }; 00089 00090 #endif 00091 00092 00093