ATLAS Offline Software
Loading...
Searching...
No Matches
HLT::TriggerElementFactory Class Reference

The factory of TriggerElements Creation in controlled way. More...

#include <TriggerElementFactory.h>

Collaboration diagram for HLT::TriggerElementFactory:

Public Member Functions

 TriggerElementFactory ()
 ~TriggerElementFactory ()
TriggerElementproduce (unsigned int id, bool ghost=false, bool nofwd=false)
void reset ()
bool empty () const
const std::vector< TriggerElement * > & listOfProduced () const
std::vector< TriggerElement * > & listOfProduced ()
const std::vector< TriggerElement * > & listOfProduced (unsigned int id) const
std::vector< TriggerElement * > & listOfProduced (unsigned int id)

Private Attributes

std::vector< TriggerElement * > m_list
std::map< te_id_type, std::vector< TriggerElement * > > m_groupedById
 this is to speed up queries
std::vector< TriggerElement * > m_notfound

Detailed Description

The factory of TriggerElements Creation in controlled way.

Main reason for this class is to allow controlled creation of the TEs (may be optimized to reuse the TEs from event to event)

This can be much smarter to:

  • Beeing able to produce any object (like TiggerStore)
  • Beeing able to hold forigen objects (no control over them, like)

Definition at line 28 of file TriggerElementFactory.h.

Constructor & Destructor Documentation

◆ TriggerElementFactory()

HLT::TriggerElementFactory::TriggerElementFactory ( )

Definition at line 9 of file TriggerElementFactory.cxx.

9 {
10 // std::cout << "TriggerElementFactory::TriggerElementFactory() " << std::endl;
11}

◆ ~TriggerElementFactory()

HLT::TriggerElementFactory::~TriggerElementFactory ( )

Definition at line 13 of file TriggerElementFactory.cxx.

13 {
14}

Member Function Documentation

◆ empty()

bool HLT::TriggerElementFactory::empty ( ) const

Definition at line 24 of file TriggerElementFactory.cxx.

24 {
25 return m_list.empty();
26}
std::vector< TriggerElement * > m_list

◆ listOfProduced() [1/4]

std::vector< TriggerElement * > & HLT::TriggerElementFactory::listOfProduced ( )
inline

Definition at line 37 of file TriggerElementFactory.h.

37{ return m_list; }

◆ listOfProduced() [2/4]

const std::vector< TriggerElement * > & HLT::TriggerElementFactory::listOfProduced ( ) const
inline

Definition at line 36 of file TriggerElementFactory.h.

36{ return m_list; }

◆ listOfProduced() [3/4]

std::vector< TriggerElement * > & HLT::TriggerElementFactory::listOfProduced ( unsigned int id)
inline

Definition at line 42 of file TriggerElementFactory.h.

42 {
43 auto found = m_groupedById.find(id);
44 return (found!=m_groupedById.end()) ? found->second : m_notfound;
45 }
std::vector< TriggerElement * > m_notfound
std::map< te_id_type, std::vector< TriggerElement * > > m_groupedById
this is to speed up queries

◆ listOfProduced() [4/4]

const std::vector< TriggerElement * > & HLT::TriggerElementFactory::listOfProduced ( unsigned int id) const
inline

Definition at line 38 of file TriggerElementFactory.h.

38 {
39 auto found = m_groupedById.find(id);
40 return (found!=m_groupedById.end()) ? found->second : m_notfound;
41 }

◆ produce()

HLT::TriggerElement * HLT::TriggerElementFactory::produce ( unsigned int id,
bool ghost = false,
bool nofwd = false )

Definition at line 16 of file TriggerElementFactory.cxx.

16 {
17 HLT::TriggerElement *te = new HLT::TriggerElement(id, ghost, nofwd);
18 m_list.push_back(te);
19 m_groupedById[id].push_back(te);
20 return te;
21}

◆ reset()

void HLT::TriggerElementFactory::reset ( )

Definition at line 28 of file TriggerElementFactory.cxx.

28 {
29 std::vector< HLT::TriggerElement* >::iterator i;
30 for ( i = m_list.begin(); i != m_list.end(); ++i ) {
31 delete (*i);
32 }
33 m_list.clear();
34 m_groupedById.clear();
35}

Member Data Documentation

◆ m_groupedById

std::map<te_id_type, std::vector<TriggerElement*> > HLT::TriggerElementFactory::m_groupedById
private

this is to speed up queries

Definition at line 49 of file TriggerElementFactory.h.

◆ m_list

std::vector< TriggerElement* > HLT::TriggerElementFactory::m_list
private

Definition at line 48 of file TriggerElementFactory.h.

◆ m_notfound

std::vector< TriggerElement* > HLT::TriggerElementFactory::m_notfound
private

Definition at line 50 of file TriggerElementFactory.h.


The documentation for this class was generated from the following files: