File indexing completed on 2024-04-06 12:01:59
0001 #ifndef CSCObjects_CSCDBCrosstalk_h
0002 #define CSCObjects_CSCDBCrosstalk_h
0003
0004 #include "CondFormats/Serialization/interface/Serializable.h"
0005
0006 #include <iosfwd>
0007 #include <vector>
0008
0009 class CSCDBCrosstalk {
0010 public:
0011 CSCDBCrosstalk() {}
0012 ~CSCDBCrosstalk() {}
0013
0014 struct Item {
0015 short int xtalk_slope_right;
0016 short int xtalk_intercept_right;
0017 short int xtalk_slope_left;
0018 short int xtalk_intercept_left;
0019
0020 COND_SERIALIZABLE;
0021 };
0022 int factor_slope;
0023 int factor_intercept;
0024
0025 enum factors { FSLOPE = 10000000, FINTERCEPT = 100000 };
0026
0027 typedef std::vector<Item> CrosstalkContainer;
0028 CrosstalkContainer crosstalk;
0029
0030 const Item& item(int index) const { return crosstalk[index]; }
0031 short int rslope(int index) const { return crosstalk[index].xtalk_slope_right; }
0032 short int rinter(int index) const { return crosstalk[index].xtalk_intercept_right; }
0033 short int lslope(int index) const { return crosstalk[index].xtalk_slope_left; }
0034 short int linter(int index) const { return crosstalk[index].xtalk_intercept_left; }
0035 int sscale() const { return factor_slope; }
0036 int iscale() const { return factor_intercept; }
0037
0038 COND_SERIALIZABLE;
0039 };
0040
0041 std::ostream& operator<<(std::ostream& os, const CSCDBCrosstalk& cscdb);
0042
0043 #endif