Index: trunk/Mars/msim/MHPhotonEvent.cc
===================================================================
--- trunk/Mars/msim/MHPhotonEvent.cc	(revision 9902)
+++ trunk/Mars/msim/MHPhotonEvent.cc	(revision 9936)
@@ -228,5 +228,8 @@
 
     case 4: // Two times the pixel-0 traversal size
-    case 5: // The maximum radius (cm)
+    case 5: // The maximum radius (cm) -- ~ 10 bins / pix
+    case 6: // The maximum radius (cm) -- ~  5 bins / pix
+    case 7: // The maximum radius (cm) -- ~  3 bins / pix
+    case 8: // The maximum radius (cm) -- ~  2 bins / pix
         {
             MGeomCam *c = (MGeomCam*)pList->FindObject("MGeomCam");
@@ -237,8 +240,31 @@
             }
             // Type 3: Define ~10 bins per pixel
-            xmax = fType==3 || fType==5 ? c->GetMaxRadius() : 4*(*c)[0].GetT()/10;
-            num  = fType==3 || fType==5 ? TMath::Nint(10*(2*c->GetMaxRadius())/(2*(*c)[0].GetT())) : 101;
-
-            if (fType==5)
+            xmax = fType!=4 ? c->GetMaxRadius() : 4*(*c)[0].GetT()/10;
+
+            switch (fType)
+            {
+            case 3:
+            case 5:
+                // ~10 bins per pixel
+                num = TMath::Nint(10*c->GetMaxRadius()/(*c)[0].GetT());
+                break;
+            case 6:
+                // ~5 bins per pixel
+                num = TMath::Nint(5*c->GetMaxRadius()/(*c)[0].GetT());
+                break;
+            case 7:
+                // ~3 bins per pixel
+                num = TMath::Nint(3*c->GetMaxRadius()/(*c)[0].GetT());
+                break;
+            case 8:
+                // ~2 bins per pixel
+                num = TMath::Nint(2*c->GetMaxRadius()/(*c)[0].GetT());
+                break;
+            case 4:
+                num = 101;
+                break;
+            }
+
+            if (fType==5 || fType==6 || fType==7)
                 xmax /= 10;
 
