ATLAS Offline Software
Loading...
Searching...
No Matches
CaloCellList Class Reference

#include <CaloCellList.h>

Collaboration diagram for CaloCellList:

Public Types

typedef std::vector< const CaloCell * > vector_type
typedef vector_type::const_iterator list_iterator

Public Member Functions

 CaloCellList ()=delete
 CaloCellList (const CaloDetDescrManager *mgr, const CaloCellContainer *cell_container)
 CaloCellList (const CaloDetDescrManager &mgr, const CaloCellContainer &cell_container)
 CaloCellList (const CaloDetDescrManager *mgr, const CaloCellContainer *cell_container, const CaloCell_ID::SUBCALO caloNum)
 CaloCellList (const CaloDetDescrManager *mgr, const CaloCellContainer *cell_container, const std::vector< CaloCell_ID::SUBCALO > &caloNums)
 CaloCellList (const CaloSuperCellDetDescrManager *mgr, const CaloCellContainer *cell_container)
 ~CaloCellList ()=default
void select (double eta, double phi, double deta, double dphi)
void select (double eta, double phi, double deta, double dphi, int sam)
void select (double eta, double phi, double dR)
void select (double eta, double phi, double dR, int sam)
list_iterator begin () const
list_iterator end () const
double energy () const
double et () const
int ncells () const
unsigned short nBadT (int i) const

Private Member Functions

void doSelect (double eta, double phi, double deta, double dphi, double dR, CaloCell_ID::CaloSample sam=CaloCell_ID::Unknown)

Private Attributes

const CaloCellContainerm_cellcont
const CaloDetDescrManager_Basem_mgr
std::vector< CaloCell_ID::SUBCALOm_caloNums
vector_type m_theCellVector
double m_energy
double m_et
unsigned short m_nBadT0 = 0U
unsigned short m_nBadT12 = 0U

Detailed Description

Definition at line 39 of file CaloCellList.h.

Member Typedef Documentation

◆ list_iterator

typedef vector_type::const_iterator CaloCellList::list_iterator

Definition at line 44 of file CaloCellList.h.

◆ vector_type

typedef std::vector<const CaloCell*> CaloCellList::vector_type

Definition at line 43 of file CaloCellList.h.

Constructor & Destructor Documentation

◆ CaloCellList() [1/6]

CaloCellList::CaloCellList ( )
delete

◆ CaloCellList() [2/6]

CaloCellList::CaloCellList ( const CaloDetDescrManager * mgr,
const CaloCellContainer * cell_container )

Definition at line 29 of file CaloCellList.cxx.

30 : m_cellcont(*cell_container)
31 , m_mgr(*mgr)
32 , m_energy(0)
33 , m_et(0)
34{
35 m_caloNums.clear();
36 // NSUBCALO indicate take them all
38}
const CaloCellContainer & m_cellcont
const CaloDetDescrManager_Base & m_mgr
double m_energy
std::vector< CaloCell_ID::SUBCALO > m_caloNums

◆ CaloCellList() [3/6]

CaloCellList::CaloCellList ( const CaloDetDescrManager & mgr,
const CaloCellContainer & cell_container )

Definition at line 40 of file CaloCellList.cxx.

41 : m_cellcont(cell_container)
42 , m_mgr(mgr)
43 , m_energy(0)
44 , m_et(0)
45{
46 m_caloNums.clear();
47 // NSUBCALO indicate take them all
49}

◆ CaloCellList() [4/6]

CaloCellList::CaloCellList ( const CaloDetDescrManager * mgr,
const CaloCellContainer * cell_container,
const CaloCell_ID::SUBCALO caloNum )

Definition at line 52 of file CaloCellList.cxx.

53 : m_cellcont(*cell_container)
54 , m_mgr(*mgr)
55 , m_energy(0)
56 , m_et(0)
57{
58 m_caloNums.clear();
59 m_caloNums.push_back(caloNum);
60}

◆ CaloCellList() [5/6]

