Exemplo n.º 1
0
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;
}
Exemplo n.º 2
0
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;
}
Exemplo n.º 3
0
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;
}
Exemplo n.º 4
0
/* 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;
}