Index: fact/tools/marsmacros/mc2csv/MonteCarlo.C
===================================================================
--- fact/tools/marsmacros/mc2csv/MonteCarlo.C	(revision 14731)
+++ fact/tools/marsmacros/mc2csv/MonteCarlo.C	(revision 14732)
@@ -129,5 +129,4 @@
 //    mpSamples       = NULL;
 
-
     return;
 }
@@ -178,4 +177,5 @@
     mpRootFile = new TFile(mFileName, "READ");
 
+    //check if root file could be opened
     if (!mpRootFile->IsOpen())
     {
@@ -185,13 +185,17 @@
     }
     mRootFileOpend = true;
-
     return 1;
 }
 
+
 void
 MonteCarlo::CloseRootFile()
 {
     if (mVerbosityLvl > 0) cout << "...closing root file: " << mFileName << endl;
+
+    // close root file
+    // If option == "R", all TProcessIDs referenced by this file are deleted.
     mpRootFile->Close("R");
+
     mpRootFile=NULL;
 
@@ -199,4 +203,5 @@
 }
 
+
 void
 MonteCarlo::LoadHeaderTree(TString treeName)
@@ -206,4 +211,5 @@
     mpHeaderTree       = (TTree*)mpRootFile->Get(treeName);
 
+    //check if mpHeaderTree exists
     if (mpHeaderTree->IsZombie())
     {
@@ -280,20 +286,22 @@
 }
 