CaloCellList::CaloCellList ( const CaloDetDescrManager * mgr,
const CaloCellContainer * cell_container,
const std::vector< CaloCell_ID::SUBCALO > & caloNums )

Definition at line 64 of file CaloCellList.cxx.

66 : m_cellcont(*cell_container)
67 , m_mgr(*mgr)
68 , m_energy(0)
69 , m_et(0)
70
71{
72 m_caloNums.clear();
73 std::copy(caloNums.begin(), caloNums.end(), back_inserter(m_caloNums));
74}

◆ CaloCellList() [6/6]

CaloCellList::CaloCellList ( const CaloSuperCellDetDescrManager * mgr,
const CaloCellContainer * cell_container )

Definition at line 76 of file CaloCellList.cxx.

77 : m_cellcont(*cell_container)
78 , m_mgr(*mgr)
79 , m_energy(0)
80 , m_et(0)
81{
82 m_caloNums.clear();
83 // NSUBCALO indicate take them all
85}

◆ ~CaloCellList()

CaloCellList::~CaloCellList ( )
default

Member Function Documentation

◆ begin()

CaloCellList::list_iterator CaloCellList::begin ( ) const
inline

Definition at line 89 of file CaloCellList.h.

90{
91 return m_theCellVector.begin();
92}
vector_type m_theCellVector

◆ doSelect()

void CaloCellList::doSelect ( double eta,
double phi,
double deta,
double dphi,
double dR,
CaloCell_ID::CaloSample sam = CaloCell_ID::Unknown )
private

Definition at line 113 of file CaloCellList.cxx.

119{
120
121 m_theCellVector.clear();
122 m_energy = 0;
123 m_et = 0;
124 m_nBadT0 = 0;
125 m_nBadT12 = 0;
126 if (m_cellcont.empty()){
127 return;
128 }
129 std::vector<IdentifierHash> calo_mgr_vect;
130 std::vector<CaloCell_ID::SUBCALO>::const_iterator itrCaloNum = m_caloNums.begin();
131 std::vector<CaloCell_ID::SUBCALO>::const_iterator itrEndCaloNum = m_caloNums.end();
132
133 double dR2 = dR*dR;
134
135 for (; itrCaloNum != itrEndCaloNum; ++itrCaloNum) {
136 CaloCell_ID::SUBCALO caloNum = *itrCaloNum;
137 if (sam != CaloCell_ID::Unknown) {
138 m_mgr.cellsInZone(eta - deta, eta + deta, phi - dphi, phi + dphi, sam, calo_mgr_vect);
139 itrCaloNum = itrEndCaloNum - 1;
140 } else if (caloNum == CaloCell_ID::NSUBCALO) {
141 m_mgr.cellsInZone(eta - deta, eta + deta, phi - dphi, phi + dphi, calo_mgr_vect);
142 } else if (caloNum != CaloCell_ID::NOT_VALID) {
143 m_mgr.cellsInZone(eta - deta, eta + deta, phi - dphi, phi + dphi, caloNum, calo_mgr_vect);
144 } else {
145 continue;
146 }
147 m_theCellVector.reserve(m_theCellVector.size() + calo_mgr_vect.size());
148
149 for (unsigned int i = 0; i < calo_mgr_vect.size(); i++) {
150 const CaloCell* cell = m_cellcont.findCell(calo_mgr_vect[i]);
151 if (cell) {
152 double pphi = proxim(cell->phi(), phi);
153 if ( (dR > 0 && square(eta - cell->eta()) + square(pphi - phi) < dR2) ||
154 (dR < 0 && std::fabs(eta - cell->eta()) < deta && std::fabs(phi - pphi) < dphi) ) {
155 m_theCellVector.push_back(cell);
156 m_energy += cell->energy();
157 m_et += cell->et();
158 if (cell->badcell()) {
159 if (sam == CaloCell_ID::TileBar0 || sam == CaloCell_ID::TileExt0)
160 m_nBadT0++;
161 else if (sam == CaloCell_ID::TileBar1 || sam == CaloCell_ID::TileExt1 ||
162 sam == CaloCell_ID::TileBar2 || sam == CaloCell_ID::TileExt2 ||
163 sam == CaloCell_ID::TileGap1 || sam == CaloCell_ID::TileGap2)
164 m_nBadT12++;
165 }
166 }
167 }
168 }
169 } // end loop on calorimeters
170}
Scalar eta() const
pseudorapidity method
Scalar phi() const
phi method
unsigned short m_nBadT0
unsigned short m_nBadT12
CaloCell_Base_ID::SUBCALO SUBCALO
Definition CaloCell_ID.h:50
double proxim(double b, double a)
Definition proxim.h:17

