I have few questions about the avalanche model used in AvalancheMC. I am a PhD student working in detector simulation it is very necessary to understand for me the following questions. I will be thankful to you is you please answer all these.
-
Is that model derived from the yule-furry model. If yes the as i know yule furry model does not take into account attachment; however here i have seen attachment is introduced.
-
what is the length of the subdivision of a drift step? is it probth=0.01? how do we get the value?
-
What is the physical interpretation of the sum of alpha and eta (alps[i] + etas[i])?
-
Is it possible to get explanation of the following portion of the code from AvalancheMC
// Subdivision of a step. constexpr double probth = 0.01; // Compute the number of subdivisions. const int nDiv = std::max(int((alps[i] + etas[i]) / probth), 1); // Compute the probabilities for gain and loss. const double p = std::max(alps[i] / nDiv, 0.); const double q = std::max(etas[i] / nDiv, 0.); // Loop over the subdivisions. for (int j = 0; j < nDiv; ++j) { if (ne > 100) { // Gaussian approximation. const int gain = int(ne * p + RndmGaussian() * sqrt(ne * p * (1. - p))); const int loss = int(ne * q + RndmGaussian() * sqrt(ne * q * (1. - q))); ne += gain - loss; ni += gain; } else { // Binomial approximation for (int k = ne; k--;) { if (RndmUniform() < p) { ++ne; ++ni; } if (RndmUniform() < q) --ne; } }