CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_10/src/RecoMuon/MuonIsolation/plugins/CaloExtractor.h

Go to the documentation of this file.
00001 #ifndef MuonIsolation_CaloExtractor_H
00002 #define MuonIsolation_CaloExtractor_H
00003 
00004 #include <string>
00005 
00006 #include "PhysicsTools/IsolationAlgos/interface/IsoDepositExtractor.h"
00007 
00008 #include "DataFormats/RecoCandidate/interface/IsoDeposit.h"
00009 #include "DataFormats/TrackReco/interface/Track.h"
00010 #include "DataFormats/TrackReco/interface/TrackFwd.h"
00011 
00012 #include "DataFormats/CaloTowers/interface/CaloTowerCollection.h"
00013 
00014 #include "DataFormats/GeometryVector/interface/GlobalPoint.h"
00015 
00016 namespace muonisolation {
00017 
00018 class CaloExtractor : public reco::isodeposit::IsoDepositExtractor {
00019 
00020 public:
00021 
00022   CaloExtractor(){};
00023   CaloExtractor(const edm::ParameterSet& par);
00024 
00025   virtual ~CaloExtractor(){}
00026 
00027   virtual void fillVetos (const edm::Event & ev, const edm::EventSetup & evSetup, const reco::TrackCollection & tracks);
00028   virtual reco::IsoDeposit deposit (const edm::Event & ev, const edm::EventSetup & evSetup, const reco::Track & track) const;
00029 
00031   static GlobalPoint MuonAtCaloPosition(const reco::Track& muon, const double bz, const GlobalPoint& endpos, bool fixVxy=false, bool fixVz=false);
00032   
00033 private:
00034   // CaloTower Collection Label
00035   edm::InputTag theCaloTowerCollectionLabel;
00036 
00037   // Label of deposit
00038   std::string theDepositLabel;
00039 
00040   // Cone cuts and thresholds
00041   double theWeight_E;
00042   double theWeight_H;
00043   double theThreshold_E;
00044   double theThreshold_H;
00045   double theDR_Veto_E;
00046   double theDR_Veto_H;
00047   double theDR_Max;
00048   bool vertexConstraintFlag_XY;
00049   bool vertexConstraintFlag_Z;
00050 
00051   // Vector of calo Ids to veto
00052   std::vector<DetId> theVetoCollection;
00053 
00054   // Determine noise for HCAL and ECAL (take some defaults for the time being)
00055   double noiseEcal(const CaloTower& tower) const;
00056   double noiseHcal(const CaloTower& tower) const;
00057 };
00058 
00059 }
00060 
00061 #endif