bool CMSHCAL::acceptance(const Cluster& cluster) const { double energy = cluster.energy(); double eta = fabs(cluster.eta()); bool accept = false; auto& pars = m_acceptanceParameters; if (eta < m_etaCrack) { if (energy > pars[0]) accept = rootrandom::Random::uniform(0, 1) < (pars[1] / (1 + exp((energy + pars[2]) / (pars[3])))); } else if (eta < pars[4]) { if (energy > pars[5]) { if (energy < pars[6]) accept = rootrandom::Random::uniform(0, 1) < (pars[7] + pars[8] * energy + pars[9] * (pow(energy, 2))); else accept = rootrandom::Random::uniform(0, 1) < (pars[10] / (1 + exp((energy + pars[11]) / pars[12]))); } } else if (eta < pars[13] && energy > pars[14]) accept = true; /*if (eta < m_etaCrack) { if (energy > 1.) accept = rootrandom::Random::uniform(0, 1) < (1 / (1 + exp((energy - 1.93816) / (-1.75330)))); } else if (eta < 3.) { if (energy > 1.1) { if (energy < 10.) accept = rootrandom::Random::uniform(0, 1) < (1.05634 - 1.66943e-01 * energy + 1.05997e-02 * (pow(energy, 2))); else accept = rootrandom::Random::uniform(0, 1) < (8.09522e-01 / (1 + exp((energy - 9.90855) / -5.30366))); } } else if (eta < 5. && energy > 7) accept = true;*/ return accept; }
bool CMSECAL::acceptance(const Cluster& cluster) const { double energy = cluster.energy(); double eta = fabs(cluster.eta()); if (eta < m_etaCrack) return energy > m_emin[kBarrel]; else if (eta < m_etaAcceptanceThreshold) // 2.93) return ((energy > m_emin[kEndCap]) & (cluster.pt() > m_ptAcceptanceThreshold)); // 0.2)); else return false; }
bool ClicECAL::acceptance(const Cluster& cluster) const { double energy = cluster.energy(); double eta = fabs(cluster.eta()); if (eta < volumeCylinder().inner().etaJunction()) return (energy > m_emin[0]); // barrel else if (eta < m_etaAcceptance) return energy > m_emin[1]; // endcap else return false; }
/* Decides whether a cluster will be seen by a detector @param cluster the cluster to be analysed @return true is cluster is detected, false it if is too small to be seen */ bool CMSHCAL::acceptance(const Cluster& cluster) const { double energy = cluster.energy(); double eta = fabs(cluster.eta()); bool accept = false; auto rUniform = randomgen::RandUniform(0, 1); if (eta < m_etaCrack) { if (energy > 1.) accept = rUniform.next() < (1 / (1 + exp((energy - 1.93816) / (-1.75330)))); } else if (eta < 3.) { if (energy > 1.1) { if (energy < 10.) accept = rUniform.next() < (1.05634 - 1.66943e-01 * energy + 1.05997e-02 * (pow(energy, 2))); else accept = rUniform.next() < (8.09522e-01 / (1 + exp((energy - 9.90855) / -5.30366))); } } else if (eta < 5. && energy > 7) accept = true; return accept; }