Index: trunk/MagicSoft/Simulation/Detector/Camera/camera.cxx
===================================================================
--- trunk/MagicSoft/Simulation/Detector/Camera/camera.cxx	(revision 1558)
+++ trunk/MagicSoft/Simulation/Detector/Camera/camera.cxx	(revision 1559)
@@ -21,7 +21,7 @@
 //
 // $RCSfile: camera.cxx,v $
-// $Revision: 1.44 $
+// $Revision: 1.45 $
 // $Author: blanch $ 
-// $Date: 2002-10-18 16:53:03 $
+// $Date: 2002-10-29 17:15:27 $
 //
 ////////////////////////////////////////////////////////////////////////
@@ -409,8 +409,11 @@
   char flag[SIZE_OF_FLAGS + 1];  //@< flags in the .rfl file
 
+  int reflector_file_version;  //@< vrsion of he reflector file
+
   FILE *inputfile;            //@< stream for the input file
   ofstream datafile;          //@< stream for the data file
 
   MCEventHeader mcevth;       //@< Event Header class (MC)
+  MCEventHeader_2 mcevth_2;   //@< Event Header class (MC) for reflector > 0.6
   MCCphoton cphoton;          //@< Cherenkov Photon class (MC)
 
@@ -1174,5 +1177,5 @@
   // get signature, and check it
 
-  if(check_reflector_file( inputfile )==FALSE){
+  if((reflector_file_version=check_reflector_file( inputfile ))==FALSE){
     exit(1);
   }
@@ -1241,5 +1244,9 @@
 	
 	// get MCEventHeader
-	fread( (char*)&mcevth, mcevth.mysize(), 1, inputfile );
+	if (reflector_file_version<6)
+	  fread( (char*)&mcevth, mcevth.mysize(), 1, inputfile );
+	else
+	  fread( (char*)&mcevth_2, mcevth_2.mysize(), 1, inputfile );
+	  
 
 	// calculate impact parameter (shortest distance betwee the original
@@ -1273,6 +1280,12 @@
 	// read the direction of the incoming shower
 	
-	thetashw = mcevth.get_theta();
-	phishw = mcevth.get_phi();
+	if (reflector_file_version<6){
+	  thetashw = mcevth.get_theta();
+	  phishw = mcevth.get_phi();
+	}
+	else{
+	  thetashw = mcevth_2.get_theta();
+	  phishw = mcevth_2.get_phi();
+	}
 	
 	// calculate vector for shower
@@ -1284,5 +1297,8 @@
 	// read the deviation of the telescope with respect to the shower
 	
-	mcevth.get_deviations ( &thetaCT, &phiCT );
+	if (reflector_file_version<6)
+	  mcevth.get_deviations ( &thetaCT, &phiCT );
+	else
+	  mcevth_2.get_deviations ( &thetaCT, &phiCT );
 
 	if ( (thetaCT == 0.) && (phiCT == 0.) ) {
@@ -1292,6 +1308,9 @@
 	  // between the CT axis and the core position
 
-	  mcevth.get_core(&coreX, &coreY);
-		
+	  if (reflector_file_version<6)
+	    mcevth.get_core(&coreX, &coreY);
+	  else
+	    mcevth_2.get_core(&coreX, &coreY);
+
 	  impactD = dist_r_P( 0., 0., 0., l1, m1, n1, coreX, coreY, 0. );
 	  
@@ -1324,14 +1343,25 @@
 	
 	if ( Select_Energy ) {
-	  if (( mcevth.get_energy() < Select_Energy_le ) ||
-	      ( mcevth.get_energy() > Select_Energy_ue )) {
-	    log(SIGNATURE, "select_energy: shower rejected.\n");
-	    continue;
-	  }
+	  if (reflector_file_version<6)
+	    if (( mcevth.get_energy() < Select_Energy_le ) ||
+		( mcevth.get_energy() > Select_Energy_ue )) {
+	      log(SIGNATURE, "select_energy: shower rejected.\n");
+	      continue;
+	    }
+	  else
+	    if (( mcevth_2.get_energy() < Select_Energy_le ) ||
+		( mcevth_2.get_energy() > Select_Energy_ue )) {
+	      log(SIGNATURE, "select_energy: shower rejected.\n");
+	      continue;
+	    }
 	}
 
 	// Read first and last time and put inumphe to 0
 
-	mcevth.get_times(&arrtmin_ns,&arrtmax_ns);
+	if (reflector_file_version<6)
+	  mcevth.get_times(&arrtmin_ns,&arrtmax_ns);
+	else
+	  mcevth_2.get_times(&arrtmin_ns,&arrtmax_ns);
+
 	inumphe=0;
 
@@ -1657,5 +1687,5 @@
 	      //
 	      
-	      EvtHeader[0]->FillHeader ( (UShort_t) (ntshow + nshow) ,  20 ) ; 
+	      EvtHeader[0]->FillHeader ( (UInt_t) (ntshow + nshow) ,  20 ) ; 
 	      
 	      //   fill pixel information
@@ -1780,5 +1810,5 @@
 	    // get signature of the next part and check it.
 
-	    if(check_reflector_file( inputfile )==FALSE){
+	    if((reflector_file_version=check_reflector_file( inputfile ))==FALSE){
 	      exit(1);
 	    }
@@ -3340,4 +3370,5 @@
   static MCEventHeader evth; // the event header
   static float nphe[iMAXNUMPIX];    // the number of photoelectrons in each pixel
+  int reflector_file_version;
   int itnphe;   // total number of produced photoelectrons
   int itotnphe;   // total number of produced photoelectrons after averaging
@@ -3366,5 +3397,5 @@
   // get signature, and check it
   
-  if(check_reflector_file(infile)==FALSE){
+  if((reflector_file_version=check_reflector_file( infile ))==FALSE){
     exit(1);
   }
@@ -3606,4 +3637,7 @@
 //
 // $Log: not supported by cvs2svn $
+// Revision 1.44  2002/10/18 16:53:03  blanch
+// Modification to read several reflector files.
+//
 // Revision 1.43  2002/09/13 10:53:39  blanch
 // Minor change to remove some undisired comments.
@@ -3739,4 +3773,7 @@
 //
 // $Log: not supported by cvs2svn $
+// Revision 1.44  2002/10/18 16:53:03  blanch
+// Modification to read several reflector files.
+//
 // Revision 1.43  2002/09/13 10:53:39  blanch
 // Minor change to remove some undisired comments.
