001 #ifndef HH_CHIPSTATUS
002 #define HH_CHIPSTATUS
003 #include <iostream>
004 #include <sstream>
005 #include <fstream>
006 #include <cstdio>
007 #include <cstdlib>
008 #include <string>
009 #include <ctime>
010 #include <iomanip>
011 #include <map>
012 #include "DBObjects/TimeStamp.hh"
013 #include "DBManager/Result.hh"
014 #include "CalibDB/ROKey.hh"
015 #include "DBViews/SVX_Configurations.hh"
016 #include "DBViews/SVX_Configurations.Defs.hh"
017 #include "DBViews/SVX_Rundate_View.hh"
018 #include "DBViews/SVX_Rundate_View.Defs.hh"
019 #include "TrackingObjects/SiData/SiChipKey.hh"
020 #include "TrackingObjects/SiData/Chipstream.hh"
021 #include "SiliconGeometry/SiDigiCode.hh"
022
023
024
025
026
027
028
029 class ChipStatus{
030 public:
031
032
033 ChipStatus(const ChipStatus &);
034
035
036
037 ChipStatus(std::string dbid, int runnumber);
038
039
040 ~ChipStatus();
041
042 int allDPS();
043
044
045
046
047
048
049
050 int laddersOn(int key) const;
051
052
053 int getMyron() const;
054 int getModeL00() const;
055 int getModeSVX() const;
056 int getModeISL() const;
057
058
059 int getModeGlobal() const;
060
061
062
063
064 int findJobset(std::string filename) const;
065
066
067 time_t getRunDate();
068 long getRunType();
069 long getNevents();
070 long getExtra0();
071
072
073 void setDB(std::string );
074
075 bool valid() const;
076
077
078 const std::map<SiChipKey, Chipstream>* getChipInfo() const;
079
080 private:
081
082 Result::Code makeMap(int);
083 int getBit(const char *, const int);
084 void putBit(char *, const int, const int);
085 void putABit(char *, const int, const int);
086 int sortBitString(const int, const int, char []);
087
088 int _runnumber;
089 long _runtype, _nevents, _extra0;
090 std::string _dbname;
091 int _myronMode;
092 int _modeGlobal, _modeL00, _modeSVX, _modeISL;
093 bool _valid;
094 time_t _rundate;
095 bool _runIncludesSilicon;
096
097 std::map<SiChipKey, Chipstream> *chipInfo;
098 std::map<SiChipKey, Chipstream>::iterator chip_iter;
099
100 };
101
102 #endif
103
Send problems or questions to cdfcode@fnal.gov