CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_2_9/src/FastSimulation/EgammaElectronAlgos/plugins/FastElectronSeedProducer.h

Go to the documentation of this file.
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 & run, const edm::EventSetup & es);
00043   virtual void produce(edm::Event& e, const edm::EventSetup& c);
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