Index: /fact/tools/marsmacros/mc2csv/MonteCarlo.C
===================================================================
--- /fact/tools/marsmacros/mc2csv/MonteCarlo.C	(revision 14609)
+++ /fact/tools/marsmacros/mc2csv/MonteCarlo.C	(revision 14610)
@@ -82,13 +82,13 @@
     mSeparator      = " ";
 
-    // Änderung !!!
+    // source file
     mpRootFile      = NULL;
-    // Änderung zuende
-
+
+    // Trees
     mpEventTree     = NULL;
     mpHeaderTree    = NULL;
-    mpPixel         = NULL;
-
-    // Änderung !!!
+
+
+    //header data types
     mpIntendedPulsePos      = NULL;
     mpMcRunHeader           = NULL;
@@ -97,4 +97,5 @@
     mpCorsikaRunHeader      = NULL;
 
+    //Evt data types
     mpElectronicNoise       = NULL;
     mpRawEventData          = NULL;
@@ -103,11 +104,13 @@
     mpRawEventHeader        = NULL;
     mpCorsikaEvtHeader      = NULL;
-    // Änderung zuende
-
+    //
+
+    // containers
+    mpPixel         = NULL;
     mpSamples       = NULL;
     mEventNumber    = 0;
     mNumberOfEvents = 2;
 
-    mVerbosityLvl   = 0;
+    mVerbosityLvl   = 2;
 
     return;
@@ -149,4 +152,5 @@
     if (mVerbosityLvl > 0) cout << "...closing root file: " << mFileName << endl;
     mpRootFile->Close("R");
+    mpRootFile=NULL;
 
     return;
@@ -188,13 +192,36 @@
     }
 
-
-
     //Set Adresses to Branches in RunHeader-Tree
-    mpHeaderTree->SetBranchAddress("MGeomCam.",         &mpGeomCam);
-    mpHeaderTree->SetBranchAddress("IntendedPulsePos.", &mpIntendedPulsePos);
-    mpHeaderTree->SetBranchAddress("MMcRunHeader.",     &mpMcRunHeader);
-    mpHeaderTree->SetBranchAddress("ElectronicNoise.",  &mpElectronicNoise);
-    mpHeaderTree->SetBranchAddress("MRawRunHeader.",    &mpRawRunHeader);
-    mpHeaderTree->SetBranchAddress("MCorsikaRunHeader.",&mpCorsikaRunHeader);
+    if ( mpHeaderTree->GetBranchStatus("MGeomCam.") )
+    {
+        if (mVerbosityLvl > 1) cout << "   ...MGeomCam" << endl;
+        mpHeaderTree->SetBranchAddress("MGeomCam.",         &mpGeomCam);
+    }
+    if ( mpHeaderTree->GetBranchStatus("IntendedPulsePos.") )
+    {
+        if (mVerbosityLvl > 1) cout << "   ...IntendedPulsePos" << endl;
+        mpHeaderTree->SetBranchAddress("IntendedPulsePos.", &mpIntendedPulsePos);
+    }
+    if ( mpHeaderTree->GetBranchStatus("MMcRunHeader.") )
+    {
+        if (mVerbosityLvl > 1) cout << "   ...MMcRunHeader" << endl;
+        mpHeaderTree->SetBranchAddress("MMcRunHeader.",     &mpMcRunHeader);
+    }
+    if ( mpHeaderTree->GetBranchStatus("ElectronicNoise.") )
+    {
+        if (mVerbosityLvl > 1) cout << "   ...ElectronicNoise" << endl;
+        mpHeaderTree->SetBranchAddress("ElectronicNoise.",  &mpElectronicNoise);
+    }
+    if ( mpHeaderTree->GetBranchStatus("MRawRunHeader.") )
+    {
+        if (mVerbosityLvl > 1) cout << "   ...MRawRunHeader" << endl;
+        mpHeaderTree->SetBranchAddress("MRawRunHeader.",    &mpRawRunHeader);
+    }
+    if ( mpHeaderTree->GetBranchStatus("MCorsikaRunHeader.") )
+    {
+        if (mVerbosityLvl > 1) cout << "   ...MCorsikaRunHeader" << endl;
+        mpHeaderTree->SetBranchAddress("MCorsikaRunHeader.",&mpCorsikaRunHeader);
+    }
+
     return;
 }
@@ -266,10 +293,35 @@
     }
 
+
     //Set Adresses to Branches in Events-Tree
-    mpEventTree->SetBranchAddress("MRawEvtData.",       &mpRawEventData);
-    mpEventTree->SetBranchAddress("IncidentAngle.",     &mpIncidentAngle);
-    mpEventTree->SetBranchAddress("MMcEvt.",            &mpMcEventMetaData);
-    mpEventTree->SetBranchAddress("MRawEvtHeader.",     &mpRawEventHeader);
-    mpEventTree->SetBranchAddress("MCorsikaEvtHeader.", &mpCorsikaEvtHeader);
+    if (mVerbosityLvl > 1) cout << "...SetBranchAddresses:" << endl;
+
+    if ( mpEventTree->GetBranchStatus("MRawEvtData.") != -1 )
+    {
+        if (mVerbosityLvl > 1) cout << "   ...MRawEvtData" << endl;
+        mpEventTree->SetBranchAddress("MRawEvtData.",       &mpRawEventData);
+    }
+    if ( mpEventTree->GetBranchStatus("IncidentAngle.") )
+    {
+        //FIX ME: THIS VALUE IS NOT EXISTANT IN EVERY MC FILE
+
+        if (mVerbosityLvl > 1) cout << "   ...IncidentAngle" << endl;
+        mpEventTree->SetBranchAddress("IncidentAngle.",     &mpIncidentAngle);
+    }
+    if ( mpEventTree->GetBranchStatus("MMcEvt.") )
+    {
+        if (mVerbosityLvl > 1) cout << "   ...McEvt" << endl;
+        mpEventTree->SetBranchAddress("MMcEvt.",            &mpMcEventMetaData);
+    }
+    if ( mpEventTree->GetBranchStatus("MRawEvtHeader.") )
+    {
+        if (mVerbosityLvl > 1) cout << "   ...MRawEventHeader" << endl;
+        mpEventTree->SetBranchAddress("MRawEvtHeader.",     &mpRawEventHeader);
+    }
+    if ( mpEventTree->GetBranchStatus("MCorsikaEvtHeader.") )
+    {
+        if (mVerbosityLvl > 1) cout << "   ...MCorsikaEvtHeader" << endl;
+        mpEventTree->SetBranchAddress("MCorsikaEvtHeader.", &mpCorsikaEvtHeader);
+    }
 
     return;
