Message: Re: Cerenkov radiation production below threshold  Not Logged In (login) 
Hi Peter,
I'm very confused about this but I'll try to be as clear as possible. You said that if I want my expected threshold to be respected I have to make sure that n of my maximum energy does not exceed 1/beta, where beta is that of a positron with threshold energy: n(E_{max}) < 1/beta_{threshold} The fact is that, as you also said, I'm giving n as a function of photon energies, and of course I have n as an increasing function of E, so that n_{max} = n(E_{photon, max}). So, if I want your condition to be respected, I have to define n on a very limited range of energies. As you can see from my tables at the end of this post, in case of water: beta_{threshold} = 0.7511 > n < 1.3314 so I should have to cut cherenkov photons' spectrum at the corresponding energy of 1.922481 eV (which is equal to 644 nm in terms of wavelength) discarding all bigger energies (shorter wavelengths). But the energies I'm giving (correct me if I'm wrong) are the energies of the generated Cherenkov photons: in Geant4 no Cherenkov photons are generated with energy out of the range I'm giving, so, if I cut the spectrum as you suggest, I'll also cut the mayor component of Cherenkov emission (in the bluwavelength range, around 400 nm). I think this is not what you are telling me to do. I'm pretty sure about the values I'm using for n (I calculated them using a formula suggested in an article and my results fit some tabulated data), so that is not the problem. I also don't think that I should use a value of n=1.3314 for energies above 1.99 eV to make things work because that would not make any sense, those values for n are the real ones and the threshold should come out from them. What I don't understand is: 1) Shouldn't it be rindex which defines cherenkov threshold (n > beta_{min}) instead of the other way around (beta > n)? (This is probably related to the fact that I had taken for granted that this was geant4 behavior, but I think the source code for G4cerenkov.cc is showing the opposite) 2) Assuming we reverse Cherenkov condition on beta and n, therefore finding a condition on n from beta (as you suggest), shouldn't it be the opposite, like: n(E_{min}) > 1/beta_{threshold} ? This way I'm imposing to generate only photons with energy in the range that satisfies cherenkov condition, and I'm cutting longer wavelengths, ABOVE 644 nm instead of BELOW. I think the routine you told me to understand (G4Cerenkov.cc) is suggesting the same thing, in lines 614637:
if n_{max} < 1/beta_{threshold} > no cherenkov photons at all, because we are below threshold else, if n_{min} > 1/beta_{threshold} > generate photons, we are above threshold else > we are in a situation which includes threshold, so we have to find its value I hope I made myself clear enough in this very long post. Thanks in advance. Esther
G4double PhotonEnergiesN[] = {1.704467*eV, 1.710345*eV, 1.716263*eV, 1.722222*eV, 1.728223*eV, 1.734266*eV, 1.740351*eV, 1.746479*eV, 1.752650*eV, 1.758865*eV, 1.765125*eV, 1.771429*eV, 1.777778*eV, 1.784173*eV, 1.790614*eV, 1.797101*eV, 1.803636*eV, 1.810219*eV, 1.816850*eV, 1.823529*eV, 1.830258*eV, 1.837037*eV, 1.843866*eV, 1.850746*eV, 1.857678*eV, 1.864662*eV, 1.871698*eV, 1.878788*eV, 1.885932*eV, 1.893130*eV, 1.900383*eV, 1.907692*eV, 1.915058*eV, 1.922481*eV, 1.929961*eV, 1.937500*eV, 1.945098*eV, 1.952756*eV, 1.960474*eV, 1.968254*eV, 1.976096*eV, 1.984000*eV, 1.991968*eV, 2.000000*eV, 2.008097*eV, 2.016260*eV, 2.024490*eV, 2.032787*eV, 2.041152*eV, 2.049587*eV, 2.058091*eV, 2.066667*eV, 2.075314*eV, 2.084034*eV, 2.092827*eV, 2.101695*eV, 2.110638*eV, 2.119658*eV, 2.128755*eV, 2.137931*eV, 2.147186*eV, 2.156522*eV, 2.165939*eV, 2.175439*eV, 2.185022*eV, 2.194690*eV, 2.204444*eV, 2.214286*eV, 2.224215*eV, 2.234234*eV, 2.244344*eV, 2.254545*eV, 2.264840*eV, 2.275229*eV, 2.285714*eV, 2.296296*eV, 2.306977*eV, 2.317757*eV, 2.328638*eV, 2.339623*eV, 2.350711*eV, 2.361905*eV, 2.373206*eV, 2.384615*eV, 2.396135*eV, 2.407767*eV, 2.419512*eV, 2.431373*eV, 2.443350*eV, 2.455446*eV, 2.467662*eV, 2.480000*eV, 2.492462*eV, 2.505051*eV, 2.517766*eV, 2.530612*eV, 2.543590*eV, 2.556701*eV, 2.569948*eV, 2.583333*eV, 2.596859*eV, 2.610526*eV, 2.624339*eV, 2.638298*eV, 2.652406*eV, 2.666667*eV, 2.681081*eV, 2.695652*eV, 2.710383*eV, 2.725275*eV, 2.740331*eV, 2.755556*eV, 2.770950*eV, 2.786517*eV, 2.802260*eV, 2.818182*eV, 2.834286*eV, 2.850575*eV, 2.867052*eV, 2.883721*eV, 2.900585*eV, 2.917647*eV, 2.934911*eV, 2.952381*eV, 2.970060*eV, 2.987952*eV, 3.006061*eV, 3.024390*eV};
G4double RefractiveIndex1[] = { 1.329615, 1.329662, 1.329709, 1.329756, 1.329804, 1.329852, 1.329901, 1.329950, 1.330000, 1.330050, 1.330100, 1.330151, 1.330203, 1.330254, 1.330307, 1.330359, 1.330413, 1.330466, 1.330520, 1.330575, 1.330630, 1.330686, 1.330742, 1.330799, 1.330856, 1.330914, 1.330972, 1.331031, 1.331090, 1.331150, 1.331211, 1.331272, 1.331334, 1.331396,1.331459, 1.331522, 1.331586, 1.331651, 1.331717, 1.331783, 1.331849, 1.331917, 1.331985, 1.332054, 1.332123, 1.332193, 1.332264, 1.332336, 1.332408, 1.332482, 1.332556, 1.332630, 1.332706, 1.332782, 1.332859, 1.332937, 1.333016, 1.333096, 1.333177, 1.333258, 1.333341, 1.333424, 1.333508, 1.333593, 1.333680, 1.333767, 1.333855, 1.333944, 1.334035, 1.334126, 1.334218, 1.334312, 1.334406, 1.334502, 1.334599, 1.334697, 1.334796, 1.334897, 1.334999, 1.335102, 1.335206, 1.335312, 1.335419, 1.335527, 1.335637, 1.335748, 1.335861, 1.335975, 1.336090, 1.336208, 1.336326, 1.336447, 1.336569, 1.336692, 1.336817, 1.336945, 1.337073, 1.337204, 1.337336, 1.337471, 1.337607, 1.337745, 1.337886, 1.338028, 1.338173, 1.338319, 1.338468, 1.338619, 1.338772, 1.338928, 1.339086, 1.339247, 1.339410, 1.339576, 1.339744, 1.339915, 1.340089, 1.340265, 1.340445, 1.340628, 1.340813, 1.341002, 1.341194, 1.341389, 1.341588, 1.341790, 1.341996, 1.342205};
G4MaterialPropertiesTable* myMPT1 = new G4MaterialPropertiesTable(); myMPT1>AddProperty("RINDEX", PhotonEnergiesN, RefractiveIndex1, n); Water>SetMaterialPropertiesTable(myMPT1);

to: 