00001 #ifndef RUNDESC_HH 00002 #define RUNDESC_HH 00003 00004 ////////////////////////////////////////////////////////////////////////// 00005 // // 00006 // SteerDesc for MICROMEGAS READOUT // 00007 // // 00008 ////////////////////////////////////////////////////////////////////////// 00009 00010 #include <string> 00011 #include <vector> 00012 #include "Run.hh" 00013 #include "Detector.hh" 00014 00015 typedef struct 00016 { 00017 int id; 00018 int boardId; 00019 int difId; 00020 int chamberId; 00021 } ChipInfo_t; 00022 00023 typedef struct 00024 { 00025 int id; 00026 int difId; 00027 int chamberId; 00028 } BoardInfo_t; 00029 00030 typedef struct 00031 { 00032 int id; 00033 int chamberId; 00034 } DifInfo_t; 00035 00036 typedef struct 00037 { 00038 std::string type; 00039 int xPos; 00040 int yPos; 00041 int zPos; 00042 int id; 00043 } chamber_info_t; 00044 00045 typedef struct 00046 { 00047 std::string path; 00048 std::string type; 00049 } input_info_t; 00050 00051 typedef struct 00052 { 00053 int scId; 00054 std::string type; 00055 int id; 00056 std::string name; 00057 } SlowControl_t; 00058 00059 ////////////////////////////////////////////////////////////////////////// 00060 /// CLASS EVENT // 00061 ////////////////////////////////////////////////////////////////////////// 00062 class SteerDesc { 00063 00064 public: 00065 SteerDesc(); 00066 ~SteerDesc(); 00067 bool setRun(Run &cible); 00068 bool isValid(void) const; 00069 std::string SteerDesc::getSlowControlPath(); 00070 void print(void)const; 00071 00072 public: 00073 // input and output files for reconstruction 00074 input_info_t *inputInfo; 00075 std::vector<input_info_t> inputFiles; 00076 std::string outputFile; 00077 00078 // detector description 00079 std::string detectorName; 00080 std::string date; 00081 std::string runName; 00082 std::string description; 00083 int lastChamberId; 00084 int lastDifId; 00085 int lastBoardId; 00086 chamber_info_t *chamberInfo; 00087 std::vector<chamber_info_t> chambers; 00088 BoardInfo_t *boardInfo; 00089 std::vector<BoardInfo_t> boards; 00090 DifInfo_t *difInfo; 00091 std::vector<DifInfo_t> difs; 00092 ChipInfo_t *chipInfo; 00093 std::vector<ChipInfo_t> chips; 00094 00095 // slow control 00096 std::string slowControl; // slow control input file 00097 SlowControl_t *slowControlInfo; // temporary structure 00098 std::vector<SlowControl_t>slowControls; // list of slow control structures 00099 }; 00100 00101 #endif