ATLAS Offline Software
Loading...
Searching...
No Matches
CellsInCone.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3*/
4
5#include "CellsInCone.h"
10#include "xAODEgamma/Egamma.h"
11
12void
14 xAOD::CaloCluster* inputCl,
15 const CaloCellContainer* inputcells,
16 const CaloDetDescrManager* caloMgr,
17 const xAOD::Egamma* eg,
18 const double dr)
19{
20
21 std::vector<const CaloCell*> cells;
22 cells.reserve(100);
23 CaloCellList myList(caloMgr, inputcells);
24
25 double egEta = eg->caloCluster()->etaBE(2);
26 double egPhi = eg->caloCluster()->phiBE(2);
27 std::vector<CaloSampling::CaloSample> samples = {
28 CaloSampling::PreSamplerB, CaloSampling::PreSamplerE,
29 CaloSampling::EMB1, CaloSampling::EME1,
30 CaloSampling::EMB2, CaloSampling::EME2,
31 CaloSampling::EMB3, CaloSampling::EME3,
32 CaloSampling::TileBar0, CaloSampling::TileBar1,
33 CaloSampling::TileBar2, CaloSampling::TileExt0,
34 CaloSampling::TileExt1, CaloSampling::TileExt2,
35 CaloSampling::TileGap1, CaloSampling::TileGap2,
36 CaloSampling::TileGap3, CaloSampling::HEC0,
37 CaloSampling::HEC1, CaloSampling::HEC2,
38 CaloSampling::HEC3
39 };
40
41 for (auto samp : samples) {
42 myList.select(egEta, egPhi, dr, samp);
43 cells.insert(cells.end(), myList.begin(), myList.end());
44 }
45
46 for (const auto* cell : cells) {
47 if (!cell || !cell->caloDDE())
48 continue;
49 int index = inputcells->findIndex(cell->caloDDE()->calo_hash());
50 if (index == -1)
51 continue;
52 inputCl->addCell(index, 1.);
53 }
54}
Definition of CaloDetDescrManager.
Container class for CaloCell.
int findIndex(const IdentifierHash theHash) const
Return index of the cell with a given hash.
list_iterator end() const
void select(double eta, double phi, double deta, double dphi)
list_iterator begin() const
This class provides the client interface for accessing the detector description information common to...
float phiBE(const unsigned layer) const
Get the phi in one layer of the EM Calo.
float etaBE(const unsigned layer) const
Get the eta in one layer of the EM Calo.
bool addCell(const unsigned index, const double weight)
Method to add a cell to the cluster (Beware: Kinematics not updated!)
const xAOD::CaloCluster * caloCluster(size_t index=0) const
Pointer to the xAOD::CaloCluster/s that define the electron candidate.
void egammaSelect(xAOD::CaloCluster *inputCl, const CaloCellContainer *inputcells, const CaloDetDescrManager *caloMgr, const xAOD::Egamma *eg, const double dr)
Definition index.py:1
CaloCluster_v1 CaloCluster
Define the latest version of the calorimeter cluster class.
Egamma_v1 Egamma
Definition of the current "egamma version".
Definition Egamma.h:17