CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_5_3_14/src/RecoMuon/MuonIsolation/plugins/CaloExtractorByAssociator.h

Go to the documentation of this file.
00001 #ifndef MuonIsolation_CaloExtractorByAssociator_H
00002 #define MuonIsolation_CaloExtractorByAssociator_H
00003 
00017 #include <string>
00018 
00019 #include "PhysicsTools/IsolationAlgos/interface/IsoDepositExtractor.h"
00020 
00021 #include "DataFormats/RecoCandidate/interface/IsoDeposit.h"
00022 #include "DataFormats/TrackReco/interface/Track.h"
00023 #include "DataFormats/TrackReco/interface/TrackFwd.h"
00024 
00025 
00026 #include "DataFormats/CaloTowers/interface/CaloTowerCollection.h"
00027 
00028 #include "DataFormats/GeometryVector/interface/GlobalPoint.h"
00029 
00030 class TrackAssociatorParameters;
00031 class TrackDetectorAssociator;
00032 class MuonServiceProxy;
00033 
00034 namespace muonisolation {
00035   
00036   class CaloExtractorByAssociator : public reco::isodeposit::IsoDepositExtractor {
00037 
00038   public:
00039 
00041     CaloExtractorByAssociator(){};
00042     CaloExtractorByAssociator(const edm::ParameterSet& par);
00043 
00045     virtual ~CaloExtractorByAssociator();
00046 
00048     virtual void fillVetos (const edm::Event & ev, const edm::EventSetup & evSetup, const reco::TrackCollection & tracks);
00050     virtual reco::IsoDeposit 
00051       deposit(const edm::Event & ev, const edm::EventSetup & evSetup, const reco::Track & track) const;
00053     virtual std::vector<reco::IsoDeposit> 
00054       deposits(const edm::Event & ev, const edm::EventSetup & evSetup, const reco::Track & track) const;
00055 
00056   private:
00057 
00059     bool theUseRecHitsFlag;
00060   
00062     std::string theDepositLabel;
00063 
00065     std::vector<std::string> theDepositInstanceLabels;
00066 
00068     std::string thePropagatorName;
00069 
00072     double theThreshold_E;
00073     double theThreshold_H;
00074     double theThreshold_HO;
00075 
00077     double theDR_Veto_E;
00078     double theDR_Veto_H;
00079     double theDR_Veto_HO;
00082     bool theCenterConeOnCalIntersection;
00084     double theDR_Max;
00085 
00088     double theNoise_EB;
00089     double theNoise_EE;
00090     double theNoise_HB;
00091     double theNoise_HE;
00092     double theNoise_HO;
00093     double theNoiseTow_EB;
00094     double theNoiseTow_EE;
00095 
00097     std::vector<DetId> theVetoCollection;
00098 
00100     MuonServiceProxy* theService;
00101 
00102 
00104     TrackAssociatorParameters* theAssociatorParameters;
00105     TrackDetectorAssociator* theAssociator;  
00106 
00108     bool thePrintTimeReport;
00109 
00111     double noiseEcal(const CaloTower& tower) const;
00112     double noiseHcal(const CaloTower& tower) const;
00113     double noiseHOcal(const CaloTower& tower) const;
00114     double noiseRecHit(const DetId& detId) const;
00115 
00116   };
00117 
00118 }
00119 
00120 #endif