CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_1_8_patch13/src/CondCore/IOVService/src/migrateIOV.cc

Go to the documentation of this file.
00001 #include "CondCore/IOVService/interface/migrateIOV.h"
00002 #include "IOV.h"
00003 #include "CondFormats/Common/interface/IOVSequence.h"
00004 #include <algorithm>
00005 #include <boost/bind.hpp>
00006 
00007 
00008 namespace cond {
00009 
00010   IOVSequence * migrateIOV(IOV const & iov) {
00011     IOVSequence * result = new IOVSequence(iov.timetype,iov.iov.back().first,"");
00012     // (*result).iovs().reserve(iov.iov.size());
00013     cond::Time_t since = iov.firstsince;
00014     for(IOV::const_iterator p=iov.iov.begin(); p!=iov.iov.end();p++) {
00015       (*result).add(since, (*p).second);
00016       since = (*p).first+1;
00017     }
00018     return result;
00019   }
00020   
00021   
00022   IOV * backportIOV(IOVSequence const & sequence) {
00023     IOV * result = new IOV(sequence.timeType(), sequence.firstSince());
00024     (*result).iov.reserve(sequence.iovs().size());
00025     for(IOVSequence::const_iterator p=sequence.iovs().begin();
00026           p!=sequence.iovs().end()-1; p++) {
00027       cond::Time_t  till = (*(p+1)).sinceTime()-1;
00028       (*result).add(till, (*p).wrapperToken());
00029     }
00030     (*result).add(sequence.lastTill(),sequence.iovs().back().wrapperToken());
00031     return result;
00032   }
00033 
00034 }