Navigation

Recent site activity

Home‎ > ‎Heavy Ion Analysis Topic‎ > ‎HLTrigger‎ > ‎

How to use ConfDB

Referencing to Christoph's log in MIT twiki
http://www.cmsaf.mit.edu/twiki/bin/view/CmsHi/ChristofsLabLog

Heavy Ion HLT regarding to MuL3

20090811 updated newly to make HLT_HIDoubleMu configuration file

edmConfigFromDB --configName /dev/HIHLT_2_2_13_HLT/FULL/V46 --format Python --paths HLT_DoubleMu3 > HI_HLT_MuL3_2213.py

And then have to change somethings in HI_HLT_MuL3_2213.py

in the "process.GlobalTag = cms.ESSource( "PoolDBESSource","

globaltag = cms.string( "IDEAL_V12::All" ), >>>> globaltag = cms.string( "STARTUP_V9::All" ),

in the "process.l1GtTriggerMenuXml = cms.ESProducer( "L1GtTriggerMenuXmlProducer","
TriggerMenuLuminosity = cms.string( "lumi1031" ), >>>> TriggerMenuLuminosity = cms.string( "startup" ),
DefXmlFile = cms.string( "L1Menu_MC2009_v0_L1T_Scales_20080922_Imp0.xml" ), >>>> DefXmlFile = cms.string( "L1Menu_Startup2_v2.xml" ),

In addition to add on

####Vertex
process.hltHITTRHBuilder = cms.ESProducer("TkTransientTrackingRecHitBuilderESProducer",
   StripCPE = cms.string('Fake'),
   ComponentName = cms.string('TTRHBuilderWithoutAngle4PixelTriplets'),
   PixelCPE = cms.string('PixelCPEGeneric'),
   Matcher = cms.string('StandardMatcher'),
   appendToDataLabel = cms.string( "" )
)

process.hltHIpixel3ProtoTracks = cms.EDProducer( "PixelTrackProducerWithZPos",
    passLabel = cms.string( "" ),
    RegionFactoryPSet = cms.PSet(
        ComponentName = cms.string( "HITrackingRegionProducer" ),
        RegionPSet = cms.PSet(
            precise = cms.bool( True ),
            originHalfLength = cms.double( 15.9 ),
            directionYCoord = cms.double( 1.0 ),
            originYPos = cms.double( 0.0 ),
            directionXCoord = cms.double( 1.0 ),
            directionZCoord = cms.double( 0.0 ),
            VertexCollection = cms.string( "hltHIpixelVertices" ),
            ptMin = cms.double( 0.5 ),
            originXPos = cms.double( 0.0 ),
            siPixelRecHits = cms.string( "hltSiPixelRecHits" ),
            originZPos = cms.double( 0.0 ),
            useFoundVertices = cms.bool( False ),
            originRadius = cms.double( 0.1 )
        )
    ),
    OrderedHitsFactoryPSet = cms.PSet(
        ComponentName = cms.string( "StandardHitTripletGenerator" ),
        GeneratorPSet = cms.PSet(
            nSigMultipleScattering = cms.double( 5.0 ),
            checkMultipleScattering = cms.bool( True ),
            ComponentName = cms.string( "TripletGenerator" ),
            checkClusterShape = cms.bool( True ),
            maxAngleRatio = cms.double( 10.0 ),
            rzTolerance = cms.double( 0.2 )
        ),
        SeedingLayers = cms.string( "PixelLayerTriplets" )
    ),
    FitterPSet = cms.PSet(
        ComponentName = cms.string( "TrackFitter" ),
        TTRHBuilder = cms.string( "TTRHBuilderWithoutAngle4PixelTriplets" )
    ),
    FilterPSet = cms.PSet(  ComponentName = cms.string( "ClusterShapeTrackFilter" ) ),
    CleanerPSet = cms.PSet(  ComponentName = cms.string( "TrackCleaner" ) ),
    RegionPSet = cms.PSet(
        useFoundVertices = cms.bool( False ),
        ptMin = cms.double( 0.5 ),
        originRadius = cms.double( 0.1 )
    )
)
process.hltHIpixelVertices = cms.EDProducer("PixelVertexProducerMedian",
    TrackCollection = cms.string("hltHIpixel3ProtoTracks"),
    PtMin = cms.double(0.5)
)

