Intro
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.
Background
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
Overview
Configuration
The following are specified in tool configuration. These control which trigger EDM objects and ROI's the tool retrieves.
- The Trigger EDM object types (trigL1Type, trigL2Type, and trigEFType) for each of the three trigger levels
- specified via template for the GetBranch<trigL1Type, trigL2Type, trigEFType>().
- The chain group labels for L2 and EF.
Execution
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()
Output
The trigger EDM objects in
TrigNavBranch are wrapped by
TrigNavObj
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.
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.
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.
Methods
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
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.
Examples
section will be completed after version is approved for svn
Links
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
Comments
23.10.2009
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