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* ) {
00022
00023 if ( rs.TableName() == "CALDETCERRANGE" ) {
00024
00025 rs>> fParticleType
00026 >> fCER0Low
00027 >> fCER0High
00028 >> fCER1Low
00029 >> fCER1High
00030 >> fCER2Low
00031 >> fCER2High;
00032 }
00033 else{
00034
00035 Int_t numCol = rs.NumCols();
00036
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* ) const {
00060
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 }