Index: /trunk/Mars/msim/MPhotonData.cc
===================================================================
--- /trunk/Mars/msim/MPhotonData.cc	(revision 19550)
+++ /trunk/Mars/msim/MPhotonData.cc	(revision 19551)
@@ -260,6 +260,9 @@
         return kCONTINUE;
 
-    if (f[0]!=1)
-        cout << "MPhotonData::FillCorsika: WARNING - Bunch size !=1 (" << f[0] << ")" <<endl;
+    // My understanding is that each photon internally gets a weight (e.g. lambda^-2)
+    // and according to this weight a dice is thrown. The weights are still written
+    // to the output file but only for the surviving photons
+    if (f[0]>1)
+        cout << "MPhotonData::FillCorsika: WARNING - Bunch size > 1 (" << f[0] << ")" <<endl;
 
 #ifdef __MMCS__
@@ -308,4 +311,27 @@
 Int_t MPhotonData::FillCorsikaThin(const Float_t f[8], Int_t i)
 {
+    // DATAB2(LHCER(IBUF)+1,IBUF) = PHOTCM*WTCER/MAX(1.D-10,PROBTH)
+
+    // For the THIN option the photon bunch size is multiplied with the
+    // thinning weight. See Sect. 4.89 page 99.
+
+    /*
+     #if __THIN__
+     C      (CONTAINING UP TO 39 BUNCHES, 8 WORDS EACH)
+     C
+     C    8*(N-1)+1  NUMBER OF PHOTONS IN BUNCH
+     C                  (FOR STANDARD PARTICLE OUTPUT FILE:
+     C                   99.E5 + NINT(NUMBER OF PHOTONS IN BUNCH)*10 + 1
+     C    8*(N-1)+2  X- COORDINATE IN CM
+     C    8*(N-1)+3  Y- COORDINATE IN CM
+     C    8*(N-1)+4  DIRECTION COSINUS TO X AXIS
+     C    8*(N-1)+5  DIRECTION COSINUS TO Y AXIS
+     C    8*(N-1)+6  T TIME SINCE FIRST INTERACTION (OR ENTRANCE INTO
+     C               ATMOSPHERE) IN NSEC
+     C    8*(N-1)+7  PRODUCTION HEIGHT OF BUNCH IN CM
+     C    8*(N-1)+8  WEIGHT OF BUNCH
+     #else
+     */
+
     // From the Corsika manual:
     //
@@ -346,7 +372,9 @@
         return kCONTINUE;
 
-    if (f[0]!=1)
-        cout << "MPhotonData::FillCorsikaThin: WARNING - Bunch size !=1 (" << f[0] << ")" <<endl;
-
+    // My understanding is that each photon internally gets a weight (e.g. lambda^-2)
+    // and according to this weight a dice is thrown. The weights are still written
+    // to the output file but only for the surviving photons
+    if (f[0]>1)
+        cout << "MPhotonData::FillCorsikaThin: WARNING - Bunch size > 1 (" << f[0] << ")" <<endl;
 
     // x=north, y=west
@@ -365,4 +393,6 @@
 
     fProductionHeight = f[6]; // [cm]
+    // f[7]<0: Photoelectron bunches of specific wavelength (if __CEFFIC__)
+    // f[7]>0: __CERWLEN__ (but __CEFFIC takes priority)
 
     fWavelength = TMath::Abs(f[7]);
