Index: trunk/MagicSoft/Mars/readraw.cc
===================================================================
--- trunk/MagicSoft/Mars/readraw.cc	(revision 546)
+++ trunk/MagicSoft/Mars/readraw.cc	(revision 547)
@@ -68,4 +68,7 @@
     //  open the file
     //
+
+    cout << " Open the file " << endl ; 
+
     TFile input(argv[1], "READ");
 
@@ -74,29 +77,75 @@
     //
 
+    cout << " Check the RunHeader " << endl ; 
     TTree *runtree = (TTree*) input.Get("RunHeaders") ;
     
-    cout << " Entries in Tree RunHeaders: " << dec << runtree->GetEntries() << endl ;
-
-    runtree->GetBranch("MRawRunHeader")->SetAddress(&runheader);
-    runtree->GetEvent(0);
-
-    runheader->Print();
-
+    if (!runtree)
+      { 
+	cout << endl 
+	     << "  WARNING: This file has NO RunHeader " 
+	     << endl << endl ; 
+      } 
+    else
+      {  
+	cout << " Entries in Tree RunHeaders: " << dec << runtree->GetEntries() << endl ;
+	
+	runtree->GetBranch("MRawRunHeader")->SetAddress(&runheader);
+	runtree->GetEvent(0);
+	
+	runheader->Print();
+      } 
 
     //
     // open the DataTree and read in 
     //
-    TTree *evttree = (TTree*) input.Get("Data") ;
 
-    //
-    //   connnect the branches in that tree
-    //
-    evttree->GetBranch("MRawEvtHeader")->SetAddress(&evtheader);
-    evttree->GetBranch("MTime")->SetAddress(&evttime);
-    evttree->GetBranch("MRawEvtData")->SetAddress(&evtdata);
-    evttree->GetBranch("MRawCrateArray")->SetAddress(&evtcrate);
+    cout << " Check the Event Tree " << endl ; 
+    
+    TTree *evttree = (TTree*) input.Get("Events") ;
 
+    cout << " Check all the Branches in the Tree " << endl ; 
+    
+    
+    //  check the branches in the Tree 
+    
+    TIter Next(evttree->GetListOfBranches());
+    TBranch *branch=NULL;
+    
+    while ( (branch=(TBranch*)Next()) )
+    {
+        //
+        // Get Name of Branch
+        //
+        const char *name = branch->GetName();
+	
+	//	cout << name << endl ; 
+
+	if ( ! strcmp(name, "MRawEvtHeader") )
+	  evttree->GetBranch("MRawEvtHeader")->SetAddress(&evtheader);
+
+	if ( ! strcmp(name, "MTime") )
+	  evttree->GetBranch("MTime")->SetAddress(&evttime);
+
+	if ( ! strcmp(name, "MRawEvtData") )
+	  evttree->GetBranch("MRawEvtData")->SetAddress(&evtdata);
+
+	if ( ! strcmp(name, "MRawCrateArray") )
+	  evttree->GetBranch("MRawCrateArray")->SetAddress(&evtcrate);
+
+	if ( ! strcmp(name, "MMcEvt") )
+	  cout << " Not able to connect to class MMcEvt yet " << endl ; 
+
+	if ( ! strcmp(name, "MMcTrig") )
+	  cout << " Not able to connect to class MMcTrig yet " << endl ; 
+
+
+    } 
+    
+    // loop over all entries 
+    
     Int_t nent = (Int_t)evttree->GetEntries();
-    cout << " Entries in Tree Data: " << dec << nent << endl;
+    
+    cout << endl << endl  
+	 << " Entries in Tree Data: " << dec << nent << endl;
 
     for (Int_t i = 0; i<nent; i++)