+
 void
 MonteCarlo::ReadRunHeader()
 {
+    // Read Values from RunHeader-Tree
+
     if (mVerbosityLvl > 0)
         cout << "...reading run header " << mpHeaderTree << endl;
 
-    //Read Values from RunHeader-Tree
-
-    mpHeaderTree->GetEntry();    //This causes problems
+    //Get first and only entry
+    mpHeaderTree->GetEntry();
 
     // -----------------------------------------------------------------------
 
     //Get values from "MGeomCam" Branch
+    if ( mpGeomCam != NULL)
+    {
         //Getter functions from "MGeomCamFACT.h"
-    if ( mpGeomCam != NULL)
-    {
         mCamDist                = mpGeomCam->GetCameraDist();
         mNumberOfPixels         = mpGeomCam->GetNumPixels();
@@ -319,4 +327,5 @@
     if ( mpMcRunHeader != NULL)
     {
+        //Getter functions from "MMcRunHeader.hxx"
         mNumSimulatedShowers    = mpMcRunHeader->GetNumSimulatedShowers();
     }
@@ -342,5 +351,6 @@
     if ( mpRawRunHeader != NULL)
     {
-        mNumberOfEvents         = mpRawRunHeader->GetNumEvents(); // couses problems
+        //Getter functions from "MRawRunHeader.h"
+        mNumberOfEvents         = mpRawRunHeader->GetNumEvents();
         mNumberOfEventsRead     = mpRawRunHeader->GetNumEventsRead();
         mSamplingFrequency      = mpRawRunHeader->GetFreqSampling();
@@ -360,4 +370,5 @@
     if ( mpCorsikaRunHeader != NULL)
     {
+        //Getter functions from "MCorsikaRunHeader.h"
         mSlopeSpectrum          = mpCorsikaRunHeader->GetSlopeSpectrum();
         mEnergyMin              = mpCorsikaRunHeader->GetEnergyMin();
@@ -374,4 +385,5 @@
 
     // delete Pixel Array before you set refferences for a new one
+    // in case it is existing
     if (mpPixel != NULL)
     {
@@ -387,11 +399,22 @@
         if (mVerbosityLvl > 1) cout << "   ...reading pedestal offsets" << endl;
 
-        // Read Pedestal Offset
+        // Loop over all pixel: Read Pedestal Offset
         for ( int i = 0; i < mNumberOfPixels; i++ )
         {
+            // check if array entry exists
             if ( &(mpElectronicNoise[0][i]) != NULL)
+            {
+                //tricky stuff!!!
+                // mpElectronicNoise is a MPedestalCam Array
+                // individual pixel pedestals are stored in a MPedestalPix array
+                // the [] operator is overloaded in MPedestalCam
+                // and returning a MPedestalPix at position [i]
+                // MPedestalPix hast a Getter called GetPedestal()
                 mpPixel[i].pedestal   = mpElectronicNoise[0][i].GetPedestal();
+            }
             else if (mVerbosityLvl > 2)
+            {
                 cout << "   ...cannot read pedestal offset" << endl;
+            }
         }
     }
@@ -486,4 +509,5 @@
     if ( mpIncidentAngle != NULL)
     {
+        //Getter functions from "MGeomCamFACT.h"
         mIncidentAngle          = mpIncidentAngle->GetVal();
     }
@@ -519,4 +543,5 @@
     if ( mpRawEventHeader != NULL)
     {
+        //Getter functions from "MRawEventHeader.h"
         mEventNumber            = mpRawEventHeader->GetDAQEvtNumber();
         mNumTriggerLvl1         = mpRawEventHeader->GetNumTrigLvl1();
@@ -531,4 +556,5 @@
     if ( mpCorsikaEvtHeader != NULL)
     {
+        //Getter functions from "MCorsikaEvtHeader.h"
         mFirstInteractionHeight = mpCorsikaEvtHeader->GetFirstInteractionHeight();
         mEvtReuse               = mpCorsikaEvtHeader->GetNumReuse();
@@ -560,4 +586,5 @@
 
     // delete Pixel Array before you set refferences for a new one
+    // in case it is existing
     if (mpPixel != NULL)
     {
@@ -574,4 +601,6 @@
     }
 
+    // you have to set this before you can read information
+    // from a magic binary file
     mpRawEventData->InitRead(mpRawRunHeader);
 
@@ -580,9 +609,12 @@
     // -----------------------------------------------------------------------
 
+    //array to contain alle samples of all pixel of a event
     unsigned short* all_raw_data    = NULL;
 
     if ( mpRawEventData != NULL)
     {
+        // point raw data array to RawEventData Array in Event Tree
         all_raw_data    = (unsigned short*) mpRawEventData->GetSamples();
+        /*
 //  FADC samples (hi gain) of all pixels
 //  This is an array of Byte_t variables. The value of a FADC sample has a
@@ -593,4 +625,5 @@
 //  i-th FADC sample of the j-th pixel are stored in the n consecutive
 //  positions of this array, starting from fHiGainFadcSamples[j*n*m+i*n]
+*/
     }
     else cout << "...cannot read event raw data" << endl;
@@ -601,4 +634,5 @@
         cout << "...pixel progress: ";
 
+    //Loop over all camera pixel and read eEvent raw data, pixel ID and pedestal offset
     for ( int i = 0; i < mNumberOfPixels; i++ )
     {
@@ -610,5 +644,5 @@
         }
 
-        // Read Pedestal Offset
+        // Read Pedestal Offset and store it in classes pixel_t array
         if ( mpElectronicNoise != NULL)
         {
@@ -617,5 +651,5 @@
         else cout << "...cannot read pedestal offset" << endl;
 
-        // Read Pixel SoftId
+        // Read Pixel SoftId and store it in classes pixel_t array
         if ( mpRawEventData != NULL)
         {
@@ -626,6 +660,6 @@
         pix_first_sample        = i*mNumberOfSamples;
 
-        // point beginning of pixel's rawdata array to address
-        // of pixel's first sample's adress
+        // point beginning of class' pixel_t array to the address
+        // of pixel's first sample's adress in TTree
         mpPixel[i].rawData      = &(all_raw_data[pix_first_sample]);
 
@@ -650,5 +684,8 @@
     mpEventTree->GetEntry(Event);
 
+    //Get Event header data from TTree
     ReadEventMetaData();
+
+    //Get Event raw data from TTree
     ReadEventRawData();
 
@@ -707,5 +744,6 @@
     WriteEventDataInfo2Csv();
 
-//    for (int evt = 0; evt < mNumberOfEvents; evt++)
+    // loop over all events from tree and write content to csv
+    //    for (int evt = 0; evt < mNumberOfEvents; evt++)
     for (int evt = 0; evt < mNumberOfEntries; evt++)
     {
@@ -884,4 +922,6 @@
     mCsv << "pixelID" << mSeparator;
 //     mCsv << "pixelPedestal" << mSeparator;
+
+    // Loop over number of all samples in pixel
     for (int i = 0; i < mNumberOfSamples; i++)
     {
@@ -898,5 +938,5 @@
     if (mVerbosityLvl > 0) cout << "...writing event data to csv" << endl;
 
-    // Loop over pixels and write pixeldata to csv
+    // Loop over all pixels and write pixeldata to csv
     for (int i = 0; i < mNumberOfPixels; i++)
     {
@@ -915,4 +955,5 @@
 //    mCsv << mpPixel[pixelID].pedestal << mSeparator;
 
+    // Loop over number of all samples in pixel and write samples content to csv
     for (int i = 0; i < mNumberOfSamples; i++)
     {
@@ -938,4 +979,5 @@
     if (mVerbosityLvl > 3) cout << "...writing pedestal info to csv" << endl;
 
+    // Loop over all pixels and write pixel pedestal to csv
     for (int pixelID = 0; pixelID < mNumberOfPixels; pixelID++)
     {
