The three primary functions of the TrigNavMatchTool and supporting package; TDTInterface.

  • Per event retrieve trigger EDM objects from the three trigger levels.
  • Per ROI collect the trigger objects and link using trigger navigation.
  • Associate the objects with chain names.

TrigNavMatchTool returns vector of TrigNavBranches - one per ROI.



Introduction to High Level Trigger System - contains link to list of trigger EDM object types
Twiki for trigger decision tool - discusses chain groups
Reference for C++ std::vector and templating



The following are specified in tool configuration. These control which trigger EDM objects and ROI's the tool retrieves.


Tool retrieves all trigger EDM objects of specified types (trigL1Type, trigL2Type, trigEFType) that are associated with the chains in the chain groups.
  • L1 objects are retrieved if they are associated with one of the chains in the L2 chain group.

The trigger EDM objects that the tool retrieves are collected per roi into a TrigNavBranch object.

A vector of TrigNavBranch objects for all RoI's in event is returned by execution of the GetBranches function of the tool:

std::vector<TrigNavBranch*>* GetBranches<trigL1Type, trigL2Type, trigEFType()


The trigger EDM objects in TrigNavBranch are wrapped by TrigNavObj

TrigNavObj Class

Wrapper for trigger EDM objects that
  • records ancestor/descendant links between trigger object and its predecessors/ successors
  • records chains associated with trigger object.

TrigNavObj class is templated by associated trigger EDM object type(trigType)

TrigNavObj inherits from generic(non templated) TrigNavObjBase class. TrigNavObjBase class records

  • all information in TrigNavObj except the trigger EDM object pointer.
  • the 4 momentum vector of the trigger EDM object.


TrigNavBranch Class

A TrigNavBranch object
  • has RoI scope.
  • Contains TrigNavObj's associated with its RoI.
    • one L1 TrigNavObj,
    • vector of L2 objects decended from the L1 object
    • vector of EF objects decended from the L2 object

The pointers to the TrigNavObj's in TrigNavBranch are type cast to TrigNavObjBase class pointers.

TrigNavLinkage Class

A linkage object contains:
  • final object from a processing stream(in a Roi) and the L1 and/or L2 predecessors of that object.

If branch forks - there are >1 L2 and/or EF objects in its RoI - then there are multiple linkages for the branch.



Configure tool to retrieve trigger EDM objects from specifed chain names prior to execution of tool.
void SetConfigChainNames(const char* L1chainNames, const char* L2chainNames, const char* EFchainNames)
  • "L2chainNames" and "EFchainNames" should be names of chain groups as specified in the TrigDecisionTool twiki.
  • "L1chainNames" is dummy - can set to ""

Execute tool and retrieve Branches for event

std::vector<TrigNavBranch*>* GetBranches<trigL1Type, trigL2Type, trigEFType>()
  • trigL1Type, trigL2Type, and trigEFType specify the types of the trigger EDM objects retrieved by tool.
  • trigL1Type is either TrigRoiDescriptor of other class that has method roiWord() (The roi word for the TrigNavBranch is extracted from the L1 trigger EDM object via roiWord() method- therefor trigL1Type is required to be a class with roiWord() method)


the RoI word of branch

unsigned int m_roiWord

pointer to the L1 trigger object
TrigNavObjBase* m_L1obj

vector of pointers to the L2 trigger objects

std::vector<TrigNavObjBase*> m_L2objs

vector of pointers to the EF trigger objects

std::vector<TrigNavObjBase*> m_EFobjs

All of the TrigNavObjBase pointers returned are pointers to TrigNavObj's that have been type cast as pointers to their base class.

linkages in branch

std::vector<TrigNavLinkage> m_linkages


TrigNavObjBase - base class from which TrigNavObj inherits

Names of chains that object is associated with (passed)

 std::vector<std::string> m_chainNames 

Ancestor object from previous trigger level

TrigNavObjBase* m_prevTNObj

Descendant objects in higher trigger levels

std::vector<TrigNavObjBase*> m_nextTNObjs

4 momentum of wrapped(associated) trigger EDM object.

INavigable4Momentum* m_4mom

TrigNavObj - templated class that wraps a trigger EDM object of class trigType

wrapped trigger EDM object associated with the TrigNavObj

const trigType* m_trigObj


Highest trigger level to which linkage extends (1, L1; 2, L2; 3, EF)

int m_headLevel

L1 object

TrigNavObjBase* m_L1obj;

L2 object

TrigNavObjBase* m_L2obj;

EF object

TrigNavObjBase* m_EFobj;

If linkage did not extend to a level then the pointer for the levels object is NULL.


section will be completed after version is approved for svn


Twiki for TrigObjectMatching tool - package for matching trigger to offline objects
Glossary of Terminology for HLT - Advanced
Atlas Event Data Model(EDM) twiki - advanced discussion of trigger EDM objects and HLT system


Package has been written for release 15.3.0 and tested
Package currently configured to operate in Trigger/TrigAnalysis directory
Package not committed to svn

-- PtacekE - 23-Oct-2009

Topic attachments
I Attachment History Action Size Date Who Comment
JPEGjpg Linkages1.jpg r1 manage 31.0 K 2009-10-23 - 17:28 EptacekExternal Linkages in branch
JPEGjpg TrigNavObj1.jpg r1 manage 36.1 K 2009-10-23 - 15:24 EptacekExternal Diagram of TrigNavObj
JPEGjpg branch1.jpg r1 manage 30.9 K 2009-10-23 - 15:24 EptacekExternal Diagram of Branch
JPEGjpg branches1.jpg r1 manage 40.8 K 2009-10-23 - 15:23 EptacekExternal Diagram of Branches
Edit | Attach | Watch | Print version | History: r5 < r4 < r3 < r2 < r1 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r5 - 2020-08-30 - TWikiAdminUser
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    Sandbox/SandboxArchive All webs login

This site is powered by the TWiki collaboration platform Powered by PerlCopyright & 2008-2023 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
or Ideas, requests, problems regarding TWiki? use Discourse or Send feedback