Index: /trunk/Mars/msim/MPhotonEvent.cc
===================================================================
--- /trunk/Mars/msim/MPhotonEvent.cc	(revision 19337)
+++ /trunk/Mars/msim/MPhotonEvent.cc	(revision 19338)
@@ -613,11 +613,21 @@
 }
 
-Int_t MPhotonEvent::ReadCorsikaEvt(Float_t * data, Int_t numEvents, Int_t arrayIdx)
-{
+Int_t MPhotonEvent::ReadCorsikaEvt(const vector<Float_t> &data, const uint32_t &blockLength, const Int_t &arrayIdx)
+{
+    if (data.size()%blockLength)
+    {
+        gLog << err << "ERROR - Size mismatch in photon bunch data." << endl;
+        return kERROR;   // Error occured
+    }
+
+    const uint32_t N = data.size()/blockLength;
+
    Int_t n = 0;
 
-   for (Int_t event = 0; event < numEvents; event++)
-      {
-      const Int_t rc = Add(n).FillCorsika(data + 7 * event, arrayIdx);
+   for (const Float_t *ptr=data.data(); ptr<data.data()+data.size(); ptr+=blockLength)
+   {
+       const Int_t rc = blockLength==7 ?
+           Add(n).FillCorsika(ptr, arrayIdx) :
+           Add(n).FillCorsikaThin(ptr, arrayIdx);
 
       switch (rc)
Index: /trunk/Mars/msim/MPhotonEvent.h
===================================================================
--- /trunk/Mars/msim/MPhotonEvent.h	(revision 19337)
+++ /trunk/Mars/msim/MPhotonEvent.h	(revision 19338)
@@ -64,5 +64,5 @@
     Int_t ReadEventIoEvt(MCorsikaFormat *fInFormat);
     Int_t ReadEventIoEvtCompact(MCorsikaFormat *fInFormat);
-    Int_t ReadCorsikaEvt(Float_t * data, Int_t numEvents, Int_t arrayIdx);
+    Int_t ReadCorsikaEvt(const vector<Float_t> &data, const uint32_t &blocklength, const Int_t &arrayIdx);
 
     // TObject
