ATLAS Offline Software
Loading...
Searching...
No Matches
eflowCellList.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef EFLOWCELLLIST_H
6#define EFLOWCELLLIST_H
7
8/********************************************************************
9
10NAME: eflowCellList.h
11PACKAGE: offline/Reconstruction/eflowRec
12
13AUTHORS: M.Hodgkinson, R Duxfield (based on R.Duxfields Root package)
14CREATED: 18th Aug, 2005
15
16********************************************************************/
17
18// Athena Headers
21
22// C++ Headers
23#include <map>
24#include <vector>
25
26class CaloCell;
28
29typedef std::map<eflowCellPosition,
30 std::vector<std::pair<const CaloCell*, int>>>::iterator CellIt;
31
42{
43
44public:
46 virtual ~eflowCellList() {}
47
48 void setNewExtrapolatedTrack(const eflowTrackCaloPoints* trackCalo);
49
50 void setNewExtrapolatedTrack(const eflowTrackCaloPoints& trackCalo);
51
52 void addCell(std::pair<const CaloCell*, int> cell);
53
55
56 CellIt begin() { return m_cellPositionToCellMap.begin(); }
58
60 {
61 return m_cellPositionToCellMap.lower_bound(
62 eflowCellPosition(this, layer, r));
63 }
64
65 CellIt find(eflowCaloENUM layer, double r)
66 {
67 return m_cellPositionToCellMap.find(eflowCellPosition(this, layer, r));
68 }
69
70 int mapSize() { return m_cellPositionToCellMap.size(); }
72 {
73 m_cellPositionToCellMap.erase(start, end);
74 }
77
78 double etaFF(eflowCaloENUM layer) const { return m_etaFF[layer]; }
79 double phiFF(eflowCaloENUM layer) const { return m_phiFF[layer]; }
80
81 double dR2(double eta, double phi, eflowCaloENUM layer) const;
82 double dR(double eta, double phi, eflowCaloENUM layer) const;
83
84private:
85 std::vector<double> m_etaFF;
86 std::vector<double> m_phiFF;
87 std::map<eflowCellPosition, std::vector<std::pair<const CaloCell*, int>>>
89};
90#endif
Scalar eta() const
pseudorapidity method
Scalar phi() const
phi method
Data object for each calorimeter readout cell.
Definition CaloCell.h:57
virtual ~eflowCellList()
double dR(double eta, double phi, eflowCaloENUM layer) const
double etaFF(eflowCaloENUM layer) const
CellIt find(eflowCaloENUM layer, double r)
double phiFF(eflowCaloENUM layer) const
std::vector< double > m_etaFF
void deleteFromList(CellIt &it)
CellIt getLowerBound(eflowCaloENUM layer, double r)
std::map< eflowCellPosition, std::vector< std::pair< const CaloCell *, int > > > m_cellPositionToCellMap
void addCell(std::pair< const CaloCell *, int > cell)
double dR2(double eta, double phi, eflowCaloENUM layer) const
void reorderWithoutLayers()
void setNewExtrapolatedTrack(const eflowTrackCaloPoints *trackCalo)
void deleteFromList(CellIt &start, CellIt &end)
std::vector< double > m_phiFF
This class stores the eta,phi and layer of the calorimeter cell and defines a "<" operator which can ...
This class stores a map of calorimeter layers and track parameters (the result of the track extrapola...
std::map< eflowCellPosition, std::vector< std::pair< constCaloCell *, int > > >::iterator CellIt
eflowCalo::LAYER eflowCaloENUM
std::map< eflowCellPosition, std::vector< std::pair< constCaloCell *, int > > >::iterator CellIt
int r
Definition globals.cxx:22