ATLAS Offline Software
CPMTobAlgorithm.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
3 */
4 /***************************************************************************
5  CPMTobAlgorithm.h - description
6  -------------------
7  begin : Thu 6 Mar 2014
8  email : Alan.Watson@cern.ch
9  ***************************************************************************/
10 
11 
12 #ifndef CPMTobAlgorithm_H
13 #define CPMTobAlgorithm_H
14 
15 #include <map>
16 #include <vector>
17 
18 #include "GaudiKernel/ServiceHandle.h"
22 
23 namespace TrigConf {
24  class L1Menu;
25 }
26 
27 
31 namespace LVL1 {
32 
44 public:
45 
46  CPMTobAlgorithm(double eta, double phi, const xAOD::CPMTowerMap_t* ttContainer,
47  const TrigConf::L1Menu * l1menu, int slice = -1);
48 
50 
52  double eta();
53  double phi();
54  int EMClusET();
55  int EMIsolWord();
56  int TauClusET();
57  int TauIsolWord();
58 
59  bool isEMRoI();
60  bool isTauRoI();
61  bool isEtMax();
62 
64  int CoreET();
65  int EMCoreET();
66  int HadCoreET();
67  int EMIsolET();
68  int HadIsolET();
69 
71  int EMLUTClus();
72  int EMLUTEMIsol();
73  int EMLUTHadVeto();
74  int TauLUTClus();
75  int TauLUTEMIsol();
76 
82 
83 private: //atribs
84  double m_refEta;
85  double m_refPhi;
86  const TrigConf::L1Menu * m_l1menu{nullptr};
87 
89  double m_eta;
90  double m_phi;
91  unsigned int m_Core;
92  unsigned int m_EMClus;
93  unsigned int m_TauClus;
94  unsigned int m_EMIsolWord;
95  unsigned int m_TauIsolWord;
96  unsigned int m_EMCore;
97  unsigned int m_EMIsol;
98  unsigned int m_HadCore;
99  unsigned int m_HadIsol;
100  bool m_EtMax;
103 
104  //bool m_debug;
105 
107  static const unsigned int m_maxClus;
108 
109  static const unsigned int m_emLUT_ClusterFirstBit;
110  static const unsigned int m_emLUT_ClusterNBits;
111  static const unsigned int m_emLUT_EMIsolFirstBit;
112  static const unsigned int m_emLUT_EMIsolNBits;
113  static const unsigned int m_emLUT_HadVetoFirstBit;
114  static const unsigned int m_emLUT_HadVetoNBits;
115 
116  static const unsigned int m_tauLUT_ClusterFirstBit;
117  static const unsigned int m_tauLUT_ClusterNBits;
118  static const unsigned int m_tauLUT_EMIsolFirstBit;
119  static const unsigned int m_tauLUT_EMIsolNBits;
120 
121  static const unsigned int m_noIsol;
122 
123  static const double m_maxEta;
124 
126  /* vscharf 2015-04-22: not used anymore causing Coverity issue 19609 */
127  /* int m_ClusterThreshold; */
128  /* int m_emRingIsolationThreshold; */
129  /* int m_hadRingIsolationThreshold; */
130  /* int m_hadCoreIsolationThreshold; */
131 
132 private: // methods
133  void setRoICoord(double eta, double phi);
134  void testEtMax(const std::vector<unsigned int>& cores);
135  void emAlgorithm();
136  void tauAlgorithm();
138 
139 };
140 
141 }
142 #endif
143 
LVL1::CPMTobAlgorithm::EMIsolWord
int EMIsolWord()
Returns EM isolation word (5 bits)
Definition: CPMTobAlgorithm.cxx:395
LVL1::CPMTobAlgorithm::isTauRoI
bool isTauRoI()
Report whether this passed as a Tau TOB.
Definition: CPMTobAlgorithm.cxx:370
LVL1::CPMTobAlgorithm::CoreET
int CoreET()
Additional information for reconstruction & performance studies.
Definition: CPMTobAlgorithm.cxx:380
CPMTobRoI.h
LVL1::CPMTobAlgorithm::m_phi
double m_phi
Definition: CPMTobAlgorithm.h:90
LVL1::CPMTobAlgorithm::~CPMTobAlgorithm
~CPMTobAlgorithm()
Definition: CPMTobAlgorithm.cxx:163
LVL1::CPMTobAlgorithm::m_emLUT_HadVetoFirstBit
static const unsigned int m_emLUT_HadVetoFirstBit
Definition: CPMTobAlgorithm.h:113
LVL1::CPMTobAlgorithm::setRoICoord
void setRoICoord(double eta, double phi)
threshold values
Definition: CPMTobAlgorithm.cxx:168
LVL1::CPMTobAlgorithm::tauAlgorithm
void tauAlgorithm()
Check trigger condition and set hits if appropriate.
Definition: CPMTobAlgorithm.cxx:299
TriggerTowerKey.h
LVL1::CPMTobAlgorithm::EMLUTClus
int EMLUTClus()
Sums with the range & precision of isolation LUT inputs.
Definition: CPMTobAlgorithm.cxx:430
LVL1::CPMTobAlgorithm::m_maxClus
static const unsigned int m_maxClus
Algorithm parameters.
Definition: CPMTobAlgorithm.h:107
LVL1::CPMTobAlgorithm::CPMTobAlgorithm
CPMTobAlgorithm(double eta, double phi, const xAOD::CPMTowerMap_t *ttContainer, const TrigConf::L1Menu *l1menu, int slice=-1)
Definition: CPMTobAlgorithm.cxx:47
LVL1::CPMTobAlgorithm::EMClusET
int EMClusET()
Returns EM cluster ET, limited to 8 bits.
Definition: CPMTobAlgorithm.cxx:385
LVL1::CPMTobAlgorithm
This is an internal class, used in the EM/Tau trigger.
Definition: CPMTobAlgorithm.h:43
LVL1::CPMTobAlgorithm::emAlgorithm
void emAlgorithm()
Check trigger condition and set hits if appropriate.
Definition: CPMTobAlgorithm.cxx:211
LVL1::CPMTobAlgorithm::TauClusET
int TauClusET()
Returns Tau cluster ET, limited to 8 bits.
Definition: CPMTobAlgorithm.cxx:390
TrigConf::L1Menu
L1 menu configuration.
Definition: L1Menu.h:28
LVL1::CPMTobAlgorithm::TauIsolWord
int TauIsolWord()
Returns Tau isolation word (5 bits)
Definition: CPMTobAlgorithm.cxx:400
LVL1
eFexTowerBuilder creates xAOD::eFexTowerContainer from supercells (LATOME) and triggerTowers (TREX) i...
Definition: ICMMCPHitsCnvTool.h:18
LVL1::CPMTobAlgorithm::phi
double phi()
Returns phi coordinate of RoI, using standard ATLAS convention.
Definition: CPMTobAlgorithm.cxx:470
LVL1::CPMTobAlgorithm::m_maxEta
static const double m_maxEta
Definition: CPMTobAlgorithm.h:123
LVL1::CPMTobAlgorithm::createTobRoI
xAOD::CPMTobRoI * createTobRoI(int type)
Create a pointer to a CPMTobRoI and return it.
Definition: CPMTobAlgorithm.cxx:500
LVL1::CPMTobAlgorithm::m_refPhi
double m_refPhi
Definition: CPMTobAlgorithm.h:85
LVL1::CPMTobAlgorithm::m_EMCore
unsigned int m_EMCore
Definition: CPMTobAlgorithm.h:96
TrigConf
Forward iterator to traverse the main components of the trigger configuration.
Definition: Config.h:22
LVL1::CPMTobAlgorithm::HadCoreET
int HadCoreET()
Returns Had core ET (inner isolation sum)
Definition: CPMTobAlgorithm.cxx:420
LVL1::CPMTobAlgorithm::m_emLUT_EMIsolNBits
static const unsigned int m_emLUT_EMIsolNBits
Definition: CPMTobAlgorithm.h:112
LVL1::CPMTobAlgorithm::isEtMax
bool isEtMax()
Does this window pass the local ET maximum condition.
Definition: CPMTobAlgorithm.cxx:425
perfmonmt-refit.slice
slice
Definition: perfmonmt-refit.py:52
LVL1::CPMTobAlgorithm::m_emLUT_ClusterNBits
static const unsigned int m_emLUT_ClusterNBits
Definition: CPMTobAlgorithm.h:110
CPMTower.h
LVL1::CPMTobAlgorithm::m_refEta
double m_refEta
Definition: CPMTobAlgorithm.h:84
LVL1::CPMTobAlgorithm::m_Core
unsigned int m_Core
Definition: CPMTobAlgorithm.h:91
LVL1::CPMTobAlgorithm::m_tauLUT_EMIsolFirstBit
static const unsigned int m_tauLUT_EMIsolFirstBit
Definition: CPMTobAlgorithm.h:118
xAOD::CPMTowerMap_t
std::map< int, const CPMTower * > CPMTowerMap_t
Definition: Event/xAOD/xAODTrigL1Calo/xAODTrigL1Calo/CPMTower.h:18
LVL1::CPMTobAlgorithm::HadIsolET
int HadIsolET()
Returns Had isolation ET.
Definition: CPMTobAlgorithm.cxx:410
LVL1::CPMTobAlgorithm::m_noIsol
static const unsigned int m_noIsol
Definition: CPMTobAlgorithm.h:121
LVL1::CPMTobAlgorithm::TauLUTClus
int TauLUTClus()
Returns Tau cluster ET with range and precision of LUT input.
Definition: CPMTobAlgorithm.cxx:437
LVL1::CPMTobAlgorithm::m_l1menu
const TrigConf::L1Menu * m_l1menu
Definition: CPMTobAlgorithm.h:86
LVL1::CPMTobAlgorithm::testEtMax
void testEtMax(const std::vector< unsigned int > &cores)
Form all 2x2 clusters within window and test centre is a local ET maximum.
Definition: CPMTobAlgorithm.cxx:192
LVL1::CPMTobAlgorithm::TauLUTEMIsol
int TauLUTEMIsol()
Returns EM isolation ET with range and precision of Tau LUT input.
Definition: CPMTobAlgorithm.cxx:458
LVL1::CPMTobAlgorithm::m_EMIsolWord
unsigned int m_EMIsolWord
Definition: CPMTobAlgorithm.h:94
LVL1::CPMTobAlgorithm::isEMRoI
bool isEMRoI()
Report whether this passed as an EM TOB.
Definition: CPMTobAlgorithm.cxx:362
LVL1::CPMTobAlgorithm::m_tauLUT_EMIsolNBits
static const unsigned int m_tauLUT_EMIsolNBits
Definition: CPMTobAlgorithm.h:119
LVL1::CPMTobAlgorithm::m_EtMax
bool m_EtMax
Definition: CPMTobAlgorithm.h:100
LVL1::CPMTobAlgorithm::EMLUTHadVeto
int EMLUTHadVeto()
Returns Had veto ET with range and precision of EM LUT input.
Definition: CPMTobAlgorithm.cxx:451
LVL1::CPMTobAlgorithm::eta
double eta()
Accessors for TOB data.
Definition: CPMTobAlgorithm.cxx:465
LVL1::CPMTobAlgorithm::m_HadIsol
unsigned int m_HadIsol
Definition: CPMTobAlgorithm.h:99
LVL1::CPMTobAlgorithm::EMCoreET
int EMCoreET()
Returns EM core ET
Definition: CPMTobAlgorithm.cxx:415
LVL1::CPMTobAlgorithm::m_tauLUT_ClusterFirstBit
static const unsigned int m_tauLUT_ClusterFirstBit
Definition: CPMTobAlgorithm.h:116
LVL1::CPMTobAlgorithm::m_emLUT_ClusterFirstBit
static const unsigned int m_emLUT_ClusterFirstBit
Definition: CPMTobAlgorithm.h:109
LVL1::CPMTobAlgorithm::EMIsolET
int EMIsolET()
Returns EM isolation ET.
Definition: CPMTobAlgorithm.cxx:405
LVL1::CPMTobAlgorithm::EMLUTEMIsol
int EMLUTEMIsol()
Returns EM isolation ET with range and precision of EM LUT input.
Definition: CPMTobAlgorithm.cxx:444
LVL1::CPMTobAlgorithm::m_TauClus
unsigned int m_TauClus
Definition: CPMTobAlgorithm.h:93
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
python.XMLReader.l1menu
l1menu
Definition: XMLReader.py:73
LVL1::CPMTobAlgorithm::EMCPMTobRoI
xAOD::CPMTobRoI * EMCPMTobRoI()
Create CPMTobRoIs and return pointers to them.
Definition: CPMTobAlgorithm.cxx:475
LVL1::CPMTobAlgorithm::m_EMClus
unsigned int m_EMClus
Definition: CPMTobAlgorithm.h:92
LVL1::CPMTobAlgorithm::m_TauIsolWord
unsigned int m_TauIsolWord
Definition: CPMTobAlgorithm.h:95
LVL1::CPMTobAlgorithm::m_TauThresh
bool m_TauThresh
Definition: CPMTobAlgorithm.h:102
LVL1::CPMTobAlgorithm::m_HadCore
unsigned int m_HadCore
Definition: CPMTobAlgorithm.h:98
LVL1::CPMTobAlgorithm::m_emLUT_HadVetoNBits
static const unsigned int m_emLUT_HadVetoNBits
Definition: CPMTobAlgorithm.h:114
LVL1::CPMTobAlgorithm::m_EMIsol
unsigned int m_EMIsol
Definition: CPMTobAlgorithm.h:97
LVL1::CPMTobAlgorithm::m_tauLUT_ClusterNBits
static const unsigned int m_tauLUT_ClusterNBits
Definition: CPMTobAlgorithm.h:117
LVL1::CPMTobAlgorithm::TauCPMTobRoI
xAOD::CPMTobRoI * TauCPMTobRoI()
Returns CPMTobRoI for TAU hypothesis, provided TAU Tob conditions passed.
Definition: CPMTobAlgorithm.cxx:486
LVL1::CPMTobAlgorithm::m_EMThresh
bool m_EMThresh
Definition: CPMTobAlgorithm.h:101
LVL1::CPMTobAlgorithm::m_eta
double m_eta
Algorithm results.
Definition: CPMTobAlgorithm.h:89
xAOD::CPMTobRoI_v1
Description of CPMTobRoI_v1.
Definition: CPMTobRoI_v1.h:24
LVL1::CPMTobAlgorithm::m_emLUT_EMIsolFirstBit
static const unsigned int m_emLUT_EMIsolFirstBit
Definition: CPMTobAlgorithm.h:111