Index: trunk/Mars/mjobs/MJSimulation.cc
===================================================================
--- trunk/Mars/mjobs/MJSimulation.cc	(revision 14449)
+++ trunk/Mars/mjobs/MJSimulation.cc	(revision 14792)
@@ -78,4 +78,5 @@
 #include "MImgCleanStd.h"
 #include "MWriteRootFile.h"
+#include "MWriteFitsFile.h"
 
 #include "MSimMMCS.h"
@@ -243,5 +244,20 @@
     write.AddContainer("IncidentAngle",       "Events", kFALSE);
 }
-
+//FIXME Etienne. I'm doing the same for fits and root. I probably should adapt somehow
+void MJSimulation::SetupCommonFileStructure(MWriteFitsFile& write) const
+{
+    // Common run headers
+    write.AddContainer("MMcCorsikaRunHeader", "RunHeaders", kFALSE);
+    write.AddContainer("MCorsikaRunHeader",   "RunHeaders", kFALSE);
+    write.AddContainer("MRawRunHeader",       "RunHeaders");
+    write.AddContainer("MGeomCam",            "RunHeaders");
+    write.AddContainer("MMcRunHeader",        "RunHeaders");
+
+    // Common events
+    write.AddContainer("MCorsikaEvtHeader",   "Events", kFALSE);
+    write.AddContainer("MRawEvtHeader",       "Events");
+    write.AddContainer("MMcEvt",              "Events");
+    write.AddContainer("IncidentAngle",       "Events", kFALSE);
+}
 Bool_t MJSimulation::Process(const MArgs &args, const MSequence &seq)
 {
@@ -528,5 +544,5 @@
     MWriteRootFile write4a( 2, rule4, fOverwrite?"RECREATE":"NEW", "Star file");
     MWriteRootFile write4b( 2, rule4, fOverwrite?"RECREATE":"NEW", "Star file");
-    MWriteRootFile write3a( 2, rule3, fOverwrite?"RECREATE":"NEW", "Camera file");
+    MWriteFitsFile write3a( 2, rule3, fOverwrite?"RECREATE":"NEW", "Camera file");
     MWriteRootFile write3b( 2, rule3, fOverwrite?"RECREATE":"NEW", "Camera file");
     MWriteRootFile write2a( 2, rule2, fOverwrite?"RECREATE":"NEW", "Signal file");
@@ -534,4 +550,64 @@
     MWriteRootFile write1a( 2, rule1, fOverwrite?"RECREATE":"NEW", "Reflector file");
     MWriteRootFile write1b( 2, rule1, fOverwrite?"RECREATE":"NEW", "Reflector file");
+
+    write3a.VetoColumn("MParameterD.fVal");
+    write3a.VetoColumn("MCorsikaEvtHeader.fEvtNumber");
+    write3a.VetoColumn("MCorsikaEvtHeader.fNumReuse");
+    write3a.VetoColumn("MCorsikaEvtHeader.fTotalEnergy");
+    write3a.VetoColumn("MCorsikaEvtHeader.fStartAltitude");
+    write3a.VetoColumn("MCorsikaEvtHeader.fFirstTargetNum");
+    write3a.VetoColumn("MCorsikaEvtHeader.fFirstInteractionHeight");
+    write3a.VetoColumn("MCorsikaEvtHeader.fMomentumX");
+    write3a.VetoColumn("MCorsikaEvtHeader.fMomentumY");
+    write3a.VetoColumn("MCorsikaEvtHeader.fMomentumZ");
+    write3a.VetoColumn("MCorsikaEvtHeader.fAz");
+    write3a.VetoColumn("MCorsikaEvtHeader.fWeightedNumPhotons");
+    write3a.VetoColumn("MCorsikaEvtHeader.fZd");
+    write3a.VetoColumn("MCorsikaEvtHeader.fAd");
+    write3a.VetoColumn("MCorsikaEvtHeader.fX");
+    write3a.VetoColumn("MCorsikaEvtHeader.fY");
+    write3a.VetoColumn("MCorsikaEvtHeader.fWeightNumPhotons");
+    write3a.VetoColumn("MMcEvt.fEvtNumber");
+    write3a.VetoColumn("MMcEvt.fThick0");
+    write3a.VetoColumn("MMcEvt.fFirstTarget");
+    write3a.VetoColumn("MMcEvt.fZFirstInteraction");
+    write3a.VetoColumn("MMcEvt.fCoreD");
+    write3a.VetoColumn("MMcEvt.fCoreX");
+    write3a.VetoColumn("MMcEvt.fCoreY");
+    write3a.VetoColumn("MMcEvt.fTimeFirst");
+    write3a.VetoColumn("MMcEvt.fTimeLast");
+    write3a.VetoColumn("MMcEvt.fLongiNmax");
+    write3a.VetoColumn("MMcEvt.fLongit0");
+    write3a.VetoColumn("MMcEvt.fLongitmax");
+    write3a.VetoColumn("MMcEvt.fLongia");
+    write3a.VetoColumn("MMcEvt.fLongib");
+    write3a.VetoColumn("MMcEvt.fLongic");
+    write3a.VetoColumn("MMcEvt.fLongichi2");
+    write3a.VetoColumn("MMcEvt.fPhotIni");
+    write3a.VetoColumn("MMcEvt.fPassPhotAtm");
+    write3a.VetoColumn("MMcEvt.fPassPhotRef");
+    write3a.VetoColumn("MMcEvt.fPassPhotCone");
+    write3a.VetoColumn("MMcEvt.fPhotElfromShower");
+    write3a.VetoColumn("MMcEvt.fPhotElinCamera");
+    write3a.VetoColumn("MMcEvt.fElecCphFraction");
+    write3a.VetoColumn("MMcEvt.fMuonCphFraction");
+    write3a.VetoColumn("MMcEvt.fOtherCphFraction");
+    write3a.VetoColumn("MMcEvt.fFadcTimeJitter");
+    write3a.VetoColumn("MMcEvt.fEventReuse");
+    write3a.VetoColumn("MRawEvtData.fHiGainPixId");
+//    write3a.VetoColumn("MRawEvtData.fHiGainFadcSamples");
+    write3a.VetoColumn("MRawEvtData.fLoGainPixId");
+    write3a.VetoColumn("MRawEvtData.fLoGainFadcSamples");
+    write3a.VetoColumn("MRawEvtData.fABFlags");
+    write3a.VetoColumn("MRawEvtData.fStartCells");
+    write3a.VetoColumn("MRawEvtData.fNumBytesPerSample");
+    write3a.VetoColumn("MRawEvtData.fIsSigned");
+//    write3a.VetoColumn("MRawEvtHeader.fDAQEvtNumber"); //EventNum ?
+    write3a.VetoColumn("MRawEvtHeader.fNumTrigLvl1");
+    write3a.VetoColumn("MRawEvtHeader.fNumTrigLvl2");
+    write3a.VetoColumn("MRawEvtHeader.fTrigPattern");
+    write3a.VetoColumn("MRawEvtHeader.fNumLoGainOn");
+
+    write3a.SetBytesPerSample("Data", 2);
 
     write1a.SetName("WriteRefData");
Index: trunk/Mars/mjobs/MJSimulation.h
===================================================================
--- trunk/Mars/mjobs/MJSimulation.h	(revision 14449)
+++ trunk/Mars/mjobs/MJSimulation.h	(revision 14792)
@@ -11,4 +11,5 @@
 class MSequence;
 class MWriteRootFile;
+class MWriteFitsFile;
 
 class MJSimulation : public MJob
@@ -31,4 +32,5 @@
     void SetupHist(MHn &hist) const;
     void SetupCommonFileStructure(MWriteRootFile &write) const;
+    void SetupCommonFileStructure(MWriteFitsFile& write) const;
 
 public:
