Getting started: Athena setup and others


This pages describe my learning steps in using the trigger in Athena. My service work requires that I port the b-tagging code from the offline to the Event Filter (the third trigger level).

ssh -Y

Now let's work on the Glasgow computer at CERN, as the lxplus machines are slow sometimes, as people work there as well.

ssh -Y pcgla09

Then open an xterm terminal, since I have configured emacs to have the correct backspace and delete keys in an xterm, but unfortunately not in the typical putty console.


In the home area, let's create a folder "TriggerWork" where our work will be held.

mkdir TriggerWork
cd TriggerWork

Now we need to setup Athena while being in this folder with the option ",here". Note. If you had set up Athena already, do not set it up again, as it would not work. Simply kill the window, start a new one and set up Athena in the right folder.

asetup AtlasP1HLT,,here

To check if it is was set up

echo $AtlasArea

Note that we run on a stable Athena version, not like back in February 2012 when we were running on a nightly release, that changed daily! This should make things more stable.

This Athena version already has the latest release of "TrigBjetHypo"

cmt show versions Trigger/TrigHypothesis/TrigBjetHypo
The output is:
Trigger/TrigHypothesis/TrigBjetHypo TrigBjetHypo-00-05-50 /afs/
Trigger/TrigHypothesis/TrigBjetHypo TrigBjetHypo-00-05-42 /afs/

Check out the latest tag of this package.

cmt co -r TrigBjetHypo-00-05-50 Trigger/TrigHypothesis/TrigBjetHypo

Compile the package. For that we need to run the "make" command from the "cmt" folder of the package.

cd Trigger/TrigHypothesis/TrigBjetHypo/cmt

After the compilation works, we can see the appearance of the "InstallArea" folder in the "TriggerWork" folder.

cd ~/TriggerWork

Also the compilation makes the folders "genConf" and "i686-slc5-gcc43-opt" in the folder "TrigBjetHypo"

cd Trigger/TrigHypothesis/TrigBjetHypo

Now we can make a change to a file and recompile. For example, adda cout statement in "TrigBjetHypo.cxx" and then compile again with "make" from the "cmt" folder and it showed recompilation of that class. And it works.

cd src
emacs -nw TrigBjetFex.cxx 
cd ../cmt

Now run a trigger test. It is completely automatic, as you don't even have to worry about the input file, as it is taken automatically. The final part of the test is a regression test with a reference, meaning that the final outcome will be a bad exit code even if the job itself was perfectly fine (to avoid this confusion you can simply check the log file)

cd .. --test AthenaTrigRDO_MC_pp_v4_tight_mc_prescale --run AthenaTrigRDO_MC_pp_v4_tight_mc_prescale --conf TriggerTest.conf

I see as a result it creates this folder in the folder you are running it

cd AthenaTrigRDO_MC_pp_v4_tight_mc_prescale

A lot of stuff in it indeed, the output after some time looks likes this. Andrea Coccaro warned that even if I get an error, it is fine.

 :3      PS: 3      raw: 2      accepted after PS and PT: 2      rerun: 0    
> TrigSteer_EF.TrigChainMoniValidation               INFO  REGTEST events accepted by chain: EF_zerobias_Overlay_NoAlg            active: 0      run :0      PS: 0      raw: 0      accepted after PS and PT: 0      rerun: 0    
=== Alert! WARNING Output differs from reference for TrigSteer_EF.TrigChainMoniValidation
    If this change is understood, please update the reference fileby typing:
    cp /afs/
=== Timer: total elapsed 948 s, total user 813.02 s, total system  41.85 s
=== These errors occured: ATHENA_ERROR_IN_LOG (32) ATHENA_REGTEST_FAILED (64) ROOTCOMP_MISMATCH (4) FAILURE at end (unmasked=0b01100100 exitcode=0b00100000)

Now we copy the "TrigBJetFex.cxx" to a new file, strip down all the members and all the methods except three (start, execute, finalize). It is this Fex file that runs the trigger to compute the trigger weight. Then you can apply different cuts on this trigger weight by using the Hypo files. You can run the Hypo many times with different cuts, but you compute the trigger only once. Then compile the code. In order to run the new class, you need to change a Python configuration file. Now "TrigBJetFex" runs boty L2 and EF. After I create "TrigBJetFexEF", the "TrigBJetFex" will run only L2 and "TrigBJetFexEF" will run only EF. A trigger chain will still have a choice to run either "TrigBjetFex" or "TrigBJetFexEF" and that is coded in a Python configuration file, which is then written to an XML. XMLs are easy to read but hard to modify.

Next step: modify this new file, and include it in the compilation: AdrianBuzatuAthenaTrigger02.

-- AdrianBuzatu - 22-Oct-2012

Edit | Attach | Watch | Print version | History: r5 < r4 < r3 < r2 < r1 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r5 - 2012-11-26 - AdrianBuzatu
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    Sandbox All webs login

This site is powered by the TWiki collaboration platform Powered by PerlCopyright & 2008-2021 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