File indexing completed on 2024-04-06 12:05:13
0001
0002 #ifndef DataFormats_SiStripCommon_ConstantsForHardwareSystems_H
0003 #define DataFormats_SiStripCommon_ConstantsForHardwareSystems_H
0004
0005 #include "DataFormats/FEDRawData/interface/FEDNumbering.h"
0006 #include "DataFormats/SiStripCommon/interface/Constants.h"
0007
0008
0009
0010
0011
0012
0013 namespace sistrip {
0014
0015
0016
0017 static const uint16_t FED_ADC_RANGE = 0x400;
0018
0019
0020
0021 static const uint16_t FED_ID_MIN = static_cast<uint16_t>(FEDNumbering::MINSiStripFEDID);
0022 static const uint16_t FED_ID_MAX = static_cast<uint16_t>(FEDNumbering::MAXSiStripFEDID);
0023 static const uint16_t CMS_FED_ID_MAX = static_cast<uint16_t>(FEDNumbering::MAXFEDID);
0024 static const uint16_t NUMBER_OF_FEDS = static_cast<uint16_t>(FED_ID_MAX - FED_ID_MIN + 1);
0025
0026
0027
0028 static const uint16_t FEDCH_PER_FEUNIT = 12;
0029 static const uint16_t FEUNITS_PER_FED = 8;
0030 static const uint16_t FEDCH_PER_FED = FEDCH_PER_FEUNIT * FEUNITS_PER_FED;
0031
0032
0033
0034 static const uint16_t APVS_PER_FEDCH = 2;
0035 static const uint16_t APVS_PER_FEUNIT = APVS_PER_FEDCH * FEDCH_PER_FEUNIT;
0036 static const uint16_t APVS_PER_FED = APVS_PER_FEUNIT * FEUNITS_PER_FED;
0037
0038 static const uint16_t APVS_PER_CHAN = 2;
0039 static const uint16_t CHANS_PER_LLD = 3;
0040
0041
0042
0043 static const uint16_t STRIPS_PER_APV = 128;
0044 static const uint16_t STRIPS_PER_FEDCH = STRIPS_PER_APV * APVS_PER_FEDCH;
0045 static const uint16_t STRIPS_PER_FEUNIT = STRIPS_PER_FEDCH * FEDCH_PER_FEUNIT;
0046 static const uint16_t STRIPS_PER_FED = STRIPS_PER_FEUNIT * FEUNITS_PER_FED;
0047 static constexpr float MeVperADCStrip = 9.5665E-4;
0048
0049
0050
0051 static const uint16_t DAQ_HDR_SIZE = 8;
0052 static const uint16_t TRK_HDR_SIZE = 8;
0053 static const uint16_t FE_HDR_SIZE = 16;
0054 static const uint16_t APV_ERROR_HDR_SIZE = 24;
0055 static const uint16_t FULL_DEBUG_HDR_SIZE = 8 * FE_HDR_SIZE;
0056
0057
0058
0059
0060
0061
0062 static const uint16_t FEC_RING_MIN = 1;
0063 static const uint16_t FEC_RING_MAX = 8;
0064
0065 static const uint16_t CCU_ADDR_MIN = 1;
0066 static const uint16_t CCU_ADDR_MAX = 127;
0067
0068 static const uint16_t CCU_CHAN_MIN = 16;
0069 static const uint16_t CCU_CHAN_MAX = 31;
0070
0071 static const uint16_t LLD_CHAN_MIN = 1;
0072 static const uint16_t LLD_CHAN_MAX = 3;
0073
0074 static const uint16_t APV_I2C_MIN = 32;
0075 static const uint16_t APV_I2C_MAX = 37;
0076
0077
0078
0079 static const uint16_t SLOTS_PER_CRATE = 20;
0080
0081 static const uint16_t CRATE_SLOT_MIN = 2;
0082 static const uint16_t CRATE_SLOT_MAX = 21;
0083
0084 static const uint16_t MAX_FEDS_PER_CRATE = 16;
0085 static const uint16_t MAX_FECS_PER_CRATE = 20;
0086
0087 static const uint16_t FED_CRATE_MIN = 1;
0088 static const uint16_t FED_CRATE_MAX = 60;
0089
0090 static const uint16_t FEC_CRATE_MIN = 1;
0091 static const uint16_t FEC_CRATE_MAX = 4;
0092
0093
0094
0095 static const char unknownApvReadoutMode_[] = "UnknownApvReadoutMode";
0096 static const char undefinedApvReadoutMode_[] = "UndefinedApvReadoutMode";
0097
0098 static const char apvPeakMode_[] = "ApvPeakMode";
0099 static const char apvDeconMode_[] = "ApvDeconMode";
0100 static const char apvMultiMode_[] = "ApvMultiMode";
0101
0102 static const char unknownFedReadoutMode_[] = "UnknownFedReadoutMode";
0103 static const char undefinedFedReadoutMode_[] = "UndefinedFedReadoutMode";
0104
0105 static const char fedScopeMode_[] = "FedScopeMode";
0106 static const char fedVirginRaw_[] = "FedVirginRaw";
0107 static const char fedProcRaw_[] = "FedProcessedRaw";
0108 static const char fedZeroSuppr_[] = "FedZeroSuppressed";
0109 static const char fedZeroSupprCMO_[] = "FedZeroSuppressedCMOverride";
0110 static const char fedZeroSupprLite_[] = "FedZeroSupprressedLite";
0111 static const char fedZeroSupprLiteCMO_[] = "FedZeroSuppressedLiteCMOverride";
0112 static const char fedZeroSupprLite8TT_[] = "FedZeroSuppressedLite8TT";
0113 static const char fedZeroSupprLite8TTCMO_[] = "FedZeroSuppressedLite8TTCMOverride";
0114 static const char fedZeroSupprLite8TB_[] = "FedZeroSuppressedLite8TB";
0115 static const char fedZeroSupprLite8TBCMO_[] = "FedZeroSuppressedLite8TBCMOverride";
0116 static const char fedZeroSupprLite8BB_[] = "FedZeroSuppressedLite8BB";
0117 static const char fedZeroSupprLite8BBCMO_[] = "FedZeroSuppressedLite8BBCMOverride";
0118 static const char fedPreMixRaw_[] = "FedPreMixRaw";
0119
0120
0121
0122 enum ApvReadoutMode {
0123 UNKNOWN_APV_READOUT_MODE = sistrip::unknown_,
0124 UNDEFINED_APV_READOUT_MODE = sistrip::invalid_,
0125 APV_PEAK_MODE = 1,
0126 APV_DECON_MODE = 2,
0127 APV_MULTI_MODE = 3
0128 };
0129
0130 enum FedReadoutMode {
0131 UNKNOWN_FED_READOUT_MODE = sistrip::unknown_,
0132 UNDEFINED_FED_READOUT_MODE = sistrip::invalid_,
0133 FED_SCOPE_MODE = 1,
0134 FED_VIRGIN_RAW = 2,
0135 FED_PROC_RAW = 6,
0136 FED_ZERO_SUPPR = 10,
0137 FED_ZERO_SUPPR_LITE = 3,
0138 FED_ZERO_SUPPR_LITE_CMO = 4,
0139 FED_ZERO_SUPPR_LITE8_TT = 12,
0140 FED_ZERO_SUPPR_LITE8_TT_CMO = 8,
0141 FED_ZERO_SUPPR_LITE8_TB = 5,
0142 FED_ZERO_SUPPR_LITE8_TB_CMO = 7,
0143 FED_ZERO_SUPPR_LITE8_BB = 9,
0144 FED_ZERO_SUPPR_LITE8_BB_CMO = 11,
0145 FED_PREMIX_RAW = 15
0146 };
0147
0148 enum FedReadoutPath {
0149 UNKNOWN_FED_READOUT_PATH = sistrip::unknown_,
0150 UNDEFINED_FED_READOUT_PATH = sistrip::invalid_,
0151 VME_READOUT = 1,
0152 SLINK_READOUT = 2
0153 };
0154
0155 enum FedBufferFormat {
0156 UNKNOWN_FED_BUFFER_FORMAT = sistrip::unknown_,
0157 UNDEFINED_FED_BUFFER_FORMAT = sistrip::invalid_,
0158 FULL_DEBUG_FORMAT = 1,
0159 APV_ERROR_FORMAT = 2
0160 };
0161
0162 enum FedSuperMode {
0163 UNKNOWN_FED_SUPER_MODE = sistrip::unknown_,
0164 UNDEFINED_FED_SUPER_MODE = sistrip::invalid_,
0165 REAL = 0,
0166 FAKE = 1
0167 };
0168
0169 }
0170
0171 #endif