18 bool ExecOtherVariables)
29 return StatusCode::SUCCESS;
36 info.f3 = std::abs(eallsamples) > 0. ? e3 / eallsamples : 0.;
47 int sampling_or_module = 0;
62 if ((
eta == 0. &&
phi == 0.) || std::abs(
eta) > 100) {
63 return StatusCode::SUCCESS;
76 return StatusCode::SUCCESS;
80 double deta = dde->
deta();
81 double dphi = dde->
dphi();
92 calc.fill(cmgr, &cell_container,
eta,
phi, 3. * deta, 3. * dphi, sam);
96 info.e333 = calc.em();
98 if (ExecOtherVariables) {
102 cell_list.
select(
eta,
phi, 7.0 * deta, 7.0 * dphi, sam);
105 cell_list.
begin(), cell_list.
end(),
eta,
phi, 7. * deta, 7. * dphi, sam);
106 info.e377 = calc.em();
110 cell_list.
begin(), cell_list.
end(),
eta,
phi, 5. * deta, 5. * dphi, sam);
111 info.e355 = calc.em();
115 cell_list.
begin(), cell_list.
end(),
eta,
phi, 3. * deta, 7. * dphi, sam);
116 info.e337 = calc.em();
120 cell_list.
begin(), cell_list.
end(),
eta,
phi, 3. * deta, 5. * dphi, sam);
121 info.e335 = calc.em();
125 if (eallsamples > 0. && info.e333 > -999.) {
126 info.f3core = info.e333 / eallsamples;
129 return StatusCode::SUCCESS;
Scalar eta() const
pseudorapidity method
Scalar phi() const
phi method
Definition of CaloDetDescrManager.
Calculate total energy, position, etc. for a given layer of a cluster.
Container class for CaloCell.
list_iterator end() const
void select(double eta, double phi, double deta, double dphi)
list_iterator begin() const
CaloCell_Base_ID::SUBCALO SUBCALO
This class groups all DetDescr information related to a CaloCell.
float eta_raw() const
cell eta_raw
float dphi() const
cell dphi
float phi_raw() const
cell phi_raw
float deta() const
cell deta
const CaloDetDescrElement * get_element(const Identifier &cellId) const
get element by its identifier
static void decode_sample(CaloCell_ID::SUBCALO &subCalo, bool &barrel, int &sampling_or_module, CaloCell_ID::CaloSample sample)
translate between the 2 ways to label a sub-detector:
This class provides the client interface for accessing the detector description information common to...
bool inBarrel() const
Returns true if at least one clustered cell in the barrel.
bool inEndcap() const
Returns true if at least one clustered cell in the endcap.
float etamax(const CaloSample sampling) const
Retrieve of cell with maximum energy in given sampling.
float phimax(const CaloSample sampling) const
Retrieve of cell with maximum energy in given sampling.
double e3(const xAOD::CaloCluster &cluster)
return the uncorrected cluster energy in 3rd sampling
bool inBarrel(const xAOD::CaloCluster &cluster, int is)
return boolean to know if we are in barrel/end-cap
double e(const xAOD::CaloCluster &cluster)
return the uncorrected sum of energy in all samples
CaloCluster_v1 CaloCluster
Define the latest version of the calorimeter cluster class.
static StatusCode execute(const xAOD::CaloCluster &cluster, const CaloDetDescrManager &cmgr, const CaloCellContainer &cell_container, Info &info, bool ExecOtherVariables=true)