/
Trigger Data for Analysis Trigger Data for Analysis

Trigger Data for Analysis - PowerPoint Presentation

udeline
udeline . @udeline
Follow
64 views
Uploaded On 2024-01-03

Trigger Data for Analysis - PPT Presentation

ATLAS Software tutorial 9 th 12 rd February 2010 Jörg Stelzer DESY Ricardo Gonçalo RHUL The Trigger 2 ATLAS Software Tutorial Trigger Data match L2 calorim L2 tracking ID: 1038351

const trigger atlas chaingroup trigger const chaingroup atlas software tutorial object twiki cern chain std features hlt feature trig

Share:

Link:

Embed:

Download Presentation from below link

Download Presentation The PPT/PDF document "Trigger Data for Analysis" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.


Presentation Transcript

1. Trigger Data for AnalysisATLAS Software tutorial9th – 12rd February 2010Jörg Stelzer DESYRicardo Gonçalo RHUL

2. The Trigger2ATLAS Software Tutorial - Trigger Datamatch?L2 calorim.L2 trackingcluster?track?Level 2 seeded by Level 1Fast reconstruction algorithms Reconstruction within RoIElectromagneticclustersEM ROILevel1:Region of Interest is found and position in EM calorimeter is passed to Level 2E.F.calorim.E.F.trackingtrack?e/ OK?e/ reconst.Ev.Filter seeded by Level 2Offline reconstruction algorithms Refined alignment and calibrationAn example

3. FEX algo’s are executed to createfeatures on which selection in HYPO algo’s is basedChain:Started, if seed has fired and chain is not prescaledStopped at step, if a HYPO is not passed Last HYPO passed  chain passedEvent:Passed, if at least one EF chain is passedPut into all streams that are associated with the passed EF chainsTrigger objects associated with triggers through Navigation TriggerElementsTrigger information inTrigger Decision + Configuration + +ATLAS Software Tutorial - Trigger Data3match?L2 calorim.L2 trackingcluster?track?EM ROIE.F.calorim.E.F.trackingtrack?e OK?e/ reconst.L2 calorim.cluster?EM ROIE.F.calorim. OK?e/ reconst.TrigEMClusterTrigInDetTracksCaloClusteregammaEFTrackFeatureFEXHYPOESDAODTAGDPDFeatureThe Trigger ExecutionThe Trigger ExecutionEM_ROINavigationTE Pass/FailTE Pass/FailTE Pass/FailTE Pass/Failγ OK?e OK?

4. 4ATLAS Software Tutorial - Trigger DataTriggerDBAll configuration dataOnlineConditionsDatabaseCOOLPreparationDatatakingTrigger aware analysisTrigger Result passed?, passed through?, prescaled?, last successful step in trigger execution?Trigger EDM Trigger objects for trigger selection studiesTrigger Configuration Trigger names, prescales, pass throughsaccess through TrigDecisionToolESDAODTAGConfiguresStoresdecoded Trigger Menu Encoded trigger result from all 3 levelsDPDWith decreasingamount of detailDecoded trigger menuReconstructionTrigger Configuration + Data

5. Analysis based on single trigger chain or an ‘OR’ of a few chains (a ‘ChainGroup’)Chain definition – algorithms, cuts, multiplicities – do not change during a run, but can change between runsImportant for analysis on DPD, where multiple runs are merged, check the ChainGroup content between each runPrescales at LVL1 and at HLT can change between luminosity blocksA negative prescale means that this trigger is off. This is important for calculating the integrated luminosity. Check each luminosity block.ATLAS Software Tutorial - Trigger Data5Trigger-Aware Analysis – Introductory Comments

6. ATLAS Software Tutorial - Trigger Data6Bringing it Together – TrigDecisionTool TrigDecisionTool Decision +NavigationEDMConfigurationESDAODDPDcontain persistentConfigSvcIOVDbSvcIOV basedP/T conv.EDM P/TconvertionUnpackingDec. + Nav.TrigDecisionFeature Nav.ConfigurationUpon RequestTransient:Configuration can change between runsPrescales can change between lumiblocks(trigger on/off)BUT:

7. Lvl1 decision after dead-time vetoHLT decision, information for pass-through’ed and for resurrected triggersBunch groups that firedFor more detailed studies:Lvl1 decision before prescale, before vetoError codes for HLT-algorithmsLast step of chain executionATLAS Software Tutorial - Trigger Data7What’s there? – Trigger Decision

