Index: /trunk/Mars/fact/analysis/callisto_data.C
===================================================================
--- /trunk/Mars/fact/analysis/callisto_data.C	(revision 18566)
+++ /trunk/Mars/fact/analysis/callisto_data.C	(revision 18567)
@@ -1,5 +1,7 @@
 #include "MLogManip.h"
 
-int callisto_data(const char *datafile, const char *drsfile, const char *drstime, const char *delays, const char *outpath=".")
+int callisto_data(const char *datafile, const char *drsfile,
+                  const char *drstime, const char *delays,
+                  const char *outpath=".")
 {
     // ======================================================
@@ -9,8 +11,8 @@
     // false: Display pixels in hardware/linear indices,
     //        but the order is the camera display is distorted
-    bool usemap = true;
+    bool usemap = drstime ? true : false;
 
     // map file to use (get that from La Palma!)
-    const char *map = usemap ? "/home/fact/FACT++/FACTmap111030.txt" : NULL;
+    const char *mmap = usemap ? "FACTmap111030.txt" : NULL;
 
     //const char *pulse_template = "template-pulse.root";
@@ -82,7 +84,7 @@
     // ======================================================
 
-    if (map && gSystem->AccessPathName(map, kFileExists))
+    if (mmap && gSystem->AccessPathName(mmap, kFileExists))
     {
-        gLog << err << "ERROR - Cannot access mapping file '" << map << "'" << endl;
+        gLog << err << "ERROR - Cannot access mapping file '" << mmap << "'" << endl;
         return 11;
     }
@@ -91,5 +93,5 @@
 
     MDrsCalibrationTime timecam;
-    if (!timecam.ReadFits(drstime))
+    if (drstime && !timecam.ReadFits(drstime))
     {
         gLog << err << "ERROR - Could not get MDrsCalibrationTime from " << drstime << endl;
@@ -112,10 +114,10 @@
 
     MDrsCalibration drscalib300;
-    if (!drscalib300.ReadFits(drsfile))
+    if (drsfile && !drscalib300.ReadFits(drsfile))
         return 31;
 
     // -------------------------------------------------------
 
-    if (delays)
+    if (drstime && delays)
     {
         TGraph g(delays);
@@ -175,7 +177,10 @@
     gLog << all;
     gLog << "Data file: " << datafile << '\n';
-    gLog << "DRS 300:   " << drsfile  << '\n';
-    gLog << "DRS Time:  " << drstime  << '\n';
-    gLog << "Delays:    " << delays   << '\n';
+    if (drsfile)
+        gLog << "DRS 300:   " << drsfile  << '\n';
+    if (drstime)
+        gLog << "DRS Time:  " << drstime  << '\n';
+    if (delays)
+        gLog << "Delays:    " << delays   << '\n';
     gLog << "Outpath:   " << outpath  << '\n';
     gLog << endl;
@@ -205,7 +210,9 @@
     MParList plist5;
     plist5.AddToList(&tlist5);
-    plist5.AddToList(&drscalib300);
     plist5.AddToList(&badpixels);
-    plist5.AddToList(&timecam);
+    if (drsfile)
+        plist5.AddToList(&drscalib300);
+    if (drstime)
+        plist5.AddToList(&timecam);
 
     MEvtLoop loop5("CalibratingData");
@@ -216,5 +223,6 @@
 
     MRawFitsRead read5(datafile);
-    read5.LoadMap(map);
+    if (mmap)
+        read5.LoadMap(mmap);
 
     MFillH fill5a(&hrate);
@@ -384,4 +392,15 @@
     write5.AddContainer("MTime",         "Events");
     write5.AddContainer("MRawEvtHeader", "Events");
+
+    write5.AddContainer("MMcCorsikaRunHeader", "RunHeaders", kFALSE);
+    write5.AddContainer("MCorsikaRunHeader",   "RunHeaders", kFALSE);
+    write5.AddContainer("MMcRunHeader",        "RunHeaders", kFALSE);
+    write5.AddContainer("MCorsikaEvtHeader",   "Events", kFALSE);
+    write5.AddContainer("MMcEvt",              "Events", kFALSE);
+    write5.AddContainer("IncidentAngle",       "Events", kFALSE);
+    write5.AddContainer("MPointingPos",        "Events", kFALSE);
+    write5.AddContainer("MTime",               "Events", kFALSE);
+
+
     //write.AddContainer("MTriggerPattern", "Events");
 
