![]() |
![]() |
00001 #ifndef RecoTauTag_RecoTau_CaloRecoTauAlgorithm_H 00002 #define RecoTauTag_RecoTau_CaloRecoTauAlgorithm_H 00003 00004 #include "FWCore/Framework/interface/Event.h" 00005 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00006 00007 #include "DataFormats/EgammaReco/interface/BasicCluster.h" 00008 #include "DataFormats/EgammaReco/interface/BasicClusterFwd.h" 00009 #include "DataFormats/TauReco/interface/CaloTau.h" 00010 #include "DataFormats/TauReco/interface/CaloTauTagInfo.h" 00011 #include "DataFormats/VertexReco/interface/Vertex.h" 00012 00013 #include "Geometry/CaloGeometry/interface/CaloGeometry.h" 00014 #include "Geometry/CaloGeometry/interface/CaloSubdetectorGeometry.h" 00015 #include "Geometry/CaloTopology/interface/CaloTowerTopology.h" 00016 #include "DataFormats/DetId/interface/DetId.h" 00017 #include "DataFormats/EcalDetId/interface/EBDetId.h" 00018 #include "DataFormats/EcalDetId/interface/EEDetId.h" 00019 #include "DataFormats/EcalDetId/interface/ESDetId.h" 00020 #include "DataFormats/EcalRecHit/interface/EcalRecHitCollections.h" 00021 00022 #include "RecoTauTag/TauTagTools/interface/CaloTauElementsOperators.h" 00023 #include "RecoTauTag/TauTagTools/interface/TauTagTools.h" 00024 00025 #include "RecoJets/JetProducers/interface/JetMatchingTools.h" 00026 00027 #include "TrackingTools/IPTools/interface/IPTools.h" 00028 #include "TrackingTools/TransientTrack/interface/TransientTrackBuilder.h" 00029 #include "TrackingTools/TransientTrack/interface/TransientTrack.h" 00030 00031 class CaloRecoTauAlgorithm { 00032 public: 00033 CaloRecoTauAlgorithm(); 00034 CaloRecoTauAlgorithm(const edm::ParameterSet& iConfig); 00035 ~CaloRecoTauAlgorithm(){} 00036 void setTransientTrackBuilder(const TransientTrackBuilder*); 00037 void setMagneticField(const MagneticField*); 00038 reco::CaloTau buildCaloTau(edm::Event&,const edm::EventSetup&,const reco::CaloTauTagInfoRef&,const reco::Vertex&); 00039 std::vector<DetId> mySelectedDetId_; 00040 private: 00041 std::vector<CaloTowerDetId> getCaloTowerneighbourDetIds(const CaloSubdetectorGeometry*,CaloTowerDetId); 00042 const TransientTrackBuilder* TransientTrackBuilder_; 00043 const MagneticField* MagneticField_; 00044 double LeadTrack_minPt_; 00045 double Track_minPt_; 00046 double IsolationTrack_minPt_; 00047 unsigned int IsolationTrack_minHits_; 00048 bool UseTrackLeadTrackDZconstraint_; 00049 double TrackLeadTrack_maxDZ_; 00050 double ECALRecHit_minEt_; 00051 std::string MatchingConeMetric_; 00052 std::string MatchingConeSizeFormula_; 00053 double MatchingConeSize_min_; 00054 double MatchingConeSize_max_; 00055 std::string TrackerSignalConeMetric_; 00056 std::string TrackerSignalConeSizeFormula_; 00057 double TrackerSignalConeSize_min_; 00058 double TrackerSignalConeSize_max_; 00059 std::string TrackerIsolConeMetric_; 00060 std::string TrackerIsolConeSizeFormula_; 00061 double TrackerIsolConeSize_min_; 00062 double TrackerIsolConeSize_max_; 00063 std::string ECALSignalConeMetric_; 00064 std::string ECALSignalConeSizeFormula_; 00065 double ECALSignalConeSize_min_; 00066 double ECALSignalConeSize_max_; 00067 std::string ECALIsolConeMetric_; 00068 std::string ECALIsolConeSizeFormula_; 00069 double ECALIsolConeSize_min_; 00070 double ECALIsolConeSize_max_; 00071 double AreaMetric_recoElements_maxabsEta_; 00072 const double chargedpi_mass_; //PDG Particle Physics Booklet, 2004 00073 00074 TFormula myTrackerSignalConeSizeTFormula,myTrackerIsolConeSizeTFormula, myECALSignalConeSizeTFormula, myECALIsolConeSizeTFormula,myMatchingConeSizeTFormula; 00075 00076 edm::InputTag EBRecHitsLabel_,EERecHitsLabel_,ESRecHitsLabel_; 00077 00078 }; 00079 #endif 00080