CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_2_7_hltpatch2/src/Calibration/Tools/plugins/SingleEleCalibSelector.h

Go to the documentation of this file.
00001 #ifndef SingleEleCalibSelector_h
00002 #define SingleEleCalibSelector_h
00003 
00004 #include "DataFormats/Common/interface/Handle.h"
00005 #include "FWCore/Framework/interface/Event.h"
00006 #include "FWCore/Framework/interface/EventSetup.h"
00007 #include "FWCore/Framework/interface/ESHandle.h"
00008 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00009 #include "DataFormats/EcalRecHit/interface/EcalRecHitCollections.h"
00010 #include "DataFormats/EgammaCandidates/interface/GsfElectron.h"
00011 #include "DataFormats/EgammaCandidates/interface/GsfElectronFwd.h"
00012 #include "Geometry/CaloTopology/interface/CaloTopology.h"
00013 
00014 #include <functional>
00015 #include <vector>
00016 #include <map>
00017 
00018 
00019 class SingleEleCalibSelector{
00020 
00021  public:
00022   
00023  typedef reco::GsfElectronCollection collection ;
00024  typedef reco::GsfElectronRef electron ;
00025  typedef std::vector<const reco::GsfElectron *> container;
00026  typedef container::const_iterator const_iterator;
00027  
00029  SingleEleCalibSelector (const edm::ParameterSet& iConfig) ;
00031  ~SingleEleCalibSelector () ;
00032  
00033  const_iterator begin() const { return selected_.begin(); }
00034  const_iterator end() const { return selected_.end(); }
00035   
00036  void select (edm::Handle<collection>, const edm::Event&, const edm::EventSetup&) ;
00037  
00038  private:
00039 
00040  container selected_ ; 
00041 
00042  edm::ESHandle<CaloTopology> theCaloTopology;   
00043 
00044  DetId findMaxHit (const std::vector<std::pair<DetId,float> > & v1,
00045                    const EBRecHitCollection* EBhits,
00046                    const EERecHitCollection* EEhits);
00047  
00048  double EnergyNxN(const std::vector<DetId> & vNxN,
00049                   const EBRecHitCollection* EBhits,
00050                   const EERecHitCollection* EEhits);
00051  
00052  double ESCOPinMin_, ESeedOPoutMin_, PinMPoutOPinMin_, E5x5OPoutMin_, E3x3OPinMin_, E3x3OE5x5Min_;
00053  double ESCOPinMax_, ESeedOPoutMax_, PinMPoutOPinMax_, E5x5OPoutMax_, E3x3OPinMax_, E3x3OE5x5Max_;
00054  edm::InputTag EBrecHitLabel_;
00055  edm::InputTag EErecHitLabel_;
00056 };  
00057 
00058 #endif
00059 
00060