◆ end()

CaloCellList::list_iterator CaloCellList::end ( ) const
inline

Definition at line 95 of file CaloCellList.h.

96{
97 return m_theCellVector.end();
98}

◆ energy()

double CaloCellList::energy ( ) const
inline

Definition at line 101 of file CaloCellList.h.

102{
103 return m_energy;
104}

◆ et()

double CaloCellList::et ( ) const
inline

Definition at line 107 of file CaloCellList.h.

108{
109 return m_et;
110}

◆ nBadT()

unsigned short CaloCellList::nBadT ( int i) const
inline

Definition at line 119 of file CaloCellList.h.

120{
121 return (i == 0 ? m_nBadT0 : m_nBadT12);
122}

◆ ncells()

int CaloCellList::ncells ( ) const
inline

Definition at line 113 of file CaloCellList.h.

114{
115 return m_theCellVector.size();
116}

◆ select() [1/4]

void CaloCellList::select ( double eta,
double phi,
double deta,
double dphi )

Definition at line 89 of file CaloCellList.cxx.

90{
91 doSelect(eta, phi, deta, dphi, -1);
92}
void doSelect(double eta, double phi, double deta, double dphi, double dR, CaloCell_ID::CaloSample sam=CaloCell_ID::Unknown)

◆ select() [2/4]

void CaloCellList::select ( double eta,
double phi,
double deta,
double dphi,
int sam )

Definition at line 95 of file CaloCellList.cxx.

96{
97 doSelect(eta, phi, deta, dphi, -1, static_cast<CaloCell_ID::CaloSample>(sam));
98}
CaloSampling::CaloSample CaloSample
Definition CaloCell_ID.h:53

◆ select() [3/4]

void CaloCellList::select ( double eta,
double phi,
double dR )

Definition at line 101 of file CaloCellList.cxx.

102{
103 doSelect(eta, phi, dR, dR, dR);
104}

◆ select() [4/4]

void CaloCellList::select ( double eta,
double phi,
double dR,
int sam )

Definition at line 107 of file CaloCellList.cxx.

108{
109 doSelect(eta, phi, dR, dR, dR, static_cast<CaloCell_ID::CaloSample>(sam));
110}

Member Data Documentation

◆ m_caloNums

std::vector<CaloCell_ID::SUBCALO> CaloCellList::m_caloNums
private

Definition at line 81 of file CaloCellList.h.

◆ m_cellcont

const CaloCellContainer& CaloCellList::m_cellcont
private

Definition at line 79 of file CaloCellList.h.

◆ m_energy

double CaloCellList::m_energy
private

Definition at line 83 of file CaloCellList.h.

◆ m_et

double CaloCellList::m_et
private

Definition at line 84 of file CaloCellList.h.

◆ m_mgr

const CaloDetDescrManager_Base& CaloCellList::m_mgr
private

Definition at line 80 of file CaloCellList.h.

◆ m_nBadT0

unsigned short CaloCellList::m_nBadT0 = 0U
private

Definition at line 85 of file CaloCellList.h.

◆ m_nBadT12

unsigned short CaloCellList::m_nBadT12 = 0U
private

Definition at line 85 of file CaloCellList.h.

◆ m_theCellVector

vector_type CaloCellList::m_theCellVector
private

Definition at line 82 of file CaloCellList.h.


The documentation for this class was generated from the following files: