|  | ATLAS Offline Software
    | 
 
 
 
Go to the documentation of this file.
   60       std::cout << 
"ERROR attempt to fill a cluster from different cell containers\n";
 
   61       return StatusCode::FAILURE;
 
   70         eta, 
phi, deta, dphi, sampling, tofill);
 
   72   return StatusCode::SUCCESS;
 
  168     m_sampling (sampling),
 
  170     m_cell_container (cell_container),
 
  193   if (
cell->caloDDE()->getSampling() == m_sampling) {
 
  194     double etac = 
cell->eta();
 
  195     double phic = 
cell->phi();
 
  196     double etar = 
cell->caloDDE()->eta_raw();
 
  197     double phir = 
cell->caloDDE()->phi_raw();
 
  205     if (etar >= m_eta-m_deta/2. && etar <= m_eta+m_deta/2.) {
 
  206       if (dphir >= -m_dphi/2. && dphir <= m_dphi/2.) {
 
  211         if (ene > m_calc.m_emax) {
 
  212           m_calc.m_etamax = etac;
 
  213           m_calc.m_phimax = phic;
 
  216           m_calc.m_etarmax = etar;
 
  217           m_calc.m_phirmax = phir;
 
  223         m_s20 += ene*etac*etac;
 
  225         m_s02 += ene*dphic*dphic;
 
  232           m_tofill->addCell(m_cell_container->findIndex(
cell->caloDDE()->calo_hash()), 
weight);
 
  261     double s1 = m_s01/m_s00;
 
  263     m_calc.m_phis = m_s02/m_s00 - 
s1*
s1;
 
  266     m_calc.m_etam = m_s10/m_s00;
 
  267     m_calc.m_etas = m_s20/m_s00 - m_calc.m_etam*m_calc.m_etam;
 
  270     m_calc.m_etamr = m_s10r/m_s00;
 
  277     if (std::abs (m_calc.m_etamr - m_eta) > m_deta ||
 
  278         std::abs (m_calc.m_etam) > 10 ||
 
  281       m_calc.resetOnNegativeEnergy(m_eta,m_phi);
 
  286     m_calc.resetOnNegativeEnergy(m_eta,m_phi);
 
  295   if (m_calc.m_etas > 0.) m_calc.m_etas = sqrt(m_calc.m_etas);
 
  296   if (m_calc.m_phis > 0.) m_calc.m_phis = sqrt (m_calc.m_phis);
 
  
CaloLayerCalculator & m_calc
These members hold the values passed to the constructor.
This class defines the phi convention for Calorimeters.
list_iterator begin() const
void resetOnNegativeEnergy()
Reset output variables, but not m_em, allowing samplings to be negative.
Scalar phi() const
phi method
void select(double eta, double phi, double deta, double dphi)
Scalar eta() const
pseudorapidity method
~Helper()
Calculate the layer variables from the accumulated cells The variables in the parent CaloLayerCalcula...
void cell(const CaloCell *cell, double weight)
Accumulate results for another cell.
list_iterator end() const
Helper(CaloLayerCalculator &calc, double eta, double phi, double deta, double dphi, CaloSampling::CaloSample sampling, xAOD::CaloCluster *tofill, const CaloCellContainer *cell_container)
Initialize for doing layer variable calculation.
Description of a calorimeter cluster.
const CaloCellContainer * getCellContainer() const
Method to access underlying cell container.
::StatusCode StatusCode
StatusCode definition for legacy code.
CaloLayerCalculator()
Initialization.
static double fix(double phi)
const CaloClusterCellLink * getCellLinks() const
Get a pointer to the CaloClusterCellLink object (const version)
Container class for CaloCell.
double m_etam
Layer variables.
This class provides the client interface for accessing the detector description information common to...
Data object for each calorimeter readout cell.
void fill(Iterator beg, Iterator end, double eta, double phi, double deta, double dphi, CaloSampling::CaloSample sampling, xAOD::CaloCluster *tofill=0)
Calculate layer variables from cells in a list.
static double diff(double phi1, double phi2)
simple phi1 - phi2 calculation, but result is fixed to respect range.
Calculate total energy, position, etc. for a given layer of a cluster.