CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_4_5_patch3/src/OnlineDB/EcalCondDB/interface/LMFRunIOV.h

Go to the documentation of this file.
00001 #ifndef LMFRUNIOV_H
00002 #define LMFRUNIOV_H
00003 
00004 #include "OnlineDB/EcalCondDB/interface/LMFUnique.h"
00005 #include "OnlineDB/EcalCondDB/interface/LMFRunTag.h"
00006 #include "OnlineDB/EcalCondDB/interface/LMFSeqDat.h"
00007 #include "OnlineDB/EcalCondDB/interface/LMFTrigType.h"
00008 #include "OnlineDB/EcalCondDB/interface/LMFColor.h"
00009 #include "OnlineDB/EcalCondDB/interface/LMFDefFabric.h"
00010 #include "OnlineDB/EcalCondDB/interface/Tm.h"
00011 
00012 #include <string>
00013 
00014 /*
00015  Last updated by  Giovanni.Organtini@roma1.infn.it 2010
00016 */
00017 
00018 
00019 class LMFRunIOV : public LMFUnique {
00020  public:
00021   friend class EcalCondDBInterface;
00022 
00023   LMFRunIOV();
00024   LMFRunIOV(oracle::occi::Environment* env,
00025             oracle::occi::Connection* conn);
00026   LMFRunIOV(EcalDBConnection *c);
00027   LMFRunIOV(const LMFRunIOV &r);
00028   ~LMFRunIOV();
00029 
00030   // Methods for user data
00031   LMFRunIOV& setLMFRunTag(const LMFRunTag &tag);
00032   LMFRunIOV& setLMFRunTag(int tag_id);
00033   LMFRunIOV& setSequence(LMFSeqDat &seq);
00034   LMFRunIOV& setSequence(LMFSeqDat *seq);
00035   LMFRunIOV& setTriggerType(LMFTrigType &tt);
00036   LMFRunIOV& setTriggerType(int trigType_id);
00037   LMFRunIOV& setTriggerType(std::string trigShortName);
00038   LMFRunIOV& setLmr(int n);
00039   LMFRunIOV& setColor(const LMFColor &c);
00040   LMFRunIOV& setColor(std::string name);
00041   LMFRunIOV& setColor(int color_id);
00042   LMFRunIOV& setColorIndex(int color_index);
00043   LMFRunIOV& setSubRunStart(Tm start);
00044   LMFRunIOV& setSubRunEnd(Tm end);
00045   LMFRunIOV& setSubRunType(const std::string &x);
00046 
00047   LMFRunTag getLMFRunTag() const;
00048   LMFSeqDat getSequence() const;
00049   LMFTrigType getTriggerType() const;
00050 
00051   int getLmr() const;
00052   std::string getSubRunType() const;
00053   std::string getColorShortName() const; 
00054   std::string getColorLongName() const;
00055   LMFColor getLMFColor() const;
00056   LMFColor getColor() const { return getLMFColor(); }
00057   Tm getSubRunStart() const;
00058   Tm getSubRunEnd() const;
00059   Tm getDBInsertionTime() const;
00060   bool isValid();
00061   
00062   virtual void dump() const;
00063   virtual LMFRunIOV& operator=(const LMFRunIOV &r); 
00064   std::list<LMFRunIOV> fetchBySequence(const LMFSeqDat &s);
00065   std::list<LMFRunIOV> fetchBySequence(const LMFSeqDat &s, int lmr);
00066   std::list<LMFRunIOV> fetchBySequence(const LMFSeqDat &s, int lmr, int type,
00067                                        int color);
00068   std::list<LMFRunIOV> fetchLastBeforeSequence(const LMFSeqDat &s, int lmr, 
00069                                                int type, int color);
00070   
00071   // Operators
00072   bool operator==(const LMFRunIOV &m) const
00073   {
00074     return ( getLMFRunTag()   == m.getLMFRunTag() &&
00075              getSequence()    == m.getSequence() &&
00076              getLmr()         == m.getLmr() &&
00077              getLMFColor()    == m.getLMFColor() &&
00078              getTriggerType() == m.getTriggerType() &&
00079              getSubRunType()  == m.getSubRunType() &&
00080              getSubRunStart() == m.getSubRunStart() &&
00081              getSubRunEnd()   == m.getSubRunEnd() );
00082   }
00083   
00084   bool operator!=(const LMFRunIOV &m) const { return !(*this == m); }
00085   
00086   std::string fetchIdSql(Statement *stmt);
00087   std::string setByIDSql(Statement *stmt, int id);
00088   std::string writeDBSql(Statement *stmt);
00089   void getParameters(ResultSet *rset);
00090 
00091  private:
00092   void checkFabric();
00093   void initialize();
00094   std::list<LMFRunIOV> fetchBySequence(std::vector<int> par,
00095                                        const std::string &sql,
00096                                        const std::string &method)
00097     throw (std::runtime_error);
00098 
00099   LMFDefFabric *_fabric;
00100 };
00101 
00102 #endif