File indexing completed on 2024-04-06 11:58:13
0001 #ifndef PixelROCTrimBits_h
0002 #define PixelROCTrimBits_h
0003
0004
0005
0006
0007
0008
0009 #include <sstream>
0010 #include <fstream>
0011 #include "CalibFormats/SiPixelObjects/interface/PixelROCName.h"
0012 #include <string>
0013
0014 namespace pos {
0015
0016
0017
0018
0019
0020 class PixelROCTrimBits;
0021 std::ostream& operator<<(std::ostream& s, const PixelROCTrimBits& trimbits);
0022
0023 class PixelROCTrimBits {
0024 public:
0025 PixelROCTrimBits();
0026
0027 void setROCTrimBits(PixelROCName rocid, std::string bits);
0028
0029 int read(PixelROCName rocid, std::string in);
0030 int read(PixelROCName rocid, std::ifstream& in);
0031 int read(PixelROCName rocid, std::istringstream& in);
0032
0033 int readBinary(PixelROCName rocid, std::ifstream& in);
0034
0035 friend std::ostream& operator<<(std::ostream& s, const PixelROCTrimBits& trimbits);
0036
0037 unsigned int trim(unsigned int col, unsigned int row) const;
0038
0039 void setTrim(unsigned int col, unsigned int row, unsigned int trim);
0040
0041 void writeBinary(std::ofstream& out) const;
0042
0043 void writeASCII(std::ofstream& out) const;
0044 void writeXML(std::ofstream* out) const;
0045
0046 PixelROCName name() const { return rocid_; }
0047
0048 private:
0049 unsigned char bits_[2080];
0050 PixelROCName rocid_;
0051 };
0052
0053 }
0054 #endif