Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

CalDetCERRange.cxx

Go to the documentation of this file.
00001 #include "CalDetPID/CalDetCERRange.h"
00002 #include "MessageService/MsgService.h"
00003 #include "DatabaseInterface/DbiOutRowStream.h"
00004 #include "DatabaseInterface/DbiResultSet.h"
00005 #include "DatabaseInterface/DbiValidityRec.h"
00006 
00007 ClassImp(CalDetCERRange)
00008 
00009 CVSID("$Id: CalDetCERRange.cxx,v 1.5 2005/03/11 16:17:47 west Exp $\n  \
00010       CVSID_DBIRESULTPTR ");
00011 
00012 #include "DatabaseInterface/DbiResultPtr.tpl"
00013 template class  DbiResultPtr<CalDetCERRange>;
00014 
00015 #include "DatabaseInterface/DbiWriter.tpl"
00016 template class  DbiWriter<CalDetCERRange>;
00017 
00018 
00019 
00020 void CalDetCERRange::Fill(DbiResultSet& rs, 
00021                        const DbiValidityRec* /* vrec */) {
00022 
00023      if ( rs.TableName() == "CALDETCERRANGE" ) {
00024      // dumb filling
00025           rs>> fParticleType
00026             >> fCER0Low
00027             >> fCER0High
00028             >> fCER1Low
00029             >> fCER1High
00030             >> fCER2Low
00031             >> fCER2High;
00032      }
00033      else{
00034      // Smart method
00035       Int_t numCol = rs.NumCols();
00036       //  The first column (SeqNo) has already been processed.
00037       for (Int_t curCol = rs.HasRowCounter() ? 3 : 2; curCol <= numCol; ++curCol) {
00038          string colName = rs.CurColName();
00039          if (      colName == "PARTICLETYPE" ) rs >> fParticleType;
00040          else if ( colName == "CER0LOW" )       rs >> fCER0Low;
00041          else if ( colName == "CER0HIGH" )       rs >> fCER0High;
00042          else if ( colName == "CER1LOW" )       rs >> fCER1Low;
00043          else if ( colName == "CER1HIGH" )       rs >> fCER1High;
00044          else if ( colName == "CER2LOW" )       rs >> fCER2Low;
00045          else if ( colName == "CER2HIGH" )       rs >> fCER2High;
00046          else {
00047             MSG("Dbi",Msg::kDebug) << "Ignoring column " << curCol 
00048                                    << "(" << colName << ")"
00049                                    << "; not part of CalDetCERRange" 
00050                                    << endl;
00051          rs.IncrementCurCol();
00052          }
00053       }
00054 
00055      }
00056 }
00057 
00058 void CalDetCERRange::Store(DbiOutRowStream& ors,
00059                            const DbiValidityRec* /* vrec */) const {
00060 //     MSG("Dbi", Msg::kVerbose)<<"Calling Store!"<<std::endl;
00061      ors<< fParticleType
00062         << fCER0Low
00063         << fCER0High
00064         << fCER1Low
00065         << fCER1High
00066         << fCER2Low
00067         << fCER2High;
00068 }
00069 
00070 std::ostream& CalDetCERRange::Print(std::ostream& os, Option_t*) const
00071 {
00072      os<< "-----------------------------------------------\n"
00073        << "PARTICLETYPE: "<<fParticleType<<"\n"
00074        << "CER0LOW: "<<fCER0Low<<"\n"
00075        << "CER0HIGH: "<<fCER0High<<"\n"
00076        << "CER1LOW: "<<fCER1Low<<"\n"
00077        << "CER1HIGH: "<<fCER1High<<"\n"
00078        << "CER2LOW: "<<fCER2Low<<"\n"
00079        << "CER2HIGH: "<<fCER2High<<"\n"
00080        << "-----------------------------------------------";
00081      return os;
00082 }
00083 
00084 std::ostream& operator<<(std::ostream&os, const CalDetCERRange& cr)
00085 {
00086      return cr.Print(os);
00087 }
00088 
00089 void CalDetCERRange::Print(Option_t* op) const
00090 {
00091      Print(std::cout,op);
00092 }
00093 
00094 std::string CalDetCERRange::GetTableDesc(){
00095      
00096      return std::string(
00097       "(SeqNo int,   PARTICLETYPE  int,"
00098        " CER0LOW float, CER0HIGH float, "
00099        " CER1LOW float, CER1HIGH float, "
00100        " CER2LOW float, CER2HIGH float)"
00101           );
00102 }

Generated on Mon Feb 15 11:06:26 2010 for loon by  doxygen 1.3.9.1