Learning Open HLT

Zeynep's mail:

Hi Thiago,

I am extremely happy to hear that I caught your interest. As you mentioned there are quite a number of outdated documentation out. Even the twiki I wrote on the openHLT is somewhat outdated at this point even though it is only few months old. To learn about the tool itself please take a look at this twiki:

https://twiki.cern.ch/twiki/bin/viewauth/CMS/TriggerMenuDevelopment#NewOpenHLT

And to use the tool itself please use the recipe below - when I find time I will update the twiki according to this recipe:

you can find the relevant files here (the newOpenHLT.py, hlt.py, setup_cff.py): /afs/cern.ch/user/z/zdemirag/public/forTMD

Release: CMSSW_5_2_8_patch1

Tags:

--- Tag --- -------- Package -------- 
V02-02-36 Configuration/Skimming 
V13-05-07-02 FastSimulation/Configuration 
V01-00-02 FastSimulation/Muons
V14-09-02 HLTrigger/Configuration 
V04-01-16 HLTrigger/btau

To Run on the producer mode, look at the newOpenHLT.py and change the flag on the runProducers = True cmsRun newOpenHLT.py /store/data/Run2012D/MinimumBias/RAW/v1/000/208/307/E40B8D22-CE3A-E211-851D-003048D2C174.root Producer.root

you don't have to run on this specific file, the only thing to make sure is that it is RAW and that specific run was using the menu you are using.

To run on the filtering mode, change the flag on the runProducers = False

cmsRun newOpenHLT.py Producer.root Filter.root

Takes a long time to run create Producer.root ... 45 min / 1000 events. I hope the REAL trigger is far faster than that smile

Filter.root on the other hand is fast to create!

I am under the impression that the first step (creating Product.root) creates the HLT products again, starting from the FEDRawDataCollection.

The second step then just filters... but how do I check if the events are passing? How do I check the rates? How do I check the timing?

Some pages:

This is a path example:

TrigReport ---------- Modules in Path: HLT_DiPFJetAve400_v10 ------------
TrigReport  Trig Bit#    Visited     Passed     Failed      Error Name
TrigReport     1   21       1000       1000          0          0 hltTriggerType
TrigReport     1   21       1000       1000          0          0 hltL1sL1SingleJet128
TrigReport     1   21       1000       1000          0          0 hltPreDiPFJetAve400
TrigReport     1   21       1000       1000          0          0 hltSingleJet320Regional
TrigReport     1   21       1000       1000          0          0 hltAntiKT5CaloJetsPFEt5
TrigReport     1   21       1000       1000          0          0 hltDiPFJetAve400
TrigReport     1   21       1000       1000          0          0 hltBoolEnd

>>> process.hltTriggerType
cms.EDFilter("HLTTriggerTypeFilter",
    SelectedTriggerType = cms.int32(1)
)
>>> process.hltL1sL1SingleJet128
cms.EDFilter("HLTLevel1GTSeed",
    L1SeedsLogicalExpression = cms.string('L1_SingleJet128'),
    saveTags = cms.bool(True),
    L1MuonCollectionTag = cms.InputTag("hltL1extraParticles"),
    L1UseL1TriggerObjectMaps = cms.bool(True),
    L1UseAliasesForSeeding = cms.bool(True),
    L1GtReadoutRecordTag = cms.InputTag("simGtDigis"),
    L1CollectionsTag = cms.InputTag("hltL1extraParticles"),
    L1NrBxInEvent = cms.int32(3),
    L1GtObjectMapTag = cms.InputTag("hltL1GtObjectMap"),
    L1TechTriggerSeeding = cms.bool(False)
)
>>> process.hltPreDiPFJetAve400
cms.EDFilter("HLTPrescaler",
    L1GtReadoutRecordTag = cms.InputTag("simGtDigis"),
    offset = cms.uint32(0)
)
>>> process.hltSingleJet320Regional
cms.EDFilter("HLT1CaloJet",
    saveTags = cms.bool(True),
    MinPt = cms.double(320.0),
    MinN = cms.int32(1),
    MaxEta = cms.double(5.0),
    MinMass = cms.double(-1.0),
    inputTag = cms.InputTag("hltCaloJetCorrectedRegional"),
    MinE = cms.double(-1.0),
    triggerType = cms.int32(85)
)
>>> process.hltAntiKT5CaloJetsPFEt5
cms.EDFilter("EtMinCaloJetSelector",
    filter = cms.bool(False),
    src = cms.InputTag("hltAntiKT5CaloJetsPF"),
    etMin = cms.double(5.0)
)
>>> process.hltDiPFJetAve400
cms.EDFilter("HLTDiPFJetAveFilter",
    saveTags = cms.bool(True),
    inputJetTag = cms.InputTag("hltAK5PFJetL1FastL2L3Corrected"),
    minPtAve = cms.double(400.0),
    minPtJet3 = cms.double(99999.0),
    triggerType = cms.int32(85),
    minDphi = cms.double(-1.0)
)
>>> process.hltBoolEnd
cms.EDFilter("HLTBool",
    result = cms.bool(True)
)

  1. Get the golden JSON, pick a run with nice lumi (example: run 207905)
  2. Go to WBM, look that run up
  3. Check HLT key, lumi
  4. Get files and blocks correspoding to that run
  5. Look in lumisections, and try to get LS ranges of approximately constant lumi
LS Inst. Lum (10^30) Rate, range (Hz) Rate, fit (Hz)
76-97 6981 +-46 10.28 10.06
159-166 6500 +- 15 9.62 10.35
242-249 6001 +- 15 8.95 9.08
349-362 5500 +- 16 8.13 8.02
505-520 5002 +- 16 7.11 7.19
673-684 4500 +- 11 6.23 6.11
872-886 4000 +- 11 5.43 5.48

-- Main.trtomei - 2013-04-04

Topic attachments
I Attachment History Action Size Date Who Comment
PDFpdf Run207905_RatesVsLumi.pdf r1 manage 34.1 K 2013-04-05 - 07:10 UnknownUser Rate of HLT_Physics_v5 vs LS, for Run 207905
Topic revision: r6 - 2013-04-05 - trtomei
 

This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback

antalya escort bursa escort eskisehir escort istanbul escort izmir escort