ATLAS Offline Software
EFexEMClusterTool.h
Go to the documentation of this file.
1 // Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
2 
10 #ifndef LVL1__EFEXEMCLUSTERTOOL
11 #define LVL1__EFEXEMCLUSTERTOOL
12 
18 
19 
20 #include <string>
21 #include <vector>
22 
23 
24 namespace LVL1
25 {
27  {
28  public:
29 
30  struct AlgResult {
31  float eta{0}; // cluster eta
32  float phi{0}; // cluster phi
33  float clusterET{0}; // cluster transverse energy
34  float rEta{0}; // R_eta
35  float rHad{0}; // R_had
36  float l1Width{0}; // Wstot
37  float hadET{0}; // hadronic ET
38  float l2ClusterET33{0}; // cluster ET (3x3)
39  float l2ClusterET37{0}; // cluster ET (3x7)
40  float rEtaL12{0}; // R_eta (layers 1+2)
41  bool passClusterEnergy{false}; // passes energy cut of baseline selection
42  bool passRHad{false}; // passes R_had cut of baseline selection
43  bool passREta{false}; // passes R_eta cut of baseline selection
44  bool passWstot{false}; // passes Wstot cut of baseline selection
45  };
46 
47  EFexEMClusterTool(const std::string& type, const std::string& name, const IInterface* parent);
48 
50  std::vector<AlgResult> clusterAlg( bool applyBaselineCuts,
51  const CaloConstCellContainer* scells, const xAOD::TriggerTowerContainer* TTs,
52  const CaloCell_SuperCell_ID* idHelper, const TileID* m_tileIDHelper,
53  const CaloConstCellContainer* tileCellCon ) const;
54 
55  private:
60  std::vector<AlgResult> looseAlg( const CaloConstCellContainer* SCs, const xAOD::TriggerTowerContainer* TTs,
61  const CaloCell_SuperCell_ID* idHelper, const TileID* m_tileIDHelper,
62  const CaloConstCellContainer* tileCellCon) const;
63 
64 
65  /* calculate the ET of an input cell */
66  float CaloCellET(const CaloCell* const &inputCell, float digitScale, float digitThreshold) const;
67 
69  bool localMax( const CaloConstCellContainer* &inputContainer, const CaloCell* inputCell,
70  const CaloCell_SuperCell_ID* &idHelper, float digitScale, float digitThreshold) const;
71 
73  bool localMax( const CaloConstCellContainer* &inputContainer, const CaloCell* inputCell,
74  int numOthers, const CaloCell_SuperCell_ID* &idHelper, float digitScale, float digitThreshold) const;
75 
77  bool SameTT( const CaloCell* inputCell1, const CaloCell* inputCell2, const CaloCell_SuperCell_ID* &idHelper) const;
78 
80  double EMClusET( const CaloCell* centreCell, int etaWidth, int phiWidth,
81  const CaloConstCellContainer* scells, const CaloCell_SuperCell_ID* idHelper, float digitScale, float digitThresh) const;
82 
84  double REta( const CaloCell* centreCell, int etaWidth1, int phiWidth1, int etaWidth2, int phiWidth2,
85  const CaloConstCellContainer* scells, const CaloCell_SuperCell_ID* idHelper, float digitScale, float digitThresh) const;
86 
88  double RHad( const CaloCell* centreCell, int etaWidth, int phiWidth,
89  const CaloConstCellContainer* scells, const xAOD::TriggerTowerContainer* &TTContainer,
90  const CaloCell_SuperCell_ID* idHelper, float digitScale , float digitThresh, float &HadronicET) const;
91 
93  double RHadTile( const CaloCell* centreCell, int etaWidth, int phiWidth,
94  const CaloConstCellContainer* scells, const CaloCell_SuperCell_ID* idHelper, float digitScale, float digitThresh,
95  const TileID* m_tileIDHelper, const CaloConstCellContainer* tileCellCon, float tileNoiseThresh, float &HadronicET) const;
96 
98  double L2clusET( const CaloCell* centreCell, int etaWidth, int phiWidth,
99  const CaloConstCellContainer* scells, const CaloCell_SuperCell_ID* idHelper, float digitScale , float digitThresh) const;
100 
102  double REtaL12( const CaloCell* centreCell, int etaWidth1, int phiWidth1, int etaWidth2, int phiWidth2,
103  const CaloConstCellContainer* scells, const CaloCell_SuperCell_ID* idHelper, float digitScale, float digitThresh) const;
104 
106  double L1Width( const CaloCell* centreCell, int etaWidth, int phiWidth,
107  const CaloConstCellContainer* scells, const CaloCell_SuperCell_ID* idHelper, float digitScale , float digitThresh) const;
108 
110  double TT_phi(const xAOD::TriggerTower* &inputTower) const;
111 
113  double dR(double eta1, double phi1, double eta2, double phi2) const;
114 
116  const xAOD::TriggerTower* matchingHCAL_TT( const CaloCell* &inputCell, const xAOD::TriggerTowerContainer* &TTContainer) const;
117 
119  std::vector<const CaloCell*> TDR_Clus( const CaloCell* centreCell, int etaWidth, int phiWidth, const CaloConstCellContainer* scells,
120  const CaloCell_SuperCell_ID* idHelper, float digitScale, float digitThresh) const;
121 
123  double sumVectorET( const std::vector<const CaloCell*> &inputVector, float digitScale = 0.,float digitThreshold = 0.) const;
124 
126  bool checkDig(float EM_ET, float digitScale,float digitThresh) const;
127 
129  std::vector<const CaloCell*> L2cluster( const CaloCell* centreCell, int etaWidth, int phiWidth, const CaloConstCellContainer* scells,
130  const CaloCell_SuperCell_ID* idHelper, float digitScale , float digitThresh ) const;
131 
133  double TT_ET(const xAOD::TriggerTower* &inputTower) const;
134 
136  double HadronicET( const std::vector<const CaloCell*> & inputVector, const CaloConstCellContainer* scells,
137  const xAOD::TriggerTowerContainer* &TTContainer, const CaloCell_SuperCell_ID* idHelper,
138  float digitScale, float digitThresh) const;
139 
141  void fromLayer2toLayer1( const CaloConstCellContainer* &inputContainer, const CaloCell* inputCell,
142  std::vector<const CaloCell*> &outputVector, const CaloCell_SuperCell_ID* &idHelper) const;
143 
145  const CaloCell* fromLayer2toPS(const CaloConstCellContainer* &inputContainer, const CaloCell* inputCell,
146  const CaloCell_SuperCell_ID* &idHelper) const;
147 
149  const CaloCell* fromLayer2toLayer3(const CaloConstCellContainer* &inputContainer, const CaloCell* inputCell,
150  const CaloCell_SuperCell_ID* &idHelper) const;
151 
153  void addOnce(const CaloCell* inputCell, std::vector<const CaloCell*> &outputVector) const;
154 
156  std::vector<double> EnergyPerTileLayer(const std::vector<const CaloCell*> & inputSCVector, const CaloConstCellContainer* CellCon,
157  const TileID* tileIDHelper, bool isOW, float tileNoiseThresh) const;
158 
160  const CaloCell* matchingHCAL_LAr(const CaloCell* &inputCell, const CaloConstCellContainer* &SCContainer,
161  const CaloCell_SuperCell_ID* &idHelper) const;
162 
164  void checkTileCell(const TileCell* &inputCell, std::vector<const TileCell*> &tileCellVector, bool &isAlreadyThere) const;
165 
167  double tileCellEnergyCalib(float eIn, float etaIn, float tileNoiseThresh) const;
168 
170  int detRelPos(const float inEta) const;
171 
176  const CaloCell* returnCellFromCont(Identifier inputID, const CaloConstCellContainer* &cellContainer, const CaloCell_SuperCell_ID* &idHelper) const;
177 
179  const CaloCell* NextEtaCell( const CaloCell* inputCell, bool upwards, const CaloConstCellContainer* &cellContainer, const CaloCell_SuperCell_ID* &idHelper) const;
180 
182  const CaloCell* NextEtaCell_Barrel (const CaloCell* inputCell, bool upwards, const CaloConstCellContainer* &cellContainer, const CaloCell_SuperCell_ID* &idHelper) const;
183 
185  const CaloCell* NextEtaCell_OW (const CaloCell* inputCell, bool upwards, const CaloConstCellContainer* &cellContainer, const CaloCell_SuperCell_ID* &idHelper) const;
186 
188  const CaloCell* NextEtaCell_IW(const CaloCell* inputCell, bool upwards, const CaloConstCellContainer* &cellContainer, const CaloCell_SuperCell_ID* &idHelper) const;
189 
191  int restrictPhiIndex(int input_index, bool is64) const;
192 
194  const CaloCell* NextPhiCell ( const CaloCell* inputCell, bool upwards,
195  const CaloConstCellContainer* &cellContainer, const CaloCell_SuperCell_ID* &idHelper) const;
196 
197 
198 
199 
200 
206 
207  // baseline selection properties
214 
215  // loose selection properties
216  bool m_use_REtaL12 = false;
234 
235  };
236 }
237 
238 #endif
LVL1::EFexEMClusterTool::TDR_Clus
std::vector< const CaloCell * > TDR_Clus(const CaloCell *centreCell, int etaWidth, int phiWidth, const CaloConstCellContainer *scells, const CaloCell_SuperCell_ID *idHelper, float digitScale, float digitThresh) const
form the cluster around the central SC
Definition: EFexEMClusterTool.cxx:1056
TileCell
Definition: TileCell.h:57
LVL1::EFexEMClusterTool::AlgResult::l1Width
float l1Width
Definition: EFexEMClusterTool.h:36
LVL1::EFexEMClusterTool::AlgResult::l2ClusterET33
float l2ClusterET33
Definition: EFexEMClusterTool.h:38
LVL1::EFexEMClusterTool::localMax
bool localMax(const CaloConstCellContainer *&inputContainer, const CaloCell *inputCell, const CaloCell_SuperCell_ID *&idHelper, float digitScale, float digitThreshold) const
helper function calling localMax()
Definition: EFexEMClusterTool.cxx:265
LVL1::EFexEMClusterTool::SameTT
bool SameTT(const CaloCell *inputCell1, const CaloCell *inputCell2, const CaloCell_SuperCell_ID *&idHelper) const
check if both input cells belong to the same TT
Definition: EFexEMClusterTool.cxx:216
ParticleGun_SamplingFraction.eta2
eta2
Definition: ParticleGun_SamplingFraction.py:96
LVL1::EFexEMClusterTool::matchingHCAL_LAr
const CaloCell * matchingHCAL_LAr(const CaloCell *&inputCell, const CaloConstCellContainer *&SCContainer, const CaloCell_SuperCell_ID *&idHelper) const
Match each SC from L2 to one corresponding HCAL SC.
Definition: EFexEMClusterTool.cxx:1008
LVL1::EFexEMClusterTool::m_use_tileCells
bool m_use_tileCells
boolean for using Tile cells instead of Tile TT
Definition: EFexEMClusterTool.h:217
LVL1::EFexEMClusterTool::m_phiWidth_REtaIsolation_num
int m_phiWidth_REtaIsolation_num
phi width for REta isolation given in number of SCs (numerator of fraction)
Definition: EFexEMClusterTool.h:230
LVL1::EFexEMClusterTool::REta
double REta(const CaloCell *centreCell, int etaWidth1, int phiWidth1, int etaWidth2, int phiWidth2, const CaloConstCellContainer *scells, const CaloCell_SuperCell_ID *idHelper, float digitScale, float digitThresh) const
calculate the energy isolation of the central cell along eta
Definition: EFexEMClusterTool.cxx:361
LVL1::EFexEMClusterTool::AlgResult::eta
float eta
Definition: EFexEMClusterTool.h:31
LVL1::EFexEMClusterTool::AlgResult::l2ClusterET37
float l2ClusterET37
Definition: EFexEMClusterTool.h:39
LVL1::EFexEMClusterTool::NextEtaCell
const CaloCell * NextEtaCell(const CaloCell *inputCell, bool upwards, const CaloConstCellContainer *&cellContainer, const CaloCell_SuperCell_ID *&idHelper) const
helper function calling NextEtaCell_Barrel(), NextEtaCell_OW(), NextEtaCell_IW() according to positio...
Definition: EFexEMClusterTool.cxx:1156
LVL1::EFexEMClusterTool::AlgResult::rEta
float rEta
Definition: EFexEMClusterTool.h:34
LVL1::EFexEMClusterTool::m_clustET_thresh
float m_clustET_thresh
threshold for minimum cluster energy (baseline selection)
Definition: EFexEMClusterTool.h:208
LVL1::EFexEMClusterTool::EMClusET
double EMClusET(const CaloCell *centreCell, int etaWidth, int phiWidth, const CaloConstCellContainer *scells, const CaloCell_SuperCell_ID *idHelper, float digitScale, float digitThresh) const
calculate cluster energy
Definition: EFexEMClusterTool.cxx:348
LVL1::EFexEMClusterTool::RHad
double RHad(const CaloCell *centreCell, int etaWidth, int phiWidth, const CaloConstCellContainer *scells, const xAOD::TriggerTowerContainer *&TTContainer, const CaloCell_SuperCell_ID *idHelper, float digitScale, float digitThresh, float &HadronicET) const
calculate the hadronic isolation of the central cell
Definition: EFexEMClusterTool.cxx:381
TriggerTowerContainer.h
LVL1::EFexEMClusterTool::m_nominalNoise_thresh
float m_nominalNoise_thresh
noise threshold
Definition: EFexEMClusterTool.h:219
LVL1::EFexEMClusterTool
Definition: EFexEMClusterTool.h:27
LVL1::EFexEMClusterTool::HadronicET
double HadronicET(const std::vector< const CaloCell * > &inputVector, const CaloConstCellContainer *scells, const xAOD::TriggerTowerContainer *&TTContainer, const CaloCell_SuperCell_ID *idHelper, float digitScale, float digitThresh) const
calculate the energy in the HCAL (LAr + Tile) for SC/TT that match the EM cluster cells of L2
Definition: EFexEMClusterTool.cxx:1119
LVL1::EFexEMClusterTool::m_useProvenance
bool m_useProvenance
properties
Definition: EFexEMClusterTool.h:204
xAOD::eta1
setEt setPhi setE277 setWeta2 eta1
Definition: TrigEMCluster_v1.cxx:41
LVL1::EFexEMClusterTool::m_tileNoise_tresh
float m_tileNoise_tresh
TileCal cell noise threshold.
Definition: EFexEMClusterTool.h:220
LVL1::EFexEMClusterTool::m_phiWidth_TDRCluster
int m_phiWidth_TDRCluster
phi width of the TDR cluster formation given in number of SCs (including the central cell),...
Definition: EFexEMClusterTool.h:221
LVL1::EFexEMClusterTool::detRelPos
int detRelPos(const float inEta) const
determine the PMT position of the Tile cell to be matched
Definition: EFexEMClusterTool.cxx:418
LVL1::EFexEMClusterTool::NextPhiCell
const CaloCell * NextPhiCell(const CaloCell *inputCell, bool upwards, const CaloConstCellContainer *&cellContainer, const CaloCell_SuperCell_ID *&idHelper) const
returns the SC above/below the input cell
Definition: EFexEMClusterTool.cxx:1586
LVL1
eFexTowerBuilder creates xAOD::eFexTowerContainer from supercells (LATOME) and triggerTowers (TREX) i...
Definition: ICMMCPHitsCnvTool.h:18
LVL1::EFexEMClusterTool::m_phiWidth_wstotIsolation
int m_phiWidth_wstotIsolation
phi width for wstot isolation given in number of SCs
Definition: EFexEMClusterTool.h:224
LVL1::EFexEMClusterTool::AlgResult
Definition: EFexEMClusterTool.h:30
LVL1::EFexEMClusterTool::m_L1Width_thresh
float m_L1Width_thresh
threshold for isolation L1Width (wstot) (baseline selection)
Definition: EFexEMClusterTool.h:212
LVL1::EFexEMClusterTool::restrictPhiIndex
int restrictPhiIndex(int input_index, bool is64) const
manager function for the phi index
Definition: EFexEMClusterTool.cxx:1576
LVL1::EFexEMClusterTool::fromLayer2toPS
const CaloCell * fromLayer2toPS(const CaloConstCellContainer *&inputContainer, const CaloCell *inputCell, const CaloCell_SuperCell_ID *&idHelper) const
match SCs from the cluster in L2 to one cell of PS
Definition: EFexEMClusterTool.cxx:804
LVL1::EFexEMClusterTool::m_qualBitMask
int m_qualBitMask
Configurable quality bitmask.
Definition: EFexEMClusterTool.h:205
LVL1::EFexEMClusterTool::addOnce
void addOnce(const CaloCell *inputCell, std::vector< const CaloCell * > &outputVector) const
adds SC to vector if the SC is not part of this vector yet
Definition: EFexEMClusterTool.cxx:336
LVL1::EFexEMClusterTool::AlgResult::clusterET
float clusterET
Definition: EFexEMClusterTool.h:33
LVL1::EFexEMClusterTool::REtaL12
double REtaL12(const CaloCell *centreCell, int etaWidth1, int phiWidth1, int etaWidth2, int phiWidth2, const CaloConstCellContainer *scells, const CaloCell_SuperCell_ID *idHelper, float digitScale, float digitThresh) const
calculate the energy isolation of the central cell along eta using Layer 1 and Layer 2
Definition: EFexEMClusterTool.cxx:594
LVL1::EFexEMClusterTool::AlgResult::passClusterEnergy
bool passClusterEnergy
Definition: EFexEMClusterTool.h:41
LVL1::EFexEMClusterTool::L1Width
double L1Width(const CaloCell *centreCell, int etaWidth, int phiWidth, const CaloConstCellContainer *scells, const CaloCell_SuperCell_ID *idHelper, float digitScale, float digitThresh) const
calculate the lateral isolation aorund the central cell
Definition: EFexEMClusterTool.cxx:448
LVL1::EFexEMClusterTool::EFexEMClusterTool
EFexEMClusterTool(const std::string &type, const std::string &name, const IInterface *parent)
Name : EFexEMClusterTool.cxx PACKAGE : Trigger/TrigT1/TrigT1CaloFexPerf AUTHOR : Denis Oliveira Damaz...
Definition: EFexEMClusterTool.cxx:14
CaloCell_SuperCell_ID
Helper class for offline supercell identifiers.
Definition: CaloCell_SuperCell_ID.h:48
LVL1::EFexEMClusterTool::m_etaWidth_TDRCluster
int m_etaWidth_TDRCluster
eta width of the TDR cluster formation given in number of SCs (including the central cell),...
Definition: EFexEMClusterTool.h:222
LVL1::EFexEMClusterTool::NextEtaCell_OW
const CaloCell * NextEtaCell_OW(const CaloCell *inputCell, bool upwards, const CaloConstCellContainer *&cellContainer, const CaloCell_SuperCell_ID *&idHelper) const
returns the SC left/right to the input cell for the OW
Definition: EFexEMClusterTool.cxx:1314
LVL1::EFexEMClusterTool::RHadTile
double RHadTile(const CaloCell *centreCell, int etaWidth, int phiWidth, const CaloConstCellContainer *scells, const CaloCell_SuperCell_ID *idHelper, float digitScale, float digitThresh, const TileID *m_tileIDHelper, const CaloConstCellContainer *tileCellCon, float tileNoiseThresh, float &HadronicET) const
calculate the hadronic isolation for a seed cell using TileCal cells
Definition: EFexEMClusterTool.cxx:550
LVL1::EFexEMClusterTool::L2clusET
double L2clusET(const CaloCell *centreCell, int etaWidth, int phiWidth, const CaloConstCellContainer *scells, const CaloCell_SuperCell_ID *idHelper, float digitScale, float digitThresh) const
calculate cluster energy of cells in L2 around the central cell in a given eta/phi width
Definition: EFexEMClusterTool.cxx:543
LVL1::EFexEMClusterTool::sumVectorET
double sumVectorET(const std::vector< const CaloCell * > &inputVector, float digitScale=0., float digitThreshold=0.) const
calculate cluster energy from all SCs in PS, L1, L2, L3
Definition: EFexEMClusterTool.cxx:1095
TileID
Helper class for TileCal offline identifiers.
Definition: TileID.h:68
LVL1::EFexEMClusterTool::dR
double dR(double eta1, double phi1, double eta2, double phi2) const
calculate deltaR between two points in eta/phi space
Definition: EFexEMClusterTool.cxx:976
LVL1::EFexEMClusterTool::checkTileCell
void checkTileCell(const TileCell *&inputCell, std::vector< const TileCell * > &tileCellVector, bool &isAlreadyThere) const
determine if Tile cell has already been taken into account
Definition: EFexEMClusterTool.cxx:397
LVL1::EFexEMClusterTool::m_nominalDigitization
float m_nominalDigitization
value of nominal digitisation
Definition: EFexEMClusterTool.h:218
LVL1::EFexEMClusterTool::m_REta_thresh
float m_REta_thresh
threshold for isolation REta (baseline selection)
Definition: EFexEMClusterTool.h:210
AthAlgTool.h
xAOD::TriggerTower_v2
Description of TriggerTower_v2.
Definition: TriggerTower_v2.h:49
test_pyathena.parent
parent
Definition: test_pyathena.py:15
CaloCell_SuperCell_ID.h
Helper class for offline supercell identifiers.
LVL1::EFexEMClusterTool::AlgResult::hadET
float hadET
Definition: EFexEMClusterTool.h:37
LVL1::EFexEMClusterTool::m_etaHadWidth_RHadIsolation
int m_etaHadWidth_RHadIsolation
hadronic eta width for RHad isolation given in number of SCs
Definition: EFexEMClusterTool.h:231
LVL1::EFexEMClusterTool::NextEtaCell_Barrel
const CaloCell * NextEtaCell_Barrel(const CaloCell *inputCell, bool upwards, const CaloConstCellContainer *&cellContainer, const CaloCell_SuperCell_ID *&idHelper) const
returns the SC left/right to the input cell for the barrel
Definition: EFexEMClusterTool.cxx:1187
DataVector
Derived DataVector<T>.
Definition: DataVector.h:794
TrigConf::name
Definition: HLTChainList.h:35
LVL1::EFexEMClusterTool::m_RHad_thresh
float m_RHad_thresh
threshold for isolation RHad (baseline selection)
Definition: EFexEMClusterTool.h:211
LVL1::EFexEMClusterTool::m_phiHadWidth_RHadIsolation
int m_phiHadWidth_RHadIsolation
hadronic phi width for RHad isolation given in number of SCs
Definition: EFexEMClusterTool.h:232
LVL1::EFexEMClusterTool::NextEtaCell_IW
const CaloCell * NextEtaCell_IW(const CaloCell *inputCell, bool upwards, const CaloConstCellContainer *&cellContainer, const CaloCell_SuperCell_ID *&idHelper) const
returns the SC left/right to the input cell for the IW
Definition: EFexEMClusterTool.cxx:1494
LVL1::EFexEMClusterTool::m_clustET_NoIso_thresh
float m_clustET_NoIso_thresh
threshold for applying cluster isolation cuts (baseline selection)
Definition: EFexEMClusterTool.h:209
LVL1::EFexEMClusterTool::AlgResult::passWstot
bool passWstot
Definition: EFexEMClusterTool.h:44
LVL1::EFexEMClusterTool::m_etaWidth_REtaIsolation_den
int m_etaWidth_REtaIsolation_den
eta width for REta isolation given in number of SCs (denominator of fraction)
Definition: EFexEMClusterTool.h:227
LVL1::EFexEMClusterTool::tileCellEnergyCalib
double tileCellEnergyCalib(float eIn, float etaIn, float tileNoiseThresh) const
determine transverse energy and apply noise threshold to Tile cells
Definition: EFexEMClusterTool.cxx:406
LVL1::EFexEMClusterTool::EnergyPerTileLayer
std::vector< double > EnergyPerTileLayer(const std::vector< const CaloCell * > &inputSCVector, const CaloConstCellContainer *CellCon, const TileID *tileIDHelper, bool isOW, float tileNoiseThresh) const
match all Tile cells to a given L2Cluster and determine the summed energy per Tile layer
Definition: EFexEMClusterTool.cxx:888
LVL1::EFexEMClusterTool::AlgResult::phi
float phi
Definition: EFexEMClusterTool.h:32
LVL1::EFexEMClusterTool::m_eta_dropL1Width
float m_eta_dropL1Width
max eta for applying cut on L1Width (baseline selection)
Definition: EFexEMClusterTool.h:213
LVL1::EFexEMClusterTool::AlgResult::passREta
bool passREta
Definition: EFexEMClusterTool.h:43
LVL1::EFexEMClusterTool::m_phiWidth_REtaIsolation_den
int m_phiWidth_REtaIsolation_den
phi width for REta isolation given in number of SCs (denominator of fraction)
Definition: EFexEMClusterTool.h:228
LVL1::EFexEMClusterTool::returnCellFromCont
const CaloCell * returnCellFromCont(Identifier inputID, const CaloConstCellContainer *&cellContainer, const CaloCell_SuperCell_ID *&idHelper) const
helper functions to find neighbouring cells
Definition: EFexEMClusterTool.cxx:1148
LVL1::EFexEMClusterTool::AlgResult::rHad
float rHad
Definition: EFexEMClusterTool.h:35
LVL1::EFexEMClusterTool::CaloCellET
float CaloCellET(const CaloCell *const &inputCell, float digitScale, float digitThreshold) const
private algorithms
Definition: EFexEMClusterTool.cxx:173
LVL1::EFexEMClusterTool::m_etaWidth_wstotIsolation
int m_etaWidth_wstotIsolation
eta width for wstot isolation given in number of SCs
Definition: EFexEMClusterTool.h:223
LVL1::EFexEMClusterTool::m_use_REtaL12
bool m_use_REtaL12
boolean for caluclating REta using Layer 1 in addition to Layer 2
Definition: EFexEMClusterTool.h:216
CaloCell
Data object for each calorimeter readout cell.
Definition: CaloCell.h:57
CaloConstCellContainer
CaloCellContainer that can accept const cell pointers.
Definition: CaloConstCellContainer.h:45
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
LVL1::EFexEMClusterTool::looseAlg
std::vector< AlgResult > looseAlg(const CaloConstCellContainer *SCs, const xAOD::TriggerTowerContainer *TTs, const CaloCell_SuperCell_ID *idHelper, const TileID *m_tileIDHelper, const CaloConstCellContainer *tileCellCon) const
algorithm fors cluster building
Definition: EFexEMClusterTool.cxx:88
xAOD::phiWidth
phiWidth
Definition: RingSetConf_v1.cxx:612
LVL1::EFexEMClusterTool::TT_phi
double TT_phi(const xAOD::TriggerTower *&inputTower) const
convert the TT phi to match the definition of SC phi
Definition: EFexEMClusterTool.cxx:962
LVL1::EFexEMClusterTool::m_etaWidth_REtaIsolation_num
int m_etaWidth_REtaIsolation_num
eta width for REta isolation given in number of SCs (numerator of fraction)
Definition: EFexEMClusterTool.h:229
LVL1::EFexEMClusterTool::m_phiEMWidth_RHadIsolation
int m_phiEMWidth_RHadIsolation
EM phi width for RHad isolation given in number of SCs.
Definition: EFexEMClusterTool.h:226
LVL1::EFexEMClusterTool::fromLayer2toLayer3
const CaloCell * fromLayer2toLayer3(const CaloConstCellContainer *&inputContainer, const CaloCell *inputCell, const CaloCell_SuperCell_ID *&idHelper) const
match SCs from the cluster in L2 to one cell of L3
Definition: EFexEMClusterTool.cxx:755
LVL1::EFexEMClusterTool::TT_ET
double TT_ET(const xAOD::TriggerTower *&inputTower) const
calculate the energy of an input TT
Definition: EFexEMClusterTool.cxx:1042
LVL1::EFexEMClusterTool::AlgResult::passRHad
bool passRHad
Definition: EFexEMClusterTool.h:42
LVL1::EFexEMClusterTool::L2cluster
std::vector< const CaloCell * > L2cluster(const CaloCell *centreCell, int etaWidth, int phiWidth, const CaloConstCellContainer *scells, const CaloCell_SuperCell_ID *idHelper, float digitScale, float digitThresh) const
form the cluster from cells of the second layer L2
Definition: EFexEMClusterTool.cxx:842
AthAlgTool
Definition: AthAlgTool.h:26
LVL1::EFexEMClusterTool::AlgResult::rEtaL12
float rEtaL12
Definition: EFexEMClusterTool.h:40
CaloConstCellContainer.h
CaloCellContainer that can accept const cell pointers.
LVL1::EFexEMClusterTool::fromLayer2toLayer1
void fromLayer2toLayer1(const CaloConstCellContainer *&inputContainer, const CaloCell *inputCell, std::vector< const CaloCell * > &outputVector, const CaloCell_SuperCell_ID *&idHelper) const
match SCs from the cluster in L2 to L1
Definition: EFexEMClusterTool.cxx:628
LVL1::EFexEMClusterTool::m_etaEMWidth_RHadIsolation
int m_etaEMWidth_RHadIsolation
EM eta width for RHad isolation given in number of SCs.
Definition: EFexEMClusterTool.h:225
LVL1::EFexEMClusterTool::checkDig
bool checkDig(float EM_ET, float digitScale, float digitThresh) const
check if conversion from ET to energy after digitization was performed successfully
Definition: EFexEMClusterTool.cxx:1105
LVL1::EFexEMClusterTool::clusterAlg
std::vector< AlgResult > clusterAlg(bool applyBaselineCuts, const CaloConstCellContainer *scells, const xAOD::TriggerTowerContainer *TTs, const CaloCell_SuperCell_ID *idHelper, const TileID *m_tileIDHelper, const CaloConstCellContainer *tileCellCon) const
find cluster and associated variables using a user defined selection
Definition: EFexEMClusterTool.cxx:49
LVL1::EFexEMClusterTool::m_clustET_looseAlg_thresh
float m_clustET_looseAlg_thresh
threshold for minimum cluster energy for the loose eFEX algorithm
Definition: EFexEMClusterTool.h:233
TileCellContainer.h
LVL1::EFexEMClusterTool::matchingHCAL_TT
const xAOD::TriggerTower * matchingHCAL_TT(const CaloCell *&inputCell, const xAOD::TriggerTowerContainer *&TTContainer) const
Match each SC from L2 to one corresponding TT.
Definition: EFexEMClusterTool.cxx:986
Identifier
Definition: IdentifierFieldParser.cxx:14