00001 #ifndef RecoTauTag_RecoTau_PFRecoTauAlgorithm_H 00002 #define RecoTauTag_RecoTau_PFRecoTauAlgorithm_H 00003 00004 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00005 #include "FWCore/MessageLogger/interface/MessageLogger.h" 00006 00007 #include "DataFormats/ParticleFlowReco/interface/PFCluster.h" 00008 #include "DataFormats/TauReco/interface/PFTau.h" 00009 #include "DataFormats/TauReco/interface/PFTauTagInfo.h" 00010 #include "DataFormats/VertexReco/interface/Vertex.h" 00011 00012 #include "RecoTauTag/TauTagTools/interface/PFTauElementsOperators.h" 00013 #include "RecoTauTag/TauTagTools/interface/CaloTauElementsOperators.h" 00014 #include "RecoTauTag/TauTagTools/interface/TauTagTools.h" 00015 00016 #include "TrackingTools/IPTools/interface/IPTools.h" 00017 #include "TrackingTools/TransientTrack/interface/TransientTrackBuilder.h" 00018 #include "TrackingTools/TransientTrack/interface/TransientTrack.h" 00019 #include "RecoTauTag/RecoTau/interface/PFRecoTauAlgorithmBase.h" 00020 00021 class PFRecoTauAlgorithm : public PFRecoTauAlgorithmBase { 00022 public: 00023 PFRecoTauAlgorithm(); 00024 PFRecoTauAlgorithm(const edm::ParameterSet&); 00025 ~PFRecoTauAlgorithm(){} 00026 00027 // PFRecTrackCollection: Temporary until integrated to PFCandidate 00028 reco::PFTau buildPFTau(const reco::PFTauTagInfoRef&,const reco::Vertex&); 00029 private: 00030 bool checkPos(std::vector<math::XYZPoint>,math::XYZPoint) const; 00031 00032 double LeadPFCand_minPt_; 00033 double LeadTrack_minPt_; 00034 bool UseChargedHadrCandLeadChargedHadrCand_tksDZconstraint_; 00035 double ChargedHadrCandLeadChargedHadrCand_tksmaxDZ_; 00036 00037 bool UseTrackLeadTrackDZconstraint_; 00038 double TrackLeadTrack_maxDZ_; 00039 std::string MatchingConeMetric_; 00040 std::string MatchingConeSizeFormula_; 00041 double MatchingConeSize_min_; 00042 double MatchingConeSize_max_; 00043 std::string TrackerSignalConeMetric_; 00044 std::string TrackerSignalConeSizeFormula_; 00045 double TrackerSignalConeSize_min_; 00046 double TrackerSignalConeSize_max_; 00047 std::string TrackerIsolConeMetric_; 00048 std::string TrackerIsolConeSizeFormula_; 00049 double TrackerIsolConeSize_min_; 00050 double TrackerIsolConeSize_max_; 00051 std::string ECALSignalConeMetric_; 00052 std::string ECALSignalConeSizeFormula_; 00053 double ECALSignalConeSize_min_; 00054 double ECALSignalConeSize_max_; 00055 std::string ECALIsolConeMetric_; 00056 std::string ECALIsolConeSizeFormula_; 00057 double ECALIsolConeSize_min_; 00058 double ECALIsolConeSize_max_; 00059 std::string HCALSignalConeMetric_; 00060 std::string HCALSignalConeSizeFormula_; 00061 double HCALSignalConeSize_min_; 00062 double HCALSignalConeSize_max_; 00063 std::string HCALIsolConeMetric_; 00064 std::string HCALIsolConeSizeFormula_; 00065 double HCALIsolConeSize_min_; 00066 double HCALIsolConeSize_max_; 00067 double AreaMetric_recoElements_maxabsEta_; 00068 // parameters for Ellipse ... EELL 00069 double Rphi_; 00070 double MaxEtInEllipse_; 00071 bool AddEllipseGammas_; 00072 // EELL 00073 00074 uint32_t ChargedHadrCand_IsolAnnulus_minNhits_; 00075 uint32_t Track_IsolAnnulus_minNhits_; 00076 00077 // Whether or not to include the neutral hadrons in the P4 00078 bool putNeutralHadronsInP4_; 00079 00080 std::string DataType_; 00081 00082 double ElecPreIDLeadTkMatch_maxDR_; 00083 double EcalStripSumE_minClusEnergy_; 00084 double EcalStripSumE_deltaEta_; 00085 double EcalStripSumE_deltaPhiOverQ_minValue_; 00086 double EcalStripSumE_deltaPhiOverQ_maxValue_; 00087 double maximumForElectrionPreIDOutput_; 00088 00089 TFormula myMatchingConeSizeTFormula, 00090 myTrackerSignalConeSizeTFormula, 00091 myTrackerIsolConeSizeTFormula, 00092 myECALSignalConeSizeTFormula, 00093 myECALIsolConeSizeTFormula, 00094 myHCALSignalConeSizeTFormula, 00095 myHCALIsolConeSizeTFormula; 00096 00097 }; 00098 #endif 00099