![]() |
|
|||
File indexing completed on 2024-09-07 04:35:56
0001 #ifndef DataFormats_PatCandidates_TauJetCorrFactors_h 0002 #define DataFormats_PatCandidates_TauJetCorrFactors_h 0003 0004 /** 0005 \class pat::TauCorrFactors TauCorrFactors.h "DataFormats/PatCandidates/interface/TauCorrFactors.h" 0006 \brief Class for the storage of tau-jet energy correction factors 0007 0008 Class for the storage of tau-jet energy correction factors that have been calculated during pat tuple production. 0009 The class is created to deal with a flexible number and order of the JES correction factors, which are 0010 expected to be nested. I.e. each correction level implies that all previous correction have been applied 0011 in advance. This scheme corresponds to the jet energy correction scheme propagated by the JetMET PAG. 0012 In dividual levels of JEC are safed as CorrectionFactor, which is a 0013 0014 std::pair<std::string, float>. 0015 0016 The std::string contains a human readable label indicating the corection level, the float 0017 contains the JEC factor. 0018 0019 To move from one correction 0020 level to another correction level the initial correction level of the jet need to be uncorrected before 0021 applying the final correction factor. The class is expected to be used from within the pat::Tau only, 0022 this is taken care of automatically. 0023 */ 0024 0025 #include <vector> 0026 #include <string> 0027 #include <cmath> 0028 0029 namespace pat { 0030 0031 class TauJetCorrFactors { 0032 public: 0033 // tau-jet energy correction factor. 0034 // the std::string indicates the correction level according to jetMET definitions. 0035 typedef std::pair<std::string, float> CorrectionFactor; 0036 0037 public: 0038 // default Constructor 0039 TauJetCorrFactors() {} 0040 // constructor by value 0041 TauJetCorrFactors(const std::string& label, const std::vector<CorrectionFactor>& jec); 0042 0043 // instance label of the jet energy corrections set 0044 std::string jecSet() const { return label_; } 0045 // correction level from unsigned int 0046 std::string jecLevel(const unsigned int& level) const { return jec_.at(level).first; }; 0047 // correction level from std::string 0048 int jecLevel(const std::string& level) const; 0049 0050 // correction factor up to a given level 0051 float correction(unsigned int level) const; 0052 // a list of the labels of all correction levels according to jetMET definitions, separated by '\n' 0053 std::string correctionLabelString() const; 0054 // a vector of the labels of all correction levels according to jetMET definitions 0055 std::vector<std::string> correctionLabels() const; 0056 // label of a specific correction factor according to jetMET definitions; for overflow a string ERROR is returned 0057 std::string correctionLabel(unsigned int level) const { 0058 return (level < jec_.size() ? jec_.at(level).first : std::string("ERROR")); 0059 }; 0060 // number of available correction factors 0061 unsigned int numberOfCorrectionLevels() const { return jec_.size(); }; 0062 // print function for debugging 0063 void print() const; 0064 0065 private: 0066 // instance label of jet energy correction factors 0067 std::string label_; 0068 // vector of CorrectionFactors. NOTE: the correction factors are expected to appear 0069 // nested; they may appear in arbitary number and order according to the configuration 0070 // of the jetCorrFactors module. 0071 std::vector<CorrectionFactor> jec_; 0072 }; 0073 } // namespace pat 0074 0075 #endif
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.2.1 LXR engine. The LXR team |
![]() ![]() |