process.AnalyticalPropagator = cms.ESProducer("AnalyticalPropagatorESProducer",
    MaxDPhi = cms.double(1.6),
    ComponentName = cms.string('AnalyticalPropagator'),
    PropagationDirection = cms.string('alongMomentum')
)

process.hltHITTRHBuilderWithoutRefit = cms.ESProducer( "TkTransientTrackingRecHitBuilderESProducer",
    ComponentName = cms.string( "hltHITTRHBuilderWithoutRefit" ),
    StripCPE = cms.string( "Fake" ),
    PixelCPE = cms.string( "Fake" ),
    Matcher = cms.string( "Fake" ),
    appendToDataLabel = cms.string( "" )
)

process.hltHIMML3Filter = cms.EDFilter("TestMuL1L2Filter",
        #    L2CandTag = cms.InputTag("hltL2Muons"),
            L2CandTag = cms.InputTag("hltL2MuonCandidates"),
        ###    PrimaryVertexTag = cms.InputTag("PrimaryVertex"),
        PrimaryVertexTag = cms.InputTag("hltHIpixelVertices"),
        NavigationPSet = cms.PSet(
        ComponentName = cms.string('SimpleNavigationSchool')
    ),
    rphiRecHits = cms.InputTag("siStripMatchedRecHits","rphiRecHit"),
    TTRHBuilder = cms.string("hltHITTRHBuilderWithoutRefit")

)
process.hltHIL1sDoubleMu = cms.EDFilter( "HLTLevel1GTSeed",
    L1TechTriggerSeeding = cms.bool( False ),
    #    L1SeedsLogicalExpression = cms.string( "L1_SingleMuOpen" ),
    L1SeedsLogicalExpression = cms.string( "L1_DoubleMuOpen" ),
    L1GtReadoutRecordTag = cms.InputTag( "hltGtDigis" ),
    L1GtObjectMapTag = cms.InputTag( "hltL1GtObjectMap" ),
    L1CollectionsTag = cms.InputTag( "hltL1extraParticles" ),
    L1MuonCollectionTag = cms.InputTag( "hltL1extraParticles" )
)


process.hltBoolEnd = cms.EDFilter( "HLTBool",
    result = cms.bool( True )
)

Behind paths
have to put this on

process.HLTEndSequence = cms.Sequence( process.hltBoolEnd )
process.HLT_HIDoubleMu = cms.Path(
        process.HLTBeginSequence +
        process.hltHIL1sDoubleMu +
        process.HLTL2muonrecoSequence +
        process.HLTDoLocalPixelSequence +
        process.hltHIpixel3ProtoTracks +
        process.hltHIpixelVertices +
        process.HLTDoLocalStripSequence +
        process.hltHIMML3Filter +
        process.HLTEndSequence
)


process.hltL1gtTrigReport = cms.EDAnalyzer( "L1GtTrigReport",
    UseL1GlobalTriggerRecord = cms.bool( False ),
    L1GtRecordInputTag = cms.InputTag( "hltGtDigis" )
)
process.hltTrigReport = cms.EDAnalyzer( "HLTrigReport",
    HLTriggerResults = cms.InputTag( 'TriggerResults','','HLT' )
)
process.HLTAnalyzerEndpath = cms.EndPath( process.hltL1gtTrigReport + process.hltTrigReport )
process.pts = cms.EDProducer("PathTimerInserter")
#process.pts = cms.EDFilter("PathTimerInserter")
process.PathTimerService = cms.Service("PathTimerService")
process.MyTimer = cms.Path ( process.pts )

process.load("Configuration.EventContent.EventContent_cff")
process.hltPoolOutput = cms.OutputModule("PoolOutputModule",
    outputCommands = cms.untracked.vstring(
        'keep *',
        'drop *',
        'keep HLTPerformanceInfo_*_*_*'
    ),
    basketSize = cms.untracked.int32(4096),
    fileName = cms.untracked.string('file:_fileName_')
    #fileName = cms.untracked.string('file:HLTMuL3_e5k.root')
    #fileName = cms.untracked.string('file:jpsi_HLTMuL3_2111_e50kv2.root')
)
process.HLTOutput = cms.EndPath(process.hltPoolOutput)
process.schedule = cms.Schedule( process.HLT_HIDoubleMu, process.HLTAnalyzerEndpath, process.MyTimer
, process.HLTOutput
)




