I'm simulating an extremely rare event (the detection of weighted photon packets in a highly absorbing material). For example, I may simulate the transmission of 1e9 photons and only detect 10 of them (and their weights vary from $0^+$ to 1). I'm calculating the mean value of this occurring (what is the mean of $\sum w_{received}/N_{transmitted}$, where $w_{received}$ is the weight of the received photons and $N_{transmitted}$ is the number of transmitted photons) and put a confidence interval on this. My understanding is that the population mean, $\mu$ lies within one standard Normal deviation of $\bar{x} \pm S_N/\sqrt{N}$, where $\bar{x}$ is the sample mean, $S_N$ is the sample variance, and $N$ is the number of samples.
My question is this, how do I know when I've received enough "positive" samples, or received photons, to get an accurate estimate? Since I'm dealing with such a small probability, the total number of samples, $N$ is extremely high and $S_N/\sqrt{N}$ will always be small. I've seen notes saying the CLT only holds for samples sizes > 30, but would that apply to something like this? i.e. $N_{received}$ > 30?
Summary: I'm drawing samples from an unknown distribution and computing their mean. Sample values range from 0 to 1, with 0 being far more common. I'm computing the mean (which is very close to 0) and I want to put a confidence interval on this.
Edit From my description above, there's two ways to think about the problem. The first is a binomial distribution of yes/no results (yes, received; no, not received). However, the more complex, and in practice, more useful, distribution is somewhat of a weighted binomial (not sure if that's the right term), where each received photon "packet" has a power associated with it, that ranges from 0 to 1. That is the case I care most about putting a confidence interval on. i.e. my sample values will predominately be 0's with a small number of samples with values 0 < x <= 1
Edit 2 The PDF will look something like the crude drawing below. Note that it is not to scale - there will be much more 0-weights than non-zero weights. This is an example pdf of samples. I don't know what this will look like before I do an experiment - I just know my samples will range from 0 to 1, with a predominate amount being 0.

Edit 3 The term "weight" seems to be a bit misleading. "Sample value" or "power" might be a better term. My simulation tracks photon movement through water. Most photons never reach the receiver and therefore have a power of 0. As photons move through the water their power is reduced (to model a group of photons moving with a portion being absorbed as they move along). As these photons are received they have weights that range from a max of 1 (no loss from the travel) down towards a number approaching 0.
To speed computation time, it's customary to treat ray tracing problems of photon movement or neutron movement as groups of photons instead of individual photons. That way, instead of terminating the trajectory at an absorption event, the group weight is simply reduced. The computation time is not lost and the aggregate received power is measured. A weight of 1 indicates no photons in the "group" was lost due to absorption. Weight=0 is non-detected and detected photons have weights=(0,1]
– gallamine Sep 15 '11 at 20:13