![]() |
![]() |
00001 // Last commit: $Id: SiStripPartition.h,v 1.8 2008/06/06 14:45:23 bainbrid Exp $ 00002 00003 #ifndef OnlineDB_SiStripConfigDb_SiStripPartition_h 00004 #define OnlineDB_SiStripConfigDb_SiStripPartition_h 00005 00006 #include "DataFormats/SiStripCommon/interface/SiStripConstants.h" 00007 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00008 #include "boost/cstdint.hpp" 00009 #include <vector> 00010 #include <string> 00011 #include <ostream> 00012 #include <sstream> 00013 00014 class SiStripConfigDb; 00015 class SiStripPartition; 00016 00018 std::ostream& operator<< ( std::ostream&, const SiStripPartition& ); 00019 00025 class SiStripPartition { 00026 00027 public: 00028 00029 SiStripPartition(); 00030 00031 SiStripPartition( std::string partition_name ); 00032 00033 SiStripPartition( const SiStripPartition& ); 00034 00035 SiStripPartition& operator= ( const SiStripPartition& ); 00036 00037 bool operator== ( const SiStripPartition& ) const; 00038 00039 bool operator!= ( const SiStripPartition& ) const; 00040 00041 ~SiStripPartition(); 00042 00043 static std::string defaultPartitionName_; 00044 00045 typedef std::pair<uint32_t,uint32_t> Versions; 00046 00047 void reset(); 00048 00049 void pset( const edm::ParameterSet& ); 00050 00051 void update( const SiStripConfigDb* const ); 00052 00053 void print( std::stringstream&, bool using_db = false ) const; 00054 00055 // partition, run and version information 00056 00057 std::string partitionName() const; 00058 00059 uint32_t runNumber() const; 00060 00061 sistrip::RunType runType() const; 00062 00063 bool forceVersions() const; 00064 00065 bool forceCurrentState() const; 00066 00067 // description versions 00068 00069 Versions cabVersion() const; 00070 00071 Versions fedVersion() const; 00072 00073 Versions fecVersion() const; 00074 00075 Versions dcuVersion() const; 00076 00077 Versions psuVersion() const; 00078 00079 uint32_t globalAnalysisVersion() const; 00080 00081 Versions runTableVersion() const; 00082 00083 Versions fastCablingVersion() const; 00084 00085 Versions apvTimingVersion() const; 00086 00087 Versions optoScanVersion() const; 00088 00089 Versions vpspScanVersion() const; 00090 00091 Versions apvCalibVersion() const; 00092 00093 Versions pedestalsVersion() const; 00094 00095 Versions apvLatencyVersion() const; 00096 00097 Versions fineDelayVersion() const; 00098 00099 // input xml files 00100 00101 std::string inputModuleXml() const; 00102 00103 std::string inputDcuInfoXml() const; 00104 00105 std::vector<std::string> inputFecXml() const; 00106 00107 std::vector<std::string> inputFedXml() const; 00108 00109 // setters 00110 00111 void partitionName( std::string ); 00112 00113 void runNumber( uint32_t ); 00114 00115 void forceVersions( bool ); 00116 00117 void forceCurrentState( bool ); 00118 00119 private: 00120 00121 Versions versions( std::vector<uint32_t> ); 00122 00123 private: 00124 00125 std::string partitionName_; 00126 00127 uint32_t runNumber_; 00128 00129 sistrip::RunType runType_; 00130 00131 bool forceVersions_; 00132 00133 bool forceCurrentState_; 00134 00135 // device description versions 00136 00137 Versions cabVersion_; 00138 00139 Versions fedVersion_; 00140 00141 Versions fecVersion_; 00142 00143 Versions dcuVersion_; 00144 00145 Versions psuVersion_; 00146 00147 // analysis description versions 00148 00149 uint32_t globalAnalysisV_; 00150 00151 Versions runTableVersion_; 00152 00153 Versions fastCablingV_; 00154 00155 Versions apvTimingV_; 00156 00157 Versions optoScanV_; 00158 00159 Versions vpspScanV_; 00160 00161 Versions apvCalibV_; 00162 00163 Versions pedestalsV_; 00164 00165 Versions apvLatencyV_; 00166 00167 Versions fineDelayV_; 00168 00169 // input xml files 00170 00171 std::string inputModuleXml_; 00172 00173 std::string inputDcuInfoXml_; 00174 00175 std::vector<std::string> inputFecXml_; 00176 00177 std::vector<std::string> inputFedXml_; 00178 00179 }; 00180 00181 // ---------- Inline methods ---------- 00182 00183 inline std::string SiStripPartition::partitionName() const { return partitionName_; } 00184 inline uint32_t SiStripPartition::runNumber() const { return runNumber_; } 00185 inline sistrip::RunType SiStripPartition::runType() const { return runType_; } 00186 inline bool SiStripPartition::forceVersions() const { return forceVersions_; } 00187 inline bool SiStripPartition::forceCurrentState() const { return forceCurrentState_; } 00188 00189 inline SiStripPartition::Versions SiStripPartition::cabVersion() const { return cabVersion_; } 00190 inline SiStripPartition::Versions SiStripPartition::fedVersion() const { return fedVersion_; } 00191 inline SiStripPartition::Versions SiStripPartition::fecVersion() const { return fecVersion_; } 00192 inline SiStripPartition::Versions SiStripPartition::dcuVersion() const { return dcuVersion_; } 00193 inline SiStripPartition::Versions SiStripPartition::psuVersion() const { return psuVersion_; } 00194 00195 inline uint32_t SiStripPartition::globalAnalysisVersion() const { return globalAnalysisV_; } 00196 inline SiStripPartition::Versions SiStripPartition::runTableVersion() const { return runTableVersion_; } 00197 inline SiStripPartition::Versions SiStripPartition::fastCablingVersion() const { return fastCablingV_; } 00198 inline SiStripPartition::Versions SiStripPartition::apvTimingVersion() const { return apvTimingV_; } 00199 inline SiStripPartition::Versions SiStripPartition::optoScanVersion() const { return optoScanV_; } 00200 inline SiStripPartition::Versions SiStripPartition::vpspScanVersion() const { return vpspScanV_; } 00201 inline SiStripPartition::Versions SiStripPartition::apvCalibVersion() const { return apvCalibV_; } 00202 inline SiStripPartition::Versions SiStripPartition::pedestalsVersion() const { return pedestalsV_; } 00203 inline SiStripPartition::Versions SiStripPartition::apvLatencyVersion() const { return apvLatencyV_; } 00204 inline SiStripPartition::Versions SiStripPartition::fineDelayVersion() const { return fineDelayV_; } 00205 00206 inline std::string SiStripPartition::inputModuleXml() const { return inputModuleXml_; } 00207 inline std::string SiStripPartition::inputDcuInfoXml() const { return inputDcuInfoXml_; } 00208 inline std::vector<std::string> SiStripPartition::inputFecXml() const { return inputFecXml_; } 00209 inline std::vector<std::string> SiStripPartition::inputFedXml() const { return inputFedXml_; } 00210 00211 inline void SiStripPartition::partitionName( std::string name ) { partitionName_ = name ; } 00212 inline void SiStripPartition::runNumber( uint32_t run ) { runNumber_ = run; } 00213 inline void SiStripPartition::forceVersions( bool force ) { forceVersions_ = force; } 00214 inline void SiStripPartition::forceCurrentState( bool force ) { forceCurrentState_ = force; } 00215 00216 #endif // OnlineDB_SiStripConfigDb_SiStripPartition_h