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...
bool addCell(const unsigned index, const double weight)
Method to add a cell to the cluster (Beware: Kinematics not updated!)
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