20090519 updated how to setup HLT Dimuon

Official name is HLT_HIDoubleMu.
To run without errors, we need to get some modules like this

cvs co -r V02-06-05 L1TriggerConfig/L1GtConfigProducers
cvs co -r V00-01-02 RecoHIMuon/HiMuPropagator
cvs co -r V00-02-02 RecoHIMuon/HiMuSeed
cvs co -r V00-02-08 RecoHIMuon/HiMuTracking
cvs co -r V00-00-03 RecoHI/HiTracking
cvs co -r $CMSSW_VERSION HLTrigger/Configuration/
cvs co -r $CMSSW_VERSION RecoPixelVertexing/PixelLowPtUtilities

scramv1 b

you can get the setupL3.sh at CMSSW_2_2_9 in the attached files below.

And then use HLT_HI_MuL3_229.py attached below, then you can get HLT results.





* 2009 5, 16 updated information about how to use confDB at CMSSW_2_2_X

edmConfigFromDB --configName /user/asyoon/HIHLT/CMSSW_2_2_6_HLT/HIHLT_2_2_6_HLT/V12 --format Python --paths HLT_HIDoubleMu > HI_HLT_MuL3.py

And must change this part
process.hltL1GtObjectMap = cms.EDProducer( "L1GlobalTrigger", GmtInputTag = cms.InputTag( "hltGtDigis" ), GctInputTag = cms.InputTag( "hltGctDigis" ), CastorInputTag = cms.InputTag( "castorL1Digis" ), ProduceL1GtDaqRecord = cms.bool( False ), ProduceL1GtEvmRecord = cms.bool( False ), ProduceL1GtObjectMapRecord = cms.bool( True ), WritePsbL1GtDaqRecord = cms.bool( False ), ReadTechnicalTriggerRecords = cms.bool( True ), TechnicalTriggersInputTags = cms.VInputTag( 'simBscDigis' ), EmulateBxInEvent = cms.int32( 1 ), BstLengthBytes = cms.int32( -1 ) ) #process.hltL1GtObjectMap = cms.EDProducer( "L1GlobalTrigger", # GmtInputTag = cms.InputTag( "hltGtDigis" ), # GctInputTag = cms.InputTag( "hltGctDigis" ), # CastorInputTag = cms.InputTag( "castorL1Digis" ), # TechnicalTriggersInputTag = cms.InputTag( "techTrigDigis" ), # ProduceL1GtDaqRecord = cms.bool( False ), # ProduceL1GtEvmRecord = cms.bool( False ), # ProduceL1GtObjectMapRecord = cms.bool( True ), # WritePsbL1GtDaqRecord = cms.bool( False ), # ReadTechnicalTriggerRecords = cms.bool( True ), # EmulateBxInEvent = cms.int32( 1 ), # BstLengthBytes = cms.int32( -1 ) #)

add this on the cfg file at the end of that.

process.hltL1gtTrigReport = cms.EDAnalyzer( "L1GtTrigReport", UseL1GlobalTriggerRecord = cms.bool( False ), L1GtRecordInputTag = cms.InputTag( "hltGtDigis" ) ) process.hltTrigReport = cms.EDAnalyzer( "HLTrigReport", HLTriggerResults = cms.InputTag( 'TriggerResults','','JpsiHLT' ) ) process.HLTAnalyzerEndpath = cms.EndPath( process.hltL1gtTrigReport + process.hltTrigReport ) process.pts = cms.EDFilter("PathTimerInserter") process.PathTimerService = cms.Service("PathTimerService") process.MyTimer = cms.Path ( process.pts ) process.load("Configuration.EventContent.EventContent_cff") process.hltPoolOutput = cms.OutputModule("PoolOutputModule", outputCommands = cms.untracked.vstring( 'keep *' ), basketSize = cms.untracked.int32(4096), fileName = cms.untracked.string('file:jpsi_HLTMuL3_2111_e50kv1.root') ) process.HLTOutput = cms.EndPath(process.hltPoolOutput)
process.schedule = cms.Schedule( process.HLT_HI_MuL3, process.HLTAnalyzerEndpath, process.MyTimer, process.HLTOutput)



