File indexing completed on 2024-04-06 11:58:13
0001 #ifndef PixelPortCardConfig_h
0002 #define PixelPortCardConfig_h
0003
0004
0005
0006
0007
0008
0009 #include <vector>
0010 #include <string>
0011 #include <map>
0012 #include "CalibFormats/SiPixelObjects/interface/PixelConfigBase.h"
0013
0014 namespace pos {
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027 class PixelPortCardConfig : public PixelConfigBase {
0028 public:
0029 PixelPortCardConfig(std::vector<std::vector<std::string> > &tableMat);
0030 PixelPortCardConfig(std::string);
0031
0032 void writeASCII(std::string dir = "") const override;
0033 void writeXML(pos::PixelConfigKey key, int version, std::string path) const override { ; }
0034 void writeXMLHeader(pos::PixelConfigKey key,
0035 int version,
0036 std::string path,
0037 std::ofstream *out,
0038 std::ofstream *out1 = nullptr,
0039 std::ofstream *out2 = nullptr) const override;
0040 void writeXML(std::ofstream *out, std::ofstream *out1 = nullptr, std::ofstream *out2 = nullptr) const override;
0041 void writeXMLTrailer(std::ofstream *out,
0042 std::ofstream *out1 = nullptr,
0043 std::ofstream *out2 = nullptr) const override;
0044
0045 const std::string &getPortCardName() const { return portcardname_; }
0046 void setPortCardName(std::string newName) { portcardname_ = newName; }
0047
0048 unsigned int getdevicesize() const;
0049 std::string getTKFECID() const;
0050 unsigned int getringAddress() const;
0051 unsigned int getccuAddress() const;
0052 unsigned int getchannelAddress() const;
0053 unsigned int geti2cSpeed() const;
0054 std::string gettype() const;
0055 unsigned int getdeviceAddress(unsigned int i) const;
0056 unsigned int getdeviceValues(unsigned int i) const;
0057 unsigned int getdeviceAddressForSetting(std::string settingName) const;
0058 unsigned int getdeviceValuesForSetting(std::string settingName) const;
0059 unsigned int getdeviceValuesForAddress(unsigned int address) const;
0060 unsigned int getAOHBias(unsigned int AOHNumber) const {
0061 return getdeviceValuesForAddress(AOHBiasAddressFromAOHNumber(AOHNumber));
0062 }
0063 void setdeviceValues(unsigned int address, unsigned int value);
0064 void setdeviceValues(std::string settingName, unsigned int value);
0065
0066 unsigned int AOHBiasAddressFromAOHNumber(unsigned int AOHNumber) const;
0067 unsigned int AOHGainAddressFromAOHNumber(unsigned int AOHNumber) const;
0068
0069 void setAOHGain(unsigned int AOHNumber, unsigned int value) {
0070 setAOHGain(AOHGainStringFromAOHNumber(AOHNumber), value);
0071 }
0072 unsigned int getAOHGain(unsigned int AOHNumber) const;
0073
0074 unsigned int new_PLL_CTR2_value(std::string CTR4or5, unsigned int last_CTR2) const;
0075
0076 private:
0077 void fillNameToAddress();
0078 void fillDBToFileAddress();
0079
0080 bool containsDeviceAddress(unsigned int deviceAddress) const;
0081 bool containsSetting(std::string settingName) const {
0082 return containsDeviceAddress(getdeviceAddressForSetting(settingName));
0083 }
0084
0085 void setAOHGain(std::string settingName, unsigned int value);
0086 void setDataBaseAOHGain(std::string settingName, unsigned int value);
0087 std::string AOHGainStringFromAOHNumber(unsigned int AOHNumber) const;
0088
0089 std::string portcardname_;
0090
0091 std::string TKFECID_;
0092 unsigned int ringAddress_;
0093 unsigned int ccuAddress_;
0094
0095 unsigned int channelAddress_;
0096 std::vector<std::pair<unsigned int, unsigned int> > device_;
0097 unsigned int i2cSpeed_;
0098
0099
0100 std::vector<unsigned int> key_;
0101 unsigned int aohcount_;
0102 void sortDeviceList();
0103
0104 std::string type_;
0105
0106 std::map<std::string, unsigned int>
0107 nameToAddress_;
0108 std::map<std::string, std::string> nameDBtoFileConversion_;
0109 };
0110 }
0111
0112 #endif