File indexing completed on 2023-10-25 09:41:57
0001 #ifndef MESetBinningUtils_H
0002 #define MESetBinningUtils_H
0003
0004 #include "DQMServices/Core/interface/DQMStore.h"
0005 #include "Geometry/EcalMapping/interface/EcalElectronicsMapping.h"
0006
0007 #include <string>
0008
0009 class DetId;
0010 class EcalElectronicsId;
0011 namespace edm {
0012 class ParameterSet;
0013 class ParameterSetDescription;
0014 }
0015
0016 namespace ecaldqm {
0017 namespace binning {
0018 enum ObjectType {
0019 kEB,
0020 kEE,
0021 kEEm,
0022 kEEp,
0023 kSM,
0024 kEBSM,
0025 kEESM,
0026 kSMMEM,
0027 kEBSMMEM,
0028 kEESMMEM,
0029 kEcal,
0030 kMEM,
0031 kEBMEM,
0032 kEEMEM,
0033 kEcal2P,
0034 kEcal3P,
0035 kEE2P,
0036 kMEM2P,
0037 kChannel,
0038 nObjType
0039 };
0040
0041 enum BinningType {
0042 kCrystal,
0043 kTriggerTower,
0044 kSuperCrystal,
0045 kPseudoStrip,
0046 kTCC,
0047 kDCC,
0048 kProjEta,
0049 kProjPhi,
0050 kRCT,
0051 kUser,
0052 kReport,
0053 kTrend,
0054 nBinType
0055 };
0056
0057 enum Constants {
0058 nPresetBinnings = kRCT + 1,
0059
0060 nEBSMEta = 85,
0061 nEBSMPhi = 20,
0062 nEESMX = 40,
0063 nEESMXRed = 30,
0064 nEESMXExt = 45,
0065 nEESMY = 40,
0066 nEESMYRed = 35,
0067
0068 nEBEtaBins = 34,
0069 nEEEtaBins = 20,
0070 nPhiBins = 36
0071 };
0072
0073 struct AxisSpecs {
0074 int nbins;
0075 float low, high;
0076 std::vector<float> edges;
0077 std::vector<std::string> labels;
0078 std::string title;
0079 AxisSpecs() : nbins(0), low(0.), high(0.), edges(0), labels(0), title("") { ; };
0080 };
0081
0082 AxisSpecs getBinning(EcalElectronicsMapping const *, ObjectType, BinningType, bool, int, unsigned);
0083
0084 int findBin1D(EcalElectronicsMapping const *, ObjectType, BinningType, DetId const &);
0085 int findBin1D(EcalElectronicsMapping const *, ObjectType, BinningType, EcalElectronicsId const &);
0086 int findBin1D(EcalElectronicsMapping const *, ObjectType, BinningType, int);
0087
0088 int findBin2D(EcalElectronicsMapping const *, ObjectType, BinningType, DetId const &);
0089 int findBin2D(EcalElectronicsMapping const *, ObjectType, BinningType, EcalElectronicsId const &);
0090 int findBin2D(EcalElectronicsMapping const *, ObjectType, BinningType, int);
0091
0092 unsigned findPlotIndex(EcalElectronicsMapping const *, ObjectType, DetId const &);
0093 unsigned findPlotIndex(EcalElectronicsMapping const *, ObjectType, EcalElectronicsId const &);
0094 unsigned findPlotIndex(EcalElectronicsMapping const *, ObjectType, int, BinningType _btype = kDCC);
0095
0096 ObjectType getObject(ObjectType, unsigned);
0097
0098 unsigned getNObjects(ObjectType);
0099
0100 bool isValidIdBin(EcalElectronicsMapping const *, ObjectType, BinningType, unsigned, int);
0101
0102 std::string channelName(EcalElectronicsMapping const *, uint32_t, BinningType _btype = kDCC);
0103
0104 uint32_t idFromName(std::string const &);
0105 uint32_t idFromBin(ObjectType, BinningType, unsigned, int);
0106
0107 AxisSpecs formAxis(edm::ParameterSet const &);
0108 void fillAxisDescriptions(edm::ParameterSetDescription &);
0109
0110 ObjectType translateObjectType(std::string const &);
0111 BinningType translateBinningType(std::string const &);
0112 dqm::legacy::MonitorElement::Kind translateKind(std::string const &);
0113
0114
0115
0116
0117 int xlow_(int);
0118 int ylow_(int);
0119
0120 AxisSpecs getBinningEB_(BinningType, bool, int);
0121 AxisSpecs getBinningEE_(BinningType, bool, int, int);
0122 AxisSpecs getBinningSM_(BinningType, bool, unsigned, int, EcalElectronicsMapping const *);
0123 AxisSpecs getBinningSMMEM_(BinningType, bool, unsigned, int);
0124 AxisSpecs getBinningEcal_(BinningType, bool, int);
0125 AxisSpecs getBinningMEM_(BinningType, bool, int, int);
0126
0127 int findBinCrystal_(EcalElectronicsMapping const *, ObjectType, DetId const &, int = -1);
0128 int findBinCrystal_(EcalElectronicsMapping const *, ObjectType, EcalElectronicsId const &);
0129 int findBinTriggerTower_(EcalElectronicsMapping const *, ObjectType, DetId const &);
0130 int findBinPseudoStrip_(EcalElectronicsMapping const *, ObjectType, DetId const &);
0131 int findBinRCT_(ObjectType, DetId const &);
0132 int findBinSuperCrystal_(EcalElectronicsMapping const *, ObjectType, DetId const &, int = -1);
0133 int findBinSuperCrystal_(EcalElectronicsMapping const *, ObjectType, EcalElectronicsId const &);
0134 }
0135 }
0136
0137 #endif