8. Alg.h: define ToolHandle to a TrigDecisionToolAlg.cxx – Alg::Alg(): declare ToolHandle as public tool Alg.cxx – Alg::initialize(): retrieve toolHas to be in initialize()!Alg.cxx – Alg::execute(): use toolATLAS Software Tutorial - Trigger Data8private: ToolHandle<Trig::TrigDecisionTool> tdt;MyAlgo::MyAlgo(const std::string &name, …) tdt("Trig::TrigDecisionTool/TrigDecisionTool”){…}StatusCode sc = tdt.retrieve(); if (tdt->isPassed (“L2_e15i”)) { log << MSG::INFO << ”I’m happy!“ << endreq; }Tool Usage TWIKI: https://twiki.cern.ch/twiki/bin/view/Atlas/TrigDecisionTool15Doxygen: http://atlas-computing.web.cern.ch/.../TrigDecisionTool/html/

9. ATLAS Software Tutorial - Trigger Data9Alg.h: define ChainGroup pointerAlg.cxx – Alg::initialize(): declare ChainGroupNote: the ChainGroup automatically updates with each run (chain content) and lumiblock (prescales)Use regular expressions, e.g. “EF_e.*”Alg.cxx – Alg::execute():Access to trigger configurationAccess to trigger decisionAccess to trigger objectsWorking with ChainGroupsbool useLB = ! mMyTrigger->getListOfTriggers().empty();bool myEvent = mMyTrigger.isPassed();const Trig::FeatureContainer fc = mMyTrigger.features();const std::vector< Trig::Feature< TrigTau > > taus = fc.get();mMyTrigger = tdt.createChainGroup(“EF_e10_loose”,”EF_mu10”,...);const Trig::ChainGroup* mMyTrigger;Anonymous ChainGroups:Note that one can work without steps 1 and 2. In Alg::execute() define the triggers on the fly:Equally fast (TDT keeps ChainGroups)string tr (“EF_e10_loose”);bool useLB = ! tdt->getListOfTriggers().empty(tr);bool myEvent = tdt->isPassed(tr);const Trig::FeatureContainer fc = tdt.features(tr);

10. Access to features through the “TriggerNavigation”Features are created by FEX algorithms, they appear in StoreGate. A FEX also creates a “TriggerElement” (TE)A TE is used as handle to the featureA TE has a pass/fail state set by the corresponding HYPOThe navigation gives you all the features that were created in a chainOr just those that were successful (features in ROI’s which passed all cuts) – that is the default!Can also give you combinations of features (for multi-object triggers)Ancestor function to navigate, e.g. from electron to track and clusterATLAS Software Tutorial - Trigger Data10What’s there? – Features and Navigation

11. Athena Example for using FeaturesFeatureContainer for ‘EF_tau16i_loose_2j23’Access the feature You need to know the type of the Feature: ‘JetCollection’ in EFAccess the object (implicit conversion)Access information of objectFind corresponding L2 jet using TDT::ancestor<T>FeatureContainer f = tdt->features("EF_tau16i_loose_2j23"); // creating the feature containerstd::vector< Feature<JetCollection> > jetColls = f.get<JetCollection>();mLog << MSG::INFO << "Number of JetCollections: " << jetColls.size() << endreq;if(jetColls.size()>0) { const Feature<JetCollection>& jcf = jetColls[0]; // get the first Feature mLog << MSG::INFO << "Label: " << jcf.label() << endreq; const JetCollection* jc = jcf; // implicit Feature -> object conversion mLog << MSG::INFO << "Number of Jets: " << jc->size() << endreq; JetCollection::const_iterator jIt = jc->begin(); for (; jIt != jc->end(); ++jIt ) { Jet* jet = *jIt; mLog << MSG::INFO << "Jet e : " << jet->e() << endreq; } // find the corresponding jets in Lvl2 through the inheritance tree (navigation does that all) Feature<TrigT2Jet> l2jetF = tdt->ancestor<TrigT2Jet>(jcf); mLog << MSG::INFO<<"Found “<< (l2jetF.empty()?"no ":"“)<< "corresponding L2 Jet.”<<endreq; if ( !l2jetF.empty() ) { const TrigT2Jet* t2jet = l2jetF.cptr(); // explicit Feature -> object conversion mLog << MSG::INFO << " e : " << t2jet->e() << endreq; }}ATLAS Software Tutorial - Trigger Data11Number of JetCollections: 1 TE Label: TrigJetRec Number of Jets: 1 Jet e : 82827.9 Found corresponding L2 Jet. e : 83197.4 Output:

12. 09/02/2010ATLAS Software Tutorial - Trigger Data12Trigger Object MatchingWhy?Some analyses require object level trigger information: Tag and ProbeSome analyses have multiple objects of same type and need matching for detailed efficiency estimationTrigger selection design and optimisationMatching framework available in Trigger/TrigAnalysis/TrigObjectMatching package in release 15.3.0 and laterExamples available in Trigger/TrigAnalysis/TrigAnalysisExamples in release 15.4.0 and laterTrigMatchExAlg - Athena example of matching for each common offline typeTrigMatchExampleARA - Example of trigger matching in ARATagAndProbeExAlg - Athena example of tag and probe analysis with trigger matchingTWiki available with detailed information for users and developershttps://twiki.cern.ch/twiki/bin/view/Atlas/TriggerObjectsMatching

13. L1 Items: name, prescaleFor more detailed studies: version, CTP-Id, bunch group, thresholds and multiplicitiesHLT Chains: name, level, prescale, streamsFor more detailed studies: version, counter, trigger elements and multiplicitiesTrigger Release, configuration keys (useful for lookup in the TriggerDB)No access with the TDT, but checkConfigTrigger.pyATLAS Software Tutorial - Trigger Data13What’s there? – Configuration Data

14. ATLAS Software Tutorial - Trigger Data14Configuration Access with the TDTstd::vector< std::string > getListOfTriggers (const Trig::ChainGroup *chaingroup) const List of trigger names of the ChainGroup chaingroupstd::vector< std::string > getListOfStreams (const Trig::ChainGroup *chaingroup) const List of stream names of the ChainGroup chaingroupstd::vector< std::vector< std::string > > getListOfTriggerElements (const Trig::ChainGroup *chaingroup) const List of lists of TE names in ChainGroup chaingroup. Inner vectors are for a single trigger step, the length of those is the trigger multiplicity.float getPrescale (const Trig::ChainGroup *chaingroup, unsigned int condition=TrigDefs::Physics) const Prescale of the ChainGroup chaingroup. All methods come with two flavors, argument:const Trig::ChainGroup *chaingroupconst std::string &triggerNames=“.*”Here the ChainGroup is created on the fly from the pattern ‘triggerNames’ (regexp - “.*” means ‘all’)All functions are forwarded from ChainGroup, tdt->fnc(chgr,…) is equivalent to chGr->fnc(…)Prescales: For single triggers the prescale combined for all levels is returned. If a multi-trigger ChainGroup contains an unprescaled trigger, the return value is 1. It is 0 otherwise.

15. http://trigconf.cern.ch:Main web portal to trigger configuration by run number, MC menu name, configuration keys Uses TriggerTool and AtlCoolTrigger.py underneathTriggerTool: Java based GUI to browse the TriggerDB (replica) for all informationAlso used at point 1 for preparation of triggerAtlCoolTrigger.py: Command line tool to show release, configuration keys, menu information, streams for datahttp://atlas-runquery.cern.ch/Query page for trigger chains, prescales, trigger release for dataATLAS Software Tutorial - Trigger Data15Tools to Investige the Trigger Setup

16. Go to http://atlas-trigconf.cern.ch ATLAS Software Tutorial - Trigger Data16Example for the Configuration Portal2. Click on link in resulting run listAlso with simple comparison functionality1. Enter run-range3. Browse the trigger configuration(definition, algorithms, selection cuts)

17. Trigger Menu and L1 rates stored in COOL, HLT rates coming. Quick access viaAtlCoolTrigger.py (command line tool)AtlCoolTrigger.py –r 91000‐99000 (many run summary)AtlCoolTrigger –v –m –r 90272 (single run menu)Prints keys, trigger menus, streams, allows diff‐ing of menus in different runs, creates menu in xml formatRun summary pages (WEB based):http://atlas-service-db-runlist.web.cern.ch/atlas-service-db-runlist/query.html Trigger names, rates for single runATLAS Software Tutorial - Trigger Data17Trigger Menu Listing

18. Java based front end to TriggerDB, launch from the web (Java web-start): http://www.cern.ch/triggertoolOverview of all trigger configurations (data taking and MC)Detailed and convenient investigation of trigger menusTrigger definition L1->L2->EF: prescales, threshold algorithms, selection criteria, streaming information, etc.Possibility to compare different trigger configurationsUsed at point 1 for trigger operationTDAQ training tutorial for the TT ATLAS Software Tutorial - Trigger Data18TriggerTool

19. checkTrigger.py AOD.pool.rootRuns over ESD/AOD/DPD and presentsdetailed (chain‐wise) counts of the trigger decisioncheckTriggerConfig.py ‐d AOD.pool.rootRuns on ESD/AOD/DPD and presents detailed trigger configuration(s)Shows multiple configurations (merged DPD)ATLAS Software Tutorial - Trigger Data19Scripts to Check Pool File Content> checkTriggerConfig.py –d data09_cos.00121733.physics_L1Calo.recon.ESD.r733_tid073522/ESD.073522._000001.pool.root.1…EF: EF_mu0_tgc_halo_IDSCAN (1.00), L2: L2_mu0_tgc_halo_IDSCAN (1.00), L1: L1_MU0_TGC_HALO (1) [streams: TGCwBeam]…File:AOD.pool.rootSize: 55955.492 kbNbr Events: 250Trigger configuration summary:SMK: 0, HLTpsk: 0, L1psk: 0Config source: TriggerMenuXML/LVL1config_MC_lumi1E31_no_prescale_15.1.0.xml and TriggerMenuXML/HLTconfig_MC_lumi1E31_no_prescale_15.1.0.xmlL1 Items : 146HLT Chains : 556================================================================================ ID level Trigger name Passed events: raw, after PS, after PT/Veto================================================================================ LVL1 Global LVL1 250 LVL2 Global LVL2 250 EF Global EF (LVL3) 250-------------------------------------------------------------------------------- 13 LVL1 L1_2EM13 71 71 71 14 LVL1 L1_2EM13I 34 34 34 163 LVL1 L1_2EM13_MU6 8 8 8....--------------------------------------------------------------------------------... 77 LVL2 L2_2g10 118 118 118 246 LVL2 L2_2g10_mu6 12 12 12....--------------------------------------------------------------------------------... 477 EF EF_2e6_medium 8 8 8 478 EF EF_2e6_medium1 7 7 7 79 EF EF_2g20 39 39 39 248 EF EF_2j42_xe30 3 3 3....================================================================================

20. Search for runs by release, configuration key, trigger content Display and have links to run-summary, AMI, trigconf.ch, e-logATLAS Software Tutorial - Trigger Data20Trigger Content of Atlas-RunqueryHands-on session earlier

21. Trigger data access in Athena, ARA, C++, or python with the TrigDecisionTool!Many examples, plus a large number of people to provide help when needed (hn-atlas-TriggerHelp at cern.ch)Tools to check the trigger information for given runConfiguration: TriggerTool or http://atlas-trigconf.cern.chPool files: checkTrigger.py and checkTriggerConfig.pyPrescales to be checked for each lumiblock  luminosityRemember that negative prescale means trigger did not runImportant for analysis: matching of offline reconstruction and trigger objectsATLAS Software Tutorial - Trigger Data21Summary

22. Trigger user info: https://twiki.cern.ch/twiki/bin/view/Atlas/TriggerUserPages Tutorials: https://twiki.cern.ch/twiki/bin/view/Atlas/TriggerSoftwareTutorialPageTDT Twiki: https://twiki.cern.ch/twiki/bin/view/Atlas/TrigDecisionTool TDT Doxygen: http://atlas-computing.web.cern.ch/atlas-computing/links/nightlyDevDirectory/AtlasOffline/latest_doxygen/InstallArea/doc//TrigDecisionTool/html/index.htmlTrigger obj matching: https://twiki.cern.ch/twiki/bin/view/Atlas/TriggerObjectsMatchingTrigAnalysisExample: http://atlas-computing.web.cern.ch/atlas-computing/links/nightlyDevDirectory/AtlasOffline/latest_doxygen/InstallArea/doc/TrigAnalysisExamples/html/index.htmlUserAnalysis example: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/UserAnalysisTrigger Configuration: http://trigconf.cern.chTriggerTool: http://www.cern.ch/triggertoolRun query: http://atlas-runquery.cern.ch/Trigger EDM: https://twiki.cern.ch/twiki/bin/view/Atlas/TriggerEDM, http://alxr.usatlas.bnl.gov/lxr/source/atlas/Trigger/TrigEvent/TrigEventARA/TrigEventARA/selection.xml TriggerMenu group: https://twiki.cern.ch/twiki/bin/view/Atlas/TriggerPhysicsMenuTriggerSW group: https://twiki.cern.ch/twiki/bin/view/Atlas/TAPMCoreSWTriggerConfig group: https://twiki.cern.ch/twiki/bin/view/Atlas/TriggerConfigurationHelp on e-groups: hn-atlas-TriggerHelp at cern.chATLAS Software Tutorial - Trigger Data22Additional Information

23. DetailsOn the issues described aboveATLAS Software Tutorial - Trigger Data23

24. Lvl1 decision after dead-time vetoHLT decision, information for pass-through’ed and for resurrected triggersBunch groups that firedFor more detailed studies:Lvl1 decision before prescale, before vetoError codes for HLT-algorithmsLast step of chain executionATLAS Software Tutorial - Trigger Data24What’s there? – Trigger Decision

25. All trigger decisions through “isPassed()”, behavior depends on “condition” argument:TrigDefs::Physics: [default]Pseudonym for requireDecision | enforceLogicalFlow, which means that both conditions are applied. Default for isPassed() and for getPrescale(). TrigDefs::enforceLogicalFlow, TrigDefs::fullChain:combination of all three trigger levels.TrigDefs::requireDecision:A decision must have been made, pass due to pass-through or resurrection is not enough. TrigDefs::passedThrough:Event was passed through. A trigger chain can have a pass-through factor in order to record events independent of the decision. This is useful for understanding the trigger behavior. Restrict the isPassed() to those events, requireDecision must be off.TrigDefs::allowResurrectedDecision:If a trigger is prescaled on a given event, that trigger chain is not executed. If that event is accepted it is often important to know also the trigger decision and features of the prescaled trigger (orthogonal triggers for efficiency determination.) For a fraction of these cases we execute the trigger and safe its decision. This is accessed with allowResurrectedDecision (requireDecision must be off.) ATLAS Software Tutorial - Trigger Data25Decision Access with the TDTbool isPassed (const Trig::ChainGroup *chaingroup, unsigned int condition=TrigDefs::Physics) const  true if given group of chains passed char getBGCode () const Get the bunch group code byte. BG X fired (X=0..7): getBGCode() & (0x1<<X)

26. L1 Items: name, prescaleFor more detailed studies: version, CTP-Id, bunch group, thresholds and multiplicitiesHLT Chains: name, level, prescale, streamsFor more detailed studies: version, counter, trigger elements and multiplicitiesTrigger Release, configuration keys (useful for lookup in the TriggerDB)No access with the TDT, but checkConfigTrigger.pyATLAS Software Tutorial - Trigger Data26What’s there? – Configuration Data

27. ATLAS Software Tutorial - Trigger Data27Configuration Access with the TDTstd::vector< std::string > getListOfTriggers (const Trig::ChainGroup *chaingroup) const List of trigger names of the ChainGroup chaingroupstd::vector< std::string > getListOfStreams (const Trig::ChainGroup *chaingroup) const List of stream names of the ChainGroup chaingroupstd::vector< std::vector< std::string > > getListOfTriggerElements (const Trig::ChainGroup *chaingroup) const List of lists of TE names in ChainGroup chaingroup. Inner vectors are for a single trigger step, the length of those is the trigger multiplicity.float getPrescale (const Trig::ChainGroup *chaingroup, unsigned int condition=TrigDefs::Physics) const Prescale of the ChainGroup chaingroup. All methods come with two flavors, argument:const Trig::ChainGroup *chaingroupconst std::string &triggerNames=“.*”Here the ChainGroup is created on the fly from the pattern ‘triggerNames’ (regexp - “.*” means ‘all’)All functions are forwarded from ChainGroup, tdt->fnc(chgr,…) is equivalent to chGr->fnc(…)Prescales: For single triggers the prescale combined for all levels is returned. If a multi-trigger ChainGroup contains an unprescaled trigger, the return value is 1. It is 0 otherwise.

28. Access to features through the “TriggerNavigation”Features are created by FEX algorithms, they appear in StoreGate. A FEX also creates a “TriggerElement” (TE)A TE is used as handle to the featureA TE has a pass/fail state set by the corresponding HYPOThe navigation gives you all the features that were created in a chainOr just those that were successful (features in ROI’s which passed all cuts) – that is the default!Can also give you combinations of features (for multi-object triggers)Ancestor function to navigate, e.g. from electron to track and clusterATLAS Software Tutorial - Trigger Data28What’s there? – Features and Navigation

29. condition == TrigDefs::Physics: contains features where ROI passed the last HYPOcondition != TrigDefs::Physics: all features created in triggerATLAS Software Tutorial - Trigger Data29Feature Access with the TDTFeatureContainer:const FeatureContainer features (const ChainGroup *group, unsigned int condition=TrigDefs::Physics) const  returns all features related to given chain group template<class T> const Feature< T > ancestor (const HLT::TriggerElement *te, std::string label="") const  gives back feature matching (by seeding relation) te - is trigger element to start with, note that thanks to conversion operators Feature object can be given here as well template<class T> const std::vector< Trig::Feature< T > > get (const std::string &label="", unsigned int condition=TrigDefs::Physics, const std::string &teName="") const  returns flattened vector of Features of given type This method is in fact sullied by 3 arguments. const std::vector< Trig::Combination > & getCombinations () const  returns reference to combinations collected through append template<class T> const std::vector< Trig::Feature< T > > get (const std::string &label="", unsigned int condition=TrigDefs::Physics, const std::string &teName="") const  Method used to get objects. Combination

30. Access always a two or three step processFeatureContainer fc from the TDT2. List of Features<T> from fc or2. List of Combinations from fc and 3. list of Features<T> from each CombinationFeature< T > has access toIts constant object: const T*The TriggerElement to which the object has been attachedThis can be used with TDT::ancestor(TriggerElement*) method to find predecessors Label (key in SG)ATLAS Software Tutorial - Trigger Data30Working with Features Feature< T >:operator const T * () const  implicit conversion to object pointer (explicit conversion cptr () for python)operator const HLT::TriggerElement * () const  implicit conversion to TriggerElement (explicit conversion te () for python)operator const std::string () const  explicit conversion to feature label (explicit conversion label () for pyton)

31. Some methods are not needed for most physics analyses, but for detailed trigger investigation (rate tool, timing tools, trigger validation)Access via Trig::ExpertMethods* em = tdt->ExperimentalAndExpertMethods(); em->enable();ATLAS Software Tutorial - Trigger Data31Expert Access with the TDTconst TrigConf::TriggerItem * getItemConfigurationDetails (const std::string &chain) return TrigConf::TriggerItem chain: name of the item const TrigConf::HLTChain * getChainConfigurationDetails (const std::string &chain) return TrigConf::HLTChain chain: name of the chain const LVL1CTP::Lvl1Item * getItemDetails (const std::string &chain) const  return LVL1CTP::Lvl1Item chain: name of the item const HLT::Chain * getChainDetails (const std::string &chain) const  return HLT::Chain chain: name of the chain const HLT::NavigationCore * getNavigation () const  return HLT::NavigationCore Access to trigger configurationAccess to complete trigger decisionAccess to NavigationExpertMethods:

32. FEXs create trigger objects, which they attach to a TriggerElement, sometimes with a Label.Two examples for the current 1031 menu and 15.4.0: InDet::Pixel_TrgClusterization/PixelClustering_Tau_EFID attaches PixelClusterContainer objects to EFtau16i_loosetr. TrigJetRec/TrigJetRec_Cone attaches JetCollection objects to EF_j23, this time with the extra label "TrigJetRec" Q: Which FEX creates what type of object and what label ?A: One needs to know the trigger software, and read the literature or look at the code. Use LXR and the algorithm classname to find out what is produced. This can be of help:Looking at the Trigger EDM TWIKI (type, label, slice, LXR): https://twiki.cern.ch/twiki/bin/view/Atlas/TriggerEDM Checking the AOD content (which labels exist for which type in the file): checkFile.py AOD.pool.root I recommend looking at TrigEventARA/selection.xml for the type used in the navigation (the one you need)ATLAS Software Tutorial - Trigger Data32Trigger Object Types

33. Feature access methods in the TrigDecisionTool have an optional argument “label”. These correspond to the StoreGate keys (minus "HLT_").ATLAS Software Tutorial - Trigger Data33Trigger Object Labels> checkFile.py AOD.pool.root |grep TrigRoiDescriptor 52.334 kb 5.552 kb 0.022 kb 0.199 250 (B) TrigRoiDescriptorCollection_tlp1_HLT_TrigCaloRinger 56.061 kb 7.773 kb 0.031 kb 0.186 250 (B) TrigRoiDescriptorCollection_tlp1_HLT_secondaryRoI_EF 63.160 kb 10.673 kb 0.043 kb 0.164 250 (B) TrigRoiDescriptorCollection_tlp1_HLT_forMS 63.160 kb 10.679 kb 0.043 kb 0.164 250 (B) TrigRoiDescriptorCollection_tlp1_HLT_forID 66.552 kb 11.474 kb 0.046 kb 0.156 250 (B) TrigRoiDescriptorCollection_tlp1_HLT_secondaryRoI_L2 96.685 kb 25.609 kb 0.102 kb 0.108 250 (B) TrigRoiDescriptorCollection_tlp1_HLT_TrigT2CaloEgamma 96.325 kb 27.150 kb 0.109 kb 0.108 250 (B) TrigRoiDescriptorCollection_tlp1_HLT_TrigT2CaloTau 110.456 kb 31.728 kb 0.127 kb 0.095 250 (B) TrigRoiDescriptorCollection_tlp1_HLT_TrigT2CaloJet 163.605 kb 38.949 kb 0.156 kb 0.065 250 (B) TrigRoiDescriptorCollection_tlp1_HLT_initialRoI 217.361 kb 60.725 kb 0.243 kb 0.050 250 (B) TrigRoiDescriptorCollection_tlp1_HLT 240.863 kb 70.211 kb 0.281 kb 0.046 250 (B) TrigRoiDescriptorCollection_tlp1_HLT_T2TauFinalCorrect way to get the initial RoIDescriptor (build from LVL1 ROI):vector< Feature<TrigRoiDescriptor> > roi = fc.get<TrigRoiDescriptor>("initialRoI");Note: the persistent data the type is TrigRoiDescriptorCollection, while through the navigation you get TrigRoiDescriptor objects. Again, the best way to find out is, at the moment, to look at TrigEventARA/selection.xml.

34. 14.2.22+: ARA with trigger data works, but limited to configuration and trigger object access. TrigDecisionTool and Navigation don’t work with ARA here.15.3.0+: new TrigDecisionTool. Everything works with ARA and like in Athena. Running over multiple files with different configurations works seamlesslyAthena and ARA work both in C++ and in pythonNote templated functions syntax:C++: fc.get<TrigRoiDescriptor>("initialRoI")Python: fc.get('TrigRoiDescriptor')('initialRoI') Implicit convertions don’t work in pythonUse Feature::cptr() and Feature::te()Examples for all 4 cases are in Trigger/TrigAnalysis/TrigAnalysisExamplesATLAS Software Tutorial - Trigger Data34Athena / ARA | C++ / python

35. 09/02/2010ATLAS Software Tutorial - Trigger Data35Matching Framework OverviewTwo basic questionsWhat chains is the offline object associated with?chainPassedByObject - does reco object match a passed trigger object in a given chain?chainsPassedByObject - list of chains that reco object passesWhat are the properties of the trigger object the offline object is associated with?matchToTriggerObjects - vector of trigger objects matching to reco object in given chainmatchToTriggerObject - return best matching trigger object in given chain

36. 09/02/2010ATLAS Software Tutorial - Trigger Data36Matching Framework ImplementationThree basic problems:Object distanceGeneric object matchingTrigger specific matchingObj AObj BxFloatObj AxObj B1Obj Bn, …, Obj Bi1Obj AxChainBoolObj Bi1/Obj Bi1Obj Bim, …, /

37. 09/02/2010ATLAS Software Tutorial - Trigger Data37Some subtletiesDistance definition is implemented as a function object and passed as an argumentBy default, R is usedArbitrarily complex matching possibleQuality of matchesSmallest R is not a guarantee of a good matchContainer type objectsEF trigger objects attached as containers, so matches are to a container rather than an individual trigger objectWhat it means to pass a chainChain passed if match to trigger object associated with active trigger elementFor multi-object triggers or intermediate trigger objects, an offline object can pass a failed chainRelative trigger level efficienciesPossible to pass EF without passing L2 (passthrough, direction resolution effects)