ATLAS Offline Software
|
Initial version of the stgc pad trigger logic. More...
#include <L1TdrStgcTriggerLogic.h>
Public Member Functions | |
L1TdrStgcTriggerLogic () | |
std::vector< SectorTriggerCandidate > | buildSectorTriggers (const std::vector< std::shared_ptr< PadOfflineData >> &pads, const std::pair< double, double > &Zratio) const |
main function to compute trigger candidates More... | |
std::vector< size_t > | removeRandomPadIndices (const std::vector< size_t > &padIndices) const |
simulate efficiency by dropping random pads (their indices) More... | |
std::array< std::string_view, 10 > | sTGC_triggerPatternsEtaUp () const |
trigger patterns that will be stored in the lookup table More... | |
std::array< std::string_view, 10 > | sTGC_triggerPatternsEtaDown () const |
std::array< std::string_view, 16 > | sTGC_triggerPatternsPhiUp () const |
std::array< std::string_view, 16 > | sTGC_triggerPatternsPhiDown () const |
std::array< std::string_view, 10 > | sTGC_triggerPatternsPhiDownUp () const |
std::array< std::string_view, 10 > | sTGC_triggerPatternsPhiUpDown () const |
bool | hitPattern (const std::shared_ptr< PadOfflineData > &firstPad, const std::shared_ptr< PadOfflineData > &otherPad, std::string &pattern) const |
bool | hitPattern (const int iEta0, const int iPhi0, const int iEta1, const int iPhi1, std::string &pattern) const |
std::vector< SingleWedgePadTrigger > | buildSingleWedgeTriggers (const std::vector< std::shared_ptr< PadOfflineData >> &pads, const std::vector< size_t > &padIndicesLayer0, const std::vector< size_t > &padIndicesLayer1, const std::vector< size_t > &padIndicesLayer2, const std::vector< size_t > &padIndicesLayer3, bool isLayer1, bool isLayer2, bool isLayer3, bool isLayer4) const |
std::vector< SingleWedgePadTrigger > | build34swt (const std::vector< std::shared_ptr< PadOfflineData >> &pads, const std::vector< size_t > &padIndicesLayer0, const std::vector< size_t > &padIndicesLayer1, const std::vector< size_t > &padIndicesLayer2, const std::vector< size_t > &padIndicesLayer3) const |
std::vector< SingleWedgePadTrigger > | build44swt (const std::vector< std::shared_ptr< PadOfflineData >> &pads, const std::vector< size_t > &padIndicesLayer0, const std::vector< size_t > &padIndicesLayer1, const std::vector< size_t > &padIndicesLayer2, const std::vector< size_t > &padIndicesLayer3) const |
bool | msgLvl (const MSG::Level lvl) const |
Test the output level. More... | |
MsgStream & | msg () const |
The standard message stream. More... | |
MsgStream & | msg (const MSG::Level lvl) const |
The standard message stream. More... | |
void | setLevel (MSG::Level lvl) |
Change the current logging level. More... | |
Private Member Functions | |
std::vector< size_t > | filterByLayer (const std::vector< std::shared_ptr< PadOfflineData >> &pads, const std::vector< size_t > &padSelectedIndices, int layer) const |
std::vector< size_t > | filterByMultiplet (const std::vector< std::shared_ptr< PadOfflineData >> &pads, const std::vector< size_t > &padSelectedIndices, int multiplet) const |
void | initMessaging () const |
Initialize our message level and MessageSvc. More... | |
Private Attributes | |
std::string | m_nm |
Message source name. More... | |
boost::thread_specific_ptr< MsgStream > | m_msg_tls |
MsgStream instance (a std::cout like with print-out levels) More... | |
std::atomic< IMessageSvc * > | m_imsg { nullptr } |
MessageSvc pointer. More... | |
std::atomic< MSG::Level > | m_lvl { MSG::NIL } |
Current logging level. More... | |
std::atomic_flag m_initialized | ATLAS_THREAD_SAFE = ATOMIC_FLAG_INIT |
Messaging initialized (initMessaging) More... | |
Initial version of the stgc pad trigger logic.
This class contains the trigger logic for the stgc pads as implemented for the NSW TDR (CERN-LHCC-2013-006, https://cds.cern.ch/record/1552862). In particular, the naming convention and the trigger logic are described in ATL-MUON-INT-2014-003 https://cds.cern.ch/record/1694727.
This class requires the input data to be formatted as a vector<PadOfflineData>, and it provides as output a vector<SectorTriggerCandidate>.
Imported from svn+ssh://svn.cern.ch/reps/atlasusr/ataffard/UpgradeNSW/NSWAna/NSWNtuple/trunk , this class is in TrigT1NSWSimTools mainly meant to provide a reference. Note that all the 'legacy' code from the TDR study is in the 'nsw' namespace. (newer 'official' code is in the 'NSWL1' namespace).
Based on the original implementation by Shikma, sTGCTriggerLogic.
david April 2013 e.ge rbaud o@gm ail.c om
Updates for release 22 processing: franc esco .gius eppe .grav ili@ cern. ch
Definition at line 47 of file L1TdrStgcTriggerLogic.h.
NSWL1::L1TdrStgcTriggerLogic::L1TdrStgcTriggerLogic | ( | ) |
Definition at line 23 of file L1TdrStgcTriggerLogic.cxx.
std::vector< SingleWedgePadTrigger > NSWL1::L1TdrStgcTriggerLogic::build34swt | ( | const std::vector< std::shared_ptr< PadOfflineData >> & | pads, |
const std::vector< size_t > & | padIndicesLayer0, | ||
const std::vector< size_t > & | padIndicesLayer1, | ||
const std::vector< size_t > & | padIndicesLayer2, | ||
const std::vector< size_t > & | padIndicesLayer3 | ||
) | const |
Definition at line 289 of file L1TdrStgcTriggerLogic.cxx.
std::vector< SingleWedgePadTrigger > NSWL1::L1TdrStgcTriggerLogic::build44swt | ( | const std::vector< std::shared_ptr< PadOfflineData >> & | pads, |
const std::vector< size_t > & | padIndicesLayer0, | ||
const std::vector< size_t > & | padIndicesLayer1, | ||
const std::vector< size_t > & | padIndicesLayer2, | ||
const std::vector< size_t > & | padIndicesLayer3 | ||
) | const |
Definition at line 306 of file L1TdrStgcTriggerLogic.cxx.
std::vector< SectorTriggerCandidate > NSWL1::L1TdrStgcTriggerLogic::buildSectorTriggers | ( | const std::vector< std::shared_ptr< PadOfflineData >> & | pads, |
const std::pair< double, double > & | Zratio | ||
) | const |
main function to compute trigger candidates
Definition at line 342 of file L1TdrStgcTriggerLogic.cxx.
std::vector< SingleWedgePadTrigger > NSWL1::L1TdrStgcTriggerLogic::buildSingleWedgeTriggers | ( | const std::vector< std::shared_ptr< PadOfflineData >> & | pads, |
const std::vector< size_t > & | padIndicesLayer0, | ||
const std::vector< size_t > & | padIndicesLayer1, | ||
const std::vector< size_t > & | padIndicesLayer2, | ||
const std::vector< size_t > & | padIndicesLayer3, | ||
bool | isLayer1, | ||
bool | isLayer2, | ||
bool | isLayer3, | ||
bool | isLayer4 | ||
) | const |
Definition at line 57 of file L1TdrStgcTriggerLogic.cxx.
|
private |
|
private |
bool NSWL1::L1TdrStgcTriggerLogic::hitPattern | ( | const int | iEta0, |
const int | iPhi0, | ||
const int | iEta1, | ||
const int | iPhi1, | ||
std::string & | pattern | ||
) | const |
Definition at line 32 of file L1TdrStgcTriggerLogic.cxx.
bool NSWL1::L1TdrStgcTriggerLogic::hitPattern | ( | const std::shared_ptr< PadOfflineData > & | firstPad, |
const std::shared_ptr< PadOfflineData > & | otherPad, | ||
std::string & | pattern | ||
) | const |
Definition at line 27 of file L1TdrStgcTriggerLogic.cxx.
|
privateinherited |
Initialize our message level and MessageSvc.
This method should only be called once.
Definition at line 39 of file AthMessaging.cxx.
|
inlineinherited |
The standard message stream.
Returns a reference to the default message stream May not be invoked before sysInitialize() has been invoked.
Definition at line 164 of file AthMessaging.h.
|
inlineinherited |
The standard message stream.
Returns a reference to the default message stream May not be invoked before sysInitialize() has been invoked.
Definition at line 179 of file AthMessaging.h.
|
inlineinherited |
Test the output level.
lvl | The message level to test against |
true | Messages at level "lvl" will be printed |
Definition at line 151 of file AthMessaging.h.
std::vector< size_t > NSWL1::L1TdrStgcTriggerLogic::removeRandomPadIndices | ( | const std::vector< size_t > & | padIndices | ) | const |
simulate efficiency by dropping random pads (their indices)
Definition at line 278 of file L1TdrStgcTriggerLogic.cxx.
|
inherited |
Change the current logging level.
Use this rather than msg().setLevel() for proper operation with MT.
Definition at line 28 of file AthMessaging.cxx.
std::array< std::string_view, 10 > NSWL1::L1TdrStgcTriggerLogic::sTGC_triggerPatternsEtaDown | ( | ) | const |
Definition at line 441 of file L1TdrStgcTriggerLogic.cxx.
std::array< std::string_view, 10 > NSWL1::L1TdrStgcTriggerLogic::sTGC_triggerPatternsEtaUp | ( | ) | const |
trigger patterns that will be stored in the lookup table
The trigger 3 out of 4 masks using the following translation from Daniel ....
These are the original patterns we got in 2013 from D.Lellouch. They are probably obsolete and they should be updated
feaaa8 R: .+-+ -+-+ Phi: .–+ -+-+ Best R/Phi: 2/1 (out of 4) 2013/02/10 now calculating per wedge
Definition at line 436 of file L1TdrStgcTriggerLogic.cxx.
std::array< std::string_view, 16 > NSWL1::L1TdrStgcTriggerLogic::sTGC_triggerPatternsPhiDown | ( | ) | const |
Definition at line 452 of file L1TdrStgcTriggerLogic.cxx.
std::array< std::string_view, 10 > NSWL1::L1TdrStgcTriggerLogic::sTGC_triggerPatternsPhiDownUp | ( | ) | const |
Definition at line 463 of file L1TdrStgcTriggerLogic.cxx.
std::array< std::string_view, 16 > NSWL1::L1TdrStgcTriggerLogic::sTGC_triggerPatternsPhiUp | ( | ) | const |
Definition at line 446 of file L1TdrStgcTriggerLogic.cxx.
std::array< std::string_view, 10 > NSWL1::L1TdrStgcTriggerLogic::sTGC_triggerPatternsPhiUpDown | ( | ) | const |
Definition at line 458 of file L1TdrStgcTriggerLogic.cxx.
|
mutableprivateinherited |
Messaging initialized (initMessaging)
Definition at line 141 of file AthMessaging.h.
|
mutableprivateinherited |
MessageSvc pointer.
Definition at line 135 of file AthMessaging.h.
|
mutableprivateinherited |
Current logging level.
Definition at line 138 of file AthMessaging.h.
|
mutableprivateinherited |
MsgStream instance (a std::cout like with print-out levels)
Definition at line 132 of file AthMessaging.h.
|
privateinherited |
Message source name.
Definition at line 129 of file AthMessaging.h.