From aa4fa48617d4be5b0f18271c5e422bf91e409a37 Mon Sep 17 00:00:00 2001 From: Patrick Karl Czodrowski <patrick.czodrowski@cern.ch> Date: Fri, 30 Oct 2015 12:46:36 +0100 Subject: [PATCH] fix ATN conf file to remove duplicate ID (TrigAnalysisTest-00-04-18) * fix typo in test steering xml * TrigAnalysisTest-00-04-17 2015-09-28 Patrick Czodrowski <czodrows@cern.ch> * add new ATN MonitoringTest from DataAOD and also PhysValMon from ESD * TrigAnalysisTest-00-04-16 jmontejo 00-04-12-15 2015-09-28 Gordon Watts <gwatts@uw.edu> * add Simple test case for a RootCore unit test * TrigAnalysisTest-00-04-12 2015-09-02 Patrick Czodrowski <czodrows@cern.ch> * deactivate MC_standalone (ATN) and Split(RTT) in xml * try to prevent the chaindump to be run in certain tets * TrigAnalysisTest-00-04-11 --- .../Testing/TrigAnalysisTest.conf | 58 ++- .../TrigAnalysisTest/TriggersFiredTest.h | 65 +++ .../TrigAnalysisTest/cmt/Makefile.RootCore | 58 +++ .../TrigAnalysisTest/cmt/requirements | 10 +- .../share/TriggersFiredTest_jobOptions.py | 9 + .../share/testAthenaTrigESD_HLTMonitoring.py | 3 - .../src/TriggersFiredTest.cxx | 100 ++++ .../components/TrigAnalysisTest_entries.cxx | 12 + .../src/components/TrigAnalysisTest_load.cxx | 5 + ...sTest_AthAnalysisBaseTestConfiguration.xml | 21 + .../TrigAnalysisTest_TestConfiguration.xml | 469 +++++------------- .../test/ut_triggers_fired.cxx | 98 ++++ 12 files changed, 554 insertions(+), 354 deletions(-) create mode 100755 Trigger/TrigValidation/TrigAnalysisTest/TrigAnalysisTest/TriggersFiredTest.h create mode 100644 Trigger/TrigValidation/TrigAnalysisTest/cmt/Makefile.RootCore create mode 100644 Trigger/TrigValidation/TrigAnalysisTest/share/TriggersFiredTest_jobOptions.py create mode 100755 Trigger/TrigValidation/TrigAnalysisTest/src/TriggersFiredTest.cxx create mode 100644 Trigger/TrigValidation/TrigAnalysisTest/src/components/TrigAnalysisTest_entries.cxx create mode 100644 Trigger/TrigValidation/TrigAnalysisTest/src/components/TrigAnalysisTest_load.cxx create mode 100755 Trigger/TrigValidation/TrigAnalysisTest/test/TrigAnalysisTest_AthAnalysisBaseTestConfiguration.xml create mode 100644 Trigger/TrigValidation/TrigAnalysisTest/test/ut_triggers_fired.cxx diff --git a/Trigger/TrigValidation/TrigAnalysisTest/Testing/TrigAnalysisTest.conf b/Trigger/TrigValidation/TrigAnalysisTest/Testing/TrigAnalysisTest.conf index caf284402bb..2049a346cdf 100755 --- a/Trigger/TrigValidation/TrigAnalysisTest/Testing/TrigAnalysisTest.conf +++ b/Trigger/TrigValidation/TrigAnalysisTest/Testing/TrigAnalysisTest.conf @@ -475,13 +475,53 @@ test 37 post_command checkFile.py ESD.pool.root > ESD.txt # edmcheck diffPoolFiles.py ESD.pool.root /afs/cern.ch/atlas/project/trigger/pesa-sw/validation/references/ATN/postrel20/latest/triganalysistest_AthenaTrigBStoESD_MC_ESD.pool.root -test 38 +test 39 name PhysValMonitoring joboptions None doc runs PhysValMonitoring on AOD, uses ../AthenaTrigRDOtoAOD_MC/AOD.pool.root pre_condition if [[ $(find ../AthenaTrigRDOtoAOD_MC/AOD.pool.root -type f -size +1000000c 2>/dev/null) ]] ; then test -e ../AthenaTrigRDOtoAOD_MC/AOD.pool.root ; else test -e non_existing_file ; fi + athena_cmd Reco_tf.py --checkEventCount FALSE --fileValidation FALSE --valid TRUE --maxEvents 5 --inputAODFile `find ../AthenaTrigRDOtoAOD_MC/ -name "AOD.pool.root" -printf %p,` --outputNTUP_PHYSVALFile physval.root --validationFlags noExample doTrigMinBias doTrigIDtrk doTrigMET doTrigJet doTrigTau doTrigEgamma doTrigMuon doTrigBphys doTrigBjet + post_command perl -i.clean -pe 's/^[\d:]+ //' log.PhysicsValidation + post_command cp physval.root physval2.root + post_command mkdir html + post_command physval_make_web_display.py --reffile Same:physval.root --outdir=html --title Same physval2.root + post_command cat log.PhysicsValidation >> PhysValMonitoring_test.log + checklog --config checklogTriggerTest.conf --showexcludestats + +test 40 + name MonitoringDataESDAOD + joboptions None + doc runs Monitoring on ESD to AOD to HIST Reco_tf, uses root://eosatlas//eos/atlas/atlascerngroupdisk/trig-daq/validation/test_data/data15_13TeV.00281143.physics_Main.recon.ESD.f629/data15_13TeV.00281143.physics_Main.recon.ESD.f629._lb0130._SFO-5._0003_001.1 + athena_cmd Reco_tf.py --maxEvents 10 --inputESDFile root://eosatlas//eos/atlas/atlascerngroupdisk/trig-daq/validation/test_data/data15_13TeV.00281143.physics_Main.recon.ESD.f629/data15_13TeV.00281143.physics_Main.recon.ESD.f629._lb0130._SFO-5._0003_001.1 --outputHIST_AODFile myHIST.root --autoConfiguration everything + post_command checkFile.py tmp.AOD > AOD.txt + post_command checkxAOD.py tmp.AOD > AOD.checkxAODFile.txt + post_command perl -i.clean -pe 's/^[\d:]+ //' log.ESDtoAOD + post_command perl -i.clean -pe 's/^[\d:]+ //' log.AODtoHIST + post_command cp myHIST.root myHIST2.root + post_command mkdir html + post_command physval_make_web_display.py --reffile Same:myHIST.root --outdir=html --title Same myHIST2.root + post_command perl -i.clean -pe 's/^[\d:]+ //' log.PhysicsValidation + post_command cat log.PhysicsValidation >> MonitoringESD_test.log + checklog --config checklogTriggerTest.conf --showexcludestats + +test 41 + name MonitoringDataAOD + joboptions None + doc runs Monitoring AOD to HIST Reco_tf, uses root://eosatlas//eos/atlas/atlascerngroupdisk/trig-daq/validation/test_data/data15_13TeV.00281143.physics_Main.merge.AOD.f629_m1504/data15_13TeV.00281143.physics_Main.merge.AOD.f629_m1504._lb1522._0001.1 + athena_cmd Reco_tf.py --maxEvents 10 --inputAODFile root://eosatlas//eos/atlas/atlascerngroupdisk/trig-daq/validation/test_data/data15_13TeV.00281143.physics_Main.merge.AOD.f629_m1504/data15_13TeV.00281143.physics_Main.merge.AOD.f629_m1504._lb1522._0001.1 --outputHIST_AODFile myHIST.root --autoConfiguration everything + post_command cp myHIST.root myHIST2.root + post_command mkdir html + post_command physval_make_web_display.py --reffile Same:myHIST.root --outdir=html --title Same myHIST2.root + post_command perl -i.clean -pe 's/^[\d:]+ //' log.PhysicsValidation + post_command cat log.PhysicsValidation >> MonitoringAOD_test.log checklog --config checklogTriggerTest.conf --showexcludestats - athena_cmd Reco_tf.py --inputAODFile `find ../AthenaTrigRDOtoAOD_MC/ -name "AOD.pool.root" -printf %p,` --outputNTUP_PHYSVALFile physval.root --validationFlags noExample doTrigMinBias doTrigIDtrk doTrigMET doTrigJet doTrigTau doTrigEgamma doTrigMuon doTrigBphys doTrigBjet + +#the following one is actually useless ... as the hist +test 42 + name PhysValMonitoringDataESD + joboptions None + doc runs PhysValMonitoring on ESD + athena_cmd Reco_tf.py --checkEventCount FALSE --fileValidation FALSE --valid TRUE --maxEvents 5 --inputESDFile root://eosatlas//eos/atlas/atlascerngroupdisk/trig-daq/validation/test_data/data15_13TeV.00281143.physics_Main.recon.ESD.f629/data15_13TeV.00281143.physics_Main.recon.ESD.f629._lb0130._SFO-5._0003_001.1 --outputNTUP_PHYSVALFile physval.root --validationFlags noExample doTrigMinBias doTrigIDtrk doTrigMET doTrigJet doTrigTau doTrigEgamma doTrigMuon doTrigBphys doTrigBjet --steering PhysicsValidation:in-AOD,in+ESD post_command perl -i.clean -pe 's/^[\d:]+ //' log.PhysicsValidation post_command cp physval.root physval2.root post_command mkdir html @@ -489,7 +529,19 @@ test 38 post_command cat log.PhysicsValidation >> PhysValMonitoring_test.log checklog --config checklogTriggerTest.conf --showexcludestats -test 39 +test 43 + name PhysValMonitoringDataAOD + joboptions None + doc runs PhysValMonitoring on AOD + athena_cmd Reco_tf.py --checkEventCount FALSE --fileValidation FALSE --valid TRUE --maxEvents 5 --inputAODFile root://eosatlas//eos/atlas/atlascerngroupdisk/trig-daq/validation/test_data/data15_13TeV.00281143.physics_Main.merge.AOD.f629_m1504/data15_13TeV.00281143.physics_Main.merge.AOD.f629_m1504._lb1522._0001.1 --outputNTUP_PHYSVALFile physval.root --validationFlags noExample doTrigMinBias doTrigIDtrk doTrigMET doTrigJet doTrigTau doTrigEgamma doTrigMuon doTrigBphys doTrigBjet + post_command perl -i.clean -pe 's/^[\d:]+ //' log.PhysicsValidation + post_command cp physval.root physval2.root + post_command mkdir html + post_command physval_make_web_display.py --reffile Same:physval.root --outdir=html --title Same physval2.root + post_command cat log.PhysicsValidation >> PhysValMonitoring_test.log + checklog --config checklogTriggerTest.conf --showexcludestats + +test 44 name MC_standalone doc TriggerRelease/runHLT_standalone.py joboptions TriggerRelease/runHLT_standalone.py diff --git a/Trigger/TrigValidation/TrigAnalysisTest/TrigAnalysisTest/TriggersFiredTest.h b/Trigger/TrigValidation/TrigAnalysisTest/TrigAnalysisTest/TriggersFiredTest.h new file mode 100755 index 00000000000..f801016e23e --- /dev/null +++ b/Trigger/TrigValidation/TrigAnalysisTest/TrigAnalysisTest/TriggersFiredTest.h @@ -0,0 +1,65 @@ +/* + Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +*/ + +/** J.Montejo - 15/10/2015 - tests for TrigDecisionTool **/ + +#ifndef TriggersFiredTest_TriggersFiredTest_H +#define TriggersFiredTest_TriggersFiredTest_H + +// std stuff +#include <vector> +#include <string> +#include <map> +#include <fstream> +#include <iostream> + +// Base class +#include "AthenaBaseComps/AthAlgorithm.h" + +// core stuff +#include "GaudiKernel/ToolHandle.h" + +// Trigger includes +#include "TrigDecisionTool/TrigDecisionTool.h" +//#include "TrigConfInterfaces/ITrigConfigSvc.h" +//#include "TrigConfxAOD/xAODConfigTool.h" + +using namespace std; +using namespace Trig; +using namespace TrigConf; +using namespace xAOD; + +/** + * @class TriggersFiredTest + * bSimple algorithm to check fired triggers with TrigDecisionTool + * + * @author Javier Montejo <jmontejo@cern.ch> - CERN + */ +class TriggersFiredTest : public AthAlgorithm +{ + + public: + + TriggersFiredTest(const std::string &name, ISvcLocator *pSvcLocator); //!< std Gaudi Algorithm constructor + ~TriggersFiredTest();//!< std deconstructor + + // IAlgorithm virtual methods to implement + StatusCode initialize();//!< std Gaudi initialize method + StatusCode execute(); //!< std Gaudi execute method -> use TrigDecisionTool to 'look' at the trigger data + StatusCode finalize();//!< std Gaudi finalize method + + private: + + std::string m_trigDecisionKey; //!< SG key of the trigger data (TrigDecision object) + bool m_first_event; + std::vector<std::string> m_TestList; + + ToolHandle<Trig::TrigDecisionTool> m_trigDec; //!< interface to use the trigger data: TriggerTool + + unsigned int passed_l1; + unsigned int passed_hlt; + +}; + +#endif diff --git a/Trigger/TrigValidation/TrigAnalysisTest/cmt/Makefile.RootCore b/Trigger/TrigValidation/TrigAnalysisTest/cmt/Makefile.RootCore new file mode 100644 index 00000000000..bc90333ada2 --- /dev/null +++ b/Trigger/TrigValidation/TrigAnalysisTest/cmt/Makefile.RootCore @@ -0,0 +1,58 @@ +# this makefile also gets parsed by shell scripts +# therefore it does not support full make syntax and features +# edit with care + +# for full documentation check: +# https://twiki.cern.ch/twiki/bin/viewauth/Atlas/RootCore#Package_Makefile + + +# the name of the package: +PACKAGE = TrigAnalysisTest + +# the libraries to link with this one: +PACKAGE_PRELOAD = + +# additional compilation flags to pass (not propagated to dependent packages): +PACKAGE_CXXFLAGS = + +# additional compilation flags to pass (propagated to dependent packages): +PACKAGE_OBJFLAGS = + +# additional linker flags to pass (for compiling the library): +PACKAGE_LDFLAGS = + +# additional linker flags to pass (for compiling binaries): +PACKAGE_BINFLAGS = + +# additional linker flags to pass (propagated to client libraries): +PACKAGE_LIBFLAGS = + +# the list of packages we depend on: +PACKAGE_DEP = xAODRootAccess TrigConfxAOD TrigDecisionTool + +# the list of packages we use if present, but that we can work without : +PACKAGE_TRYDEP = + +# list pattern of scripts to link directly into binary path: +PACKAGE_SCRIPTS = + +# whether to use pedantic compilation: +PACKAGE_PEDANTIC = 1 + +# whether to turn *off* optimization (set to dict to do it only for +# dictionaries): +PACKAGE_NOOPT = 0 + +# whether to build no library (needs to be set if no source files are +# present): +PACKAGE_NOCC = 1 + +# whether we build a reflex dictionary: +PACKAGE_REFLEX = 0 + +# the list of all unit tests that should be called in recursive testing, +# i.e. in unit tests that call other unit tests +# for that unit tests need to pass on all machines, and run very fast +PACKAGE_RECURSIVE_UT = + +include $(ROOTCOREDIR)/Makefile-common diff --git a/Trigger/TrigValidation/TrigAnalysisTest/cmt/requirements b/Trigger/TrigValidation/TrigAnalysisTest/cmt/requirements index 1b394daad91..29cb0ecbf89 100755 --- a/Trigger/TrigValidation/TrigAnalysisTest/cmt/requirements +++ b/Trigger/TrigValidation/TrigAnalysisTest/cmt/requirements @@ -17,6 +17,9 @@ use AtlasTriggerRunTime AtlasTriggerRunTime-* #use AtlasAnalysisRunTime AtlasAnalysisRunTime-* #use RunTimeTester RunTimeTester-* Tools use TestPolicy TestPolicy-* +use AthenaBaseComps AthenaBaseComps-* Control +use GaudiInterface GaudiInterface-* +use TrigDecisionTool TrigDecisionTool-* Trigger/TrigAnalysis apply_pattern declare_python_modules files="../python/__init__.py ../python/PassedTriggerFilter.py" @@ -27,7 +30,8 @@ apply_pattern declare_joboptions files="*.py" #RTT declarations apply_pattern declare_scripts files="../Testing/*.sh ../bin/*.py" -apply_pattern declare_runtime extras="../test/TrigAnalysisTest_TestConfiguration.xml \ +apply_pattern declare_runtime extras="../test/*.xml \ + ../share/*py \ ../Testing/*.conf \ ../bin/RttScriptRunner_TrigAnalysisTest.py \ ../bin/CheckLog_TrigAnalysisTest.py \ @@ -41,5 +45,7 @@ private apply_pattern validate_xml public -macro TrigAnalysisTest_TestConfiguration "../test/TrigAnalysisTest_TestConfiguration.xml" +apply_pattern dual_use_library files="../Root/*.cxx ../src/*.cxx" +macro TrigAnalysisTest_TestConfiguration "../test/TrigAnalysisTest_TestConfiguration.xml" AthAnalysisBase "../test/TrigAnalysisTest_AthAnalysisBaseTestConfiguration.xml" + diff --git a/Trigger/TrigValidation/TrigAnalysisTest/share/TriggersFiredTest_jobOptions.py b/Trigger/TrigValidation/TrigAnalysisTest/share/TriggersFiredTest_jobOptions.py new file mode 100644 index 00000000000..f797d2ecccd --- /dev/null +++ b/Trigger/TrigValidation/TrigAnalysisTest/share/TriggersFiredTest_jobOptions.py @@ -0,0 +1,9 @@ +#Skeleton joboption for a simple analysis job + +theApp.EvtMax=100 #says how many events to run over. Set to -1 for all events + +import AthenaPoolCnvSvc.ReadAthenaPool #sets up reading of POOL files (e.g. xAODs) +svcMgr.EventSelector.InputCollections=["/afs/cern.ch/user/a/asgbase/patspace/xAODs/r6630/mc15_13TeV.410000.PowhegPythiaEvtGen_P2012_ttbar_hdamp172p5_nonallhad.recon.AOD.e3698_s2608_s2183_r6630_tid05352803_00/AOD.05352803._000242.pool.root.1"] #insert your list of input files here + +algseq = CfgMgr.AthSequencer("AthAlgSeq") #gets the main AthSequencer +algseq += CfgMgr.TriggersFiredTest() #adds an instance of your alg to it diff --git a/Trigger/TrigValidation/TrigAnalysisTest/share/testAthenaTrigESD_HLTMonitoring.py b/Trigger/TrigValidation/TrigAnalysisTest/share/testAthenaTrigESD_HLTMonitoring.py index 902e240f0c4..bd7c23ba881 100644 --- a/Trigger/TrigValidation/TrigAnalysisTest/share/testAthenaTrigESD_HLTMonitoring.py +++ b/Trigger/TrigValidation/TrigAnalysisTest/share/testAthenaTrigESD_HLTMonitoring.py @@ -87,9 +87,6 @@ HLTMonManager.AthenaMonTools += HLTMETMonitoringTool() from TrigTauMonitoring.TrigTauMonitoringConfig import TrigTauMonitoringTool HLTMonManager.AthenaMonTools += TrigTauMonitoringTool() -from TrigJetMonitoring.TrigJetMonitoringConfig import TrigJetMonitoringTool -HLTMonManager.AthenaMonTools += TrigJetMonitoringTool() - from TrigBjetMonitoring.TrigBjetMonitoringConfig import TrigBjetMonitoringConfig HLTMonManager.AthenaMonTools += TrigBjetMonitoringConfig() diff --git a/Trigger/TrigValidation/TrigAnalysisTest/src/TriggersFiredTest.cxx b/Trigger/TrigValidation/TrigAnalysisTest/src/TriggersFiredTest.cxx new file mode 100755 index 00000000000..c349141e075 --- /dev/null +++ b/Trigger/TrigValidation/TrigAnalysisTest/src/TriggersFiredTest.cxx @@ -0,0 +1,100 @@ +/* + Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +*/ + +/** J.Montejo - 15/10/2015 - tests for TrigDecisionTool **/ + +#include "TrigAnalysisTest/TriggersFiredTest.h" + +#include <cmath> +#include <algorithm> +#include <iostream> +#include <iomanip> + +TriggersFiredTest::TriggersFiredTest(const std::string &name, ISvcLocator *pSvcLocator) +: AthAlgorithm(name, pSvcLocator), + m_first_event(true), + //m_configHandle( "TrigConf::xAODConfigTool/xAODConfigTool"), + m_trigDec("Trig::TrigDecisionTool/TrigDecisionTool") +{ + declareProperty("TestList", m_TestList, "Test list"); +} + + +TriggersFiredTest::~TriggersFiredTest() {} + +StatusCode TriggersFiredTest::initialize() +{ + // reset event counters + m_first_event=true; + + // print out properties + msg(MSG::INFO) << "Initializing TriggersFiredTest ..." << endreq; + + // get handle to trigger configuration + //ToolHandle<TrigConf::ITrigConfigTool> configHandle(&m_configTool); + //StatusCode sc = m_configHandle.retrieve(); + //if ( sc.isFailure() ) { + // msg(MSG::ERROR) << "Could not retrieve TrigDecisionTool!" << endreq; + // return sc; + //} + //sc = m_configHandle->initialize(); + + // get handle to TrigDecisionTool + //sc = m_trigDec.retrieve(); + StatusCode sc = m_trigDec.retrieve(); + if ( sc.isFailure() ) { + msg(MSG::ERROR) << "Could not retrieve TrigDecisionTool!" << endreq; + return sc; + } + //m_trigDec->ExperimentalAndExpertMethods()->enable(); + //sc = m_trigDec->setProperty("ConfigTool",m_configHandle); + //sc = m_trigDec->setProperty("TrigDecisionKey","xTrigDecision"); + //if ( sc.isFailure() ) { + // msg(MSG::ERROR) << "Some problem!" << endreq; + // return sc; + //} + + msg(MSG::INFO) << "Initialization successful" << endreq; + + return StatusCode::SUCCESS; +} + + +StatusCode TriggersFiredTest::finalize() +{ + + // print summary of trigger decisions for each level + msg(MSG::INFO) << "==========================================================" << endreq; + msg(MSG::INFO) << "TriggersFiredTest summary:" << endreq; + msg(MSG::INFO) << "==========================================================" << endreq; + + + // print out nr. of events passed in blocks of N events for specific chains (configurable) + //msg(MSG::INFO) << "REGTEST Nr.events: "; + + msg(MSG::INFO) << "Finalised successfully" << endreq; + + return StatusCode::SUCCESS; +} + +StatusCode TriggersFiredTest::execute() +{ + + msg(MSG::INFO) << "TriggersFiredTest::execute" << endreq; + + passed_l1 += m_trigDec->isPassed("L1_.*"); + passed_hlt += m_trigDec->isPassed("HLT_.*"); + + // Full print of first event + if (m_first_event){ + m_first_event = false; + auto chainGroups = m_trigDec->getChainGroup(".*"); + for(auto &trig : chainGroups->getListOfTriggers()) { + msg(MSG::INFO) << " " << trig << " " << m_trigDec->isPassed(trig) << endreq; + } + } + + return StatusCode::SUCCESS; +} + diff --git a/Trigger/TrigValidation/TrigAnalysisTest/src/components/TrigAnalysisTest_entries.cxx b/Trigger/TrigValidation/TrigAnalysisTest/src/components/TrigAnalysisTest_entries.cxx new file mode 100644 index 00000000000..f51100d47ff --- /dev/null +++ b/Trigger/TrigValidation/TrigAnalysisTest/src/components/TrigAnalysisTest_entries.cxx @@ -0,0 +1,12 @@ +/** J.Montejo 15/10/2015 */ + +#include "GaudiKernel/DeclareFactoryEntries.h" + +//derived algorithm classes +#include "TrigAnalysisTest/TriggersFiredTest.h" + +DECLARE_ALGORITHM_FACTORY( TriggersFiredTest ) + +DECLARE_FACTORY_ENTRIES( TrigAnalysisTest ) { + DECLARE_ALGORITHM( TriggersFiredTest ); +} diff --git a/Trigger/TrigValidation/TrigAnalysisTest/src/components/TrigAnalysisTest_load.cxx b/Trigger/TrigValidation/TrigAnalysisTest/src/components/TrigAnalysisTest_load.cxx new file mode 100644 index 00000000000..a2ab023d9b1 --- /dev/null +++ b/Trigger/TrigValidation/TrigAnalysisTest/src/components/TrigAnalysisTest_load.cxx @@ -0,0 +1,5 @@ +/** J.Montejo 15/10/2015 **/ + +#include "GaudiKernel/LoadFactoryEntries.h" + +LOAD_FACTORY_ENTRIES(TrigAnalysisTest) diff --git a/Trigger/TrigValidation/TrigAnalysisTest/test/TrigAnalysisTest_AthAnalysisBaseTestConfiguration.xml b/Trigger/TrigValidation/TrigAnalysisTest/test/TrigAnalysisTest_AthAnalysisBaseTestConfiguration.xml new file mode 100755 index 00000000000..fe4604d041a --- /dev/null +++ b/Trigger/TrigValidation/TrigAnalysisTest/test/TrigAnalysisTest_AthAnalysisBaseTestConfiguration.xml @@ -0,0 +1,21 @@ +<?xml version="1.0"?> +<!DOCTYPE unifiedTestConfiguration SYSTEM "http://www.hep.ucl.ac.uk/atlas/AtlasTesting/DTD/unifiedTestConfiguration.dtd"> +<!-- NB validate this file here before committing to svn: + python /afs/cern.ch/user/r/rtt/public/xmlvalidate.py TrigAnalysisTest_TestConfiguration.xml + --> +<unifiedTestConfiguration> + + <atn> + <TEST name="TriggersFired_atn" type="athena" suite="TriggerDecisionToolTest"> + <options_atn>TrigAnalysisTest/TriggersFiredTest_jobOptions.py</options_atn> + <timelimit>30</timelimit> + <author>Javier Montejo</author> + <mailto>jmontejo@cern.ch</mailto> + <expectations> + <errorMessage>FAILURE </errorMessage> + <returnValue>0</returnValue> + </expectations> + </TEST> + </atn> + +</unifiedTestConfiguration> diff --git a/Trigger/TrigValidation/TrigAnalysisTest/test/TrigAnalysisTest_TestConfiguration.xml b/Trigger/TrigValidation/TrigAnalysisTest/test/TrigAnalysisTest_TestConfiguration.xml index 4302617f3be..05eb4cd2949 100755 --- a/Trigger/TrigValidation/TrigAnalysisTest/test/TrigAnalysisTest_TestConfiguration.xml +++ b/Trigger/TrigValidation/TrigAnalysisTest/test/TrigAnalysisTest_TestConfiguration.xml @@ -8,10 +8,11 @@ <!-- ATN tests configured here --> <atn> <!-- always KEEP this one --> - <TEST name="AthenaTrigRDOtoESDAOD" type="script" suite="triganalysis_val_RDOtoESDAOD"> + <TEST name="AthenaTrigRDOtoESDAOD" type="script" suite="tat_RDOtoESDAOD"> <options_atn>trigtest.pl --test AthenaTrigRDOtoESDAOD --run AthenaTrigRDOtoESDAOD --conf TrigAnalysisTest.conf</options_atn> <timelimit>30</timelimit> <author>TrigAnalysis validation</author> + <project_exclude>AthAnalysisBase</project_exclude> <expectations> <errorMessage>FAILURE </errorMessage> <returnValue>0</returnValue> @@ -19,10 +20,11 @@ </TEST> - <TEST name="AthenaTrigESD_HLTMonitoring" type="script" suite="triganalysis_val_RDOtoESDAOD"> + <TEST name="AthenaTrigESD_HLTMonitoring" type="script" suite="tat_RDOtoESDAOD"> <options_atn>trigtest.pl --test AthenaTrigESD_HLTMonitoring --run AthenaTrigESD_HLTMonitoring --conf TrigAnalysisTest.conf</options_atn> <timelimit>30</timelimit> <author>TrigAnalysis validation</author> + <project_exclude>AthAnalysisBase</project_exclude> <expectations> <errorMessage>FAILURE </errorMessage> <returnValue>0</returnValue> @@ -30,64 +32,70 @@ </TEST> - <TEST name="AthenaTrigRDOtoBS" type="script" suite="triganalysis_val_BS"> + <TEST name="AthenaTrigRDOtoBS" type="script" suite="tat_BS"> <options_atn>trigtest.pl --test AthenaTrigRDOtoBS --run AthenaTrigRDOtoBS --conf TrigAnalysisTest.conf</options_atn> <timelimit>30</timelimit> <author>TrigAnalysis validation</author> + <project_exclude>AthAnalysisBase</project_exclude> <expectations> <errorMessage>FAILURE </errorMessage> <returnValue>0</returnValue> </expectations> </TEST> - <TEST name="AthenaTrigBStoESD" type="script" suite="triganalysis_val_BS"> + <TEST name="AthenaTrigBStoESD" type="script" suite="tat_BS"> <options_atn>trigtest.pl --test AthenaTrigBStoESD --run AthenaTrigBStoESD --conf TrigAnalysisTest.conf</options_atn> <timelimit>30</timelimit> <author>TrigAnalysis validation</author> + <project_exclude>AthAnalysisBase</project_exclude> <expectations> <errorMessage>FAILURE </errorMessage> <returnValue>0</returnValue> </expectations> </TEST> - <!--TEST name="AthenaTrigRDOtoBS_MC" type="script" suite="triganalysis_val_BS_MC"--> - <TEST name="AthenaTrigRDOtoBS_MC" type="script" suite="triganalysis_val_BS"> + <!--TEST name="AthenaTrigRDOtoBS_MC" type="script" suite="tat_BS_MC"--> + <TEST name="AthenaTrigRDOtoBS_MC" type="script" suite="tat_BS"> <options_atn>trigtest.pl --test AthenaTrigRDOtoBS_MC --run AthenaTrigRDOtoBS_MC --conf TrigAnalysisTest.conf</options_atn> <timelimit>30</timelimit> <author>TrigAnalysis validation</author> + <project_exclude>AthAnalysisBase</project_exclude> <expectations> <errorMessage>FAILURE </errorMessage> <returnValue>0</returnValue> </expectations> </TEST> - <!--TEST name="AthenaTrigBStoESD_MC" type="script" suite="triganalysis_val_BS_MC"--> - <TEST name="AthenaTrigBStoESD_MC" type="script" suite="triganalysis_val_BS"> + <!--TEST name="AthenaTrigBStoESD_MC" type="script" suite="tat_BS_MC"--> + <TEST name="AthenaTrigBStoESD_MC" type="script" suite="tat_BS"> <options_atn>trigtest.pl --test AthenaTrigBStoESD_MC --run AthenaTrigBStoESD_MC --conf TrigAnalysisTest.conf</options_atn> <timelimit>30</timelimit> <author>TrigAnalysis validation</author> + <project_exclude>AthAnalysisBase</project_exclude> <expectations> <errorMessage>FAILURE </errorMessage> <returnValue>0</returnValue> </expectations> </TEST> - <!--TEST name="MC_standalone" type="script" suite="triganalysis_val_BS_MC"--> - <TEST name="MC_standalone" type="script" suite="triganalysis_val_BS"> - <options_atn>trigtest.pl --test MC_standalone --run MC_standalone --conf TrigAnalysisTest.conf</options_atn> + <!--TEST name="MC_standalone" type="script" suite="tat_BS_MC"--> + <!--TEST name="MC_standalone" type="script" suite="tat_BS"> + <options_atn>trigtest.pl - -test MC_standalone - -run MC_standalone - -conf TrigAnalysisTest.conf</options_atn> <timelimit>30</timelimit> <author>TrigAnalysis validation</author> + <project_exclude>AthAnalysisBase</project_exclude> <expectations> <errorMessage>FAILURE </errorMessage> <returnValue>0</returnValue> </expectations> - </TEST> + </TEST--> - <!--TEST name="AthenaTrigRDOtoESDAOD_Physics" type="script" suite="triganalysis_val_Phys_EA"--> - <TEST name="AthenaTrigRDOtoESDAOD_Physics" type="script" suite="triganalysis_val_EA"> + <!--TEST name="AthenaTrigRDOtoESDAOD_Physics" type="script" suite="tat_Phys_EA"--> + <TEST name="AthenaTrigRDOtoESDAOD_Physics" type="script" suite="tat_EA"> <options_atn>trigtest.pl --test AthenaTrigRDOtoESDAOD_Physics --run AthenaTrigRDOtoESDAOD_Physics --conf TrigAnalysisTest.conf</options_atn> <timelimit>30</timelimit> <author>TrigAnalysis validation</author> + <project_exclude>AthAnalysisBase</project_exclude> <expectations> <errorMessage>FAILURE </errorMessage> <returnValue>0</returnValue> @@ -95,32 +103,35 @@ </TEST> - <!--TEST name="AthenaTrigRDOtoESDAOD_MC" type="script" suite="triganalysis_val_MC_EA"--> - <TEST name="AthenaTrigRDOtoESDAOD_MC" type="script" suite="triganalysis_val_EA"> + <!--TEST name="AthenaTrigRDOtoESDAOD_MC" type="script" suite="tat_MC_EA"--> + <TEST name="AthenaTrigRDOtoESDAOD_MC" type="script" suite="tat_EA"> <options_atn>trigtest.pl --test AthenaTrigRDOtoESDAOD_MC --run AthenaTrigRDOtoESDAOD_MC --conf TrigAnalysisTest.conf</options_atn> <timelimit>30</timelimit> <author>TrigAnalysis validation</author> + <project_exclude>AthAnalysisBase</project_exclude> <expectations> <errorMessage>FAILURE </errorMessage> <returnValue>0</returnValue> </expectations> </TEST> - <TEST name="AthenaTrigRDOtoTAG" type="script" suite="triganalysis_val_tag"> + <TEST name="AthenaTrigRDOtoTAG" type="script" suite="tat_tag"> <options_atn>trigtest.pl --test AthenaTrigRDOtoTAG --run AthenaTrigRDOtoTAG --conf TrigAnalysisTest.conf</options_atn> <timelimit>30</timelimit> <author>TrigAnalysis validation</author> + <project_exclude>AthAnalysisBase</project_exclude> <expectations> <errorMessage>FAILURE </errorMessage> <returnValue>0</returnValue> </expectations> </TEST> - <!--TEST name="AthenaTrigRDOtoAOD_Physics" type="script" suite="triganalysis_val_AOD_Phys"--> - <TEST name="AthenaTrigRDOtoAOD_Physics" type="script" suite="triganalysis_val_AOD"> + <!--TEST name="AthenaTrigRDOtoAOD_Physics" type="script" suite="tat_AOD_Phys"--> + <TEST name="AthenaTrigRDOtoAOD_Physics" type="script" suite="tat_AOD"> <options_atn>trigtest.pl --test AthenaTrigRDOtoAOD_Physics --run AthenaTrigRDOtoAOD_Physics --conf TrigAnalysisTest.conf</options_atn> <timelimit>30</timelimit> <author>TrigAnalysis validation</author> + <project_exclude>AthAnalysisBase</project_exclude> <expectations> <errorMessage>FAILURE </errorMessage> <returnValue>0</returnValue> @@ -128,21 +139,23 @@ </TEST> - <TEST name="AthenaTrigRDOtoAOD" type="script" suite="triganalysis_val_AOD"> + <TEST name="AthenaTrigRDOtoAOD" type="script" suite="tat_AOD"> <options_atn>trigtest.pl --test AthenaTrigRDOtoAOD --run AthenaTrigRDOtoAOD --conf TrigAnalysisTest.conf</options_atn> <timelimit>30</timelimit> <author>TrigAnalysis validation</author> + <project_exclude>AthAnalysisBase</project_exclude> <expectations> <errorMessage>FAILURE </errorMessage> <returnValue>0</returnValue> </expectations> </TEST> - <!--TEST name="AthenaTrigRDOtoAOD_SLIM" type="script" suite="triganalysis_val_AOD_SLIM"--> - <TEST name="AthenaTrigRDOtoAOD_SLIM" type="script" suite="triganalysis_val_AOD"> + <!--TEST name="AthenaTrigRDOtoAOD_SLIM" type="script" suite="tat_AOD_SLIM"--> + <TEST name="AthenaTrigRDOtoAOD_SLIM" type="script" suite="tat_AOD"> <options_atn>trigtest.pl --test AthenaTrigRDOtoAOD_SLIM --run AthenaTrigRDOtoAOD_SLIM --conf TrigAnalysisTest.conf</options_atn> <timelimit>30</timelimit> <author>TrigAnalysis validation</author> + <project_exclude>AthAnalysisBase</project_exclude> <expectations> <errorMessage>FAILURE </errorMessage> <returnValue>0</returnValue> @@ -150,32 +163,35 @@ </TEST> - <!--TEST name="AthenaTrigRDO_TDT" type="script" suite="triganalysis_val_TDT"--> - <TEST name="AthenaTrigRDO_TDT" type="script" suite="triganalysis_val_EA"> + <!--TEST name="AthenaTrigRDO_TDT" type="script" suite="tat_TDT"--> + <TEST name="AthenaTrigRDO_TDT" type="script" suite="tat_EA"> <options_atn>trigtest.pl --test AthenaTrigRDO_TDT --run AthenaTrigRDO_TDT --conf TrigAnalysisTest.conf</options_atn> <timelimit>30</timelimit> <author>TrigAnalysis validation</author> + <project_exclude>AthAnalysisBase</project_exclude> <expectations> <errorMessage>FAILURE </errorMessage> <returnValue>0</returnValue> </expectations> </TEST> - <TEST name="AthenaTrigRDOtoAOD_MC" type="script" suite="triganalysis_val_MC_Slim"> + <TEST name="AthenaTrigRDOtoAOD_MC" type="script" suite="tat_MC_Slim"> <options_atn>trigtest.pl --test AthenaTrigRDOtoAOD_MC --run AthenaTrigRDOtoAOD_MC --conf TrigAnalysisTest.conf</options_atn> <timelimit>30</timelimit> <author>TrigAnalysis validation</author> + <project_exclude>AthAnalysisBase</project_exclude> <expectations> <errorMessage>FAILURE </errorMessage> <returnValue>0</returnValue> </expectations> </TEST> - <TEST name= "AthenaTrigAODtoAOD_TrigNavSlimming" type="script" suite="triganalysis_val_MC_Slim"> + <TEST name= "AthenaTrigAODtoAOD_TrigNavSlimming" type="script" suite="tat_MC_Slim"> <options_atn>trigtest.pl --test AthenaTrigAODtoAOD_TrigNavSlimming --run AthenaTrigAODtoAOD_TrigNavSlimming --conf TrigAnalysisTest.conf</options_atn> <timelimit>30</timelimit> <author>TrigAnalysis validation</author> <mailto> tbold@mail.cern.ch</mailto> + <project_exclude>AthAnalysisBase</project_exclude> <expectations> <errorMessage>FAILURE </errorMessage> <returnValue>0</returnValue> @@ -183,41 +199,69 @@ </TEST> - <TEST name="AthenaTrigAOD_TrigEDMCheck" type="script" suite="triganalysis_val_MC_Slim"> + <TEST name="AthenaTrigAOD_TrigEDMCheck" type="script" suite="tat_MC_Slim"> <options_atn>trigtest.pl --test AthenaTrigAOD_TrigEDMCheck --run AthenaTrigAOD_TrigEDMCheck --conf TrigAnalysisTest.conf</options_atn> <timelimit>30</timelimit> <author>TrigAnalysis validation</author> + <project_exclude>AthAnalysisBase</project_exclude> + <expectations> + <errorMessage>FAILURE </errorMessage> + <returnValue>0</returnValue> + </expectations> + </TEST> + + <TEST name="AthenaTrigAOD_TrigDecTool" type="script" suite="tat_MC_Slim"> + <options_atn>trigtest.pl --test AthenaTrigAOD_TrigDecTool --run AthenaTrigAOD_TrigDecTool --conf TrigAnalysisTest.conf</options_atn> + <timelimit>30</timelimit> + <author>TrigAnalysis validation</author> + <project_exclude>AthAnalysisBase</project_exclude> <expectations> <errorMessage>FAILURE </errorMessage> <returnValue>0</returnValue> </expectations> </TEST> - <TEST name="PhysValMonitoring" type="script" suite="triganalysis_val_MC_Slim"> + <TEST name="PhysValMonitoring" type="script" suite="tat_PhysVal"> <options_atn>trigtest.pl --test PhysValMonitoring --run PhysValMonitoring --conf TrigAnalysisTest.conf</options_atn> - <timelimit>45</timelimit> + <timelimit>60</timelimit> <author>TrigAnalysis validation</author> + <project_exclude>AthAnalysisBase</project_exclude> <expectations> <errorMessage>FAILURE </errorMessage> <returnValue>0</returnValue> </expectations> </TEST> - <TEST name="AthenaTrigAOD_TrigDecTool" type="script" suite="triganalysis_val_MC_Slim"> - <options_atn>trigtest.pl --test AthenaTrigAOD_TrigDecTool --run AthenaTrigAOD_TrigDecTool --conf TrigAnalysisTest.conf</options_atn> - <timelimit>30</timelimit> + <TEST name="PhysValMonitoringDataESD" type="script" suite="tat_PhysVal"> + <options_atn>trigtest.pl --test PhysValMonitoringDataESD --run PhysValMonitoringDataESD --conf TrigAnalysisTest.conf</options_atn> + <timelimit>60</timelimit> + <author>TrigAnalysis validation</author> + <project_exclude>AthAnalysisBase</project_exclude> + <expectations> + <errorMessage>FAILURE </errorMessage> + <returnValue>0</returnValue> + </expectations> + </TEST> + + <TEST name="MonitoringDataAOD" type="script" suite="tat_PhysVal"> + <options_atn>trigtest.pl --test MonitoringDataAOD --run MonitoringDataAOD --conf TrigAnalysisTest.conf</options_atn> + <timelimit>60</timelimit> <author>TrigAnalysis validation</author> + <project_exclude>AthAnalysisBase</project_exclude> <expectations> <errorMessage>FAILURE </errorMessage> <returnValue>0</returnValue> </expectations> </TEST> + + <!--TEST name= "AthenaTrigAOD_TrigSlimValidation" type="script" suite="triganalysis_val"> <options_atn>trigtest.pl - -test AthenaTrigAOD_TrigSlimValidation - -run AthenaTrigAOD_TrigSlimValidation - -conf TrigAnalysisTest.conf</options_atn> <timelimit>30</timelimit> <author>TrigAnalysis validation</author> <mailto> Benjamin.Smith@cern.ch</mailto> + <project_exclude>AthAnalysisBase</project_exclude> <expectations> <errorMessage>FAILURE </errorMessage> <returnValue>0</returnValue> @@ -229,6 +273,7 @@ <timelimit>30</timelimit> <author>TrigAnalysis validation</author> <mailto> Benjamin.Smith@cern.ch</mailto> + <project_exclude>AthAnalysisBase</project_exclude> <expectations> <errorMessage>FAILURE </errorMessage> <returnValue>0</returnValue> @@ -240,6 +285,7 @@ <timelimit>30</timelimit> <author>TrigAnalysis validation</author> <mailto> Benjamin.Smith@cern.ch</mailto> + <project_exclude>AthAnalysisBase</project_exclude> <expectations> <errorMessage>FAILURE </errorMessage> <returnValue>0</returnValue> @@ -251,6 +297,7 @@ <timelimit>30</timelimit> <author>TrigAnalysis validation</author> <mailto> Benjamin.Smith@cern.ch</mailto> + <project_exclude>AthAnalysisBase</project_exclude> <expectations> <errorMessage>FAILURE </errorMessage> <returnValue>0</returnValue> @@ -262,6 +309,7 @@ <timelimit>30</timelimit> <author>TrigAnalysis validation</author> <mailto> Benjamin.Smith@cern.ch</mailto> + <project_exclude>AthAnalysisBase</project_exclude> <expectations> <errorMessage>FAILURE </errorMessage> <returnValue>0</returnValue> @@ -275,17 +323,19 @@ <timelimit>45</timelimit> <author>TrigAnalysis validation</author> <mailto> p.f.salvatore@sussex.ac.uk </mailto> + <project_exclude>AthAnalysisBase</project_exclude> <expectations> <errorMessage>FAILURE </errorMessage> <returnValue>0</returnValue> </expectations> </TEST--> - <TEST name= "BackCompAthenaTrigBStoESDAOD" type="script" suite="triganalysis_val_BackComp"> + <TEST name= "BackCompAthenaTrigBStoESDAOD" type="script" suite="tat_BackComp"> <options_atn>trigtest.pl --test BackCompAthenaTrigBStoESDAOD --run BackCompAthenaTrigBStoESDAOD --conf TrigAnalysisTest.conf</options_atn> <timelimit>45</timelimit> <author>TrigAnalysis validation</author> <mailto> p.f.salvatore@sussex.ac.uk </mailto> + <project_exclude>AthAnalysisBase</project_exclude> <expectations> <errorMessage>FAILURE </errorMessage> <returnValue>0</returnValue> @@ -297,6 +347,7 @@ <timelimit>30</timelimit> <author>TrigAnalysis validation</author> <mailto> p.f.salvatore@sussex.ac.uk </mailto> + <project_exclude>AthAnalysisBase</project_exclude> <expectations> <errorMessage>FAILURE </errorMessage> <returnValue>0</returnValue> @@ -308,6 +359,7 @@ <timelimit>30</timelimit> <author>TrigAnalysis validation</author> <mailto> p.f.salvatore@sussex.ac.uk </mailto> + <project_exclude>AthAnalysisBase</project_exclude> <expectations> <errorMessage>FAILURE </errorMessage> <returnValue>0</returnValue> @@ -320,25 +372,27 @@ <options_atn>atn_timeline.py --atn -p TrigAnalysisTest </options_atn> <timelimit>2</timelimit> <author>Frank Winklmeier</author> - <!--prerequisite>triganalysis_val_RDOtoESDAOD</prerequisite> - <prerequisite>triganalysis_val_BS</prerequisite> - <prerequisite>triganalysis_val_BS_MC</prerequisite> - <prerequisite>triganalysis_val_MC_Slim</prerequisite> - <prerequisite>triganalysis_val_BackComp</prerequisite> - <prerequisite>triganalysis_val_Phys_EA</prerequisite> - <prerequisite>triganalysis_val_MC_EA</prerequisite> - <prerequisite>triganalysis_val_tag</prerequisite> - <prerequisite>triganalysis_val_AOD_Phys</prerequisite> - <prerequisite>triganalysis_val_AOD</prerequisite> - <prerequisite>triganalysis_val_AOD_SLIM</prerequisite> - <prerequisite>triganalysis_val_TDT</prerequisite--> - <prerequisite>triganalysis_val_RDOtoESDAOD</prerequisite> - <prerequisite>triganalysis_val_BS</prerequisite> - <prerequisite>triganalysis_val_BackComp</prerequisite> - <prerequisite>triganalysis_val_EA</prerequisite> - <prerequisite>triganalysis_val_tag</prerequisite> - <prerequisite>triganalysis_val_AOD</prerequisite> - <prerequisite>triganalysis_val_MC_Slim</prerequisite> + <!--prerequisite>tat_RDOtoESDAOD</prerequisite> + <prerequisite>tat_BS</prerequisite> + <prerequisite>tat_BS_MC</prerequisite> + <prerequisite>tat_MC_Slim</prerequisite> + <prerequisite>tat_BackComp</prerequisite> + <prerequisite>tat_Phys_EA</prerequisite> + <prerequisite>tat_MC_EA</prerequisite> + <prerequisite>tat_tag</prerequisite> + <prerequisite>tat_AOD_Phys</prerequisite> + <prerequisite>tat_AOD</prerequisite> + <prerequisite>tat_AOD_SLIM</prerequisite> + <prerequisite>tat_TDT</prerequisite--> + <prerequisite>tat_RDOtoESDAOD</prerequisite> + <prerequisite>tat_BS</prerequisite> + <prerequisite>tat_BackComp</prerequisite> + <prerequisite>tat_EA</prerequisite> + <prerequisite>tat_tag</prerequisite> + <prerequisite>tat_AOD</prerequisite> + <prerequisite>tat_MC_Slim</prerequisite> + <prerequisite>tat_PhysVal</prerequisite> + <project_exclude>AthAnalysisBase</project_exclude> <expectations> <returnValue>0</returnValue> </expectations> @@ -349,20 +403,22 @@ <timelimit>2</timelimit> <author>TrigAnalysis validation</author> <prerequisite>triganalysis_index0</prerequisite> + <project_exclude>AthAnalysisBase</project_exclude> <expectations> <returnValue>0</returnValue> </expectations> </TEST> - <TEST name="sendmail2shifter" type="script" suite="triganalysis_index"> + <!--TEST name="sendmail2shifter" type="script" suite="triganalysis_index"> <options_atn>echo $ATN_PACKAGE | mail -s "TrigAnalysisTest ATN done" "czodrows@cern.ch" </options_atn> <timelimit>2</timelimit> <author>TrigAnalysis validation</author> <prerequisite>triganalysis_index0</prerequisite> + <project_exclude>AthAnalysisBase</project_exclude> <expectations> <returnValue>0</returnValue> - </expectations> - </TEST> + </expectations + </TEST--> </atn> @@ -634,281 +690,7 @@ <queue>long</queue> <alwaysRunPostProc /> </athena> - - - <chain> - <chainName>Validation_Trig_and_Reco_Split_chain</chainName> - <abortOnError /> - - <sequential> - <parallel> - - <sequential> - - <chainElement> - <jobTransform userJobId="Split" > - <doc> - Reco_tf.py split activated - </doc> - <jobTransformJobName>Split</jobTransformJobName> - <jobTransformCmd> - Reco_tf.py --athenaopts=--stdcmalloc --inputRDOFile /afs/cern.ch/work/g/graemes/ddm/pmb/RDO.01177879._000004.pool.root.2 --outputRDO_TRIGFile tmp.RDO_TRIG --outputAODFile Split.AOD.pool.root --maxEvents 500 --autoConfiguration everything --preExec "TriggerFlags.enableMonitoring = ['Online']" --steering RAWtoESD:in-RDO RAWtoESD:in-BS RAWtoESD:in+RDO_TRIG --conditionsTag="OFLCOND-RUN12-SDR-22" ; rm -f tmp.* ; for i in ntuple*.gz; do perfmon.py -f 0.90 $i ; done - </jobTransformCmd> - <group>TrigAnalysisTestIOTests</group> - <queue>long</queue> - <testToRemove> - <jobGroupName>TrigAnalysisTestIOTests</jobGroupName> - <testidentifier>PerfMonRunner</testidentifier> - </testToRemove> - <alwaysRunPostProc /> - </jobTransform> - <chainfileout>Split.AOD.pool.root</chainfileout> - </chainElement> - - - <!--chainElement> - <athena userJobId="Split_TDT"> - <doc> AthenaTrigAOD_TrigDecTool on Split AOD </doc> - <displayName>Split_TDT</displayName> - <commandLineFlags>RunningRTT=TRUE;jp.AthenaCommonFlags.PoolAODInput=["Split.AOD.pool.root"]</commandLineFlags> - <options>testAthenaTrigAOD_TrigDecTool.py</options> - <package>Trigger/TrigValidation/TrigAnalysisTest</package> - <group>TrigAnalysisTestIOTests</group> - <queue>long</queue> - <chaindataset_info> - <dc2/> - <chaindatasetName>Split.AOD.pool.root</chaindatasetName> - <dataset_info> - <dc2 /> - <datasetName>/afs/cern.ch/atlas/project/RTT/prod/Results/rtt/chainstore/devval/x86_64-slc6-gcc47-opt/AtlasProduction/Trigger/TrigValidation/TrigAnalysisTest/AthenaTrigAOD_TrigEDMandTDTCheck_chain/file_link_broken_on_purpose_to_spot_RTT_errors_AOD.pool.root</datasetName> - </dataset_info> - </chaindataset_info> - </athena> - <chainfileout>Split.xml</chainfileout> - </chainElement--> - - - - </sequential> - - - <!--sequential> - <chainElement> - <jobTransform userJobId="Split_compare" > - <doc> - Reco_tf.py comp split vs nonsplit - </doc> - <jobTransformJobName>Split</jobTransformJobName> - <jobTransformCmd> - Reco_tf.py - -inputRDOFile /afs/cern.ch/work/g/graemes/ddm/pmb/RDO.01177879._000004.pool.root.2 - -outputRDO_TRIGFile tmp.RDO_TRIG - -outputAODFile Split.AOD.pool.root - -maxEvents 250 - -autoConfiguration everything - -preExec "TriggerFlags.enableMonitoring = ['Online']" - -steering RAWtoESD:in-RDO RAWtoESD:in-BS RAWtoESD:in+RDO_TRIG - -conditionsTag="OFLCOND-RUN12-SDR-22" ; rm -f tmp.* ; Reco_tf.py - -inputRDOFile /afs/cern.ch/work/g/graemes/ddm/pmb/RDO.01177879._000004.pool.root.2 - -outputAODFile noSplit.AOD.pool.root - -maxEvents 250 - -autoConfiguration everything - -preExec "TriggerFlags.enableMonitoring = ['Online']" - -conditionsTag="OFLCOND-RUN12-SDR-22" ; rm -f tmp.* ; cp /afs/cern.ch/user/c/czodrows/public/testTDT.py ./ ; athena.py -c'fileList=["Split.AOD.pool.root"]' testTDT.py ; mv trigger_counts.xml Split.xml ; athena.py -c'fileList=["noSplit.AOD.pool.root"]' testTDT.py ; mv trigger_counts.xml noSplit.xml ; python /afs/cern.ch/user/c/czodrows/public/rogercounts/counts/countable.py -f html -o splitcheck.html Split.xml noSplit.xml ; python /afs/cern.ch/user/c/czodrows/public/rogercounts/counts/countable.py -f text -o splitcheck.txt Split.xml noSplit.xml - </jobTransformCmd> - <group>TrigAnalysisTestIOTests</group> - <queue>long</queue> - <testToRemove> - <jobGroupName>TriggerTestMonitorHistos</jobGroupName> - <testidentifier>PerfMonRunner</testidentifier> - </testToRemove> - <alwaysRunPostProc /> - </jobTransform> - - </chainElement> - </sequential--> - - <sequential> - - <chainElement> - <jobTransform userJobId="noSplit" > - <doc> - Reco_tf.py noSplit - </doc> - <jobTransformJobName>noSplit</jobTransformJobName> - <jobTransformCmd> - Reco_tf.py --inputRDOFile /afs/cern.ch/work/g/graemes/ddm/pmb/RDO.01177879._000004.pool.root.2 --outputAODFile noSplit.AOD.pool.root --maxEvents 500 --autoConfiguration everything --preExec "TriggerFlags.enableMonitoring = ['Online']" --conditionsTag="OFLCOND-RUN12-SDR-22" ; rm -f tmp.* ; for i in ntuple*.gz; do perfmon.py -f 0.90 $i ; done - </jobTransformCmd> - <group>TrigAnalysisTestIOTests</group> - <queue>long</queue> - <testToRemove> - <jobGroupName>TrigAnalysisTestIOTests</jobGroupName> - <testidentifier>PerfMonRunner</testidentifier> - </testToRemove> - <alwaysRunPostProc /> - </jobTransform> - <chainfileout>noSplit.AOD.pool.root</chainfileout> - </chainElement> - - - <!--chainElement> - <athena userJobId="noSplit_TDT"> - <doc> AthenaTrigAOD_TrigDecTool on Split AOD </doc> - <displayName>Split_TDT</displayName> - <commandLineFlags>RunningRTT=TRUE;jp.AthenaCommonFlags.PoolAODInput=["Split.AOD.pool.root"]</commandLineFlags> - <options>testAthenaTrigAOD_TrigDecTool.py</options> - <package>Trigger/TrigValidation/TrigAnalysisTest</package> - <group>TrigAnalysisTestIOTests</group> - <queue>long</queue> - <chaindataset_info> - <dc2/> - <chaindatasetName>Split.AOD.pool.root</chaindatasetName> - <dataset_info> - <dc2 /> - <datasetName>/afs/cern.ch/atlas/project/RTT/prod/Results/rtt/chainstore/devval/x86_64-slc6-gcc47-opt/AtlasProduction/Trigger/TrigValidation/TrigAnalysisTest/AthenaTrigAOD_TrigEDMandTDTCheck_chain/file_link_broken_on_purpose_to_spot_RTT_errors_AOD.pool.root</datasetName> - </dataset_info> - </chaindataset_info> - <testToRemove> - <jobGroupName>RTT:Top</jobGroupName> - <testidentifier>CheckFileRunner0</testidentifier> - </testToRemove> - </athena> - <chainfileout>noSplit.xml</chainfileout> - </chainElemen--> - - - - </sequential> - </parallel> - - - - - - <!--chainElement> - <jobTransform userJobId="compare_Split_and_noSplit" > - <doc> - compare_Split_and_noSplit - </doc> - <jobTransformJobName>compare_Split_and_noSplit</jobTransformJobName> - <jobTransformCmd> - mv trigger_counts.xml - </jobTransformCmd> - <group>TrigAnalysisTestIOTests</group> - <queue>long</queue> - <chaindataset_info> - <dc2/> - <chaindatasetName>noSplit.xml</chaindatasetName> - <dataset_info> - <dc2 /> - <datasetName>/afs/cern.ch/atlas/project/RTT/prod/Results/rtt/chainstore/devval/x86_64-slc6-gcc47-opt/AtlasProduction/Trigger/TrigValidation/TrigAnalysisTest/AthenaTrigAOD_TrigEDMandTDTCheck_chain/file_link_broken_on_purpose_to_spot_RTT_errors_noSplit.xml</datasetName> - </dataset_info> - </chaindataset_info> - <chaindataset_info> - <dc2/> - <chaindatasetName>Split.xml</chaindatasetName> - <dataset_info> - <dc2 /> - <datasetName>/afs/cern.ch/atlas/project/RTT/prod/Results/rtt/chainstore/devval/x86_64-slc6-gcc47-opt/AtlasProduction/Trigger/TrigValidation/TrigAnalysisTest/AthenaTrigAOD_TrigEDMandTDTCheck_chain/file_link_broken_on_purpose_to_spot_RTT_errors_Split.xml</datasetName> - </dataset_info> - </chaindataset_info> - <testToRemove> - <jobGroupName>RTT:Top</jobGroupName> - <testidentifier>CheckFileRunner0</testidentifier> - </testToRemove> - - </jobTransform> - </chainElement--> - - - <!--chainElement> - <athena userJobId="AOD_TrigDecTool_MC_pp_v5"> - <doc> AthenaTrigAOD_TrigDecTool on Menu: MC_pp_v5 Sample: top AOD from RDO</doc> - <displayName>AthenaTrigAOD_TrigDecTool_MC_pp_v5</displayName> - <commandLineFlags>RunningRTT=TRUE;jp.AthenaCommonFlags.PoolAODInput=["AOD.pool.root"]</commandLineFlags> - <options>testAthenaTrigAOD_TrigDecTool.py</options> - <package>Trigger/TrigValidation/TrigAnalysisTest</package> - <group>TrigAnalysisTestIOTests</group> - <queue>long</queue> - <chaindataset_info> - <dc2/> - <chaindatasetName>AOD.pool.root</chaindatasetName> - <dataset_info> - <dc2 /> - <datasetName>/afs/cern.ch/atlas/project/RTT/prod/Results/rtt/chainstore/devval/x86_64-slc6-gcc47-opt/AtlasProduction/Trigger/TrigValidation/TrigAnalysisTest/AthenaTrigAOD_TrigEDMandTDTCheck_chain/file_link_broken_on_purpose_to_spot_RTT_errors_AOD.pool.root</datasetName> - </dataset_info> - </chaindataset_info> - <testToRemove> - <jobGroupName>RTT:Top</jobGroupName> - <testidentifier>CheckFileRunner0</testidentifier> - </testToRemove> - </athena> - </chainElement--> - - - - </sequential> - </chain> - - - - <!--chain> - <chainName>AthenaTrigAOD_TrigEDMandTDTCheck_Physics_pp_v5_chain</chainName> - <abortOnError /> - <sequential> - - <chainElement> - <athena userJobId="RDOtoAOD_Physics_pp_v5" doMonitoring="True"> - <doc> Menu: Physics_pp_v5 Sample: top - produces AOD 100 events</doc> - <displayName>RDOtoAOD_Physics_pp_v5</displayName> - <commandLineFlags> - RunningRTT=TRUE;menu='Physics_pp_v5';jp.AthenaCommonFlags.EvtMax.set_Value_and_Lock(100);jp.Rec.OutputLevel=WARNING;LVL1OutputLevel=WARNING;HLTOutputLevel=WARNING;dsName='/eos/atlas/atlascerngroupdisk/trig-daq/validation/test_data/mc12_8TeV.105200.McAtNloJimmy_CT10_ttbar_LeptonFilter.digit.RDO.e1513_s1499_s1504_d700_tid01177880_00';fileRange=[1,20] - </commandLineFlags> - <options>testAthenaTrigRDOtoAOD.py</options> - <group>TrigAnalysisTestIOTests</group> - <queue>long</queue> - <athenaCommonFlags /> - </athena> - <chainfileout>AOD.pool.root</chainfileout> - </chainElement> - <parallel> - <chainElement> - <athena userJobId="AOD_TrigEDMCheck_Physics_pp_v5"> - <doc> AthenaTrigAOD_TrigEDMCheck on Menu: Physics_pp_v5 Sample: top AOD from RDO</doc> - <displayName>AthenaTrigAOD_TrigEDMCheck_Physics_pp_v5</displayName> - <commandLineFlags>RunningRTT=TRUE;jp.AthenaCommonFlags.PoolAODInput=["AOD.pool.root"]</commandLineFlags> - <options>testAthenaTrigAOD_TrigEDMCheck.py</options> - <package>Trigger/TrigValidation/TrigAnalysisTest</package> - <group>TrigAnalysisTestIOTests</group> - <queue>long</queue> - <chaindataset_info> - <dc2/> - <chaindatasetName>AOD.pool.root</chaindatasetName> - <dataset_info> - <dc2 /> - <datasetName>/afs/cern.ch/atlas/project/RTT/prod/Results/rtt/chainstore/devval/x86_64-slc6-gcc47-opt/AtlasProduction/Trigger/TrigValidation/TrigAnalysisTest/AthenaTrigAOD_TrigEDMandTDTCheck_chain/file_link_broken_on_purpose_to_spot_RTT_errors_AOD.pool.root</datasetName> - </dataset_info> - </chaindataset_info> - <testToRemove> - <jobGroupName>RTT:Top</jobGroupName> - <testidentifier>CheckFileRunner0</testidentifier> - </testToRemove> - </athena> - </chainElement> - - <chainElement> - <athena userJobId="AOD_TrigDecTool_Physics_pp_v5"> - <doc> AthenaTrigAOD_TrigDecTool on Menu: Physics_pp_v5 Sample: top AOD from RDO</doc> - <displayName>AthenaTrigAOD_TrigDecTool_Physics_pp_v5</displayName> - <commandLineFlags>RunningRTT=TRUE;jp.AthenaCommonFlags.PoolAODInput=["AOD.pool.root"]</commandLineFlags> - <options>testAthenaTrigAOD_TrigDecTool.py</options> - <package>Trigger/TrigValidation/TrigAnalysisTest</package> - <group>TrigAnalysisTestIOTests</group> - <queue>long</queue> - <chaindataset_info> - <dc2/> - <chaindatasetName>AOD.pool.root</chaindatasetName> - <dataset_info> - <dc2 /> - <datasetName>/afs/cern.ch/atlas/project/RTT/prod/Results/rtt/chainstore/devval/x86_64-slc6-gcc47-opt/AtlasProduction/Trigger/TrigValidation/TrigAnalysisTest/AthenaTrigAOD_TrigEDMandTDTCheck_chain/file_link_broken_on_purpose_to_spot_RTT_errors_AOD.pool.root</datasetName> - </dataset_info> - </chaindataset_info> - <testToRemove> - <jobGroupName>RTT:Top</jobGroupName> - <testidentifier>CheckFileRunner0</testidentifier> - </testToRemove> - </athena> - </chainElement> - </parallel> - </sequential> - </chain--> - + <chain> <chainName>AthenaTrigAOD_TrigEDMandTDTCheck_MC_pp_v5_chain</chainName> <abortOnError /> @@ -952,8 +734,8 @@ <testidentifier>CheckFileRunner0</testidentifier> </testToRemove> <testToRemove> - <jobGroupName>TrigAnalysisTestIOTests</jobGroupName> - <testidentifier>chainDump_chainDump</testidentifier> + <jobGroupName>TrigAnalysisTest:TrigAnalysisTestIOTests</jobGroupName> + <testidentifier>chainDump</testidentifier> </testToRemove> </athena> </chainElement> @@ -980,8 +762,8 @@ <testidentifier>CheckFileRunner0</testidentifier> </testToRemove> <testToRemove> - <jobGroupName>TrigAnalysisTestIOTests</jobGroupName> - <testidentifier>chainDump_chainDump</testidentifier> + <jobGroupName>TrigAnalysisTest:TrigAnalysisTestIOTests</jobGroupName> + <testidentifier>chainDump</testidentifier> </testToRemove> </athena> </chainElement> @@ -990,11 +772,6 @@ </sequential> </chain> - - - - - <chain> <chainName>AthenaTrigESDAOD_Perf_and_HLTMons_MC_pp_v5_chain</chainName> <abortOnError /> @@ -1056,8 +833,8 @@ <testidentifier>CheckFileRunner0</testidentifier> </testToRemove> <testToRemove> - <jobGroupName>TrigAnalysisTestIOTests</jobGroupName> - <testidentifier>chainDump_chainDump</testidentifier> + <jobGroupName>TrigAnalysisTest:TrigAnalysisTestIOTests</jobGroupName> + <testidentifier>chainDump</testidentifier> </testToRemove> </athena> </chainElement> @@ -1085,8 +862,8 @@ <testidentifier>CheckFileRunner0</testidentifier> </testToRemove> <testToRemove> - <jobGroupName>TrigAnalysisTestIOTests</jobGroupName> - <testidentifier>chainDump_chainDump</testidentifier> + <jobGroupName>TrigAnalysisTest:TrigAnalysisTestIOTests</jobGroupName> + <testidentifier>chainDump</testidentifier> </testToRemove> </athena> </chainElement> @@ -1115,13 +892,13 @@ <testidentifier>CheckFileRunner0</testidentifier> </testToRemove> <testToRemove> - <jobGroupName>TrigAnalysisTestIOTests</jobGroupName> - <testidentifier>chainDump_chainDump</testidentifier> + <jobGroupName>TrigAnalysisTest:TrigAnalysisTestIOTests</jobGroupName> + <testidentifier>chainDump</testidentifier> </testToRemove> </athena> </chainElement> </parallel> - + </sequential> </chain> diff --git a/Trigger/TrigValidation/TrigAnalysisTest/test/ut_triggers_fired.cxx b/Trigger/TrigValidation/TrigAnalysisTest/test/ut_triggers_fired.cxx new file mode 100644 index 00000000000..f8a570740c5 --- /dev/null +++ b/Trigger/TrigValidation/TrigAnalysisTest/test/ut_triggers_fired.cxx @@ -0,0 +1,98 @@ +/* + Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +*/ + +// Test to make sure at least some L1 and some HLT triggers have +// fired. + +#include "xAODRootAccess/Init.h" +#include "xAODRootAccess/tools/ReturnCheck.h" + +#include "xAODRootAccess/TEvent.h" + +#include "TrigConfxAOD/xAODConfigTool.h" +#include "TrigDecisionTool/TrigDecisionTool.h" + +#include "TChain.h" +#include "TError.h" +#include "TFile.h" +#include "TH1F.h" +#include "TSystem.h" + +#include <iostream> + +using namespace std; +using namespace Trig; +using namespace TrigConf; +using namespace xAOD; + +// Config +const char* APP_NAME = "trigDecision"; + +// Helpers +void dumpTriggerInfo(TrigDecisionTool &trigDecisionTool); + +int main() +{ + // Initialize (as done for all xAOD standalone programs!) + if (!xAOD::Init(APP_NAME).isSuccess()) { + return 1; + } + + // Load up the proper file we should be checking against. + auto chain = new TChain("CollectionTree"); + chain->Add(gSystem->Getenv("ROOTCORE_TEST_FILE")); + + // Init data access to the trigger + TEvent event(TEvent::kBranchAccess); + if (!event.readFrom(chain).isSuccess()) { + return 1; + } + + xAODConfigTool configTool("xAODConfigTool"); + ToolHandle<TrigConf::ITrigConfigTool> configHandle(&configTool); + configHandle->initialize(); + + TrigDecisionTool trigDecTool("TrigDecTool"); + trigDecTool.setProperty("ConfigTool",configHandle); + trigDecTool.setProperty("TrigDecisionKey","xTrigDecision"); + trigDecTool.initialize(); + + // Counters + uint passed_l1 = 0; + uint passed_hlt = 0; + + // Run the files + size_t nEntries = chain->GetEntries(); + for (size_t entry = 0; entry < nEntries; entry++) { + event.getEntry(entry); + + // Did we pass a trigger level? + if (trigDecTool.isPassed("L1_.*")) + passed_l1++; + if (trigDecTool.isPassed("HLT_.*")) + passed_hlt++; + + // Dump for debugging the test + if (entry == 1) { + dumpTriggerInfo(trigDecTool); + } + } + + // Dump for debugging. + cout << "L1 triggers passed: " << passed_l1 << endl; + cout << "HLT triggers passed; " << passed_hlt << endl; + + // Good run if we found a trigger! + return (passed_l1 > 0 && passed_hlt > 0) ? 0 : 1; +} + +// Dump out all chains in an event +void dumpTriggerInfo(TrigDecisionTool &trigDecTool) { + cout << "Dumping trigger info for event" << endl; + auto chainGroups = trigDecTool.getChainGroup(".*"); + for(auto &trig : chainGroups->getListOfTriggers()) { + cout << " " << trig << endl; + } +} + -- GitLab