CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_8_patch3/src/RecoEgamma/EgammaIsolationAlgos/plugins/EgammaEcalExtractor.h

Go to the documentation of this file.
00001 #ifndef EgammaIsolationAlgos_EgammaEcalIsolation_h
00002 #define EgammaIsolationAlgos_EgammaEcalIsolation_h
00003 
00004 //*****************************************************************************
00005 // File:      EgammaEcalExtractor.h
00006 // ----------------------------------------------------------------------------
00007 // Type:      Class implementation header
00008 // Package:   EgammaIsolationAlgos/EgammaIsolationAlgos
00009 // Class:     EgammaEcalExtractor
00010 // Language:  Standard C++
00011 // Project:   CMS
00012 // OrigAuth:  Gilles De Lentdecker
00013 // Institute: IIHE-ULB
00014 //=============================================================================
00015 //*****************************************************************************
00016 
00017 
00018 #include "DataFormats/EgammaReco/interface/SuperCluster.h"
00019 #include "DataFormats/EgammaReco/interface/BasicCluster.h"
00020 #include "DataFormats/EgammaReco/interface/BasicClusterFwd.h"
00021 #include "DataFormats/RecoCandidate/interface/RecoCandidate.h"
00022 #include "DataFormats/Candidate/interface/Candidate.h"
00023 
00024 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00025 
00026 #include "FWCore/Framework/interface/Event.h"
00027 #include "FWCore/Framework/interface/EventSetup.h"
00028 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00029 #include "FWCore/Utilities/interface/InputTag.h"
00030 
00031 #include "DataFormats/TrackReco/interface/Track.h"
00032 #include "DataFormats/TrackReco/interface/TrackFwd.h"
00033 
00034 #include "PhysicsTools/IsolationAlgos/interface/IsoDepositExtractor.h"
00035 #include "DataFormats/RecoCandidate/interface/IsoDeposit.h"
00036 
00037 namespace egammaisolation {
00038 
00039     class EgammaEcalExtractor : public reco::isodeposit::IsoDepositExtractor  {
00040         public:
00041             EgammaEcalExtractor(const edm::ParameterSet& par) : 
00042                     etMin_(par.getParameter<double>("etMin")),
00043                     conesize_(par.getParameter<double>("extRadius")),
00044                     scmatch_(par.getParameter<bool>("superClusterMatch")),
00045                     basicClusterTag_(par.getParameter<edm::InputTag>("basicClusters")),
00046                     superClusterTag_(par.getParameter<edm::InputTag>("superClusters")) { }
00047             
00048 
00049             virtual ~EgammaEcalExtractor();
00050 
00051             virtual void fillVetos(const edm::Event & ev, const edm::EventSetup & evSetup, const reco::TrackCollection & tracks) { }
00052             virtual reco::IsoDeposit deposit(const edm::Event & ev, const edm::EventSetup & evSetup, const reco::Track & track) const {
00053                 throw cms::Exception("Configuration Error") << "This extractor " << (typeid(this).name()) << " is not made for tracks";
00054             }
00055             virtual reco::IsoDeposit deposit(const edm::Event & ev, const edm::EventSetup & evSetup, const reco::Candidate & c) const ;
00056 
00057         private:
00058 
00059             // ---------- member data --------------------------------
00060 
00061             // Parameters of isolation cone geometry. 
00062             // Photon case
00063             double etMin_;
00064             double conesize_;
00065             bool scmatch_;  // true-> reject basic clusters matched to the superclsuter
00066                             // false-> fill all basic clusters
00067             edm::InputTag basicClusterTag_;
00068             edm::InputTag superClusterTag_;
00069     };
00070 
00071 }
00072 #endif