Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007 #include "CondTools/RPC/interface/RPCGasMixSH.h"
00008 #include "FWCore/ServiceRegistry/interface/Service.h"
00009 #include "CondCore/DBOutputService/interface/PoolDBOutputService.h"
00010 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00011
00012 #include<iostream>
00013
00014 popcon::RpcDataGasMix::RpcDataGasMix(const edm::ParameterSet& pset) :
00015 m_name(pset.getUntrackedParameter<std::string>("name","RpcData")),
00016 host(pset.getUntrackedParameter<std::string>("host", "source db host")),
00017 user(pset.getUntrackedParameter<std::string>("user", "source username")),
00018 passw(pset.getUntrackedParameter<std::string>("passw", "source password")),
00019 m_since(pset.getUntrackedParameter<unsigned long long>("since",5)),
00020 m_till(pset.getUntrackedParameter<unsigned long long>("till",0)){
00021 }
00022
00023 popcon::RpcDataGasMix::~RpcDataGasMix()
00024 {
00025 }
00026
00027 void popcon::RpcDataGasMix::getNewObjects() {
00028
00029 std::cout << "------- " << m_name << " - > getNewObjects\n"
00030 << "got offlineInfo"<< tagInfo().name
00031 << ", size " << tagInfo().size << ", last object valid since "
00032 << tagInfo().lastInterval.first << " token "
00033 << tagInfo().lastPayloadToken << std::endl;
00034
00035 std::cout << " ------ last entry info regarding the payload (if existing): "
00036 << logDBEntry().usertext << "last record with the correct tag has been written in the db: "
00037 << logDBEntry().destinationDB << std::endl;
00038
00039
00040
00041
00042 std::cout << std::endl << "=============================================" << std::endl;
00043 std::cout << std::endl << "=================== MIX ==================" << std::endl;
00044 std::cout << std::endl << "=============================================" << std::endl << std::endl;
00045 snc = m_since;
00046 std::cout << ">> Range mode [" << snc << ", " << m_till << "]" << std::endl;
00047 std::cout << std::endl << "=============================================" << std::endl << std::endl;
00048
00049
00050
00051 RPCFw caen ( host, user, passw );
00052 std::vector<RPCObGasMix::Item> GasMixcheck;
00053 GasMixcheck = caen.createMix(snc, m_till);
00054 GasMixdata = new RPCObGasMix();
00055 RPCObGasMix::Item GasMixfill;
00056 std::vector<RPCObGasMix::Item>::iterator GasMixit;
00057 for(GasMixit = GasMixcheck.begin(); GasMixit != GasMixcheck.end(); GasMixit++)
00058 {
00059 GasMixfill = *(GasMixit);
00060 GasMixdata->ObGasMix_rpc.push_back(GasMixfill);
00061 }
00062 std::cout << " >> Final object size: " << GasMixdata->ObGasMix_rpc.size() << std::endl;
00063
00064 if (GasMixdata->ObGasMix_rpc.size() > 0) {
00065 niov = snc;
00066 } else {
00067 niov = snc;
00068 std::cout << "NO DATA TO BE STORED" << std::endl;
00069 }
00070
00071
00072 ::timeval tv;
00073 tv.tv_sec = niov;
00074 tv.tv_usec = 0;
00075 edm::Timestamp tmstamp((unsigned long long)tv.tv_sec*1000000+(unsigned long long)tv.tv_usec);
00076 std::cout << "UNIX time = " << tmstamp.value() << std::endl;
00077
00078 edm::TimeValue_t daqtime=0LL;
00079 daqtime=tv.tv_sec;
00080 daqtime=(daqtime<<32)+tv.tv_usec;
00081 edm::Timestamp daqstamp(daqtime);
00082 edm::TimeValue_t dtime = daqstamp.value();
00083 std::cout<<"DAQ time = " << dtime <<std::endl;
00084
00085 niov = dtime;
00086
00087 std::cout << "===> New IOV: since is = " << niov << std::endl;
00088 m_to_transfer.push_back(std::make_pair((RPCObGasMix*)GasMixdata,niov));
00089 }
00090