HLT Logbook
Please don't edit these pages without permission.
Running on 2015 Dev MC
Thanks to Alex Shires for his help with getting this stuff to work
Current usage has been for an Inclusive Phi trigger tested with 2015 Development MC.
Running Moore on the simulation for Run II is a bit of a pain as it has to be done in piecewise steps:
- Run the RawEventJuggler which will take the reco sim dataset and put a moore readable digi RawEvent back into it
- Run the L0App which will emulate the L0 trigger
- Run Moore which will actually run the Hlt1 and Hlt2 lines that you want
Need really to run a chain in ganga.
Package instructions
1cd work/private/lhcb/HLT/
2SetupProject --build-env Moore v22r1
3getpack Hlt/HltSettings
4getpack Hlt/Moore
Raw Event Juggler
- First step is to run the raw event juggler if running on Sim.
- Need to do this to get digi like data format back out of reco so that Moore can read the file
- So should be run on some sim file with name ending ".mcfiltered.dst"
- This is actually pretty slow
- See RawEventJuggler for more info
- In my setup this will output a file called
RawEventRecombined.dst
1SetupProject Moore v22r1
2cd work/private/lhcb/HLT/
3gaudirun.py RunRawEventJug.py DevPhiPhiSamplesTest.py 2>&1 | tee runrawevent.log
Run L0 Emulator
- Now can run L0 on the output file from Raw Event Juggler
- See L0App for more info
- In my setup this will output a file called
L0Processed.dst
1gaudirun.py RunL0OnSim.py 2>&1 | tee runl0.log
Run Moore
- This requires the LHCb packages
Hlt/HltSettings
- You can (if you want to avoid running all Hlt1 and Hlt2 lines) then make your own trigger threshhold file and put it in
Hlt/HltSettings/python/HltSettings
- An example is in
~/work/private/lhcb/HLT/inc_phi_thresholds.py
- This step is also quite slow
1gaudirun.py RunMoore.py 2>&1 | tee runmoore.log
Run the Ganga chain
1# run raw event juggler first
2j = Job( name="RawEvent", application=Moore(version="v22r1"), backend=Dirac())
3j.inputdata = BKQuery("path/to/some/dev/MC.dst").getDataset()
4j.outputfiles = [DiracFile("RawEventRecombined.dst")]
5j.application.optsfile = 'path/to/RunRawEventJug.py'
6j.splitter = SplitByFiles(filesPerJob=1)
7j.submit()
8
9# then run l0 on the output of these
10j = Job( name="L0App", application=Moore(version="v22r1"), backend=Dirac())
11ds = []
12for sj in jobs(77).subjobs:
13 if sj.status=='completed':
14 if (sj.backend.getOutputDataLFNs().files):
15 ds.extend(sj.backend.getOutputDataLFNs())
16j.inputdata = ds
17j.outputfiles = [DiracFile("L0Processed.dst")]
18j.application.optsfile = 'path/to/RunL0OnSim.py'
19j.splitter = SplitByFiles(filesPerJob=1)
20j.submit()
21
22# then run Moore on the output of these
23j = Job( name = "Hlt2Tests", application=Moore(version="v22r1"), backend=Dirac())
24ds = []
25for sj in jobs(78).subjobs:
26 if sj.status=='completed':
27 if (sj.backend.getOutputDataLFNs().files()):
28 ds.extend(sj.backend.getOutputDataLFNs())
29j.inputdata = ds
30j.application.optsfile = 'path/to/RunMoore.py'
31j.splitter = SplitByFiles(filesPerJob=1)
32j.submit()
Useful links
--
MatthewKenzie - 28 Jul 2014