CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_10/src/RecoEgamma/EgammaIsolationAlgos/plugins/EgammaTrackExtractor.h

Go to the documentation of this file.
00001 #ifndef EgammaIsolationProducers_EgammaTrackExtractor_H
00002 #define EgammaIsolationProducers_EgammaTrackExtractor_H
00003 
00004 #include <string>
00005 #include <vector>
00006 
00007 
00008 #include "DataFormats/RecoCandidate/interface/IsoDeposit.h"
00009 #include "DataFormats/TrackReco/interface/Track.h"
00010 #include "DataFormats/TrackReco/interface/TrackFwd.h"
00011 #include "DataFormats/Candidate/interface/Candidate.h"
00012 #include "PhysicsTools/IsolationAlgos/interface/IsoDepositExtractor.h"
00013 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00014 
00015 namespace egammaisolation {
00016 
00017 class EgammaTrackExtractor : public reco::isodeposit::IsoDepositExtractor {
00018 
00019 public:
00020 
00021   EgammaTrackExtractor(){};
00022   EgammaTrackExtractor(const edm::ParameterSet& par);
00023 
00024   virtual ~EgammaTrackExtractor(){}
00025 
00026   virtual void fillVetos (const edm::Event & ev,
00027       const edm::EventSetup & evSetup, const reco::TrackCollection & track) {}
00028 
00029   virtual reco::IsoDeposit::Vetos vetos(const edm::Event & ev,
00030       const edm::EventSetup & evSetup, const reco::Track & track)const;
00031 
00032   virtual reco::IsoDeposit deposit (const edm::Event & ev,
00033       const edm::EventSetup & evSetup, const reco::Track & muon) const {
00034         edm::LogWarning("EgammaIsolationAlgos|EgammaTrackExtractor") 
00035            << "This Function is not implemented, bad IsoDeposit Returned";
00036         return reco::IsoDeposit( reco::isodeposit::Direction(1,1) );
00037       }
00038 
00039   virtual reco::IsoDeposit deposit (const edm::Event & ev,
00040       const edm::EventSetup & evSetup, const reco::Candidate & muon) const;
00041 
00042 private:
00043   reco::IsoDeposit::Veto veto( const reco::IsoDeposit::Direction & dir) const;
00044 private:
00045   // Parameter set
00046   edm::InputTag theTrackCollectionTag;      
00047   std::string theDepositLabel;              
00048   double minCandEt_;                         
00049   double theDiff_r;                         
00050   double theDiff_z;                         
00051   double theDR_Max;                         
00052   double theDR_Veto;                        
00053   std::string theBeamlineOption;            
00054   edm::InputTag barrelEcalHitsTag_;
00055   edm::InputTag endcapEcalHitsTag_;
00056   edm::InputTag theBeamSpotLabel;           
00057   unsigned int theNHits_Min;                        
00058   double theChi2Ndof_Max;                   
00059   double theChi2Prob_Min;                   
00060   double thePt_Min;                         
00061   std::vector<double> paramForIsolBarrel_;   
00062   std::vector<double> paramForIsolEndcap_;   
00063   std::string dzOptionString;
00064   int dzOption;
00065 };
00066 
00067 }
00068 
00069 #endif