Index: trunk/Mars/mjobs/MJSimulation.cc
===================================================================
--- trunk/Mars/mjobs/MJSimulation.cc	(revision 15277)
+++ trunk/Mars/mjobs/MJSimulation.cc	(revision 17148)
@@ -260,4 +260,92 @@
     write.AddContainer("IncidentAngle",       "Events", kFALSE);
 }
+
+void MJSimulation::SetupHeaderKeys(MWriteFitsFile &write,MRawRunHeader &header) const
+{
+    const MTime now(-1);
+    write.SetHeaderKey("ISMC",true,"Bool if File is Montecarlo File");
+    write.SetHeaderKey("TELESCOP", "FACT", "");
+    write.SetHeaderKey("PACKAGE", "MARS Cheobs", "");
+    write.SetHeaderKey("VERSION", "1.0", "");
+    write.SetHeaderKey("CREATOR", "Ceres", "");
+    write.SetHeaderKey("EXTREL", 1., "");
+    write.SetHeaderKey("COMPILED", __DATE__" "__TIME__, "");
+    write.SetHeaderKey("REVISION", "0", "");
+    write.SetHeaderKey("ORIGIN", "FACT", "");
+    write.SetHeaderKey("DATE", now.GetStringFmt("%Y-%m-%dT%H:%M:%S").Data(), "");
+    write.SetHeaderKey("NIGHT", now.GetNightAsInt(), "");
+    write.SetHeaderKey("TIMESYS", "UTC", "");
+    write.SetHeaderKey("TIMEUNIT", "d", "");
+    write.SetHeaderKey("MJDREF", 40587, "");
+    //write.SetHeaderKey("BLDVER", 1, "");
+    write.SetHeaderKey("RUNID", header.GetRunNumber(), "");
+    write.SetHeaderKey("NBOARD", 40, "");
+    write.SetHeaderKey("NPIX", header.GetNumPixel(), "");
+    write.SetHeaderKey("NROI", header.GetNumSamplesHiGain(), "");
+    write.SetHeaderKey("NROITM", 0, "");
+    write.SetHeaderKey("TMSHIFT", 0, "");
+    write.SetHeaderKey("CAMERA", "MGeomCamFACT", "");
+    write.SetHeaderKey("DAQ", "DRS4", "");
+
+    // FTemme: ADCRANGE and ADC have to be calculated, using the values for
+    // the fadctype.
+//    write.SetHeaderKey("ADCRANGE", 2000, "Dynamic range in mV");
+//    write.SetHeaderKey("ADC", 12, "Resolution in bits");
+
+    switch(header.GetRunType())
+    {
+    case MRawRunHeader::kRTData|MRawRunHeader::kRTMonteCarlo:
+        write.SetHeaderKey("RUNTYPE", "data", "");
+        break;
+    case MRawRunHeader::kRTPedestal|MRawRunHeader::kRTMonteCarlo:
+        write.SetHeaderKey("RUNTYPE", "pedestal", "");
+        break;
+    case MRawRunHeader::kRTCalibration|MRawRunHeader::kRTMonteCarlo:
+        write.SetHeaderKey("RUNTYPE", "calibration", "");
+        break;
+    }
+//    write.SetHeaderKey("ID", 777, "Board  0: Board ID");
+//    write.SetHeaderKey("FMVER", 532, "Board  0: Firmware Version");
+//    write.SetHeaderKey("DNA", "0", "");
+//    write.SetHeaderKey("BOARD", 0, "");
+//    write.SetHeaderKey("PRESC", 40, "");
+//    write.SetHeaderKey("PHASE", 0, "");
+//    write.SetHeaderKey("DAC0", 26500, "");
+//    write.SetHeaderKey("DAC1", 0, "");
+//    write.SetHeaderKey("DAC2", 0, "");
+//    write.SetHeaderKey("DAC3", 0, "");
+//    write.SetHeaderKey("DAC4", 28800, "");
+//    write.SetHeaderKey("DAC5", 28800, "");
+//    write.SetHeaderKey("DAC6", 28800, "");
+//    write.SetHeaderKey("DAC7", 28800, "");
+    write.SetHeaderKey("REFCLK", header.GetFreqSampling(), "");
+    write.SetHeaderKey("DRSCALIB", false, "");
+//    write.SetHeaderKey("TSTARTI", 0, "");
+//    write.SetHeaderKey("TSTARTF", 0., "");
+//    write.SetHeaderKey("TSTOPI", 0, "");
+//    write.SetHeaderKey("TSTOPF", 0., "");
+//    write.SetHeaderKey("DATE-OBS", "1970-01-01T00:00:00", "");
+//    write.SetHeaderKey("DATE-END", "1970-01-01T00:00:00", "");
+//    write.SetHeaderKey("NTRG", 0, "");
+//    write.SetHeaderKey("NTRGPED", 0, "");
+//    write.SetHeaderKey("NTRGLPE", 0, "");
+//    write.SetHeaderKey("NTRGTIM", 0, "");
+//    write.SetHeaderKey("NTRGLPI", 0, "");
+//    write.SetHeaderKey("NTRGEXT1", 0, "");
+//    write.SetHeaderKey("NTRGEXT2", 0, "");
+//    write.SetHeaderKey("NTRGMISC", 0, "");
+}
+
+void MJSimulation::SetupVetoColumns(MWriteFitsFile &write) const
+{
+    write.VetoColumn("MParameterD.fVal");
+    write.VetoColumn("MRawEvtData.fLoGainPixId");
+    write.VetoColumn("MRawEvtData.fLoGainFadcSamples");
+    write.VetoColumn("MRawEvtData.fABFlags");
+    write.VetoColumn("MRawEvtHeader.fNumTrigLvl2");
+    //write.VetoColumn("MRawEvtHeader.fTrigPattern");
+    write.VetoColumn("MRawEvtHeader.fNumLoGainOn");
+}
+
 Bool_t MJSimulation::Process(const MArgs &args, const MSequence &seq)
 {
@@ -558,66 +646,6 @@
     MTask &write3a = fWriteFitsFile ? static_cast<MTask&>(write3af) : static_cast<MTask&>(write3ar);
 
-    write3af.SetHeaderKey("DUMMY0", 3, "First dummy");
-    write3af.SetHeaderKey("DUMMY1", 3.14159265358979323846, "Second dummy");
-    write3af.SetHeaderKey("DUMMY2", true, "Third dummy");
-    write3af.SetHeaderKey("DUMMY3", "one value", "Fourth dummy");
-
-    write3af.VetoColumn("MParameterD.fVal");
-    write3af.VetoColumn("MCorsikaEvtHeader.fEvtNumber");
-    write3af.VetoColumn("MCorsikaEvtHeader.fNumReuse");
-    write3af.VetoColumn("MCorsikaEvtHeader.fTotalEnergy");
-    write3af.VetoColumn("MCorsikaEvtHeader.fStartAltitude");
-    write3af.VetoColumn("MCorsikaEvtHeader.fFirstTargetNum");
-    write3af.VetoColumn("MCorsikaEvtHeader.fFirstInteractionHeight");
-    write3af.VetoColumn("MCorsikaEvtHeader.fMomentumX");
-    write3af.VetoColumn("MCorsikaEvtHeader.fMomentumY");
-    write3af.VetoColumn("MCorsikaEvtHeader.fMomentumZ");
-    write3af.VetoColumn("MCorsikaEvtHeader.fAz");
-    write3af.VetoColumn("MCorsikaEvtHeader.fWeightedNumPhotons");
-    write3af.VetoColumn("MCorsikaEvtHeader.fZd");
-    write3af.VetoColumn("MCorsikaEvtHeader.fAd");
-    write3af.VetoColumn("MCorsikaEvtHeader.fX");
-    write3af.VetoColumn("MCorsikaEvtHeader.fY");
-    write3af.VetoColumn("MCorsikaEvtHeader.fWeightNumPhotons");
-    write3af.VetoColumn("MMcEvt.fEvtNumber");
-    write3af.VetoColumn("MMcEvt.fThick0");
-    write3af.VetoColumn("MMcEvt.fFirstTarget");
-    write3af.VetoColumn("MMcEvt.fZFirstInteraction");
-    write3af.VetoColumn("MMcEvt.fCoreD");
-    write3af.VetoColumn("MMcEvt.fCoreX");
-    write3af.VetoColumn("MMcEvt.fCoreY");
-    write3af.VetoColumn("MMcEvt.fTimeFirst");
-    write3af.VetoColumn("MMcEvt.fTimeLast");
-    write3af.VetoColumn("MMcEvt.fLongiNmax");
-    write3af.VetoColumn("MMcEvt.fLongit0");
-    write3af.VetoColumn("MMcEvt.fLongitmax");
-    write3af.VetoColumn("MMcEvt.fLongia");
-    write3af.VetoColumn("MMcEvt.fLongib");
-    write3af.VetoColumn("MMcEvt.fLongic");
-    write3af.VetoColumn("MMcEvt.fLongichi2");
-    write3af.VetoColumn("MMcEvt.fPhotIni");
-    write3af.VetoColumn("MMcEvt.fPassPhotAtm");
-    write3af.VetoColumn("MMcEvt.fPassPhotRef");
-    write3af.VetoColumn("MMcEvt.fPassPhotCone");
-    write3af.VetoColumn("MMcEvt.fPhotElfromShower");
-    write3af.VetoColumn("MMcEvt.fPhotElinCamera");
-    write3af.VetoColumn("MMcEvt.fElecCphFraction");
-    write3af.VetoColumn("MMcEvt.fMuonCphFraction");
-    write3af.VetoColumn("MMcEvt.fOtherCphFraction");
-    write3af.VetoColumn("MMcEvt.fFadcTimeJitter");
-    write3af.VetoColumn("MMcEvt.fEventReuse");
-
-    write3af.VetoColumn("MRawEvtData.fHiGainPixId");
-    write3af.VetoColumn("MRawEvtData.fLoGainPixId");
-    write3af.VetoColumn("MRawEvtData.fLoGainFadcSamples");
-    write3af.VetoColumn("MRawEvtData.fABFlags");
-    write3af.VetoColumn("MRawEvtData.fStartCells");
-    write3af.VetoColumn("MRawEvtData.fNumBytesPerSample");
-    write3af.VetoColumn("MRawEvtData.fIsSigned");
-    write3af.VetoColumn("MRawEvtHeader.fDAQEvtNumber"); //EventNum ?
-    write3af.VetoColumn("MRawEvtHeader.fNumTrigLvl1");
-    write3af.VetoColumn("MRawEvtHeader.fNumTrigLvl2");
-    write3af.VetoColumn("MRawEvtHeader.fTrigPattern");
-    write3af.VetoColumn("MRawEvtHeader.fNumLoGainOn");
+    //SetupHeaderKeys(write3af,header);
+    SetupVetoColumns(write3af);
 
     write3af.SetBytesPerSample("Data", 2);
@@ -649,4 +677,6 @@
     write3af.AddContainer("IntendedPulsePos", "RunHeaders");
     write3af.AddContainer("MRawEvtData",      "Events");
+    write3af.AddContainer("MMcEvtBasic",      "Events");
+    write3af.AddContainer("MPhotonEvent","Events");
 
     write3ar.AddContainer("ElectronicNoise",  "RunHeaders");
Index: trunk/Mars/mjobs/MJSimulation.h
===================================================================
--- trunk/Mars/mjobs/MJSimulation.h	(revision 15277)
+++ trunk/Mars/mjobs/MJSimulation.h	(revision 17148)
@@ -12,4 +12,5 @@
 class MWriteRootFile;
 class MWriteFitsFile;
+class MRawRunHeader;
 
 class MJSimulation : public MJob
@@ -34,4 +35,6 @@
     void SetupCommonFileStructure(MWriteRootFile &write) const;
     void SetupCommonFileStructure(MWriteFitsFile& write) const;
+    void SetupHeaderKeys(MWriteFitsFile& write, MRawRunHeader &header) const;
+    void SetupVetoColumns(MWriteFitsFile& write) const;
 
 public:
