Mode

StringToEnumParser

TriggerMode

Macros

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
#ifndef Geometry_HcalCommonData_HcalTopologyMode_H
#define Geometry_HcalCommonData_HcalTopologyMode_H

#include "FWCore/Utilities/interface/Exception.h"
#include <map>
#include <string>
#include <algorithm>

template <typename T>
class StringToEnumParser {
  std::map<std::string, T> enumMap;

public:
  StringToEnumParser(void);

  T parseString(const std::string &value) {
    typename std::map<std::string, T>::const_iterator iValue = enumMap.find(value);
    if (iValue == enumMap.end())
      throw cms::Exception("Configuration") << "the value " << value << " is not defined.";

    return iValue->second;
  }
};

namespace HcalTopologyMode {
  enum Mode {
    LHC = 0,    // Legacy HCAL
    H2 = 1,     // H2 TB
    SLHC = 2,   // Attemptf HE to be used for HGCal
    H2HE = 3,   // H2 TB with includng HE
    Run3 = 4,   // Run3 with inclusionof ZDC
    Run4 = 5,   // Post LS3
    Run2A = 6,  // With extended channels for HF
    Run2B = 7,  // With extended channels for HE
    Run2C = 8   // With extended channels for HB
  };

  enum TriggerMode {
    TriggerMode_2009 = 0,        // HF is summed in 3x2 regions
    TriggerMode_2016 = 1,        // HF is summed in both 3x2 and 1x1 regions
    TriggerMode_2018legacy = 2,  // For the database, before 2017 and 2017plan1 was introduced
    TriggerMode_2017 = 3,        // HF upgraded to QIE10
    TriggerMode_2017plan1 = 4,   // HF upgraded to QIE10, 1 RBX of HE to QIE11
    TriggerMode_2018 = 5,        // HF upgraded to QIE10, HE to QIE11
    TriggerMode_2021 = 6         // HF upgraded to QIE10, HBHE to QIE11
  };
}  // namespace HcalTopologyMode

#endif  // Geometry_HcalCommonData_HcalTopologyMode_H