Index: trunk/MagicSoft/Mars/datacenter/macros/buildsequenceentries.C
===================================================================
--- trunk/MagicSoft/Mars/datacenter/macros/buildsequenceentries.C	(revision 9487)
+++ trunk/MagicSoft/Mars/datacenter/macros/buildsequenceentries.C	(revision 9539)
@@ -90,4 +90,5 @@
 #include <TExMap.h>
 #include <TArrayI.h>
+#include <TArrayL.h>
 #include <TArrayD.h>
 #include <TPRegexp.h>
@@ -103,5 +104,5 @@
 using namespace std;
 
-    /*static*/ UInt_t GetId(const TString str)
+    /*static*/ ULong_t GetId(const TString str)
     {
         const Ssiz_t dot = str.First('.');
@@ -110,5 +111,5 @@
         const UInt_t sub = dot<0 ? 0 : atoi(str.Data()+dot+1);
 
-        return run*1000+sub;
+        return ULong_t(run)*1000+sub;
     }
 
@@ -119,11 +120,11 @@
     TPRegexp fRegexp;
 
-    UInt_t fMin;
-    UInt_t fMax;
+    ULong_t fMin;
+    ULong_t fMax;
 
 public:
     Rule(TObjArray &arr) :
         fRegexp(arr.GetEntries()>0?Form("^%s", arr[0]->GetName()):""),
-            fMin(0), fMax((UInt_t)-1)
+            fMin(0), fMax((ULong_t)-1)
     {
         if (arr.GetEntries()>1)
@@ -133,5 +134,5 @@
     }
 
-    Ssiz_t Match(const TString &str, Int_t idx, Int_t run=-1)
+    Ssiz_t Match(const TString &str, Int_t idx, Long_t run=-1)
     {
         if (!IsValid(run))
@@ -145,5 +146,5 @@
     }
 
-    Bool_t IsValid(UInt_t run) const { return run<0 || (run>=fMin && run<=fMax); }
+    Bool_t IsValid(ULong_t run) const { return run>=fMin && run<=fMax; }
     ClassDef(Rule, 0)
 };
@@ -159,6 +160,6 @@
     TPRegexp fRegexp2;
 
-    UInt_t fMin;
-    UInt_t fMax;
+    ULong_t fMin;
+    ULong_t fMax;
 
     void Init(const TObjArray &arr, Int_t idx=0)
@@ -191,5 +192,5 @@
     CheckMatch() : fRunType1(""), fRunType2(""), fRegexp1(""), fRegexp2("") {}
 
-    CheckMatch(const TString &txt) : fRunType1(""), fRunType2(""), fRegexp1(""), fRegexp2(""), fMin(0), fMax((UInt_t)-1)
+    CheckMatch(const TString &txt) : fRunType1(""), fRunType2(""), fRegexp1(""), fRegexp2(""), fMin(0), fMax((ULong_t)-1)
     {
         TObjArray *arr = txt.Tokenize(" ");
@@ -198,15 +199,15 @@
     }
 
-    CheckMatch(TObjArray &arr, Int_t idx=0) : fRunType1(""), fRunType2(""), fRegexp1(""), fRegexp2(""), fMin(0), fMax((UInt_t)-1)
+    CheckMatch(TObjArray &arr, Int_t idx=0) : fRunType1(""), fRunType2(""), fRegexp1(""), fRegexp2(""), fMin(0), fMax((ULong_t)-1)
     {
         Init(arr, idx);
     }
 
-    CheckMatch(const char *from, const char *to, Int_t min=0, Int_t max=-1)
+    CheckMatch(const char *from, const char *to, Long_t min=0, Long_t max=-1)
         : fRunType1(".*"), fRunType2(".*"), fRegexp1(Form("^%s$", from)), fRegexp2(Form("^%s$", to)), fMin(min), fMax(max)
     {
     }
 
-    Int_t Matches(const TString &rt1, const TString &rt2, const TString &lc1, const TString &lc2, UInt_t run=0)
+    Int_t Matches(const TString &rt1, const TString &rt2, const TString &lc1, const TString &lc2, ULong_t run=0)
     {
         if (run>0)
@@ -234,5 +235,5 @@
 public:
     CheckList() { SetOwner(); }
-    Int_t Matches(const TString &rt1, const TString &rt2, const TString &lc1, const TString &lc2, Int_t run=-1) const
+    Int_t Matches(const TString &rt1, const TString &rt2, const TString &lc1, const TString &lc2, Long_t run=-1) const
     {
         TIter Next(this);
@@ -277,8 +278,8 @@
         // (row[i]) and the current run-type (row[1]) matches the attribute
         // of the last run (keys[i] with run-type row[i])
-        return list->Matches(keys[1], row[1], keys[i], row[i], atoi(row[0]));
-    }
-
-    Bool_t InsertSequence(Int_t from, Int_t to)
+        return list->Matches(keys[1], row[1], keys[i], row[i], atol(row[0]));
+    }
+
+    Bool_t InsertSequence(Long_t from, Long_t to)
     {
         cout << "     - Inserting Sequence into database." << endl;
@@ -291,5 +292,5 @@
             "SUM(TIME_TO_SEC(TIMEDIFF(fRunStop,fRunStart))), ";
 
-        const TString where = Form("(fRunNumber*1000+fFileNumber BETWEEN %d AND %d) "
+        const TString where = Form("(fRunNumber*1000+fFileNumber BETWEEN %ld AND %ld) "
                                    "AND fTelescopeNumber=%d AND fExcludedFDAKEY=1",
                                    from, to, fTelescopeNumber);
@@ -361,9 +362,9 @@
         }
 
-        const TString set = Form("fSequenceFirst=%d, fTelescopeNumber=%d ", from/1000, fTelescopeNumber);
+        const TString set = Form("fSequenceFirst=%ld, fTelescopeNumber=%d ", from/1000, fTelescopeNumber);
 
         TString query1;
         query1 += set;
-        query1 += Form(",fSequenceLast=%d,",                   to/1000);
+        query1 += Form(",fSequenceLast=%ld,",                   to/1000);
         query1 += Form(" fSourceKEY=%s,",                      (*row)[0]);
         query1 += Form(" fProjectKEY=%s,",                     (*row)[1]);
@@ -404,5 +405,5 @@
 
         TString prio = set;
-        prio += Form(", fPriority=%d ", from/1000);
+        prio += Form(", fPriority=%ld ", from/1000);
         if (!Insert("SequenceProcessStatus", prio))
         {
@@ -465,11 +466,11 @@
     }
 
-    Int_t CheckSequence(Int_t runstart, Int_t runstop)
+    Int_t CheckSequence(Long_t runstart, Long_t runstop)
     {
         const char *fmt1 = "SELECT fRunNumber*1000+fFileNumber AS Id FROM RunData WHERE";
         const char *fmt2 = "AND fExcludedFDAKEY=1 AND (fRunTypeKEY BETWEEN 2 AND 4) ORDER BY Id";
 
-        const TString query1 = Form("%s fTelescopeNumber=%d AND fSequenceFirst=%d %s",                             fmt1, fTelescopeNumber, runstart/1000,     fmt2);
-        const TString query2 = Form("%s fTelescopeNumber=%d AND fRunNumber*1000+fFileNumber BETWEEN %d AND %d %s", fmt1, fTelescopeNumber, runstart, runstop, fmt2);
+        const TString query1 = Form("%s fTelescopeNumber=%d AND fSequenceFirst=%ld %s",                              fmt1, fTelescopeNumber, runstart/1000,     fmt2);
+        const TString query2 = Form("%s fTelescopeNumber=%d AND fRunNumber*1000+fFileNumber BETWEEN %ld AND %ld %s", fmt1, fTelescopeNumber, runstart, runstop, fmt2);
 
         TSQLResult *res1 = Query(query1);
@@ -495,5 +496,5 @@
                 return kFALSE;
 
-            if (atoi((*row1)[0])!=atoi((*row2)[0]))
+            if (atol((*row1)[0])!=atol((*row2)[0]))
                 return kFALSE;
         }
@@ -502,5 +503,5 @@
     }
 
-    Int_t CreateSequence(Int_t runstart, Int_t runstop)
+    Int_t CreateSequence(Long_t runstart, Long_t runstop)
     {
         cout << "   * Creating Sequence " << runstart << "-" << runstop << ":" << endl;
@@ -508,5 +509,5 @@
         TString query=
             Form("SELECT fSequenceFirst FROM RunData "
-                 " WHERE fRunNumber*1000+fFileNumber BETWEEN %d AND %d AND "
+                 " WHERE fRunNumber*1000+fFileNumber BETWEEN %ld AND %ld AND "
                  " fTelescopeNumber=%d AND fSequenceFirst>0 AND "
                  " fExcludedFDAKEY=1 AND (fRunTypeKEY BETWEEN 2 AND 4)"
@@ -794,5 +795,5 @@
     }
 
-    TString PrepareString(TSQLResult &res, TArrayI &runs)
+    TString PrepareString(TSQLResult &res, TArrayL &runs)
     {
         // Number of result rows
@@ -810,5 +811,5 @@
         while ((row=res.Next()))
         {
-            runs[idx] = atoi((*row)[0]);          // run number
+            runs[idx] = atol((*row)[0]);          // run number
 
             const TString tstart = ((*row)[2]);   // start time
@@ -862,5 +863,5 @@
     }
 
-    void PrintResidual(Int_t runstart, Int_t runstop, TString residual, const char *descr)
+    void PrintResidual(Long_t runstart, Long_t runstop, TString residual, const char *descr)
     {
         residual.ToLower();
@@ -891,5 +892,5 @@
     }
 
-    Int_t SplitBlock(Int_t runstart, Int_t runstop, const TString &cond)
+    Int_t SplitBlock(Long_t runstart, Long_t runstop, const TString &cond)
     {
         // Request data necessary to split block into sequences
@@ -897,5 +898,5 @@
             Form("SELECT fRunNumber*1000+fFileNumber AS Id, fRunTypeKEY, fRunStart, fRunStop"
                  " FROM RunData "
-                 " WHERE fRunNumber*1000+fFileNumber BETWEEN %d AND %d AND "
+                 " WHERE fRunNumber*1000+fFileNumber BETWEEN %ld AND %ld AND "
                  /*" fExcludedFDAKEY=1 AND (fRunTypeKEY BETWEEN 2 AND 4)"
                   " ORDER BY Id"*/, runstart, runstop);
@@ -912,5 +913,5 @@
         // Get String containing the sequence of P-,C- and D-Runs
         // and an array with the corresponding run-numbers
-        TArrayI runs;
+        TArrayL runs;
         const TString str = PrepareString(*res, runs);
 
@@ -1035,5 +1036,5 @@
             // This is the runnumber of the first run in the new block
             if (runstart<0)
-                runstart=atoi((*row)[0]);
+                runstart=atol((*row)[0]);
 
             // Check which transitions might be allowed for this run and
@@ -1085,5 +1086,5 @@
 
                 // This is already the first run of the new block
-                runstart=atoi((*row)[0]);
+                runstart=atol((*row)[0]);
 
                 // These are the keys corresponding to the first run
@@ -1101,5 +1102,5 @@
 
             // This is the new runnumber of the last run in this block
-            runstop=atoi((*row)[0]);
+            runstop=atol((*row)[0]);
         }
 
