CMS 3D CMS Logo

SiStripPartition.h

Go to the documentation of this file.
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

Generated on Tue Jun 9 17:40:50 2009 for CMSSW by  doxygen 1.5.4