ATLAS Offline Software
|
This is an internal class, used in the EM/Tau trigger. More...
#include <CPMTobAlgorithm.h>
Public Member Functions | |
CPMTobAlgorithm (double eta, double phi, const xAOD::CPMTowerMap_t *ttContainer, const TrigConf::L1Menu *l1menu, int slice=-1) | |
~CPMTobAlgorithm () | |
double | eta () |
Accessors for TOB data. More... | |
double | phi () |
Returns phi coordinate of RoI, using standard ATLAS convention. More... | |
int | EMClusET () |
Returns EM cluster ET, limited to 8 bits. More... | |
int | EMIsolWord () |
Returns EM isolation word (5 bits) More... | |
int | TauClusET () |
Returns Tau cluster ET, limited to 8 bits. More... | |
int | TauIsolWord () |
Returns Tau isolation word (5 bits) More... | |
bool | isEMRoI () |
Report whether this passed as an EM TOB. More... | |
bool | isTauRoI () |
Report whether this passed as a Tau TOB. More... | |
bool | isEtMax () |
Does this window pass the local ET maximum condition. More... | |
int | CoreET () |
Additional information for reconstruction & performance studies. More... | |
int | EMCoreET () |
Returns EM core ET More... | |
int | HadCoreET () |
Returns Had core ET (inner isolation sum) More... | |
int | EMIsolET () |
Returns EM isolation ET. More... | |
int | HadIsolET () |
Returns Had isolation ET. More... | |
int | EMLUTClus () |
Sums with the range & precision of isolation LUT inputs. More... | |
int | EMLUTEMIsol () |
Returns EM isolation ET with range and precision of EM LUT input. More... | |
int | EMLUTHadVeto () |
Returns Had veto ET with range and precision of EM LUT input. More... | |
int | TauLUTClus () |
Returns Tau cluster ET with range and precision of LUT input. More... | |
int | TauLUTEMIsol () |
Returns EM isolation ET with range and precision of Tau LUT input. More... | |
xAOD::CPMTobRoI * | EMCPMTobRoI () |
Create CPMTobRoIs and return pointers to them. More... | |
xAOD::CPMTobRoI * | TauCPMTobRoI () |
Returns CPMTobRoI for TAU hypothesis, provided TAU Tob conditions passed. More... | |
Private Member Functions | |
void | setRoICoord (double eta, double phi) |
threshold values More... | |
void | testEtMax (const std::vector< unsigned int > &cores) |
Form all 2x2 clusters within window and test centre is a local ET maximum. More... | |
void | emAlgorithm () |
Check trigger condition and set hits if appropriate. More... | |
void | tauAlgorithm () |
Check trigger condition and set hits if appropriate. More... | |
xAOD::CPMTobRoI * | createTobRoI (int type) |
Create a pointer to a CPMTobRoI and return it. More... | |
Private Attributes | |
double | m_refEta |
double | m_refPhi |
const TrigConf::L1Menu * | m_l1menu {nullptr} |
double | m_eta |
Algorithm results. More... | |
double | m_phi |
unsigned int | m_Core |
unsigned int | m_EMClus |
unsigned int | m_TauClus |
unsigned int | m_EMIsolWord |
unsigned int | m_TauIsolWord |
unsigned int | m_EMCore |
unsigned int | m_EMIsol |
unsigned int | m_HadCore |
unsigned int | m_HadIsol |
bool | m_EtMax |
bool | m_EMThresh |
bool | m_TauThresh |
Static Private Attributes | |
static const unsigned int | m_maxClus = 0xFF |
Algorithm parameters. More... | |
static const unsigned int | m_emLUT_ClusterFirstBit = 1 |
static const unsigned int | m_emLUT_ClusterNBits = 6 |
static const unsigned int | m_emLUT_EMIsolFirstBit = 0 |
static const unsigned int | m_emLUT_EMIsolNBits = 4 |
static const unsigned int | m_emLUT_HadVetoFirstBit = 0 |
static const unsigned int | m_emLUT_HadVetoNBits = 3 |
static const unsigned int | m_tauLUT_ClusterFirstBit = 1 |
static const unsigned int | m_tauLUT_ClusterNBits = 7 |
static const unsigned int | m_tauLUT_EMIsolFirstBit = 0 |
static const unsigned int | m_tauLUT_EMIsolNBits = 6 |
static const unsigned int | m_noIsol = 999 |
static const double | m_maxEta = 2.5 |
This is an internal class, used in the EM/Tau trigger.
The CPMTobAlgorithm:
Definition at line 43 of file CPMTobAlgorithm.h.
LVL1::CPMTobAlgorithm::CPMTobAlgorithm | ( | double | eta, |
double | phi, | ||
const xAOD::CPMTowerMap_t * | ttContainer, | ||
const TrigConf::L1Menu * | l1menu, | ||
int | slice = -1 |
||
) |
RoI coordinates are centre of window, while key classes are designed for TT coordinates - differ by 0.5* TT_size. Using wrong coordinate convention can lead to precision errors in key generation.
Offsetting by TT_size/4 will put coordinates inside reference TT whether input was reference TT coordinate or RoI centre coordinate. To be extra safe, the code below will then compute the centre of the reference tower.
This should all ensure consistent & safe key generation however the initial coordinate was specified.
Now loop over towers within window and form clusters.
Interesting one is the 9 RoI cores. The logic below fills these as an a 9-element std::vector. The ordering of the elements is as follows: 2 5 8 1 4 7 0 3 6 So the RoI "ET maximum" condition is that 4 >= 0-3, 4 > 5-8 If you picture the cores in a 3x3 array, cores[iphi][ieta], then the index in the vector above = iphi + 3*ieta.
Definition at line 47 of file CPMTobAlgorithm.cxx.
LVL1::CPMTobAlgorithm::~CPMTobAlgorithm | ( | ) |
Definition at line 163 of file CPMTobAlgorithm.cxx.
int LVL1::CPMTobAlgorithm::CoreET | ( | ) |
Additional information for reconstruction & performance studies.
Returns RoI Core ET.
Definition at line 380 of file CPMTobAlgorithm.cxx.
|
private |
Create a pointer to a CPMTobRoI and return it.
This function does not check whether a valid RoI exists - that is left to the calling functions (but as this is a private method that should be enough)
Definition at line 500 of file CPMTobAlgorithm.cxx.
|
private |
Check trigger condition and set hits if appropriate.
Disable isolation by default, then set cut if defined and in range. Expect parameters to be on 100 MeV scale whatever the digit scale, so need to rescale if digit scale differs. Also must rescale ET sums to same scale for comparison
Definition at line 211 of file CPMTobAlgorithm.cxx.
int LVL1::CPMTobAlgorithm::EMClusET | ( | ) |
Returns EM cluster ET, limited to 8 bits.
Definition at line 385 of file CPMTobAlgorithm.cxx.
int LVL1::CPMTobAlgorithm::EMCoreET | ( | ) |
Returns EM core ET
Definition at line 415 of file CPMTobAlgorithm.cxx.
xAOD::CPMTobRoI * LVL1::CPMTobAlgorithm::EMCPMTobRoI | ( | ) |
Create CPMTobRoIs and return pointers to them.
Returns CPMTobRoI for EM hypothesis, provided EM Tob conditions passed.
Will return a null pointer if object does not pass hypothesis. It is the user's responsibility to check
Definition at line 475 of file CPMTobAlgorithm.cxx.
int LVL1::CPMTobAlgorithm::EMIsolET | ( | ) |
Returns EM isolation ET.
Definition at line 405 of file CPMTobAlgorithm.cxx.
int LVL1::CPMTobAlgorithm::EMIsolWord | ( | ) |
Returns EM isolation word (5 bits)
Definition at line 395 of file CPMTobAlgorithm.cxx.
int LVL1::CPMTobAlgorithm::EMLUTClus | ( | ) |
Sums with the range & precision of isolation LUT inputs.
Returns EM cluster ET with range and precision of LUT input.
Definition at line 430 of file CPMTobAlgorithm.cxx.
int LVL1::CPMTobAlgorithm::EMLUTEMIsol | ( | ) |
Returns EM isolation ET with range and precision of EM LUT input.
Definition at line 444 of file CPMTobAlgorithm.cxx.
int LVL1::CPMTobAlgorithm::EMLUTHadVeto | ( | ) |
Returns Had veto ET with range and precision of EM LUT input.
Definition at line 451 of file CPMTobAlgorithm.cxx.
double LVL1::CPMTobAlgorithm::eta | ( | ) |
Accessors for TOB data.
Returns eta coordinate of RoI.
Definition at line 465 of file CPMTobAlgorithm.cxx.
int LVL1::CPMTobAlgorithm::HadCoreET | ( | ) |
Returns Had core ET (inner isolation sum)
Definition at line 420 of file CPMTobAlgorithm.cxx.
int LVL1::CPMTobAlgorithm::HadIsolET | ( | ) |
Returns Had isolation ET.
Definition at line 410 of file CPMTobAlgorithm.cxx.
bool LVL1::CPMTobAlgorithm::isEMRoI | ( | ) |
Report whether this passed as an EM TOB.
Definition at line 362 of file CPMTobAlgorithm.cxx.
bool LVL1::CPMTobAlgorithm::isEtMax | ( | ) |
Does this window pass the local ET maximum condition.
Definition at line 425 of file CPMTobAlgorithm.cxx.
bool LVL1::CPMTobAlgorithm::isTauRoI | ( | ) |
double LVL1::CPMTobAlgorithm::phi | ( | ) |
Returns phi coordinate of RoI, using standard ATLAS convention.
Definition at line 470 of file CPMTobAlgorithm.cxx.
|
private |
threshold values
Compute RoI coordinate.
Input coordinate should be inside "reference tower" of window. Computes RoI coordinate as centre of 2x2 tower RoI core
Definition at line 168 of file CPMTobAlgorithm.cxx.
|
private |
Check trigger condition and set hits if appropriate.
Definition at line 299 of file CPMTobAlgorithm.cxx.
int LVL1::CPMTobAlgorithm::TauClusET | ( | ) |
Returns Tau cluster ET, limited to 8 bits.
Definition at line 390 of file CPMTobAlgorithm.cxx.
xAOD::CPMTobRoI * LVL1::CPMTobAlgorithm::TauCPMTobRoI | ( | ) |
Returns CPMTobRoI for TAU hypothesis, provided TAU Tob conditions passed.
Definition at line 486 of file CPMTobAlgorithm.cxx.
int LVL1::CPMTobAlgorithm::TauIsolWord | ( | ) |
Returns Tau isolation word (5 bits)
Definition at line 400 of file CPMTobAlgorithm.cxx.
int LVL1::CPMTobAlgorithm::TauLUTClus | ( | ) |
Returns Tau cluster ET with range and precision of LUT input.
Definition at line 437 of file CPMTobAlgorithm.cxx.
int LVL1::CPMTobAlgorithm::TauLUTEMIsol | ( | ) |
Returns EM isolation ET with range and precision of Tau LUT input.
Definition at line 458 of file CPMTobAlgorithm.cxx.
|
private |
Form all 2x2 clusters within window and test centre is a local ET maximum.
Clusters form a list, arranged as
2 5 8
1 4 7
0 3 6
Then 4 = this window's RoI core, and ET max condition is
4 >= 0, 1, 2, 3 && 4 < 5, 6, 7, 8
Definition at line 192 of file CPMTobAlgorithm.cxx.
|
private |
Definition at line 91 of file CPMTobAlgorithm.h.
|
private |
Definition at line 92 of file CPMTobAlgorithm.h.
|
private |
Definition at line 96 of file CPMTobAlgorithm.h.
|
private |
Definition at line 97 of file CPMTobAlgorithm.h.
|
private |
Definition at line 94 of file CPMTobAlgorithm.h.
|
staticprivate |
Definition at line 109 of file CPMTobAlgorithm.h.
|
staticprivate |
Definition at line 110 of file CPMTobAlgorithm.h.
|
staticprivate |
Definition at line 111 of file CPMTobAlgorithm.h.
|
staticprivate |
Definition at line 112 of file CPMTobAlgorithm.h.
|
staticprivate |
Definition at line 113 of file CPMTobAlgorithm.h.
|
staticprivate |
Definition at line 114 of file CPMTobAlgorithm.h.
|
private |
Definition at line 101 of file CPMTobAlgorithm.h.
|
private |
Algorithm results.
Definition at line 89 of file CPMTobAlgorithm.h.
|
private |
Definition at line 100 of file CPMTobAlgorithm.h.
|
private |
Definition at line 98 of file CPMTobAlgorithm.h.
|
private |
Definition at line 99 of file CPMTobAlgorithm.h.
|
private |
Definition at line 86 of file CPMTobAlgorithm.h.
|
staticprivate |
Algorithm parameters.
Definition at line 107 of file CPMTobAlgorithm.h.
|
staticprivate |
Definition at line 123 of file CPMTobAlgorithm.h.
|
staticprivate |
Definition at line 121 of file CPMTobAlgorithm.h.
|
private |
Definition at line 90 of file CPMTobAlgorithm.h.
|
private |
Definition at line 84 of file CPMTobAlgorithm.h.
|
private |
Definition at line 85 of file CPMTobAlgorithm.h.
|
private |
Definition at line 93 of file CPMTobAlgorithm.h.
|
private |
Definition at line 95 of file CPMTobAlgorithm.h.
|
staticprivate |
Definition at line 116 of file CPMTobAlgorithm.h.
|
staticprivate |
Definition at line 117 of file CPMTobAlgorithm.h.
|
staticprivate |
Definition at line 118 of file CPMTobAlgorithm.h.
|
staticprivate |
Definition at line 119 of file CPMTobAlgorithm.h.
|
private |
Definition at line 102 of file CPMTobAlgorithm.h.