CMSSW version -> 2_1_0_pre9

Default configuration from

HLTrigger/Configuration/test/RelVal_Digi_Digi2Raw_cfg.py

DBS sample is already run until raw file, which means output root file includes Level 1 trigger information.
So we need to work "Raw2Digi". Because our aim is to test "L1_DoubleMuOpen" bit in HLT.

edmConfigFromDB --configName /dev/CMSSW_2_1_0_pre9/HLT --format Python --paths HLT_Jet80,HLT_Photon15_L1R > MyConfig.py

In my case, direct JPsi and Upsilon
edmConfigFromDB --configName /dev/CMSSW_2_1_0_pre9/HLT --format Python --paths HLT_DoubleMu3_JPsi > JPsiConfig.py
edmConfigFromDB --configName /dev/CMSSW_2_1_0_pre9/HLT --format Python --paths HLT_DoubleMu3_Upsilon > UpsilonConfig.py


Now, to test this HLT running, I am going to make gen-sim ttbar sample.
10 events. -> TTbarGenSim.root
Rev_Digi_Digi2Raw.cfg -> TTbarGenSimDigiRaw.root
JPsiConfig.py -> HLT out put

And then

To use
L1_DoubleMuOpen
have to input following module

# L1 GT
EventSetup

process.load("L1TriggerConfig.L1GtConfigProducers.L1GtConfig_cff")
process.load("L1TriggerConfig.L1GtConfigProducers.Luminosity.startup.L1Menu_startup_v3_Unprescaled_cff")


> cmsRun JPsiConfig.py

The difference with original and modified for DoubleMuOpen

1.process name : indicated to duplicate process name.
process = cms.Process( "HLT" ) -> process = cms.Process( "JPsiHLT" )
2. add L1 GT cff file
# L1 GT 
EventSetup

process.load("L1TriggerConfig.L1GtConfigProducers.L1GtConfig_cff")
process.load("L1TriggerConfig.L1GtConfigProducers.Luminosity.startup.L1Menu_startup_v3_Unprescaled_cff")

3. xml file must be fixed : if not, default startup menu does not display.
this part must be removed. Because the "L1TriggerConfig.L1GtConfigProducers.Luminosity.startup.L1Menu_startup_v3_Unprescaled_cff" file replaced that startup menu.

#process.l1GtTriggerMenuXml = cms.ESProducer( "L1GtTriggerMenuXmlProducer",
#  TriggerMenuLuminosity = cms.string( "lumi1030" ),
#  DefXmlFile = cms.string( "L1Menu2008_2E30.xml" ),
#  VmeXmlFile = cms.string( "" )
#)
-> 이 것 다음에
L1 GT cff에 추가하면 지우지 않아도 된다.

4. prescaler error : remove presclaer in path
process.HLT_DoubleMu3_JPsi = cms.Path( process.HLTBeginSequence + process.hltL1sJpsiMM +
process.hltPreDoubleMu3JPsi + process.hltJpsiMML1Filtered + process.HLTL2muonrecoSequence + process.hltJpsiMML2Filtered + process.HLTL3muonrecoSequence + process.hltJpsiMML3Filtered + process.HLTEndSequence )

prescaler error 발생 원인
http://cmslxr.fnal.gov/lxr/source/FWCore/PrescaleService/test/testPrescaleService_cfg.py?v=CMSSW_2_1_7
PrescaleService 에서 VSet parmeter를 정의해주어야 하는데 Upsilon 과 Jpsi config의 경우 그 파라미터가 제대로 정의 되어 있지 않기 때문에
error 가 나고 있음

batch run
bsub -R "pool>10000" -q 1nw -J minHLT < mjob_upsilon.csh

Č
ċ
ď
HI_HLT_MuL3_229.py
(128k)
Dongho Moon,
May 19, 2009 1:48 AM
ċ
ď
setupL3.sh
(0k)
Dongho Moon,
May 19, 2009 1:44 AM