Difference: PrivateTCK (13 vs. 14)

Revision 142016-04-27 - MikaVesterinen

Line: 1 to 1
 
META TOPICPARENT name="LHCbTCK"

How to create HLT TCKs

Line: 66 to 66
 %ENDCODE% If you don't need any package updates, then, in the following you could replace all "./run" with "lb-run Moore v25r2"
Added:
>
>

The scripts to create and test the Hlt TCKs live in the Hlt/Moore package under tests/options/TCK/ You can see them e.g. with

<!-- SyntaxHighlightingPlugin -->
./run ls '$MOOREROOT/tests/options/TCK'
<!-- end SyntaxHighlightingPlugin -->
CreateTCK1.py  CreateTCK2.py  CreateTCKEntry.py  RedoL0.py  TCKOptions.py  TestTCK1.py  TestTCK2.py 
You will need to edit these scripts, so copy them locally
<!-- SyntaxHighlightingPlugin -->
cp `./run echo '$MOOREROOT'`/tests/options/TCK/* .  ## for some reason I can't just do ./run cp '$MOOREROOT/tests/options/TCK/*' .
<!-- end SyntaxHighlightingPlugin -->
ways check the following items in TCKOptions.py
  • Do you have the correct ThresholdSettings?
  • Do you have the correct L0TCK?
  • Your proposed new TCK numbers are correct
  • The config label for the TCKs are sensible and meaningful
 First we need to prepare the input data. The starting point is a small sample of real data events which is selected such that all HLT lines get to their next to last algorithm. It is currently at
 /eos/lhcb/wg/HLT/2016CommissioningDatasets/OneAcceptedPerLine_v25r1_Physics_pp_May2016_190416 
Now, we need to process these data with the correct L0 TCK (0x1600 in this example).
Deleted:
<
<
%CODE{lang="python"}% .py from Gaudi.Configuration import ApplicationMgr from Configurables import L0App app = L0App() app.ReplaceL0Banks = True app.outputFile = "RedoL0.mdf" app.EvtMax = -1 app.TCK = '0x1600' app.DataType = '2015' app.CondDBtag = 'cond-20150828' app.DDDBtag = 'dddb-20150724'

from GaudiConf import IOHelper IOHelper('MDF').inputFiles(['mdf:root://eoslhcb.cern.ch//eos/lhcb/wg/HLT/2016CommissioningDatasets/OneAcceptedPerLine_v25r1_Physics_pp_May2016_190416/Moore%02d.mdf' %i for i in range(0,15)])

from Configurables import EventSelector EventSelector().PrintFreq = 10

from Configurables import HltRoutingBitsFilter rb_filter = HltRoutingBitsFilter( "RoutingBitsFilter" ) rb_filter.RequireMask = [0x0, 0x4, 0x0]

# HLT Bank killer from Configurables import bankKiller hlt_banks = [ 'HltDecReports','HltRoutingBits','HltSelReports','HltVertexReports','HltLumiSummary','HltTrackReports' ] killer = bankKiller( 'RemoveInputHltRawBanks', BankTypes = hlt_banks )

 
Deleted:
<
<
ApplicationMgr().TopAlg = [rb_filter, killer] %ENDCODE%
 You can run it with
<!-- SyntaxHighlightingPlugin -->
./run gaudirun.py RedoL0.py 2>&1 | tee RedoL0.log
<!-- end SyntaxHighlightingPlugin -->
It should produce a file RedoL0.mdf, which will be the input to the next step.
Changed:
<
<
The scripts to create and test the Hlt TCKs live in the Hlt/Moore package under tests/options/TCK/ You can see them e.g. with
<!-- SyntaxHighlightingPlugin -->
./run ls '$MOOREROOT/tests/options/TCK'
<!-- end SyntaxHighlightingPlugin -->
You will need to edit these scripts, so copy them locally
<!-- SyntaxHighlightingPlugin -->
cp `./run echo '$MOOREROOT'`/tests/options/TCK/* .  ## for some reason I can't just do ./run cp '$MOOREROOT/tests/options/TCK/*' .
<!-- end SyntaxHighlightingPlugin -->
The first step is to create the HLT configuration using CreateTCK1.py.
>
>
The next step is to use the output .mdf from RedoL0.py to create the HLT configuration using CreateTCK1.py.
 You need to make sure that the script points at the correct input data
<!-- SyntaxHighlightingPlugin -->
IOHelper('MDF').inputFiles(['PFN:RedoL0.mdf']) 
<!-- end SyntaxHighlightingPlugin -->
Also pay particular attention to Moore().ThresholdSettings, Moore().ConfigLabel and the L0TCK. Now you should be ready to run %CODE{lang="sh"}%
Changed:
<
<
./run gaudirun.py CreateTCK1.py 2>&1 | tee CreateTCK1.log
>
>
./run gaudirun.py CreateTCK1.py TCKOptions.py 2>&1 | tee CreateTCK1.log
 %ENDCODE% This should create a directory TCKData containing a file, config.cdb If there is an issue with this, or any subsequent step, it is safest to delete the config.cdb file, fix the problems and start again.
Line: 137 to 117
 ./run python CreateTCKEntry.py ${ID} 0x112F1600 2>&1 | tee CreateTCKEntry1.log %ENDCODE% The next step is to test that we can actually run from this TCK.
Changed:
<
<
Have a look at TestTCK1.py, and check that the input data is the same as in CreateTCK1.py, and that Moore().InitialTCK = .
>
>
Have a look at TestTCK1.py, and check that the input data is the same as in CreateTCK1.py.
 The following will run Moore in Split="Hlt1" with your newly %CODE{lang="sh"}%
Changed:
<
<
./run gaudirun.py TestTCK1.py 2>&1 | tee TestTCK1.log
>
>
./run gaudirun.py TestTCK1.py TCKOptions.py 2>&1 | tee TestTCK1.log
 %ENDCODE% This should produce an output .mdf file called TestTCK1.mdf. We can use this file as input to produce the Hlt2 TCK. Take a look at CreateTCK2.py, CreateTCKEntry.py and TestTCK2.py, and make sure that the settings are correct. In particular:
  • CreateTCK2.py and TestTCK2.py should take TestTCK1.mdf as their input data
Changed:
<
<
  • CreateTCK2.py should set the appropriate L0TCK and the ConfigLabel for the TCK should be sensible.
>
>
  • CreateTCK2.py should set the appropriate L0TCK and the ConfigLabel for the TCK should be sensible.
 Now you should be able to run the remaining steps in one go %CODE{lang="sh"}%
Changed:
<
<
./run gaudirun.py CreateTCK2.py 2>&1 | tee CreateTCK2.log
>
>
./run gaudirun.py CreateTCK2.py TCKOptions.py 2>&1 | tee CreateTCK2.log
 ID=`cat CreateTCK2.log | grep HltGenConfig | grep "top id for this config" | cut -d ":" -f 2 | xargs` TCK2=0x212F1600 CreateTCKEntry.py ${ID} ${TCK2} 2>&1 | tee CreateTCKEntry2.log
Changed:
<
<
./run gaudirun.py TestTCK2.py 2>&1 | tee TestTCK2.log
>
>
./run gaudirun.py TestTCK2.py TCKOptions.py 2>&1 | tee TestTCK2.log
 %ENDCODE% Once you are comfortable with all of the above, you can of course wrap all the steps in one script, in case you need to redo the procedure, e.g. to pick up some package updates or other changes.
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright & 2008-2019 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback