Index: trunk/MagicSoft/Mars/Changelog
===================================================================
--- trunk/MagicSoft/Mars/Changelog	(revision 5829)
+++ trunk/MagicSoft/Mars/Changelog	(revision 5830)
@@ -20,4 +20,11 @@
 
                                                  -*-*- END OF LINE -*-*-
+
+ 2005/01/14 Daniela Dorner
+
+   * macros/sql/filldotrun.C
+     - added new arehucas-verions and changed code accordingly
+
+
 
  2005/01/13 Abelardo Moralejo
Index: trunk/MagicSoft/Mars/macros/sql/filldotrun.C
===================================================================
--- trunk/MagicSoft/Mars/macros/sql/filldotrun.C	(revision 5829)
+++ trunk/MagicSoft/Mars/macros/sql/filldotrun.C	(revision 5830)
@@ -34,7 +34,7 @@
 //
 // To following Arehucas versions are Currently supported:
-//   040505-0
-//   040514-0
-//   040518-0
+//   040505-0, 040514-0,
+//   040518-0, 040727-0,
+//   041113-0, 041209-0, 041221-0
 //
 // Usage:
@@ -175,5 +175,7 @@
 
     Int_t version = atoi(arehucas.Data());
-    if (version!=200405050 && version!=200405140 && version!=200405180)
+    if (version!=200405050 && version!=200405140 && version!=200405180
+        && version!=200407270 && version!=200411130 &&
+        version!=200412090 && version!=200412210)
     {
         cout << filename << ": File Version unknown - please update the macro!" << endl;
@@ -216,5 +218,5 @@
         }
 
-        // ========== Col 1: Run Type =========
+        // ========== Col 2: Run Type =========
         strng.ReadToDelim(fin, ' ');
         if (strng.Contains("???"))
@@ -231,5 +233,5 @@
         //cout << runtype << " ";
 
-        // ========== Col 2,3: Start Time =========
+        // ========== Col 3,4: Start Time =========
         TString startdate, starttime;
         startdate.ReadToDelim(fin, ' ');
@@ -237,5 +239,5 @@
         //cout << startdate << " " << starttime << " ";
 
-        // ========== Col 4,5: Stop Time =========
+        // ========== Col 5,6: Stop Time =========
         TString stopdate, stoptime;
         stopdate.ReadToDelim(fin, ' ');
@@ -252,5 +254,5 @@
             stoptime="00:00:00";
 
-        // ========== Col 6: Source Name =========
+        // ========== Col 7: Source Name =========
         strng.ReadToDelim(fin, ' ');
         if (strng.Contains("???"))
@@ -265,5 +267,5 @@
         //cout << sourcekey << " ";
 
-        // ========== Col 7, 8: Local source position =========
+        // ========== Col 8,9: Local source position =========
         strng.ReadToDelim(fin, ' ');
         Float_t zd = atof(strng.Data());
@@ -274,5 +276,5 @@
         //cout << zd << " " << az << " ";
 
-        // ========== Col 9: Number of Events =========
+        // ========== Col 10: Number of Events =========
         strng.ReadToDelim(fin, ' ');
         Int_t evtno = atoi(strng.Data());
@@ -280,5 +282,5 @@
         //cout << evtno << " ";
 
-        // ========== Col 10: Project Name =========
+        // ========== Col 11: Project Name =========
         strng.ReadToDelim(fin, ' ');
         if (strng.Contains("???"))
@@ -293,18 +295,110 @@
         //cout << projkey << " ";
 
-        // ========== Col 10: Trigger Table Name =========
+        // ========== Col 12: Trigger Table Name =========
+        // starting from version 200411130: Col 12,13: Trigger Table Name =========
         strng.ReadToDelim(fin, ' ');
         if (strng.Contains("???"))
             strng="n/a";
 
-        Int_t triggerkey = QueryNameKEY(serv, dummy, "TriggerTable", strng.Data());
-        if (triggerkey<0)
-        {
-            strng.ReadLine(fin);
-            continue;
-        }
-        //cout << triggerkey << " ";
-
-        // ========== Col 11-13: TrigRate, L2 UnPresc Rate, L2 Presc Rate ==========
+        if (version >=200411130)
+        {
+            Int_t l1triggerkey = QueryNameKEY(serv, dummy, "L1TriggerTable", strng.Data());
+            if (l1triggerkey<0)
+            {
+                strng.ReadLine(fin);
+                continue;
+            }
+
+            strng.ReadToDelim(fin, ' ');
+            if (strng.Contains("???"))
+                strng="n/a";
+
+            Int_t l2triggerkey = QueryNameKEY(serv, dummy, "L2TriggerTable", strng.Data());
+            if (l2triggerkey<0)
+            {
+                strng.ReadLine(fin);
+                continue;
+            }
+        }
+        else
+        {
+            Int_t c=0;
+
+            if (strng.Contains(":"))
+                c=1;
+
+            if (strng.Contains("L1_") && !(strng.Contains(":")))
+                c=2;
+
+            if (strng.Contains("n/a"))
+                c=3;
+
+            switch (c)
+            {
+            case 0:
+                {
+                    Int_t l2triggerkey = QueryNameKEY(serv, dummy, "L2TriggerTable", strng.Data());
+                    if (l2triggerkey<0)
+                    {
+                        strng.ReadLine(fin);
+                        continue;
+                    }
+
+                    strng="n/a";
+                    Int_t l1triggerkey = 1;
+
+                    break;
+                }
+            case 1:
+                {
+                    TString L1TT, L2TT;
+                    L2TT=strng(7,12);
+                    L1TT=strng(0,6);
+
+                    Int_t l1triggerkey = QueryNameKEY(serv, dummy, "L1TriggerTable", L1TT.Data());
+                    if (l1triggerkey<0)
+                    {
+                        strng.ReadLine(fin);
+                        continue;
+                    }
+
+                    Int_t l2triggerkey = QueryNameKEY(serv, dummy, "L2TriggerTable", L2TT.Data());
+                    if (l2triggerkey<0)
+                    {
+                        strng.ReadLine(fin);
+                        continue;
+                    }
+
+                    break;
+                }
+            case 2:
+                {
+                    Int_t l1triggerkey = QueryNameKEY(serv, dummy, "L1TriggerTable", strng.Data());
+                    if (l1triggerkey<0)
+                    {
+                        strng.ReadLine(fin);
+                        continue;
+                    }
+
+                    strng="n/a";
+                    Int_t l2triggerkey = 1;
+
+                    break;
+                }
+            case 3:
+                {
+                    Int_t l1triggerkey = 1;
+                    Int_t l2triggerkey = 1;
+                    break;
+                }
+            default:
+                {
+                    cout << "WARNING: neiter L1 nor L2 Trigger table - please check what is happening." << strng << endl;
+                    break;
+                }
+            }
+        }
+
+        // ========== Col 13-15: TrigRate, L2 UnPresc Rate, L2 Presc Rate ==========
         strng.ReadToDelim(fin, ' ');
         Float_t trigrate = atof(strng.Data());
