00001
00002
00003 #ifndef DataFormats_SiStripCommon_ConstantsForHardwareSystems_H
00004 #define DataFormats_SiStripCommon_ConstantsForHardwareSystems_H
00005
00006 #include "DataFormats/FEDRawData/interface/FEDNumbering.h"
00007 #include "DataFormats/SiStripCommon/interface/Constants.h"
00008
00014 namespace sistrip {
00015
00016
00017
00018 static const uint16_t FED_ADC_RANGE = 0x400;
00019
00020
00021
00022 static const uint16_t FED_ID_MIN = static_cast<uint16_t>( FEDNumbering::getSiStripFEDIds().first );
00023 static const uint16_t FED_ID_MAX = static_cast<uint16_t>( FEDNumbering::getSiStripFEDIds().second );
00024 static const uint16_t CMS_FED_ID_MAX = static_cast<uint16_t>( FEDNumbering::lastFEDId() );
00025 static const uint16_t NUMBER_OF_FEDS = static_cast<uint16_t>( FED_ID_MAX - FED_ID_MIN );
00026
00027
00028
00029 static const uint16_t FEDCH_PER_FEUNIT = 12;
00030 static const uint16_t FEUNITS_PER_FED = 8;
00031 static const uint16_t FEDCH_PER_FED = FEDCH_PER_FEUNIT * FEUNITS_PER_FED;
00032
00033
00034
00035 static const uint16_t APVS_PER_FEDCH = 2;
00036 static const uint16_t APVS_PER_FEUNIT = APVS_PER_FEDCH * FEDCH_PER_FEUNIT;
00037 static const uint16_t APVS_PER_FED = APVS_PER_FEUNIT * FEUNITS_PER_FED;
00038
00039 static const uint16_t APVS_PER_CHAN = 2;
00040 static const uint16_t CHANS_PER_LLD = 3;
00041
00042
00043
00044 static const uint16_t STRIPS_PER_APV = 128;
00045 static const uint16_t STRIPS_PER_FEDCH = STRIPS_PER_APV * APVS_PER_FEDCH;
00046 static const uint16_t STRIPS_PER_FEUNIT = STRIPS_PER_FEDCH * FEDCH_PER_FEUNIT;
00047 static const uint16_t STRIPS_PER_FED = STRIPS_PER_FEUNIT * FEUNITS_PER_FED;
00048
00049
00050
00051 static const uint16_t DAQ_HDR_SIZE = 8;
00052 static const uint16_t TRK_HDR_SIZE = 8;
00053 static const uint16_t FE_HDR_SIZE = 16;
00054 static const uint16_t APV_ERROR_HDR_SIZE = 24;
00055 static const uint16_t FULL_DEBUG_HDR_SIZE = 8 * FE_HDR_SIZE;
00056
00057
00058
00059
00060
00061
00062 static const uint16_t FEC_RING_MIN = 1;
00063 static const uint16_t FEC_RING_MAX = 8;
00064
00065 static const uint16_t CCU_ADDR_MIN = 1;
00066 static const uint16_t CCU_ADDR_MAX = 127;
00067
00068 static const uint16_t CCU_CHAN_MIN = 16;
00069 static const uint16_t CCU_CHAN_MAX = 31;
00070
00071 static const uint16_t LLD_CHAN_MIN = 1;
00072 static const uint16_t LLD_CHAN_MAX = 3;
00073
00074 static const uint16_t APV_I2C_MIN = 32;
00075 static const uint16_t APV_I2C_MAX = 37;
00076
00077
00078
00079 static const uint16_t SLOTS_PER_CRATE = 20;
00080
00081 static const uint16_t CRATE_SLOT_MIN = 2;
00082 static const uint16_t CRATE_SLOT_MAX = 21;
00083
00084 static const uint16_t MAX_FEDS_PER_CRATE = 16;
00085 static const uint16_t MAX_FECS_PER_CRATE = 20;
00086
00087 static const uint16_t FED_CRATE_MIN = 1;
00088 static const uint16_t FED_CRATE_MAX = 60;
00089
00090 static const uint16_t FEC_CRATE_MIN = 1;
00091 static const uint16_t FEC_CRATE_MAX = 4;
00092
00093
00094
00095
00096 static const std::string unknownApvReadoutMode_ = "UnknownApvReadoutMode";
00097 static const std::string undefinedApvReadoutMode_ = "UndefinedApvReadoutMode";
00098
00099 static const std::string apvPeakMode_ = "ApvPeakMode";
00100 static const std::string apvDeconMode_ = "ApvDeconMode";
00101 static const std::string apvMultiMode_ = "ApvMultiMode";
00102
00103 static const std::string unknownFedReadoutMode_ = "UnknownFedReadoutMode";
00104 static const std::string undefinedFedReadoutMode_ = "UndefinedFedReadoutMode";
00105
00106 static const std::string fedScopeMode_ = "FedScopeMode";
00107 static const std::string fedVirginRaw_ = "FedVirginRaw";
00108 static const std::string fedProcRaw_ = "FedProcessedRaw";
00109 static const std::string fedZeroSuppr_ = "FedZeroSuppressed";
00110 static const std::string fedZeroSupprLite_ = "FedZeroSupprressedLite";
00111
00112
00113
00114 enum ApvReadoutMode { UNKNOWN_APV_READOUT_MODE = sistrip::unknown_,
00115 UNDEFINED_APV_READOUT_MODE = sistrip::invalid_,
00116 APV_PEAK_MODE = 1,
00117 APV_DECON_MODE = 2,
00118 APV_MULTI_MODE = 3
00119 };
00120
00121 enum FedReadoutMode { UNKNOWN_FED_READOUT_MODE = sistrip::unknown_,
00122 UNDEFINED_FED_READOUT_MODE = sistrip::invalid_,
00123 FED_SCOPE_MODE = 1,
00124 FED_VIRGIN_RAW = 2,
00125 FED_PROC_RAW = 6,
00126 FED_ZERO_SUPPR = 10,
00127 FED_ZERO_SUPPR_LITE = 12
00128 };
00129
00130 enum FedReadoutPath { UNKNOWN_FED_READOUT_PATH = sistrip::unknown_,
00131 UNDEFINED_FED_READOUT_PATH = sistrip::invalid_,
00132 VME_READOUT = 1,
00133 SLINK_READOUT = 2
00134 };
00135
00136 enum FedBufferFormat { UNKNOWN_FED_BUFFER_FORMAT = sistrip::unknown_,
00137 UNDEFINED_FED_BUFFER_FORMAT = sistrip::invalid_,
00138 FULL_DEBUG_FORMAT = 1,
00139 APV_ERROR_FORMAT = 2
00140 };
00141
00142 enum FedSuperMode { UNKNOWN_FED_SUPER_MODE = sistrip::unknown_,
00143 UNDEFINED_FED_SUPER_MODE = sistrip::invalid_,
00144 REAL = 0,
00145 FAKE = 1
00146 };
00147
00148 }
00149
00150 #endif // DataFormats_SiStripCommon_ConstantsForHardwareSystems_H
00151
00152