Index: trunk/MagicSoft/Mars/Changelog
===================================================================
--- trunk/MagicSoft/Mars/Changelog	(revision 8138)
+++ trunk/MagicSoft/Mars/Changelog	(revision 8139)
@@ -18,4 +18,15 @@
 
                                                  -*-*- END OF LINE -*-*-
+ 2006/10/20 Daniela Dorner
+
+   * datacenter/tools/fillobjects.php, datacenter/tools/fillobjects2.C:
+     - added (macro to fill information about objects in optical DB)
+
+   * datacenter/macros/filloptical.C:
+     - added check to avoid filling invalid data
+     - added zd (retrieve ra,dec from table Object and fill zd into 
+       table OpticalData)
+
+
 
  2006/10/19 Thomas Bretz
Index: trunk/MagicSoft/Mars/datacenter/macros/filloptical.C
===================================================================
--- trunk/MagicSoft/Mars/datacenter/macros/filloptical.C	(revision 8138)
+++ trunk/MagicSoft/Mars/datacenter/macros/filloptical.C	(revision 8139)
@@ -42,4 +42,6 @@
 #include <fstream>
 
+#include <TVector3.h>
+
 #include <TEnv.h>
 #include <TRegexp.h>
@@ -51,4 +53,8 @@
 #include "MSQLServer.h"
 #include "MSQLMagic.h"
+
+#include "MTime.h"
+#include "MObservatory.h"
+#include "MAstroSky2Local.h"
 
 using namespace std;
@@ -82,7 +88,15 @@
     TString status;
     TString query;
+    TString select;
     Int_t statuskey;
     Int_t objectkey;
     Int_t fitsfilekey;
+    Double_t ra=0;
+    Double_t dec=0;
+    Double_t zd=0;
+    MTime t;
+    MObservatory obs(MObservatory::kMagic1);
+    TVector3 v;
+
     while (1)
     {
@@ -108,4 +122,5 @@
             exposure   = (*arr)[2]->GetName();
             fitsfile = (*arr)[3]->GetName();
+            t.SetSqlDateTime(timestamp.Data());
             continue;
         }
@@ -118,5 +133,25 @@
             }
 
-            numstars+=1;
+            if (numstars==0)
+            {
+                select="SELECT fRightAscension, fDeclination FROM Object WHERE ";
+                select+=Form("fObjectName='%s/BL'", (*arr)[0]->GetName());
+
+                TSQLResult *res = serv.Query(select);
+                if (!res)
+                    return 2;
+
+                TSQLRow *row=res->Next();
+                ra=(*row)[0]?atof((*row)[0]):0;
+                dec=(*row)[1]?atof((*row)[1]):0;
+                delete res;
+
+                v.SetMagThetaPhi(1, TMath::Pi()/2-(dec*TMath::DegToRad()), ra*TMath::DegToRad()*15);
+                v *= MAstroSky2Local(t, obs);
+
+                zd = v.Theta()*TMath::RadToDeg();
+
+            }
+
             object= Form("%s/%s", (*arr)[0]->GetName(),(*arr)[1]->GetName());
             skylevel   = (*arr)[2]->GetName();
@@ -134,4 +169,5 @@
                 magerr="NULL";
             status = (*arr)[7]->GetName();
+            numstars+=1;
         }
         delete arr;
@@ -157,9 +193,14 @@
                        "fObjectKEY=%d, fSkyLevel=%s, fFWHM=%s, "
                        "fApertureRadius=%s, fInstrumentalMag=%s, "
-                       "fInstrumentalMagErr=%s, fStatusKEY=%d ",
+                       "fInstrumentalMagErr=%s, fStatusKEY=%d, fZenithDistance=",
                        timestamp.Data(), exposure.Data(), fitsfilekey,
                        objectkey, skylevel.Data(), fwhm.Data(),
                        aperturer.Data(), mag.Data(), magerr.Data(),
                        statuskey);
+
+            if (ra==0 || dec==0)
+                query+="NULL";
+            else
+                query+=Form("%.1f", zd);
 
             if (serv.Insert("OpticalData", query)==kFALSE)
Index: trunk/MagicSoft/Mars/datacenter/tools/fillobjects2.C
===================================================================
--- trunk/MagicSoft/Mars/datacenter/tools/fillobjects2.C	(revision 8138)
+++ trunk/MagicSoft/Mars/datacenter/tools/fillobjects2.C	(revision 8139)
@@ -116,5 +116,5 @@
         object=Form("%s/BL", object.Data());
 
-        query=Form("fRightAscension=%f, fDeclination=%f, fEpoche=2000",
+        query=Form("fRightAscension=%.7f, fDeclination=%.7f, fEpoche=2000",
                    ra, dec);
 
