Index: trunk/MagicSoft/Simulation/Detector/Camera/camera.cxx
===================================================================
--- trunk/MagicSoft/Simulation/Detector/Camera/camera.cxx	(revision 6369)
+++ trunk/MagicSoft/Simulation/Detector/Camera/camera.cxx	(revision 6386)
@@ -46,4 +46,5 @@
 #include "MRawCrateData.h"
 #include "MMcEvt.hxx"
+#include "MMcEvtBasic.h"
 #include "MMcTrig.hxx"
 #include "MMcRunHeader.hxx"
@@ -1102,17 +1103,17 @@
   }
 
-  MMcEvt  **McEvt = NULL;
-
-  if (Write_McEvt) {
-    if (ct_Number>1){
-      McEvt = new MMcEvt *[numberBranches]; 
-      for (int i=0;i<numberBranches;i++)
-	McEvt[i]=new MMcEvt();
-    }
-    else {
-      McEvt = new MMcEvt *[1]; 
-      McEvt[0]=new MMcEvt();
-    }
-  }
+  MMcEvt      **McEvt = NULL;
+  MMcEvtBasic **McEvtBasic = NULL;
+
+  if (Write_McEvt) 
+    {
+      McEvt = new MMcEvt *[ct_Number]; 
+      McEvtBasic = new MMcEvtBasic *[ct_Number]; 
+      for (int i = 0; i < ct_Number; i++)
+	{
+	  McEvt[i] = new MMcEvt();
+	  McEvtBasic[i] = new MMcEvtBasic();
+	}
+    }
   //  
   // initalize a temporal ROOT file 
@@ -1205,5 +1206,5 @@
 
   RunHeader->SetMagicNumber(MRawRunHeader::kMagicNumber);
-  RunHeader->SetFormatVersion(4);
+  RunHeader->SetFormatVersion(5);
   RunHeader->SetSoftVersion((UShort_t) (VERSION*10));
   RunHeader->SetRunType(256);
@@ -1383,22 +1384,32 @@
   TTree EvtTree("Events","Normal Triggered Events");
 
-  if (Write_McEvt && ct_Number==1){
-
-    EvtTree.Branch("MMcEvt.","MMcEvt", 
-		   &McEvt[0]);
-  }
-
-  if (Write_McEvt && ct_Number!=1){
-    ibr=0;
-    for(char branchname[256];ibr<numberBranches;ibr++){
-      
-      sprintf(help,"%i",ibr+1);
-      strcpy (branchname, "MMcEvt;");
-      strcat (branchname, & help[0]);
-      strcat (branchname, ".");
-      EvtTree.Branch(branchname,"MMcEvt", 
-		     &McEvt[ibr]);
-    }
-  }
+  if (Write_McEvt && ct_Number == 1)
+    {
+      EvtTree.Branch("MMcEvt.","MMcEvt", &McEvt[0]);
+      EvtTree.Branch("MMcEvtBasic.","MMcEvtBasic", &McEvtBasic[0]);
+    }
+
+  if (Write_McEvt && ct_Number!=1)
+    {
+      ibr=0;
+      for(char branchname[256]; ibr < numberBranches; ibr++)
+	{
+	  sprintf(help,"%i",ibr+1);
+	  strcpy (branchname, "MMcEvt;");
+	  strcat (branchname, & help[0]);
+	  strcat (branchname, ".");
+	  EvtTree.Branch(branchname,"MMcEvt", 
+			 &McEvt[ibr]);
+	}
+      for(char branchname[256]; ibr < numberBranches; ibr++)
+	{
+	  sprintf(help,"%i",ibr+1);
+	  strcpy (branchname, "MMcEvtBasic;");
+	  strcat (branchname, & help[0]);
+	  strcat (branchname, ".");
+	  EvtTree.Branch(branchname,"MMcEvtBasic", 
+			 &McEvtBasic[ibr]);
+	}
+    }
 
   if(!Trigger_Loop && ct_Number==1){
@@ -2332,4 +2343,9 @@
 		if (reflector_file_version<6){
 		  mcevth[0].get_times(&ftime, &ltime);
+
+		  McEvtBasic[0]->Fill((MMcEvt::ParticleId_t) mcevth[0].get_primary(),
+				      mcevth[0].get_energy(), impactD[0], 
+				      phiCT[0], thetaCT[0]);
+
 		  McEvt[0]->Fill( 0, 
 				  (UShort_t) mcevth[0].get_primary() , 
@@ -2372,4 +2388,10 @@
 		  mcevth_2[0].get_times(&ftime, &ltime);
 		  chi2=mcevth_2[0].get_NKGfit(&Nmax, &t0, &tmax, &a, &b, &c);
+
+		  McEvtBasic[0]->Fill((MMcEvt::ParticleId_t) mcevth_2[0].get_primary(),
+				      mcevth_2[0].get_energy(), impactD[0],
+				      mcevth_2[0].get_phi_CT(),
+				      mcevth_2[0].get_theta_CT());
+
 		  McEvt[0]->Fill((UInt_t) mcevth_2[0].get_evt_number(),
 				 (UShort_t) mcevth_2[0].get_primary() , 
@@ -2425,5 +2447,8 @@
 	      }
 	      if (Write_McEvt)
-		McEvt[0]->Clear() ;  
+		{
+		  McEvt[0]->Clear();
+		  McEvtBasic[0]->Clear();
+		}
 	    }
 	  }
@@ -2589,9 +2614,13 @@
 	      //
 	    
-
 	      for (int ict=0;ict<ct_Number;ict++){
 		Float_t ftime, ltime;
 		if (reflector_file_version<6){
 		  mcevth[ict].get_times(&ftime, &ltime);
+
+		  McEvtBasic[ict]->Fill((MMcEvt::ParticleId_t) mcevth[0].get_primary(),
+					mcevth[ict].get_energy(), impactD[ict],
+					phiCT[ict], thetaCT[ict]);
+
 		  McEvt[ict]->Fill( 0, 
 				  (UShort_t) mcevth[0].get_primary() , 
@@ -2632,4 +2661,11 @@
 		  mcevth_2[ict].get_times(&ftime, &ltime);
 		  chi2=mcevth_2[ict].get_NKGfit(&Nmax, &t0, &tmax, &a, &b, &c);
+
+		  McEvtBasic[ict]->Fill((MMcEvt::ParticleId_t)mcevth_2[ict].get_primary(), 
+					mcevth_2[ict].get_energy(), impactD[ict],
+					mcevth_2[ict].get_phi_CT(),
+					mcevth_2[ict].get_theta_CT());
+ 
+
 		  McEvt[ict]->Fill( (UInt_t) mcevth_2[ict].get_evt_number(),
 				  (UShort_t) mcevth_2[ict].get_primary() , 
@@ -2683,5 +2719,9 @@
 	    if (Write_RawEvt) EvtData[ict]->ResetPixels(0,0);
 	    if (Write_McTrig) McTrig[ict]->Clear() ;
-	    if (Write_McEvt) McEvt[ict]->Clear() ; 
+	    if (Write_McEvt) 
+	      {
+		McEvt[ict]->Clear() ; 
+		McEvtBasic[ict]->Clear();
+	      }
 	  } 
 	}
@@ -4983,4 +5023,11 @@
 //
 // $Log: not supported by cvs2svn $
+// Revision 1.87  2005/02/10 19:28:10  moralejo
+//
+// Substituted input card option "write_all_events" by
+// "write_all_event_headers". If set, this will make camera to write out
+// the event headers of all the processed events, no matter whether they
+// have triggered or not.
+//
 // Revision 1.86  2005/02/10 14:49:21  moralejo
 //
