Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2022-05-18 03:27:30

0001 #ifndef RecoTauTag_RecoTau_DeepTauScaling_h
0002 #define RecoTauTag_RecoTau_DeepTauScaling_h
0003 
0004 #include <vector>
0005 #include <map>
0006 #include <cmath>
0007 #include <limits>
0008 #include <algorithm>
0009 
0010 namespace deep_tau {
0011   namespace Scaling {
0012     constexpr float inf = std::numeric_limits<float>::infinity();
0013     enum class FeatureT {
0014       TauFlat,
0015       GridGlobal,
0016       PfCand_electron,
0017       PfCand_muon,
0018       PfCand_chHad,
0019       PfCand_nHad,
0020       PfCand_gamma,
0021       Electron,
0022       Muon
0023     };
0024 
0025     struct ScalingParams {
0026       std::vector<float> mean_;
0027       std::vector<float> std_;
0028       std::vector<float> lim_min_;
0029       std::vector<float> lim_max_;
0030 
0031       template <typename T>
0032       float scale(T value, int var_index) const {
0033         if (std::isfinite(value)) {
0034           const float mean = mean_.at(var_index);
0035           const float std = std_.at(var_index);
0036           const float lim_min = lim_min_.at(var_index);
0037           const float lim_max = lim_max_.at(var_index);
0038           const float norm_value = (static_cast<float>(value) - mean) / std;
0039           return std::clamp(norm_value, lim_min, lim_max);
0040         } else
0041           return 0.f;
0042       };
0043     };
0044 
0045     const std::map<std::pair<FeatureT, bool>, ScalingParams> scalingParamsMap_v2p1 = {
0046         {std::make_pair(FeatureT::TauFlat, false),
0047          {
0048              // mean_
0049              {21.49,  20.0,   0.0,   0., 0.6669, 1.,    0,       1,       0,       47.78, 0,      9.029,
0050               57.59,  0,      0,     0,  1.731,  22.38, -0.0241, 0.0675,  0.7973,  0,     0.0018, 2.26,
0051               0,      0.0026, 2.928, 0., 0,      4.717, -0.0003, -0.0009, -0.0022, 0.,    0.,     0.,
0052               0.0052, 0.,     1.538, 0,  0.,     0,     0.,      2.95,    0.0,     0,     0.0042},
0053 
0054              // std_
0055              {9.713,
0056               980.0,
0057               2.3,
0058               3.141592653589793,
0059               0.6553,
0060               4.2,
0061               1,
0062               2,
0063               2,
0064               123.5,
0065               1,
0066               26.42,
0067               155.3,
0068               1,
0069               1,
0070               1,
0071               6.846,
0072               16.34,
0073               0.0074,
0074               0.0128,
0075               3.456,
0076               1,
0077               0.0085,
0078               4.191,
0079               1,
0080               0.0114,
0081               4.466,
0082               0.0190,
0083               1,
0084               11.78,
0085               0.7362,
0086               0.7354,
0087               1.993,
0088               1,
0089               1.,
0090               1,
0091               0.01433,
0092               1.,
0093               4.401,
0094               1,
0095               1,
0096               1,
0097               3.141592653589793,
0098               3.927,
0099               1.,
0100               1.0,
0101               0.0323},
0102 
0103              // lim_min_
0104              {-5, 0.,   -1.0, -1., -5, 0,    -inf, 0,    0,    -5,   -inf, -5, -5,   -inf, -inf, -inf,
0105               -5, -5,   -5,   -5,  -5, -inf, -5,   -5,   -inf, -5,   -5,   -5, -inf, -5,   -5,   -5,
0106               -5, -inf, 0,    0,   -5, 0,    -5,   -inf, 0,    -inf, 0,    -5, -1.0, -inf, -5},
0107 
0108              // lim_max_
0109              {5,   1., 1.0, 1., 5,   1, inf, 1, 1, 5,   inf, 5, 5, inf, inf, inf, 5, 5,   5, 5, 5,   inf, 5, 5,
0110               inf, 5,  5,   5,  inf, 5, 5,   5, 5, inf, 1,   1, 5, 1,   5,   inf, 1, inf, 1, 5, 1.0, inf, 5},
0111          }},  // end TauFlat
0112 
0113         {std::make_pair(FeatureT::GridGlobal, false),
0114          {
0115              // mean_
0116              {21.49, 20.0, 0.0, 0},
0117              // std_
0118              {9.713, 980.0, 2.3, 1},
0119              // lim_min_
0120              {-5, 0., -1.0, -inf},
0121              // lim_max_
0122              {5., 1., 1.0, inf},
0123          }},  // end GridGlobal
0124 
0125         {std::make_pair(FeatureT::PfCand_electron, false),
0126          {// mean_
0127           {0, 0.304, 0.0, 0.0, 0, 0, 0, 0, 0, 0, 0, 0.001, 0, 0.0003, 0, 0, 0., 1.634, 0.001, 24.56, 2.272, 15.18},
0128 
0129           // std_
0130           {1,     1.845,  0.5,    0.5,   7., 1,     1,    1,    10.0,  0.1221, 0.1226,
0131            1.024, 0.3411, 0.3385, 1.307, 1,  0.171, 6.45, 1.02, 210.4, 8.439,  3.203},
0132 
0133           // lim_min_
0134           {-inf, -5, -1.0, -1.0, 0., -inf, -inf, -inf, 0., -5, -5, -5, -5, -5, -5, -inf, -5, -5, -5, -5, -5, -5},
0135 
0136           // lim_max_
0137           {inf, 5, 1.0, 1.0, 1.,  inf, inf, inf, 1., 5, 5,
0138            5,   5, 5,   5,   inf, 5,   5,   5,   5,  5, 5}}},  // end PfCand_electron, is_innner=false
0139 
0140         {std::make_pair(FeatureT::PfCand_electron, true),
0141          {// mean_
0142           {0, 0.9792, 0.0, 0.0, 0, 0, 0, 0, 0, 0, 0, 0.001, 0, 0.0003, 0, 0, 0., 1.634, 0.001, 24.56, 2.272, 15.18},
0143 
0144           // std_
0145           {1,     0.5383, 0.1,    0.1,   7., 1,     1,    1,    10.0,  0.1221, 0.1226,
0146            1.024, 0.3411, 0.3385, 1.307, 1,  0.171, 6.45, 1.02, 210.4, 8.439,  3.203},
0147 
0148           // lim_min_
0149           {-inf, -5, -1.0, -1.0, 0., -inf, -inf, -inf, 0., -5, -5, -5, -5, -5, -5, -inf, -5, -5, -5, -5, -5, -5},
0150 
0151           // lim_max_
0152           {inf, 5, 1.0, 1.0, 1.,  inf, inf, inf, 1., 5, 5,
0153            5,   5, 5,   5,   inf, 5,   5,   5,   5,  5, 5}}},  // end PfCand_electron, is_innner=true
0154 
0155         {std::make_pair(FeatureT::PfCand_gamma, false),
0156          {
0157              // mean
0158              {0,  0.02576, 0.0,    0.0,    0, 0,      0,     0,      0,     0.,    0.,   0.,
0159               0., 0.001,   0.0008, 0.0038, 0, 0.0004, 4.271, 0.0071, 162.1, 4.268, 12.25},
0160 
0161              // std
0162              {1,      0.3833, 0.5,    0.5,   7., 3.,    1,     1,     1,     7.,    0.0067, 0.0069,
0163               0.0578, 0.9565, 0.9592, 2.154, 1,  0.882, 63.78, 5.285, 622.4, 15.47, 4.774},
0164 
0165              // lim_min
0166              {-inf, -5, -1.0, -1.0, 0., 0., -inf, -inf, -inf, 0., -5, -5, -5, -5, -5, -5, -inf, -5, -5, -5, -5, -5, -5},
0167 
0168              // lim_max
0169              {inf, 5, 1.0, 1.0, 1., 1., inf, inf, inf, 1., 5, 5, 5, 5, 5, 5, inf, 5, 5, 5, 5, 5, 5},
0170 
0171          }},  // end PfCand_gamma, is_innner=false
0172 
0173         {std::make_pair(FeatureT::PfCand_gamma, true),
0174          {
0175              // mean
0176              {0,  0.6048, 0.0,    0.0,    0, 0,      0,     0,      0,     0.,    0.,   0.,
0177               0., 0.001,  0.0008, 0.0038, 0, 0.0004, 4.271, 0.0071, 162.1, 4.268, 12.25},
0178 
0179              // std
0180              {1,      1.669,  0.1,    0.1,   7., 3.,    1,     1,     1,     7.,    0.0067, 0.0069,
0181               0.0578, 0.9565, 0.9592, 2.154, 1,  0.882, 63.78, 5.285, 622.4, 15.47, 4.774},
0182 
0183              // lim_min
0184              {-inf, -5, -1.0, -1.0, 0., 0., -inf, -inf, -inf, 0., -5, -5, -5, -5, -5, -5, -inf, -5, -5, -5, -5, -5, -5},
0185 
0186              // lim_max
0187              {inf, 5, 1.0, 1.0, 1., 1., inf, inf, inf, 1., 5, 5, 5, 5, 5, 5, inf, 5, 5, 5, 5, 5, 5},
0188 
0189          }},  // end PfCand_gamma, is_innner=true
0190 
0191         {std::make_pair(FeatureT::Electron, false),
0192          {
0193              // mean
0194              {0,     0.5111, 0.0,   0.0,    0,     1.729, 0.1439, 1.794,   1.531,   1.531,  0.7735, 0.7735, 1.625,
0195               1.993, 70.25,  2.432, 2.034,  6.64,  4.183, 0.,     -0.0001, -0.0001, 0.0002, 0.0001, 0.0004, 0,
0196               0,     0.0008, 14.04, 0.0099, 3.049, 16.52, 1.355,  5.046,   0,       2.411,  15.16},
0197 
0198              // std
0199              {1,     2.765,  0.5,   0.5,    1,     1.644, 0.3284, 2.079,  1.424,  1.424,  0.935,  0.935,  1.581,
0200               1.308, 58.16,  15.13, 13.96,  36.8,  20.63, 0.0363, 0.0512, 0.0541, 0.0553, 0.0523, 0.0777, 1,
0201               1,     0.0052, 69.48, 0.0851, 10.39, 2.806, 16.81,  3.119,  1,      6.98,   5.26},
0202 
0203              // lim_min
0204              {-inf, -5, -1.0, -1.0, -inf, -5, -5,   -5,   -5, -5, -5, -5, -5, -5, -5, -5,   -5, -5, -5,
0205               -5,   -5, -5,   -5,   -5,   -5, -inf, -inf, -5, -5, -5, -5, -5, -5, -5, -inf, -5, -5},
0206 
0207              // lim_max
0208              {inf, 5, 1.0, 1.0, inf, 5, 5,   5,   5, 5, 5, 5, 5, 5, 5, 5,   5, 5, 5,
0209               5,   5, 5,   5,   5,   5, inf, inf, 5, 5, 5, 5, 5, 5, 5, inf, 5, 5},
0210          }},  // end Electron, is_innner=false
0211 
0212         {std::make_pair(FeatureT::Electron, true),
0213          {
0214              // mean
0215              {0,     1.067,  0.0,   0.0,    0,     1.729, 0.1439, 1.794,   1.531,   1.531,  0.7735, 0.7735, 1.625,
0216               1.993, 70.25,  2.432, 2.034,  6.64,  4.183, 0.,     -0.0001, -0.0001, 0.0002, 0.0001, 0.0004, 0,
0217               0,     0.0008, 14.04, 0.0099, 3.049, 16.52, 1.355,  5.046,   0,       2.411,  15.16},
0218 
0219              // std
0220              {1,     1.521,  0.1,   0.1,    1,     1.644, 0.3284, 2.079,  1.424,  1.424,  0.935,  0.935,  1.581,
0221               1.308, 58.16,  15.13, 13.96,  36.8,  20.63, 0.0363, 0.0512, 0.0541, 0.0553, 0.0523, 0.0777, 1,
0222               1,     0.0052, 69.48, 0.0851, 10.39, 2.806, 16.81,  3.119,  1,      6.98,   5.26},
0223 
0224              // lim_min
0225              {-inf, -5, -1.0, -1.0, -inf, -5, -5,   -5,   -5, -5, -5, -5, -5, -5, -5, -5,   -5, -5, -5,
0226               -5,   -5, -5,   -5,   -5,   -5, -inf, -inf, -5, -5, -5, -5, -5, -5, -5, -inf, -5, -5},
0227 
0228              // lim_max
0229              {inf, 5, 1.0, 1.0, inf, 5, 5,   5,   5, 5, 5, 5, 5, 5, 5, 5,   5, 5, 5,
0230               5,   5, 5,   5,   5,   5, inf, inf, 5, 5, 5, 5, 5, 5, 5, inf, 5, 5},
0231          }},  // end Electron, is_innner=true
0232 
0233         {std::make_pair(FeatureT::PfCand_muon, false),
0234          {
0235              // mean
0236              {0,       0.0861,  0.0,    0.0,     0, 0,       0,     0,       0,     0.,   -0.0007, 0.0001,
0237               -0.0117, -0.0001, 0.0004, -0.0118, 0, -0.0045, 4.575, -0.0117, 80.37, 0.69, 17.5},
0238 
0239              // std
0240              {1,     0.4065, 0.5,    0.5,   7., 3.,     1.,    1.,    1.,    11.,   0.6869, 0.6784,
0241               4.097, 0.8642, 0.8561, 4.405, 1,  0.9655, 42.36, 4.097, 343.3, 1.711, 5.11},
0242 
0243              // lim_min
0244              {-inf, -5, -1.0, -1.0, 0., 0., -inf, -inf, -inf, 0., -5, -5, -5, -5, -5, -5, -inf, -5, -5, -5, -5, -5, -5},
0245 
0246              // lim_max
0247              {inf, 5, 1.0, 1.0, 1., 1., inf, inf, inf, 1.0, 5, 5, 5, 5, 5, 5, inf, 5, 5, 5, 5, 5, 5},
0248 
0249          }},  // end PfCand_muon, is_innner=false
0250 
0251         {std::make_pair(FeatureT::PfCand_muon, true),
0252          {
0253              // mean
0254              {0,       0.9509,  0.0,    0.0,     0, 0,       0,     0,       0,     0.,   -0.0007, 0.0001,
0255               -0.0117, -0.0001, 0.0004, -0.0118, 0, -0.0045, 4.575, -0.0117, 80.37, 0.69, 17.5},
0256 
0257              // std
0258              {1,     0.4294, 0.1,    0.1,   7., 3.,     1.,    1.,    1.,    11.,   0.6869, 0.6784,
0259               4.097, 0.8642, 0.8561, 4.405, 1,  0.9655, 42.36, 4.097, 343.3, 1.711, 5.11},
0260 
0261              // lim_min
0262              {-inf, -5, -1.0, -1.0, 0., 0., -inf, -inf, -inf, 0., -5, -5, -5, -5, -5, -5, -inf, -5, -5, -5, -5, -5, -5},
0263 
0264              // lim_max
0265              {inf, 5, 1.0, 1.0, 1., 1., inf, inf, inf, 1.0, 5, 5, 5, 5, 5, 5, inf, 5, 5, 5, 5, 5, 5},
0266 
0267          }},  // end PfCand_muon, is_innner=true
0268 
0269         {std::make_pair(FeatureT::Muon, false),
0270          {
0271              // mean
0272              {0,  0.2678, 0.0, 0.0, 0.0019, 8.98, 0,  21.52, 21.84, 0,  0,  0,  0.2273, 0., 0., 0., 0., 0., 0.,
0273               0., 0.,     0.,  0.,  0.,     0.,   0., 0.,    0.,    0., 0., 0., 0.,     0., 0., 0., 0., 0.},
0274 
0275              // std
0276              {1,    3.592, 0.5, 0.5,  1.039, 71.17, 1,    265.8, 10.59, 1,   1,   1,   0.4865,
0277               2.0,  2.0,   2.0, 2.0,  6.0,   2.0,   2.0,  2.0,   7.,    6.0, 4.0, 4.0, 12.0,
0278               12.0, 12.0,  8.0, 24.0, 12.0,  12.0,  12.0, 4.0,   4.0,   2.0, 2.0},
0279 
0280              // lim_min
0281              {-inf, -5, -1.0, -1.0, -5, -5, -inf, -5, -5, -inf, -inf, -inf, -5, 0., 0., 0., 0., 0., 0.,
0282               0.,   0., 0.,   0.,   0., 0., 0.,   0., 0., 0.,   0.,   0.,   0., 0., 0., 0., 0., 0.},
0283 
0284              // lim_max
0285              {inf, 5,   1.0, 1.0, 5,   5,   inf, 5,   5,   inf, inf, inf, 5,   1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
0286               1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0},
0287 
0288          }},  // end Muon, is_innner=false
0289 
0290         {std::make_pair(FeatureT::Muon, true),
0291          {
0292              // mean
0293              {0,  0.7966, 0.0, 0.0, 0.0019, 8.98, 0,  21.52, 21.84, 0,  0,  0,  0.2273, 0., 0., 0., 0., 0., 0.,
0294               0., 0.,     0.,  0.,  0.,     0.,   0., 0.,    0.,    0., 0., 0., 0.,     0., 0., 0., 0., 0.},
0295 
0296              // std
0297              {1,    3.402, 0.1, 0.1,  1.039, 71.17, 1,    265.8, 10.59, 1,   1,   1,   0.4865,
0298               2.0,  2.0,   2.0, 2.0,  6.0,   2.0,   2.0,  2.0,   7.,    6.0, 4.0, 4.0, 12.0,
0299               12.0, 12.0,  8.0, 24.0, 12.0,  12.0,  12.0, 4.0,   4.0,   2.0, 2.0},
0300 
0301              // lim_min
0302              {-inf, -5, -1.0, -1.0, -5, -5, -inf, -5, -5, -inf, -inf, -inf, -5, 0., 0., 0., 0., 0., 0.,
0303               0.,   0., 0.,   0.,   0., 0., 0.,   0., 0., 0.,   0.,   0.,   0., 0., 0., 0., 0., 0.},
0304 
0305              // lim_max
0306              {inf, 5,   1.0, 1.0, 5,   5,   inf, 5,   5,   inf, inf, inf, 5,   1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
0307               1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0},
0308 
0309          }},  // end Muon, is_innner=true
0310 
0311         {std::make_pair(FeatureT::PfCand_chHad, false),
0312          {
0313              // mean
0314              {0,       0.0194,  0.0,    0.0,     0, 0,      0,     0,       0,     0,      0,     0., 0.0005, -0.0008,
0315               -0.0201, -0.0014, 0.0022, -0.0138, 0, -0.012, 6.417, -0.0246, 301.3, 0.7876, 13.92, 0,  0.},
0316 
0317              // std
0318              {1,     0.1865, 0.5,   0.5,   1, 7,     3,     1,     1,     1,     1,     12.0, 1.735, 1.752,
0319               8.333, 1.93,   1.948, 8.622, 1, 2.386, 36.28, 7.618, 491.1, 3.694, 6.581, 1,    2.6},
0320 
0321              // lim_min
0322              {-inf, -5, -1.0, -1.0, -inf, 0., 0., -inf, -inf, -inf, -inf, 0.,   -5, -5,
0323               -5,   -5, -5,   -5,   -inf, -5, -5, -5,   -5,   -5,   -5,   -inf, 0.},
0324 
0325              // lim_max
0326              {inf, 5, 1.0, 1.0, inf, 1., 1., inf, inf, inf, inf, 1.0, 5,  5,
0327               5,   5, 5,   5,   inf, 5,  5,  5,   5,   5,   5,   inf, 1.0},
0328          }},  // end PfCand_chHad, is_innner=false
0329 
0330         {std::make_pair(FeatureT::PfCand_chHad, true),
0331          {
0332              // mean
0333              {0,       0.2564,  0.0,    0.0,     0, 0,      0,     0,       0,     0,      0,     0., 0.0005, -0.0008,
0334               -0.0201, -0.0014, 0.0022, -0.0138, 0, -0.012, 6.417, -0.0246, 301.3, 0.7876, 13.92, 0,  0.},
0335 
0336              // std
0337              {1,     0.8607, 0.1,   0.1,   1, 7,     3,     1,     1,     1,     1,     12.0, 1.735, 1.752,
0338               8.333, 1.93,   1.948, 8.622, 1, 2.386, 36.28, 7.618, 491.1, 3.694, 6.581, 1,    2.6},
0339 
0340              // lim_min
0341              {-inf, -5, -1.0, -1.0, -inf, 0., 0., -inf, -inf, -inf, -inf, 0.,   -5, -5,
0342               -5,   -5, -5,   -5,   -inf, -5, -5, -5,   -5,   -5,   -5,   -inf, 0.},
0343 
0344              // lim_max
0345              {inf, 5, 1.0, 1.0, inf, 1., 1., inf, inf, inf, inf, 1.0, 5,  5,
0346               5,   5, 5,   5,   inf, 5,  5,  5,   5,   5,   5,   inf, 1.0},
0347          }},  // end PfCand_chHad, is_innner=true
0348 
0349         {std::make_pair(FeatureT::PfCand_nHad, false),
0350          {
0351              // mean
0352              {0, 0.0502, 0.0, 0.0, 0, 0, 0},
0353 
0354              // std
0355              {1, 0.4266, 0.5, 0.5, 1, 1, 1},
0356 
0357              // lim_min
0358              {-inf, -5, -1.0, -1.0, -inf, -inf, -inf},
0359 
0360              // lim_max
0361              {inf, 5, 1.0, 1.0, inf, inf, inf},
0362 
0363          }},  // end PfCand_nHad, is_innner=false
0364 
0365         {std::make_pair(FeatureT::PfCand_nHad, true),
0366          {
0367              // mean
0368              {0, 0.3163, 0.0, 0.0, 0, 0, 0},
0369 
0370              // std
0371              {1, 0.2769, 0.1, 0.1, 1, 1, 1},
0372 
0373              // lim_min
0374              {-inf, -5, -1.0, -1.0, -inf, -inf, -inf},
0375 
0376              // lim_max
0377              {inf, 5, 1.0, 1.0, inf, inf, inf},
0378 
0379          }},  // end PfCand_nHad, is_innner=true
0380 
0381     };  // end scalingParamsMap_v2p1
0382 
0383     const std::map<std::pair<FeatureT, bool>, ScalingParams> scalingParamsMap_v2p5 = {
0384         {std::make_pair(FeatureT::TauFlat, false),
0385          {
0386              // mean_
0387              {25.0,       510.0,      0.0,
0388               0.5762,     1.967,      0,
0389               1,          0,          14.32,
0390               0,          2.213,      11.36,
0391               0,          0,          0,
0392               1.202,      22.17,      0,
0393               0.002281,   2.392,      0,
0394               0.00318,    2.991,      3.212e-05,
0395               0,          16.75,      -0.0008515,
0396               -0.0001629, -0.0007875, -5.564,
0397               0.5,        0.5,        0.007766,
0398               0.5,        1.672,      0,
0399               0.5,        0,          1.5707963267948966,
0400               2.256,      0.0,        0,
0401               0.0002029},
0402 
0403              // std_
0404              {25.0,     490.0, 2.3,
0405               0.5293,   1.133, 1,
0406               1,        1,     44.8,
0407               1,        6.783, 48.09,
0408               1,        1,     1,
0409               3.739,    13.68, 1,
0410               0.009705, 4.187, 1,
0411               0.01452,  4.527, 0.4518,
0412               1,        191.7, 0.4016,
0413               0.4041,   1.157, 8.72,
0414               0.5,      0.5,   0.01834,
0415               0.5,      5.058, 1,
0416               0.5,      1,     1.5707963267948966,
0417               2.943,    1.0,   1,
0418               0.03612},
0419 
0420              // lim_min_
0421              {-1.0, -1.0, -1.0, -5,   -5, -inf, -inf, -inf, -5,   -inf, -5,   -5,   -inf, -inf, -inf,
0422               -5,   -5,   -inf, -5,   -5, -inf, -5,   -5,   -5,   -inf, -5,   -5,   -5,   -5,   -5,
0423               -1.0, -1.0, -5,   -1.0, -5, -inf, -1.0, -inf, -1.0, -5,   -1.0, -inf, -5},
0424 
0425              // lim_max_
0426              {1.0, 1.0, 1.0, 5, 5, inf, inf, inf, 5,   inf, 5, 5,   inf, inf, inf, 5,   5,   inf, 5,   5,   inf, 5,
0427               5,   5,   inf, 5, 5, 5,   5,   5,   1.0, 1.0, 5, 1.0, 5,   inf, 1.0, inf, 1.0, 5,   1.0, inf, 5},
0428          }},  // end TauFlat
0429 
0430         {std::make_pair(FeatureT::GridGlobal, false),
0431          {
0432              // mean_
0433              {
0434                  25.0,
0435                  510.0,
0436                  0.0,
0437                  0,
0438              },
0439              // std_
0440              {
0441                  25.0,
0442                  490.0,
0443                  2.3,
0444                  1,
0445              },
0446              // lim_min_
0447              {-1.0, -1.0, -1.0, -inf},
0448              // lim_max_
0449              {1.0, 1.0, 1.0, inf},
0450          }},  // end GridGlobal
0451 
0452         {std::make_pair(FeatureT::PfCand_electron, false),
0453          {// mean_
0454           {0,       0.3457,   0.0,       0.0,       0, 0,        0,     0,        5.0,   -0.0008022, -2.653e-05,
0455            0.00382, 0.002371, 0.0003833, 0.0004431, 0, 0.000397, 3.409, 0.003507, 169.6, 4.561,      12.6},
0456 
0457           // std_
0458           {1,     1.164,  0.5,    0.5,   1, 1,      1,     1,   5.0,   0.4081, 0.4056,
0459            3.329, 0.6623, 0.6648, 3.548, 1, 0.5572, 16.07, 3.3, 486.1, 14.8,   3.729},
0460 
0461           // lim_min_
0462           {-inf, -5, -1.0, -1.0, -inf, -inf, -inf, -inf, -1.0, -5, -5, -5, -5, -5, -5, -inf, -5, -5, -5, -5, -5, -5},
0463 
0464           // lim_max_
0465           {inf, 5, 1.0, 1.0, inf, inf, inf, inf, 1.0, 5, 5,
0466            5,   5, 5,   5,   inf, 5,   5,   5,   5,   5, 5}}},  // end PfCand_electron, is_inner=false
0467 
0468         {std::make_pair(FeatureT::PfCand_electron, true),
0469          {// mean_
0470           {0,         0.9558,    0.0,       0.0,       0, 0,         0,     0,         5.0,   -2.888e-06, 7.215e-06,
0471            0.0002156, 0.0002385, 6.221e-05, 0.0003546, 0, 3.333e-05, 1.412, 0.0002181, 21.72, 2.387,      14.73},
0472 
0473           // std_
0474           {1,      0.2323, 0.1,    0.1,   1, 1,       1,     1,      5.0,   0.03703, 0.03682,
0475            0.5552, 0.1855, 0.1867, 0.749, 1, 0.05183, 3.111, 0.5551, 230.5, 8.818,   3.125},
0476 
0477           // lim_min_
0478           {-inf, -5, -1.0, -1.0, -inf, -inf, -inf, -inf, -1.0, -5, -5, -5, -5, -5, -5, -inf, -5, -5, -5, -5, -5, -5},
0479 
0480           // lim_max_
0481           {inf, 5, 1.0, 1.0, inf, inf, inf, inf, 1.0, 5, 5,
0482            5,   5, 5,   5,   inf, 5,   5,   5,   5,   5, 5}}},  // end PfCand_electron, is_inner=true
0483 
0484         {std::make_pair(FeatureT::PfCand_gamma, false),
0485          {
0486              // mean
0487              {0,         0.02024,  0.0,       0.0,      0, 0,        0,    0,       0,     3.5,   2.364e-08, -1.355e-07,
0488               5.947e-07, 0.001155, -3.88e-05, 0.001081, 0, 0.003532, 4.09, 0.02207, 175.0, 4.798, 12.18},
0489 
0490              // std
0491              {1,       0.1801, 0.5,    0.5,   1, 1,     1,     1,     1,     3.5,   0.003674, 0.00371,
0492               0.02345, 0.4628, 0.4667, 1.057, 1, 1.006, 11.45, 4.517, 546.1, 16.85, 4.741},
0493 
0494              // lim_min
0495              {-inf, -5, -1.0, -1.0, -inf, -inf, -inf, -inf, -inf, -1.0, -5, -5,
0496               -5,   -5, -5,   -5,   -inf, -5,   -5,   -5,   -5,   -5,   -5},
0497 
0498              // lim_max
0499              {inf, 5, 1.0, 1.0, inf, inf, inf, inf, inf, 1.0, 5, 5, 5, 5, 5, 5, inf, 5, 5, 5, 5, 5, 5},
0500 
0501          }},  // end PfCand_gamma, is_inner=false
0502 
0503         {std::make_pair(FeatureT::PfCand_gamma, true),
0504          {
0505              // mean
0506              {0, 0.2681,     0.0,        0.0,       0,        0,         0,          0,
0507               0, 3.5,        -6.701e-06, 4.799e-06, 3.08e-05, 0.0009319, -0.0001133, 0.0007838,
0508               0, -0.0003009, 3.826,      0.01115,   114.2,    4.218,     12.27},
0509 
0510              // std
0511              {1,      0.5467, 0.1,    0.1,   1, 1,     1,     1,     1,     3.5,   0.02348, 0.02357,
0512               0.2203, 0.4899, 0.4941, 1.284, 1, 0.633, 20.83, 4.191, 439.3, 15.84, 4.562},
0513 
0514              // lim_min
0515              {-inf, -5, -1.0, -1.0, -inf, -inf, -inf, -inf, -inf, -1.0, -5, -5,
0516               -5,   -5, -5,   -5,   -inf, -5,   -5,   -5,   -5,   -5,   -5},
0517 
0518              // lim_max
0519              {inf, 5, 1.0, 1.0, inf, inf, inf, inf, inf, 1.0, 5, 5, 5, 5, 5, 5, inf, 5, 5, 5, 5, 5, 5},
0520 
0521          }},  // end PfCand_gamma, is_inner=true
0522 
0523         {std::make_pair(FeatureT::Electron, false),
0524          {
0525              // mean
0526              {0,          0.3827,     0.0,        0.0,       0,         1.37,  0.3215, 1.793,    1.093, 1.093,
0527               1.013,      1.013,      1.063,      1.445,     13.07,     3.797, 2.624,  5.68,     2.231, -0.0001921,
0528               -0.0009969, -0.0008593, -0.0008999, -0.001147, -0.001182, 0,     0,      0.001218, 31.5,  0.05644,
0529               6.344,      14.65,      1.917,      6.866,     0,         1.862, 12.15},
0530 
0531              // std
0532              {1,     1.272,   0.5,   0.5,    1,     8.381, 0.5275, 2.419,  82.69,  82.69,  673.8,  673.8,  5.614,
0533               2.021, 27.8,    21.65, 19.0,   41.93, 21.58, 0.1324, 0.1474, 0.1548, 0.1514, 0.1452, 0.1966, 1,
0534               1,     0.00775, 82.72, 0.2343, 292.7, 3.103, 229.2,  5.051,  1,      5.64,   5.557},
0535 
0536              // lim_min
0537              {-inf, -5, -1.0, -1.0, -inf, -5, -5,   -5,   -5, -5, -5, -5, -5, -5, -5, -5,   -5, -5, -5,
0538               -5,   -5, -5,   -5,   -5,   -5, -inf, -inf, -5, -5, -5, -5, -5, -5, -5, -inf, -5, -5},
0539 
0540              // lim_max
0541              {inf, 5, 1.0, 1.0, inf, 5, 5,   5,   5, 5, 5, 5, 5, 5, 5, 5,   5, 5, 5,
0542               5,   5, 5,   5,   5,   5, inf, inf, 5, 5, 5, 5, 5, 5, 5, inf, 5, 5},
0543          }},  // end Electron, is_inner=false
0544 
0545         {std::make_pair(FeatureT::Electron, true),
0546          {
0547              // mean
0548              {0,          0.9372,    0.0,       0.0,       0,         1.654, 0.1878, 2.055,    2.593, 2.593,
0549               1.006,      1.006,     1.749,     2.0,       59.55,     1.748, 1.404,  5.054,    3.078, -4.413e-06,
0550               -1.477e-05, 9.209e-07, 0.0001262, 8.781e-05, 0.0003861, 0,     0,      0.000632, 15.88, 0.005635,
0551               3.163,      16.15,     1.669,     5.276,     0,         2.813, 14.46},
0552 
0553              // std
0554              {1,     0.4817,   0.1,   0.1,     1,     1.104, 0.3595, 2.141,   1183.0,  1183.0,  233.5,   233.5,   88.75,
0555               1.278, 44.9,     2.591, 2.199,   14.8,  10.23, 0.0119, 0.02151, 0.02331, 0.03042, 0.03347, 0.05816, 1,
0556               1,     0.004139, 50.36, 0.05148, 15.01, 2.752, 431.6,  2.463,   1,       8.186,   5.149},
0557 
0558              // lim_min
0559              {-inf, -5, -1.0, -1.0, -inf, -5, -5,   -5,   -5, -5, -5, -5, -5, -5, -5, -5,   -5, -5, -5,
0560               -5,   -5, -5,   -5,   -5,   -5, -inf, -inf, -5, -5, -5, -5, -5, -5, -5, -inf, -5, -5},
0561 
0562              // lim_max
0563              {inf, 5, 1.0, 1.0, inf, 5, 5,   5,   5, 5, 5, 5, 5, 5, 5, 5,   5, 5, 5,
0564               5,   5, 5,   5,   5,   5, inf, inf, 5, 5, 5, 5, 5, 5, 5, inf, 5, 5},
0565          }},  // end Electron, is_inner=true
0566 
0567         {std::make_pair(FeatureT::PfCand_muon, false),
0568          {
0569              // mean
0570              {0, 0.142,     0.0,        0.0,        0,        0,        0,          0,
0571               0, 5.5,       -9.307e-05, -0.0008956, -0.01717, 0.001419, -0.0001845, -0.01638,
0572               0, -0.008642, 10.87,      -0.01718,   296.6,    0.7838,   17.99},
0573 
0574              // std
0575              {1,     0.618, 0.5,   0.5,   1, 1,     1,     1,     1,     5.5,   1.123, 1.108,
0576               6.913, 1.229, 1.216, 7.147, 1, 1.578, 58.34, 6.915, 515.9, 2.933, 6.317},
0577 
0578              // lim_min
0579              {-inf, -5, -1.0, -1.0, -inf, -inf, -inf, -inf, -inf, -1.0, -5, -5,
0580               -5,   -5, -5,   -5,   -inf, -5,   -5,   -5,   -5,   -5,   -5},
0581 
0582              // lim_max
0583              {inf, 5, 1.0, 1.0, inf, inf, inf, inf, inf, 1.0, 5, 5, 5, 5, 5, 5, inf, 5, 5, 5, 5, 5, 5},
0584 
0585          }},  // end PfCand_muon, is_inner=false
0586 
0587         {std::make_pair(FeatureT::PfCand_muon, true),
0588          {
0589              // mean
0590              {0, 0.9561,     0.0,        0.0,       0,         0,         0,          0,
0591               0, 5.5,        -9.493e-06, 2.109e-06, -0.005042, 0.0001233, -1.605e-06, -0.004842,
0592               0, -2.842e-05, 1.391,      -0.005043, 10.48,     0.5868,    17.11},
0593 
0594              // std
0595              {1,      0.1959, 0.1,    0.1,    1, 1,      1,     1,      1,     5.5,   0.0752, 0.07712,
0596               0.8103, 0.2137, 0.2138, 0.9617, 1, 0.1077, 7.796, 0.8103, 155.9, 1.003, 4.29},
0597 
0598              // lim_min
0599              {-inf, -5, -1.0, -1.0, -inf, -inf, -inf, -inf, -inf, -1.0, -5, -5,
0600               -5,   -5, -5,   -5,   -inf, -5,   -5,   -5,   -5,   -5,   -5},
0601 
0602              // lim_max
0603              {inf, 5, 1.0, 1.0, inf, inf, inf, inf, inf, 1.0, 5, 5, 5, 5, 5, 5, inf, 5, 5, 5, 5, 5, 5},
0604 
0605          }},  // end PfCand_muon, is_inner=true
0606 
0607         {std::make_pair(FeatureT::Muon, false),
0608          {
0609              // mean
0610              {0,   0.3645, 0.0, 0.0,  0.00344, 17.54, 0,   24.78, 17.92, 0,   0,   0,   0.3221,
0611               1.0, 1.0,    1.0, 1.0,  3.0,     1.0,   1.0, 1.0,   3.5,   3.0, 2.0, 2.0, 6.0,
0612               6.0, 6.0,    4.0, 12.0, 6.0,     6.0,   6.0, 2.0,   2.0,   1.0, 1.0},
0613 
0614              // std
0615              {1,   85.0, 0.5, 0.5,  1.557, 97.45, 1,   2022.0, 6.573, 1,   1,   1,   0.6166,
0616               1.0, 1.0,  1.0, 1.0,  3.0,   1.0,   1.0, 1.0,    3.5,   3.0, 2.0, 2.0, 6.0,
0617               6.0, 6.0,  4.0, 12.0, 6.0,   6.0,   6.0, 2.0,    2.0,   1.0, 1.0},
0618 
0619              // lim_min
0620              {-inf, -5,   -1.0, -1.0, -5,   -5,   -inf, -5,   -5,   -inf, -inf, -inf, -5,
0621               -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0,
0622               -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0},
0623 
0624              // lim_max
0625              {inf, 5,   1.0, 1.0, 5,   5,   inf, 5,   5,   inf, inf, inf, 5,   1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
0626               1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0},
0627 
0628          }},  // end Muon, is_inner=false
0629 
0630         {std::make_pair(FeatureT::Muon, true),
0631          {
0632              // mean
0633              {0,   1.033, 0.0, 0.0,  0.001217, 5.403, 0,   7.2, 18.58, 0,   0,   0,   0.09762,
0634               1.0, 1.0,   1.0, 1.0,  3.0,      1.0,   1.0, 1.0, 3.5,   3.0, 2.0, 2.0, 6.0,
0635               6.0, 6.0,   4.0, 12.0, 6.0,      6.0,   6.0, 2.0, 2.0,   1.0, 1.0},
0636 
0637              // std
0638              {1,   65.51, 0.1, 0.1,  0.2033, 36.07, 1,   263.3, 5.019, 1,   1,   1,   0.3956,
0639               1.0, 1.0,   1.0, 1.0,  3.0,    1.0,   1.0, 1.0,   3.5,   3.0, 2.0, 2.0, 6.0,
0640               6.0, 6.0,   4.0, 12.0, 6.0,    6.0,   6.0, 2.0,   2.0,   1.0, 1.0},
0641 
0642              // lim_min
0643              {-inf, -5,   -1.0, -1.0, -5,   -5,   -inf, -5,   -5,   -inf, -inf, -inf, -5,
0644               -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0,
0645               -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0},
0646 
0647              // lim_max
0648              {inf, 5,   1.0, 1.0, 5,   5,   inf, 5,   5,   inf, inf, inf, 5,   1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
0649               1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0},
0650 
0651          }},  // end Muon, is_inner=true
0652 
0653         {std::make_pair(FeatureT::PfCand_chHad, false),
0654          {
0655              // mean
0656              {0, 0.02191,  0.0,  0.0,      0,         0,         0,        0,         0,
0657               0, 0,        6.0,  0.00106,  -0.001523, -0.008181, 0.004498, 4.287e-06, -0.007022,
0658               0, -0.01495, 6.04, -0.01381, 323.5,     0.753,     13.6,     0,         1.3},
0659 
0660              // std
0661              {1,     0.08964, 0.5,   0.5,   1, 1,     1,     1,     1,     1,     1,     6.0, 1.732, 1.741,
0662               8.372, 1.783,   1.792, 8.447, 1, 2.481, 33.16, 8.026, 443.9, 3.439, 6.624, 1,   1.3},
0663 
0664              // lim_min
0665              {-inf, -5, -1.0, -1.0, -inf, -inf, -inf, -inf, -inf, -inf, -inf, -1.0, -5,  -5,
0666               -5,   -5, -5,   -5,   -inf, -5,   -5,   -5,   -5,   -5,   -5,   -inf, -1.0},
0667 
0668              // lim_max
0669              {inf, 5, 1.0, 1.0, inf, inf, inf, inf, inf, inf, inf, 1.0, 5,  5,
0670               5,   5, 5,   5,   inf, 5,   5,   5,   5,   5,   5,   inf, 1.0},
0671          }},  // end PfCand_chHad, is_inner=false
0672 
0673         {std::make_pair(FeatureT::PfCand_chHad, true),
0674          {
0675              // mean
0676              {0, 0.2482,    0.0,  0.0,       0,          0,         0,        0,        0,
0677               0, 0,         6.0,  0.0003524, -0.0003693, -0.002133, 0.003532, 0.000612, -0.0003197,
0678               0, -0.001701, 4.04, -0.002282, 61.12,      0.9004,    14.73,    0,        1.3},
0679 
0680              // std
0681              {1,     0.3601, 0.1,   0.1,   1, 1,     1,     1,     1,     1,    1,     6.0, 0.8533, 0.8569,
0682               4.132, 1.033,  1.039, 4.436, 1, 1.001, 16.62, 3.254, 244.4, 4.37, 5.599, 1,   1.3},
0683 
0684              // lim_min
0685              {-inf, -5, -1.0, -1.0, -inf, -inf, -inf, -inf, -inf, -inf, -inf, -1.0, -5,  -5,
0686               -5,   -5, -5,   -5,   -inf, -5,   -5,   -5,   -5,   -5,   -5,   -inf, -1.0},
0687 
0688              // lim_max
0689              {inf, 5, 1.0, 1.0, inf, inf, inf, inf, inf, inf, inf, 1.0, 5,  5,
0690               5,   5, 5,   5,   inf, 5,   5,   5,   5,   5,   5,   inf, 1.0},
0691          }},  // end PfCand_chHad, is_inner=true
0692 
0693         {std::make_pair(FeatureT::PfCand_nHad, false),
0694          {
0695              // mean
0696              {0, 0.05398, 0.0, 0.0, 0, 0, 0},
0697 
0698              // std
0699              {1, 0.2929, 0.5, 0.5, 1, 1, 1},
0700 
0701              // lim_min
0702              {-inf, -5, -1.0, -1.0, -inf, -inf, -inf},
0703 
0704              // lim_max
0705              {inf, 5, 1.0, 1.0, inf, inf, inf},
0706 
0707          }},  // end PfCand_nHad, is_inner=false
0708 
0709         {std::make_pair(FeatureT::PfCand_nHad, true),
0710          {
0711              // mean
0712              {0, 0.2553, 0.0, 0.0, 0, 0, 0},
0713 
0714              // std
0715              {1, 0.2687, 0.1, 0.1, 1, 1, 1},
0716 
0717              // lim_min
0718              {-inf, -5, -1.0, -1.0, -inf, -inf, -inf},
0719 
0720              // lim_max
0721              {inf, 5, 1.0, 1.0, inf, inf, inf},
0722 
0723          }},  // end PfCand_nHad, is_inner=true
0724 
0725     };  // end scalingParamsMap_v2p5
0726 
0727   };  // namespace Scaling
0728 };    // namespace deep_tau
0729 
0730 #endif