00001 #include "DataSvc/MiniDryRunTimeCorrection.h" 00002 #include "stdlib.h" 00003 #include <iostream> 00004 00005 using namespace std; 00006 00007 TimeStamp MiniDryRunTimeCorrection(int run) 00008 { 00009 static int runNum[15]; 00010 static TimeStamp deltaT[14]; 00012 static int startRun, endRun; 00013 static TimeStamp dT; 00014 00015 static bool first = true; 00016 00017 if( first ) { 00018 first = false; 00021 runNum[0] = 421; deltaT[0] = TimeStamp( 2009,12,24,11,14,42 ) - TimeStamp( 943938037, 478707925 ); 00022 runNum[1] = 440; deltaT[1] = TimeStamp( 2009,12,25,16,45, 6 ) - TimeStamp( 943938010, 997504500 ); 00023 runNum[2] = 467; deltaT[2] = TimeStamp( 2009,12,26,14,34,21 ) - TimeStamp( 943938063, 64185575 ); 00024 runNum[3] = 473; deltaT[3] = TimeStamp( 2009,12,28,14,32, 9 ) - TimeStamp( 943938009, 826974225 ); 00025 runNum[4] = 492; deltaT[4] = TimeStamp( 2009,12,30,17,29,27 ) - TimeStamp( 943938051, 702563262 ); 00026 runNum[5] = 505; deltaT[5] = TimeStamp( 2009,12,31,15,40, 6 ) - TimeStamp( 943938016, 505901825 ); 00027 runNum[6] = 522; deltaT[6] = TimeStamp( 2010, 1, 2,10,34,18 ) - TimeStamp( 943938020, 144773387 ); 00028 runNum[7] = 538; deltaT[7] = TimeStamp( 2010, 1, 3, 9,46,41 ) - TimeStamp( 943938114, 375387087 ); 00029 runNum[8] = 687; deltaT[8] = TimeStamp( 2010, 1, 5,15,36,44 ) - TimeStamp( 943939104, 677039837 ); 00030 runNum[9] = 766; deltaT[9] = TimeStamp( 2010, 1, 7, 9,34,25 ) - TimeStamp( 943938007, 941984512 ); 00031 runNum[10] = 867; deltaT[10] = TimeStamp( 2010, 1, 8,10,34,43 ) - TimeStamp( 943938118, 595102062 ); 00032 runNum[11] = 962; deltaT[11] = TimeStamp( 2010, 1, 9, 9,36,13 ) - TimeStamp( 943938009, 499588975 ); 00033 runNum[12] = 971; deltaT[12] = TimeStamp( 2010, 1,10, 9,39,45 ) - TimeStamp( 943938036, 914706437 ); 00034 runNum[13] = 1061; deltaT[13] = TimeStamp( 2010, 1,11,12,55,51 ) - TimeStamp( 943938016, 739907900 ); 00035 runNum[14] = 1070; 00036 00037 startRun = runNum[0]; 00038 endRun = runNum[0+1] - 1; 00039 dT = deltaT[0]; 00040 } 00041 00042 if( run>=startRun && run <=endRun ) { 00043 return dT; 00044 } else { 00045 for( int i=0; i<=13; ++i ) { 00046 if( run>=runNum[i] && run<runNum[i+1] ) { 00047 startRun = runNum[i]; 00048 endRun = runNum[i+1] - 1; 00049 dT = deltaT[i]; 00050 return dT; 00051 } 00052 } 00053 } 00054 00056 return TimeStamp(0,0); 00057 00058 }