@@ -316,5 +410,5 @@
         Float_t l2prrate = atof(strng.Data());
 
-        // ========== Col 14,15: DaqRate, Storage Rate ==========
+        // ========== Col 16,17: DaqRate, Storage Rate ==========
         strng.ReadToDelim(fin, ' ');
         Float_t daqrate = atof(strng.Data());
@@ -323,5 +417,5 @@
         Float_t storerate = atof(strng.Data());
 
-        // ========== Col 16: HV table =========
+        // ========== Col 18: HV table =========
         if (version==200405050 || version==200405140)
             strng.ReadToDelim(fin, '\n');
@@ -338,6 +432,85 @@
         }
 
-        if (version==200405180)
+        if (version==200405180 || version==200407270)
             strng.ReadLine(fin);
+
+        if (version==200411130 || version==200412090 || version==200412210)
+        {
+            // ========== Col 19-35: DC and HV-values, mjd =========
+            for (int i=0 ; i<17 ; i++)
+            {
+                strng.ReadToDelim(fin, ' ');
+            }
+
+            // ========== Col 36: test-flag =========
+            strng.ReadToDelim(fin, ' ');
+            if (strng.Contains("???"))
+                strng="n/a";
+
+            Int_t testflagkey = QueryNameKEY(serv, dummy, "TestFlag", strng.Data());
+            if (testflagkey<0)
+            {
+                strng.ReadLine(fin);
+                continue;
+            }
+
+            // ========== Col 37: light conditions =========
+            strng.ReadToDelim(fin, ' ');
+            if (strng.Contains("???"))
+                strng="n/a";
+
+            Int_t lightcondkey = QueryNameKEY(serv, dummy, "LightConditions", strng.Data());
+            if (lightcondkey<0)
+            {
+                strng.ReadLine(fin);
+                continue;
+            }
+
+            // ========== Col 38: discriminator threshold table =========
+            strng.ReadToDelim(fin, ' ');
+            if (strng.Contains("???"))
+                strng="n/a";
+
+            Int_t dttablekey = QueryNameKEY(serv, dummy, "DiscriminatorThresholdTable", strng.Data());
+            if (dttablekey<0)
+            {
+                strng.ReadLine(fin);
+                continue;
+            }
+
+            // ========== Col 39: trigger delay table =========
+            strng.ReadToDelim(fin, ' ');
+            if (strng.Contains("???"))
+                strng="n/a";
+
+            Int_t triggerdelaytablekey = QueryNameKEY(serv, dummy, "TriggerDelayTable", strng.Data());
+            if (triggerdelaytablekey<0)
+            {
+                strng.ReadLine(fin);
+                continue;
+            }
+
+            // ========== Col 40,41: RA and Dec sent to drive =========
+            strng.ReadToDelim(fin, ' ');
+            strng.ReadToDelim(fin, ' ');
+
+            // ========== Col 42: Calibration Script =========
+            strng.ReadToDelim(fin, ' ');
+            if (strng.Contains("???"))
+                strng="n/a";
+
+            Int_t calibrationscriptkey = QueryNameKEY(serv, dummy, "CalibrationScript", strng.Data());
+            if (calibrationscriptkey<0)
+            {
+                strng.ReadLine(fin);
+                continue;
+            }
+
+        }
+        else
+        {
+            Int_t testflagkey, lightcondkey, dttablekey, triggerdelaytablekey, calibrationscriptkey=1;
+        }
+
 
         //continue;
@@ -360,5 +533,11 @@
         query += Form("fRunStart=\"%s %s\", ", startdate.Data(), starttime.Data());
         query += Form("fRunStop=\"%s %s\", ", stopdate.Data(), stoptime.Data());
-        query += Form("fTriggerTableKEY=%d, ", triggerkey);
+        query += Form("fL1TriggerTableKEY=%d, ", l1triggerkey);
+        query += Form("fL2TriggerTableKEY=%d, ", l2triggerkey);
+        query += Form("fTestFlagKEY=%d, ", testflagkey);
+        query += Form("fCalibrationScriptKEY=%d, ", calibrationscriptkey);
+        query += Form("fTriggerDelayTableKEY=%d, ", triggerdelaytablekey);
+        query += Form("fDiscrimintorThresholdTableKEY=%d, ", dttablekey);
+        query += Form("fLightConditionsKEY=%d, ", lightcondkey);
         query += Form("fHvSettingsKEY=%d, ", hvkey);
         if (!TMath::IsNaN(zd) && TMath::Finite(zd))
