Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:25:01

0001 #ifndef RecoEgamma_EgammaTools_EGEnergySysIndex_h
0002 #define RecoEgamma_EgammaTools_EGEnergySysIndex_h
0003 
0004 //Currently the Electron and Photon energy calibrators return a big vector of calculated
0005 //energy and systematic values
0006 //this class allows the elements to be indexed easier
0007 //ultimately should become a class
0008 
0009 #include <array>
0010 #include <cstddef>
0011 #include <string>
0012 
0013 class EGEnergySysIndex {
0014 public:
0015   enum Index {
0016     kScaleStatUp = 0,
0017     kScaleStatDown,
0018     kScaleSystUp,
0019     kScaleSystDown,
0020     kScaleGainUp,
0021     kScaleGainDown,
0022     kSmearRhoUp,
0023     kSmearRhoDown,
0024     kSmearPhiUp,
0025     kSmearPhiDown,
0026     kScaleUp,
0027     kScaleDown,
0028     kSmearUp,
0029     kSmearDown,
0030     kScaleValue,
0031     kSmearValue,
0032     kSmearNrSigma,
0033     kEcalPreCorr,
0034     kEcalErrPreCorr,
0035     kEcalPostCorr,
0036     kEcalErrPostCorr,
0037     kEcalTrkPreCorr,
0038     kEcalTrkErrPreCorr,
0039     kEcalTrkPostCorr,
0040     kEcalTrkErrPostCorr
0041   };
0042   static constexpr size_t kNrSysErrs = kEcalTrkErrPostCorr + 1;
0043 
0044   static const std::string& name(size_t index) { return names_[index]; }
0045 
0046 private:
0047   static const std::array<std::string, kNrSysErrs> names_;
0048 };
0049 
0050 #endif